@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root{
    --olive:#8A8D5E;
    --olive-dark:#636742;
    --olive-deep:#4B4F35;
    --olive-soft:#B9BB98;
    --olive-pale:#E1E2CF;
    --cream:#F4F1E7;
    --cream-light:#FAF8F2;
    --white:#FFFFFF;
    --text:#24251F;
    --text-soft:#65665A;
    --line:rgba(75,79,53,.15);
}

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    min-height:100%;
    font-family:'Montserrat',sans-serif;
    color:var(--text);
    background:var(--cream-light);
}

a{
    color:inherit;
}

/* LOGIN */

.login-page{
    min-height:100vh;
}

.login-wrap{
    min-height:100vh;
    display:grid;
    grid-template-columns:1.1fr .9fr;
}

.login-brand{
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:8vw;
    background:
        radial-gradient(circle at 80% 15%,rgba(255,255,255,.10),transparent 25%),
        linear-gradient(145deg,var(--olive-dark),var(--olive-deep));
    color:#fff;
}

.login-brand::after{
    content:"AM";
    position:absolute;
    right:-30px;
    bottom:-80px;
    font-size:28vw;
    line-height:.8;
    font-weight:800;
    color:rgba(255,255,255,.035);
}

.eyebrow{
    margin-bottom:20px;
    color:var(--olive-soft);
    font-size:12px;
    font-weight:800;
    letter-spacing:.18em;
}

.login-brand h1{
    max-width:700px;
    margin:0;
    font-size:clamp(48px,5vw,82px);
    line-height:.98;
    letter-spacing:-.04em;
}

.login-brand p{
    max-width:600px;
    margin:28px 0 0;
    color:rgba(255,255,255,.72);
    font-size:16px;
    line-height:1.8;
}

.login-brand blockquote{
    margin:45px 0 0;
    color:var(--olive-pale);
    font-size:18px;
    font-weight:600;
}

.login-box{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:clamp(40px,7vw,95px);
    background:#fff;
}

.login-logo{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    margin-bottom:28px;
    border-radius:50%;
    background:var(--olive-deep);
    color:#fff;
    font-weight:800;
}

.login-label{
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.16em;
}

.login-box h2{
    margin:8px 0 34px;
    color:var(--olive-deep);
    font-size:38px;
}

.login-box form{
    display:grid;
    gap:20px;
}

.login-box label span{
    display:block;
    margin-bottom:8px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.login-box input{
    width:100%;
    height:54px;
    padding:0 16px;
    border:1px solid var(--line);
    border-radius:9px;
    background:var(--cream-light);
    outline:none;
    font:inherit;
}

.login-box input:focus{
    border-color:var(--olive);
    box-shadow:0 0 0 3px rgba(138,141,94,.12);
}

.login-box button{
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 18px;
    border:0;
    border-radius:9px;
    background:var(--olive-deep);
    color:#fff;
    font:inherit;
    font-weight:700;
    cursor:pointer;
}

.alert{
    margin-bottom:20px;
    padding:14px 16px;
    border-radius:8px;
    background:#F9ECE8;
    color:#8B4139;
    font-size:13px;
}

/* DASHBOARD */

.admin-page{
    min-height:100vh;
}

.topbar{
    height:76px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 32px;
    border-bottom:1px solid var(--line);
    background:#fff;
}

.topbar strong,
.topbar span{
    display:block;
}

.topbar strong{
    color:var(--olive-deep);
}

.topbar span{
    margin-top:3px;
    color:var(--text-soft);
    font-size:11px;
}

.topbar a{
    padding:10px 13px;
    border:1px solid var(--line);
    border-radius:8px;
    color:var(--olive-deep);
    text-decoration:none;
    font-size:12px;
    font-weight:700;
}

.dashboard{
    padding:70px clamp(22px,6vw,90px);
}

.dashboard-heading > span{
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.16em;
}

.dashboard-heading h1{
    margin:10px 0 10px;
    color:var(--olive-deep);
    font-size:clamp(42px,5vw,70px);
    line-height:1;
}

.dashboard-heading p{
    color:var(--text-soft);
    font-size:15px;
}

.dashboard-grid{
    margin-top:45px;
    display:grid;
    grid-template-columns:1.2fr .9fr .9fr;
    gap:20px;
}

.dashboard-card{
    min-height:250px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:28px;
    border:1px solid var(--line);
    background:#fff;
}

.dashboard-card small{
    margin-bottom:auto;
    color:var(--olive);
    font-weight:800;
}

.dashboard-card h2{
    margin:0 0 10px;
    color:var(--olive-deep);
    font-size:30px;
}

.dashboard-card p{
    margin:0;
    color:var(--text-soft);
    font-size:13px;
    line-height:1.65;
}

.dashboard-card.featured{
    background:var(--olive-deep);
    color:#fff;
}

.dashboard-card.featured h2{
    color:#fff;
}

.dashboard-card.featured p{
    color:rgba(255,255,255,.72);
}

.coming{
    margin-top:22px;
    color:var(--olive-soft);
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
}

@media(max-width:900px){
    .login-wrap{
        grid-template-columns:1fr;
    }

    .login-brand{
        min-height:42vh;
        padding:55px 30px;
    }

    .login-box{
        min-height:58vh;
        padding:50px 30px;
    }

    .dashboard-grid{
        grid-template-columns:1fr;
    }
}


/* LOGO REAL ------------------------------------------------ */

.login-logo-wrap{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    margin-bottom:30px;
}

.login-logo-img{
    display:block;
    width:min(230px, 72%);
    max-height:92px;
    object-fit:contain;
    object-position:left center;
}

.topbar-brand{
    display:flex;
    align-items:center;
    gap:14px;
}

.topbar-logo{
    display:block;
    width:118px;
    max-height:48px;
    object-fit:contain;
    object-position:left center;
}

@media(max-width:560px){
    .login-logo-img{
        width:min(200px, 78%);
    }

    .topbar-logo{
        width:95px;
    }
}


/* =========================================================
   DASHBOARD COMPLETO
========================================================= */

.topbar-user{
    display:flex;
    align-items:center;
    gap:18px;
}

.topbar-user-info{
    text-align:right;
}

.topbar-user-info strong,
.topbar-user-info span{
    display:block;
}

.topbar-user-info strong{
    color:var(--olive-deep);
    font-size:13px;
}

.topbar-user-info span{
    margin-top:2px;
    color:var(--text-soft);
    font-size:10px;
}

.logout-btn{
    padding:10px 13px;
    border:1px solid var(--line);
    border-radius:8px;
    color:var(--olive-deep);
    text-decoration:none;
    font-size:11px;
    font-weight:700;
}

.admin-shell{
    display:grid;
    grid-template-columns:240px minmax(0,1fr);
    min-height:calc(100vh - 76px);
}

.admin-sidebar{
    padding:26px 18px;
    border-right:1px solid var(--line);
    background:#fff;
}

.sidebar-user{
    display:flex;
    align-items:center;
    gap:12px;
    padding:4px 8px 22px;
    margin-bottom:16px;
    border-bottom:1px solid var(--line);
}

.sidebar-avatar{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    border-radius:50%;
    background:var(--olive-deep);
    color:#fff;
    font-size:13px;
    font-weight:800;
}

.sidebar-user strong{
    display:block;
    color:var(--olive-deep);
    font-size:11px;
    line-height:1.3;
}

.sidebar-user small{
    display:block;
    margin-top:3px;
    color:var(--olive);
    font-size:9px;
}

.admin-nav{
    display:grid;
    gap:6px;
}

.admin-nav a{
    position:relative;
    display:grid;
    grid-template-columns:30px minmax(0,1fr);
    align-items:center;
    min-height:48px;
    padding:0 13px;
    border-radius:8px;
    color:var(--text-soft);
    text-decoration:none;
    font-size:12px;
    font-weight:600;
}

.admin-nav a > span{
    color:var(--olive);
    font-size:9px;
    font-weight:800;
}

.admin-nav a.active{
    background:var(--olive-deep);
    color:#fff;
}

.admin-nav a.active > span{
    color:var(--olive-soft);
}

.admin-nav a small{
    grid-column:2;
    margin-top:-8px;
    color:var(--olive);
    font-size:7px;
    font-weight:800;
    letter-spacing:.08em;
}

.coming-link{
    opacity:.68;
}

.dashboard-panel{
    padding:58px clamp(28px,5vw,72px) 70px;
}

.dashboard-heading-grid{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
    gap:50px;
    align-items:end;
}

.dashboard-heading-grid > p{
    max-width:540px;
    margin:0 0 4px;
    color:var(--text-soft);
    font-size:14px;
    line-height:1.8;
}

.dashboard-status{
    margin-top:30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:18px 20px;
    border:1px solid var(--line);
    background:var(--cream);
}

.dashboard-status > div{
    display:flex;
    align-items:center;
    gap:13px;
}

.dashboard-status-dot{
    width:10px;
    height:10px;
    flex:0 0 10px;
    border-radius:50%;
    background:var(--olive);
    box-shadow:0 0 0 5px rgba(138,141,94,.13);
}

.dashboard-status strong{
    display:block;
    color:var(--olive-deep);
    font-size:12px;
}

.dashboard-status p{
    margin:3px 0 0;
    color:var(--text-soft);
    font-size:10px;
}

.dashboard-status-badge{
    padding:7px 9px;
    border:1px solid var(--line);
    color:var(--olive-deep);
    font-size:8px;
    font-weight:800;
    letter-spacing:.12em;
}

.dashboard-grid-main{
    grid-template-columns:1.15fr .925fr .925fr;
}

.dashboard-grid-main .dashboard-card{
    min-height:285px;
}

.dashboard-card-state{
    margin-top:22px;
    color:var(--olive);
    font-size:8px;
    font-weight:800;
    letter-spacing:.11em;
}

.dashboard-admin-note{
    margin-top:20px;
    display:grid;
    grid-template-columns:170px minmax(0,1fr);
    gap:24px;
    padding:24px 26px;
    background:var(--olive-pale);
}

.dashboard-admin-note > span{
    color:var(--olive-deep);
    font-size:9px;
    font-weight:800;
    letter-spacing:.13em;
}

.dashboard-admin-note strong{
    display:block;
    color:var(--olive-deep);
    font-size:14px;
}

.dashboard-admin-note p{
    margin:5px 0 0;
    color:var(--text-soft);
    font-size:11px;
    line-height:1.6;
}

.dashboard-support-note{
    background:var(--cream);
}

@media(max-width:950px){
    .admin-shell{
        grid-template-columns:1fr;
    }

    .admin-sidebar{
        border-right:0;
        border-bottom:1px solid var(--line);
    }

    .admin-nav{
        grid-template-columns:repeat(3,1fr);
    }

    .dashboard-heading-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .dashboard-grid-main{
        grid-template-columns:1fr;
    }
}

@media(max-width:640px){
    .topbar-user-info{
        display:none;
    }

    .admin-nav{
        grid-template-columns:1fr 1fr;
    }

    .dashboard-admin-note{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   HERO SLIDERS · ADMIN
========================================================= */

.dashboard-card-action{
    margin-top:22px;
    color:var(--olive-soft);
    font-size:9px;
    font-weight:800;
    letter-spacing:.10em;
    text-decoration:none;
}

.hero-admin-page{
    overflow:hidden;
}

.admin-message{
    margin:26px 0 0;
    padding:15px 17px;
    border:1px solid var(--line);
    font-size:12px;
    line-height:1.5;
}

.admin-message.success{
    background:#eef2e6;
    color:#51613e;
}

.admin-message.error{
    background:#f8ece8;
    color:#8a443c;
}

.hero-admin-toolbar{
    margin-top:30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:18px 20px;
    border:1px solid var(--line);
    background:#fff;
}

.hero-admin-toolbar strong,
.hero-admin-toolbar span{
    display:block;
}

.hero-admin-toolbar strong{
    color:var(--olive-deep);
    font-size:13px;
}

.hero-admin-toolbar span{
    margin-top:4px;
    color:var(--text-soft);
    font-size:10px;
}

.admin-action-primary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 16px;
    border:0;
    border-radius:8px;
    background:var(--olive-deep);
    color:#fff;
    text-decoration:none;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
}

.hero-admin-grid{
    margin-top:20px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.hero-admin-card{
    min-width:0;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 15px 34px rgba(75,79,53,.05);
    overflow:hidden;
}

.hero-admin-card.is-disabled{
    opacity:.62;
}

.hero-admin-image{
    position:relative;
    aspect-ratio:16/7;
    overflow:hidden;
    background:var(--olive-pale);
}

.hero-admin-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.hero-admin-order,
.hero-admin-status{
    position:absolute;
    top:12px;
    padding:7px 9px;
    font-size:8px;
    font-weight:800;
    letter-spacing:.08em;
}

.hero-admin-order{
    left:12px;
    background:#fff;
    color:var(--olive-deep);
}

.hero-admin-status{
    right:12px;
    color:#fff;
}

.hero-admin-status.online{
    background:var(--olive-deep);
}

.hero-admin-status.offline{
    background:#7b7067;
}

.hero-admin-card-body{
    padding:20px;
}

.hero-admin-kicker{
    color:var(--olive);
    font-size:8px;
    font-weight:800;
    letter-spacing:.12em;
}

.hero-admin-card h2{
    margin:8px 0 10px;
    color:var(--olive-deep);
    font-size:23px;
    line-height:1.08;
}

.hero-admin-card p{
    margin:0;
    color:var(--text-soft);
    font-size:12px;
    line-height:1.65;
}

.hero-admin-card-footer{
    margin-top:20px;
    padding-top:14px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
}

.hero-admin-card-footer span{
    color:var(--olive);
    font-size:8px;
    font-weight:800;
    letter-spacing:.09em;
}

.hero-admin-card-footer a{
    color:var(--olive-deep);
    font-size:10px;
    font-weight:800;
    text-decoration:none;
}

.hero-editor-wrap{
    margin-top:30px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 20px 50px rgba(75,79,53,.08);
}

.hero-editor-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:30px;
    padding:25px 28px;
    border-bottom:1px solid var(--line);
}

.hero-editor-heading span{
    color:var(--olive);
    font-size:8px;
    font-weight:800;
    letter-spacing:.14em;
}

.hero-editor-heading h2{
    margin:7px 0 0;
    color:var(--olive-deep);
    font-size:28px;
    line-height:1.1;
}

.hero-editor-close{
    color:var(--text-soft);
    font-size:11px;
    text-decoration:none;
}

.hero-editor-form{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);
}

.hero-editor-main{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    padding:28px;
    border-right:1px solid var(--line);
}

.hero-editor-side{
    display:flex;
    flex-direction:column;
    gap:20px;
    padding:28px;
    background:var(--cream-light);
}

.hero-editor-form label > span{
    display:block;
    margin-bottom:8px;
    color:var(--olive-deep);
    font-size:11px;
    font-weight:700;
}

.hero-editor-form input[type="text"],
.hero-editor-form input[type="number"],
.hero-editor-form textarea,
.hero-editor-form select{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:12px;
    outline:none;
}

.hero-editor-form input[type="text"],
.hero-editor-form input[type="number"],
.hero-editor-form select{
    height:48px;
    padding:0 14px;
}

.hero-editor-form textarea{
    resize:vertical;
    min-height:110px;
    padding:13px 14px;
    line-height:1.55;
}

.hero-editor-form input:focus,
.hero-editor-form textarea:focus,
.hero-editor-form select:focus{
    border-color:var(--olive);
    box-shadow:0 0 0 3px rgba(138,141,94,.10);
}

.hero-editor-form label > small{
    display:block;
    margin-top:6px;
    color:var(--text-soft);
    font-size:9px;
    line-height:1.5;
}

.field-full{
    grid-column:1/-1;
}

.hero-editor-divider{
    margin-top:6px;
    padding-top:18px;
    border-top:1px solid var(--line);
    color:var(--olive);
    font-size:8px;
    font-weight:800;
    letter-spacing:.14em;
}

.hero-image-current{
    aspect-ratio:16/10;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--olive-pale);
}

.hero-image-current img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.hero-image-empty{
    height:100%;
    display:grid;
    place-items:center;
    color:var(--text-soft);
    font-size:11px;
}

.hero-file-field{
    padding:15px;
    border:1px dashed rgba(75,79,53,.28);
    background:#fff;
}

.hero-file-field input{
    max-width:100%;
    font-size:10px;
}

.admin-check{
    display:flex;
    align-items:center;
    gap:9px;
    padding:14px;
    border:1px solid var(--line);
    background:#fff;
}

.admin-check input{
    width:18px;
    height:18px;
    accent-color:var(--olive-deep);
}

.admin-check > span{
    margin:0 !important;
}

.hero-save-btn{
    width:100%;
    margin-top:auto;
}

@media(max-width:1050px){
    .hero-editor-form{
        grid-template-columns:1fr;
    }

    .hero-editor-main{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:850px){
    .hero-admin-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:620px){
    .hero-admin-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .hero-editor-main{
        grid-template-columns:1fr;
        padding:20px;
    }

    .field-full{
        grid-column:auto;
    }

    .hero-editor-side{
        padding:20px;
    }
}


/* =========================================================
   LEGIBILIDAD ADMIN · TIPOGRAFÍAS MÁS GRANDES
========================================================= */

/* Navegación y usuario */
.admin-nav a{
    font-size:14px !important;
}

.admin-nav a > span{
    font-size:11px !important;
}

.admin-nav a small{
    font-size:10px !important;
}

.sidebar-user strong{
    font-size:13px !important;
}

.sidebar-user small{
    font-size:11px !important;
}

.topbar-user-info strong{
    font-size:14px !important;
}

.topbar-user-info span{
    font-size:11px !important;
}

.logout-btn{
    font-size:12px !important;
}

/* Dashboard */
.dashboard-heading > span,
.admin-kicker{
    font-size:12px !important;
}

.dashboard-heading-grid > p{
    font-size:15px !important;
}

.dashboard-status strong{
    font-size:13px !important;
}

.dashboard-status p{
    font-size:12px !important;
}

.dashboard-status-badge{
    font-size:10px !important;
}

.dashboard-card small{
    font-size:10px !important;
}

.dashboard-card p{
    font-size:14px !important;
}

.dashboard-card-state,
.coming,
.dashboard-card-action{
    font-size:10px !important;
}

/* Toolbar Heroes */
.hero-admin-toolbar strong{
    font-size:15px !important;
}

.hero-admin-toolbar span{
    font-size:12px !important;
}

.admin-action-primary{
    font-size:13px !important;
}

/* Tarjetas Heroes */
.hero-admin-order,
.hero-admin-status{
    font-size:10px !important;
}

.hero-admin-kicker{
    font-size:11px !important;
}

.hero-admin-card h2{
    font-size:25px !important;
}

.hero-admin-card p{
    font-size:14px !important;
}

.hero-admin-card-footer span{
    font-size:10px !important;
}

.hero-admin-card-footer a{
    font-size:12px !important;
}

/* Editor */
.hero-editor-heading span{
    font-size:10px !important;
}

.hero-editor-heading h2{
    font-size:30px !important;
}

.hero-editor-close{
    font-size:12px !important;
}

.hero-editor-form label > span{
    font-size:13px !important;
}

.hero-editor-form input[type="text"],
.hero-editor-form input[type="number"],
.hero-editor-form textarea,
.hero-editor-form select{
    font-size:14px !important;
}

.hero-editor-form label > small{
    font-size:11px !important;
}

.hero-editor-divider{
    font-size:10px !important;
}

.hero-file-field input{
    font-size:12px !important;
}

.admin-message{
    font-size:13px !important;
}

/* Mobile */
@media(max-width:620px){
    .admin-nav a{
        font-size:13px !important;
    }

    .hero-admin-card h2{
        font-size:22px !important;
    }

    .hero-editor-form label > span{
        font-size:12px !important;
    }

    .hero-editor-form input[type="text"],
    .hero-editor-form input[type="number"],
    .hero-editor-form textarea,
    .hero-editor-form select{
        font-size:14px !important;
    }
}


/* =========================================================
   BLOG · ADMIN
========================================================= */

.dashboard-card-link{
    margin-top:22px;
    color:var(--olive-deep);
    font-size:12px;
    font-weight:800;
    letter-spacing:.05em;
    text-decoration:none;
}

.blog-admin-kpis{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.blog-admin-kpis article{
    padding:22px;
    border:1px solid var(--line);
    background:#fff;
}

.blog-admin-kpis span,
.blog-admin-kpis small{
    display:block;
}

.blog-admin-kpis span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
}

.blog-admin-kpis strong{
    display:block;
    margin:8px 0 5px;
    color:var(--olive-deep);
    font-size:36px;
    line-height:1;
}

.blog-admin-kpis small{
    color:var(--text-soft);
    font-size:12px;
}

.blog-admin-toolbar{
    margin-top:22px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:20px;
    border:1px solid var(--line);
    background:var(--cream);
}

.blog-admin-toolbar strong,
.blog-admin-toolbar span{
    display:block;
}

.blog-admin-toolbar strong{
    color:var(--olive-deep);
    font-size:16px;
}

.blog-admin-toolbar span{
    margin-top:4px;
    color:var(--text-soft);
    font-size:13px;
}

.blog-admin-list{
    margin-top:20px;
    display:grid;
    gap:16px;
}

.blog-admin-empty{
    display:grid;
    grid-template-columns:55px minmax(0,1fr);
    gap:20px;
    padding:28px;
    border:1px solid var(--line);
    background:#fff;
}

.blog-admin-empty > span{
    color:var(--olive);
    font-size:14px;
    font-weight:800;
}

.blog-admin-empty strong{
    display:block;
    color:var(--olive-deep);
    font-size:18px;
}

.blog-admin-empty p{
    margin:7px 0 0;
    color:var(--text-soft);
    font-size:14px;
}

.blog-admin-row{
    display:grid;
    grid-template-columns:230px minmax(0,1fr);
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 12px 28px rgba(75,79,53,.04);
}

.blog-admin-row-image{
    min-height:220px;
    display:block;
    overflow:hidden;
    background:var(--olive-pale);
    text-decoration:none;
}

.blog-admin-row-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.blog-admin-row-image > span{
    height:100%;
    min-height:220px;
    display:grid;
    place-items:center;
    color:var(--olive-deep);
    font-size:12px;
    font-weight:800;
}

.blog-admin-row-content{
    min-width:0;
    padding:24px;
}

.blog-admin-row-meta{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    align-items:center;
    margin-bottom:12px;
}

.blog-admin-row-meta > span{
    padding:6px 8px;
    background:var(--cream);
    color:var(--olive-deep);
    font-size:11px;
    font-weight:800;
    letter-spacing:.05em;
}

.blog-admin-row-meta .published{
    background:#e9efdf;
    color:#54663d;
}

.blog-admin-row-meta .draft{
    background:#f1e8e3;
    color:#7f5148;
}

.blog-admin-row-meta .featured{
    background:var(--olive-deep);
    color:#fff;
}

.blog-admin-row h2{
    margin:0 0 10px;
    color:var(--olive-deep);
    font-size:27px;
    line-height:1.12;
}

.blog-admin-row-content > p{
    max-width:850px;
    margin:0;
    color:var(--text-soft);
    font-size:14px;
    line-height:1.7;
}

.blog-admin-row-footer{
    margin-top:24px;
    padding-top:17px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    border-top:1px solid var(--line);
}

.blog-admin-row-footer small,
.blog-admin-row-footer strong{
    display:block;
}

.blog-admin-row-footer small{
    margin-bottom:4px;
    color:var(--olive);
    font-size:11px;
    font-weight:800;
}

.blog-admin-row-footer strong{
    color:var(--text-soft);
    font-size:12px;
    font-weight:600;
}

.blog-admin-row-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    align-items:center;
}

.blog-admin-row-actions a,
.blog-admin-row-actions button{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#fff;
    color:var(--olive-deep);
    font:inherit;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.blog-admin-row-actions form{
    margin:0;
}

.blog-editor-wrap{
    margin-top:32px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 20px 50px rgba(75,79,53,.08);
}

.blog-editor-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:28px;
    padding:26px 28px;
    border-bottom:1px solid var(--line);
}

.blog-editor-heading span{
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.10em;
}

.blog-editor-heading h2{
    margin:7px 0 0;
    color:var(--olive-deep);
    font-size:30px;
    line-height:1.12;
}

.blog-editor-form{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);
}

.blog-editor-main{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    padding:28px;
    border-right:1px solid var(--line);
}

.blog-editor-side{
    display:flex;
    flex-direction:column;
    gap:20px;
    padding:28px;
    background:var(--cream-light);
}

.blog-editor-form label > span{
    display:block;
    margin-bottom:8px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.blog-editor-form input[type="text"],
.blog-editor-form input[type="datetime-local"],
.blog-editor-form textarea{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
    outline:none;
}

.blog-editor-form input[type="text"],
.blog-editor-form input[type="datetime-local"]{
    height:50px;
    padding:0 14px;
}

.blog-editor-form textarea{
    resize:vertical;
    padding:14px;
    line-height:1.65;
}

.blog-editor-form input:focus,
.blog-editor-form textarea:focus{
    border-color:var(--olive);
    box-shadow:0 0 0 3px rgba(138,141,94,.10);
}

.blog-editor-form label > small{
    display:block;
    margin-top:6px;
    color:var(--text-soft);
    font-size:12px;
    line-height:1.55;
}

.blog-image-current{
    aspect-ratio:16/10;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--olive-pale);
}

.blog-image-current img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.blog-image-empty{
    height:100%;
    display:grid;
    place-items:center;
    color:var(--text-soft);
    font-size:13px;
}

.blog-save-btn{
    width:100%;
    min-height:48px;
    margin-top:auto;
    font-size:13px !important;
}

@media(max-width:1050px){
    .blog-editor-form{
        grid-template-columns:1fr;
    }

    .blog-editor-main{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:900px){
    .blog-admin-kpis{
        grid-template-columns:1fr;
    }

    .blog-admin-row{
        grid-template-columns:170px minmax(0,1fr);
    }
}

@media(max-width:700px){
    .blog-admin-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .blog-admin-row{
        grid-template-columns:1fr;
    }

    .blog-admin-row-image{
        min-height:190px;
    }

    .blog-admin-row-footer{
        align-items:flex-start;
        flex-direction:column;
    }

    .blog-editor-main{
        grid-template-columns:1fr;
        padding:20px;
    }

    .blog-editor-side{
        padding:20px;
    }
}


/* =========================================================
   TESTIMONIOS · ADMIN
========================================================= */

.testimonios-admin-kpis{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.testimonios-admin-kpis article{
    padding:22px;
    border:1px solid var(--line);
    background:#fff;
}

.testimonios-admin-kpis span,
.testimonios-admin-kpis small{
    display:block;
}

.testimonios-admin-kpis span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.07em;
}

.testimonios-admin-kpis strong{
    display:block;
    margin:8px 0 5px;
    color:var(--olive-deep);
    font-size:36px;
    line-height:1;
}

.testimonios-admin-kpis small{
    color:var(--text-soft);
    font-size:12px;
}

.testimonios-admin-toolbar{
    margin-top:22px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:20px;
    border:1px solid var(--line);
    background:var(--cream);
}

.testimonios-admin-toolbar strong,
.testimonios-admin-toolbar span{
    display:block;
}

.testimonios-admin-toolbar strong{
    color:var(--olive-deep);
    font-size:16px;
}

.testimonios-admin-toolbar span{
    margin-top:4px;
    color:var(--text-soft);
    font-size:13px;
}

.testimonios-admin-grid{
    margin-top:20px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.testimonios-admin-card{
    overflow:hidden;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 12px 30px rgba(75,79,53,.05);
}

.testimonios-admin-card.is-disabled{
    opacity:.60;
}

.testimonios-admin-image{
    position:relative;
    aspect-ratio:16/8;
    overflow:hidden;
    background:var(--olive-pale);
}

.testimonios-admin-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.testimonios-admin-noimage{
    height:100%;
    display:grid;
    place-items:center;
    color:var(--olive-deep);
    font-size:13px;
}

.testimonios-admin-order,
.testimonios-admin-status{
    position:absolute;
    top:12px;
    padding:7px 9px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.07em;
}

.testimonios-admin-order{
    left:12px;
    background:#fff;
    color:var(--olive-deep);
}

.testimonios-admin-status{
    right:12px;
    color:#fff;
}

.testimonios-admin-status.online{
    background:var(--olive-deep);
}

.testimonios-admin-status.offline{
    background:#7a7068;
}

.testimonios-admin-card-body{
    padding:22px;
}

.testimonios-admin-process{
    display:block;
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
}

.testimonios-admin-card h2{
    margin:8px 0 6px;
    color:var(--olive-deep);
    font-size:27px;
    line-height:1.1;
}

.testimonios-admin-person strong,
.testimonios-admin-person span{
    display:block;
}

.testimonios-admin-person strong{
    color:var(--text);
    font-size:14px;
}

.testimonios-admin-person span{
    margin-top:3px;
    color:var(--text-soft);
    font-size:13px;
}

.testimonios-admin-card blockquote{
    margin:20px 0 0;
    padding:18px 0 0;
    border-top:1px solid var(--line);
    color:var(--text-soft);
    font-size:14px;
    line-height:1.75;
}

.testimonios-admin-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:20px;
}

.testimonios-admin-actions form{
    margin:0;
}

.testimonios-admin-actions a,
.testimonios-admin-actions button{
    min-height:39px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#fff;
    color:var(--olive-deep);
    font:inherit;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.testimonios-admin-actions button.danger{
    color:#934c43;
}

.testimonios-admin-empty{
    grid-column:1/-1;
    padding:30px;
    border:1px solid var(--line);
    background:#fff;
}

.testimonios-admin-empty strong{
    color:var(--olive-deep);
    font-size:18px;
}

.testimonios-admin-empty p{
    margin:7px 0 0;
    color:var(--text-soft);
    font-size:14px;
}

.testimonio-editor-wrap{
    margin-top:32px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 20px 50px rgba(75,79,53,.08);
}

.testimonio-editor-heading{
    display:flex;
    justify-content:space-between;
    gap:28px;
    padding:26px 28px;
    border-bottom:1px solid var(--line);
}

.testimonio-editor-heading span{
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.10em;
}

.testimonio-editor-heading h2{
    margin:7px 0 0;
    color:var(--olive-deep);
    font-size:30px;
    line-height:1.12;
}

.testimonio-editor-form{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);
}

.testimonio-editor-main{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    padding:28px;
    border-right:1px solid var(--line);
}

.testimonio-editor-side{
    display:flex;
    flex-direction:column;
    gap:20px;
    padding:28px;
    background:var(--cream-light);
}

.testimonio-editor-form label > span{
    display:block;
    margin-bottom:8px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.testimonio-editor-form input[type="text"],
.testimonio-editor-form input[type="number"],
.testimonio-editor-form textarea{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
    outline:none;
}

.testimonio-editor-form input[type="text"],
.testimonio-editor-form input[type="number"]{
    height:50px;
    padding:0 14px;
}

.testimonio-editor-form textarea{
    resize:vertical;
    padding:14px;
    line-height:1.65;
}

.testimonio-editor-form input:focus,
.testimonio-editor-form textarea:focus{
    border-color:var(--olive);
    box-shadow:0 0 0 3px rgba(138,141,94,.10);
}

.testimonio-image-current{
    aspect-ratio:1/1;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--olive-pale);
}

.testimonio-image-current img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.testimonio-image-empty{
    height:100%;
    display:grid;
    place-items:center;
    color:var(--text-soft);
    font-size:13px;
}

.testimonio-save-btn{
    width:100%;
    min-height:48px;
    margin-top:auto;
    font-size:13px !important;
}

@media(max-width:1050px){
    .testimonio-editor-form{
        grid-template-columns:1fr;
    }

    .testimonio-editor-main{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:850px){
    .testimonios-admin-grid,
    .testimonios-admin-kpis{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .testimonios-admin-toolbar{
        flex-direction:column;
        align-items:stretch;
    }

    .testimonio-editor-main{
        grid-template-columns:1fr;
        padding:20px;
    }

    .testimonio-editor-side{
        padding:20px;
    }
}


/* =========================================================
   AUDITORÍA · ADMIN
========================================================= */

.auditoria-kpis{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.auditoria-kpis article{
    padding:22px;
    border:1px solid var(--line);
    background:#fff;
}

.auditoria-kpis span,
.auditoria-kpis small{
    display:block;
}

.auditoria-kpis span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
}

.auditoria-kpis strong{
    display:block;
    margin:8px 0 5px;
    color:var(--olive-deep);
    font-size:36px;
    line-height:1;
}

.auditoria-kpis small{
    color:var(--text-soft);
    font-size:12px;
}

.auditoria-filtros{
    margin-top:22px;
    display:grid;
    grid-template-columns:1.15fr 1.15fr 1.15fr .9fr .9fr auto;
    gap:14px;
    align-items:end;
    padding:20px;
    border:1px solid var(--line);
    background:var(--cream);
}

.auditoria-filtros label > span{
    display:block;
    margin-bottom:7px;
    color:var(--olive-deep);
    font-size:12px;
    font-weight:700;
}

.auditoria-filtros select,
.auditoria-filtros input{
    width:100%;
    height:46px;
    padding:0 11px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:13px;
}

.auditoria-filtros-actions{
    display:flex;
    gap:8px;
}

.auditoria-filtros-actions button,
.auditoria-filtros-actions a{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 13px;
    border:1px solid var(--olive-deep);
    border-radius:7px;
    font:inherit;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.auditoria-filtros-actions button{
    background:var(--olive-deep);
    color:#fff;
}

.auditoria-filtros-actions a{
    background:#fff;
    color:var(--olive-deep);
}

.auditoria-list{
    margin-top:20px;
    display:grid;
    gap:12px;
}

.auditoria-row{
    display:grid;
    grid-template-columns:120px minmax(0,1fr);
    border:1px solid var(--line);
    background:#fff;
}

.auditoria-date{
    padding:20px;
    border-right:1px solid var(--line);
    background:var(--cream-light);
}

.auditoria-date strong,
.auditoria-date span{
    display:block;
}

.auditoria-date strong{
    color:var(--olive-deep);
    font-size:13px;
}

.auditoria-date span{
    margin-top:5px;
    color:var(--text-soft);
    font-size:12px;
}

.auditoria-main{
    min-width:0;
    padding:20px 22px;
}

.auditoria-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:9px;
}

.auditoria-tags span{
    padding:6px 8px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.06em;
}

.auditoria-tags .modulo{
    background:var(--olive-pale);
    color:var(--olive-deep);
}

.auditoria-tags .accion{
    background:var(--olive-deep);
    color:#fff;
}

.auditoria-main h2{
    margin:0;
    color:var(--olive-deep);
    font-size:17px;
    line-height:1.45;
}

.auditoria-meta{
    margin-top:12px;
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    color:var(--text-soft);
    font-size:12px;
    line-height:1.55;
}

.auditoria-meta strong{
    color:var(--text);
}

.auditoria-empty{
    padding:28px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--text-soft);
    font-size:14px;
}

.auditoria-limit{
    margin:18px 0 0;
    color:var(--text-soft);
    font-size:12px;
}

@media(max-width:1100px){
    .auditoria-filtros{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:760px){
    .auditoria-kpis{
        grid-template-columns:1fr;
    }

    .auditoria-filtros{
        grid-template-columns:1fr 1fr;
    }

    .auditoria-row{
        grid-template-columns:1fr;
    }

    .auditoria-date{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:520px){
    .auditoria-filtros{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   GALERÍA · ADMIN
========================================================= */

.dashboard-quick-module{
    margin-top:20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    padding:24px 26px;
    border:1px solid var(--line);
    background:#fff;
}

.dashboard-quick-module > div > span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.07em;
}

.dashboard-quick-module h2{
    margin:6px 0 6px;
    color:var(--olive-deep);
    font-size:26px;
}

.dashboard-quick-module p{
    max-width:700px;
    margin:0;
    color:var(--text-soft);
    font-size:14px;
    line-height:1.65;
}

.galeria-admin-kpis{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.galeria-admin-kpis article{
    padding:22px;
    border:1px solid var(--line);
    background:#fff;
}

.galeria-admin-kpis span,
.galeria-admin-kpis small{
    display:block;
}

.galeria-admin-kpis span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.07em;
}

.galeria-admin-kpis strong{
    display:block;
    margin:8px 0 5px;
    color:var(--olive-deep);
    font-size:36px;
    line-height:1;
}

.galeria-admin-kpis small{
    color:var(--text-soft);
    font-size:12px;
}

.galeria-upload-wrap{
    margin-top:22px;
    padding:24px;
    border:1px solid var(--line);
    background:var(--cream);
}

.galeria-upload-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);
    gap:35px;
    align-items:end;
}

.galeria-upload-heading span{
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.09em;
}

.galeria-upload-heading h2{
    margin:7px 0 0;
    color:var(--olive-deep);
    font-size:25px;
}

.galeria-upload-heading p{
    margin:0;
    color:var(--text-soft);
    font-size:14px;
    line-height:1.65;
}

.galeria-upload-form{
    margin-top:20px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:end;
}

.galeria-file-drop{
    padding:18px;
    border:1px dashed rgba(75,79,53,.34);
    background:#fff;
}

.galeria-file-drop > span,
.galeria-file-drop > small{
    display:block;
}

.galeria-file-drop > span{
    margin-bottom:9px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.galeria-file-drop input{
    max-width:100%;
    font-size:13px;
}

.galeria-file-drop > small{
    margin-top:8px;
    color:var(--text-soft);
    font-size:12px;
    line-height:1.5;
}

.galeria-admin-toolbar{
    margin-top:22px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:19px 20px;
    border:1px solid var(--line);
    background:#fff;
}

.galeria-admin-toolbar strong,
.galeria-admin-toolbar span{
    display:block;
}

.galeria-admin-toolbar strong{
    color:var(--olive-deep);
    font-size:16px;
}

.galeria-admin-toolbar span{
    margin-top:4px;
    color:var(--text-soft);
    font-size:13px;
}

.galeria-view-site{
    color:var(--olive-deep);
    font-size:12px;
    font-weight:800;
    text-decoration:none;
}

.galeria-admin-grid{
    margin-top:20px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
}

.galeria-admin-card{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line);
    background:#fff;
}

.galeria-admin-card.is-disabled{
    opacity:.58;
}

.galeria-admin-image{
    position:relative;
    aspect-ratio:1/1;
    overflow:hidden;
    background:var(--olive-pale);
}

.galeria-admin-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.galeria-admin-order,
.galeria-admin-status{
    position:absolute;
    top:10px;
    padding:6px 8px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.05em;
}

.galeria-admin-order{
    left:10px;
    background:#fff;
    color:var(--olive-deep);
}

.galeria-admin-status{
    right:10px;
    color:#fff;
}

.galeria-admin-status.online{
    background:var(--olive-deep);
}

.galeria-admin-status.offline{
    background:#776e67;
}

.galeria-admin-card-body{
    padding:16px;
}

.galeria-admin-card h2{
    margin:0 0 7px;
    color:var(--olive-deep);
    font-size:17px;
    line-height:1.25;
}

.galeria-admin-card p{
    min-height:38px;
    margin:0;
    color:var(--text-soft);
    font-size:12px;
    line-height:1.55;
}

.galeria-admin-actions{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:15px;
    padding-top:13px;
    border-top:1px solid var(--line);
}

.galeria-admin-actions form{
    margin:0;
}

.galeria-admin-actions a,
.galeria-admin-actions button{
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 10px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#fff;
    color:var(--olive-deep);
    font:inherit;
    font-size:11px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.galeria-admin-actions button.danger{
    color:#934c43;
}

.galeria-admin-empty{
    grid-column:1/-1;
    padding:28px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--text-soft);
    font-size:14px;
}

.galeria-editor-wrap{
    margin-top:30px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 20px 50px rgba(75,79,53,.08);
}

.galeria-editor-heading{
    display:flex;
    justify-content:space-between;
    gap:28px;
    padding:25px 28px;
    border-bottom:1px solid var(--line);
}

.galeria-editor-heading span{
    color:var(--olive);
    font-size:11px;
    font-weight:800;
    letter-spacing:.09em;
}

.galeria-editor-heading h2{
    margin:7px 0 0;
    color:var(--olive-deep);
    font-size:29px;
}

.galeria-editor-form{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);
}

.galeria-editor-main{
    display:grid;
    grid-template-columns:1fr 180px;
    gap:20px;
    padding:28px;
    border-right:1px solid var(--line);
}

.galeria-editor-side{
    display:flex;
    flex-direction:column;
    gap:20px;
    padding:28px;
    background:var(--cream-light);
}

.galeria-editor-form label > span{
    display:block;
    margin-bottom:8px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.galeria-editor-form input[type="text"],
.galeria-editor-form input[type="number"],
.galeria-editor-form textarea{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
    outline:none;
}

.galeria-editor-form input[type="text"],
.galeria-editor-form input[type="number"]{
    height:49px;
    padding:0 13px;
}

.galeria-editor-form textarea{
    padding:13px;
    resize:vertical;
    line-height:1.6;
}

.galeria-editor-form small{
    display:block;
    margin-top:6px;
    color:var(--text-soft);
    font-size:12px;
    line-height:1.5;
}

.galeria-editor-image{
    aspect-ratio:1/1;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--olive-pale);
}

.galeria-editor-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.galeria-save-btn{
    width:100%;
    min-height:48px;
    margin-top:auto;
    font-size:13px !important;
}

@media(max-width:1180px){
    .galeria-admin-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .galeria-admin-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .galeria-admin-kpis{
        grid-template-columns:1fr;
    }

    .galeria-editor-form{
        grid-template-columns:1fr;
    }

    .galeria-editor-main{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:650px){
    .dashboard-quick-module,
    .galeria-admin-toolbar{
        align-items:stretch;
        flex-direction:column;
    }

    .galeria-upload-heading{
        grid-template-columns:1fr;
        gap:12px;
    }

    .galeria-upload-form{
        grid-template-columns:1fr;
    }

    .galeria-admin-grid{
        grid-template-columns:1fr;
    }

    .galeria-editor-main{
        grid-template-columns:1fr;
        padding:20px;
    }

    .galeria-editor-side{
        padding:20px;
    }
}

/* =========================================================
   LOGIN PREMIUM EDITORIAL · ALE MARTELL
   Sobrio · elegante · profesional
========================================================= */

.login-premium-page{
    margin:0;
    min-height:100vh;
    overflow-x:hidden;
    font-family:'Montserrat',sans-serif;
    background:#f7f4eb;
    color:#2f3128;
}

.login-premium-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(430px,42%) minmax(0,58%);
}


/* ---------------------------------------------------------
   PANEL IZQUIERDO
--------------------------------------------------------- */

.login-premium-brand{
    position:relative;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:54px 62px 50px;
    overflow:hidden;
    background:
        radial-gradient(circle at 0% 0%, rgba(255,255,255,.07), transparent 34%),
        linear-gradient(150deg,#5a603b 0%,#4b5031 55%,#3f442b 100%);
    color:#fff;
}

.login-premium-brand::before{
    content:"";
    position:absolute;
    width:440px;
    height:440px;
    right:-230px;
    bottom:10%;
    border:1px solid rgba(255,255,255,.08);
    border-radius:50%;
}

.login-premium-brand::after{
    content:"";
    position:absolute;
    width:260px;
    height:1px;
    left:62px;
    top:170px;
    background:linear-gradient(
        90deg,
        rgba(232,225,190,.75),
        rgba(232,225,190,0)
    );
}

.login-premium-brand-top,
.login-premium-brand-copy,
.login-premium-brand-bottom{
    position:relative;
    z-index:2;
}

.login-premium-brand-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:30px;
}

.login-premium-logo-white{
    display:block;
    width:190px;
    max-height:78px;
    object-fit:contain;
    object-position:left center;
}

.login-premium-panel-label{
    max-width:180px;
    padding-top:8px;
    color:#d9d3af;
    font-size:12px;
    line-height:1.5;
    font-weight:700;
    letter-spacing:.16em;
    text-align:right;
}

.login-premium-brand-copy{
    max-width:640px;
    padding:72px 0 55px;
}

.login-premium-overline{
    display:block;
    margin-bottom:17px;
    color:#d9d3af;
    font-size:12px;
    font-weight:800;
    letter-spacing:.19em;
}

.login-premium-brand h1{
    max-width:620px;
    margin:0;
    color:#fff;
    font-size:clamp(47px,4.3vw,76px);
    line-height:.99;
    font-weight:700;
    letter-spacing:-.045em;
}

.login-premium-brand-copy p{
    max-width:540px;
    margin:28px 0 0;
    color:rgba(255,255,255,.78);
    font-size:17px;
    line-height:1.8;
}

.login-premium-brand-bottom{
    border-top:1px solid rgba(255,255,255,.13);
    padding-top:25px;
}

.login-premium-modules{
    display:flex;
    flex-wrap:wrap;
    gap:9px 22px;
}

.login-premium-modules span{
    position:relative;
    color:rgba(255,255,255,.72);
    font-size:13px;
    font-weight:600;
}

.login-premium-modules span:not(:last-child)::after{
    content:"·";
    position:absolute;
    right:-14px;
    color:#cfc89e;
}

.login-premium-brand blockquote{
    margin:27px 0 0;
    color:#f0ead0;
    font-size:18px;
    line-height:1.5;
    font-weight:600;
}


/* ---------------------------------------------------------
   PANEL DERECHO
--------------------------------------------------------- */

.login-premium-main{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:44px clamp(36px,6vw,105px);
    background:
        linear-gradient(rgba(255,255,255,.32),rgba(255,255,255,.32)),
        #f7f4eb;
}

.login-premium-main-inner{
    width:100%;
    max-width:590px;
}

.login-premium-main-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    margin-bottom:34px;
}

.login-premium-logo-main{
    display:block;
    width:150px;
    max-height:60px;
    object-fit:contain;
    object-position:left center;
}

.login-premium-site-link{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#66694c;
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}

.login-premium-site-link span{
    font-size:16px;
    transition:transform .2s ease;
}

.login-premium-site-link:hover span{
    transform:translate(2px,-2px);
}


/* ---------------------------------------------------------
   TARJETA
--------------------------------------------------------- */

.login-premium-card{
    position:relative;
    padding:44px 46px 42px;
    border:1px solid rgba(76,80,49,.12);
    border-radius:22px;
    background:rgba(255,255,255,.82);
    box-shadow:
        0 28px 70px rgba(59,63,38,.09),
        0 3px 12px rgba(59,63,38,.035);
}

.login-premium-card::before{
    content:"";
    position:absolute;
    top:0;
    left:46px;
    width:58px;
    height:3px;
    background:#8d9162;
}

.login-premium-card-kicker{
    display:block;
    margin-bottom:12px;
    color:#8a8e61;
    font-size:12px;
    font-weight:800;
    letter-spacing:.17em;
}

.login-premium-card h2{
    margin:0;
    color:#3f442b;
    font-size:46px;
    line-height:1;
    font-weight:700;
    letter-spacing:-.035em;
}

.login-premium-card-lead{
    margin:14px 0 28px;
    color:#747568;
    font-size:16px;
    line-height:1.65;
}


/* ---------------------------------------------------------
   ALERTA
--------------------------------------------------------- */

.login-premium-alert{
    display:grid;
    grid-template-columns:30px minmax(0,1fr);
    gap:12px;
    align-items:center;
    margin-bottom:22px;
    padding:14px 15px;
    border:1px solid #ead4cd;
    border-radius:12px;
    background:#fbefec;
    color:#955548;
    font-size:14px;
    font-weight:600;
}

.login-premium-alert > span{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#955548;
    color:#fff;
    font-weight:800;
}


/* ---------------------------------------------------------
   FORMULARIO
--------------------------------------------------------- */

.login-premium-form{
    display:grid;
    gap:21px;
}

.login-premium-form label > span{
    display:block;
    margin-bottom:9px;
    color:#434630;
    font-size:14px;
    font-weight:700;
}

.login-premium-field{
    position:relative;
}

.login-premium-field-icon{
    position:absolute;
    left:16px;
    top:50%;
    z-index:2;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    transform:translateY(-50%);
    border:1px solid rgba(83,88,54,.13);
    border-radius:50%;
    background:#f1eee5;
    color:#7e8356;
    font-size:11px;
    font-weight:800;
    pointer-events:none;
}

.login-premium-field input{
    width:100%;
    height:58px;
    box-sizing:border-box;
    padding:0 17px 0 57px;
    border:1px solid #ddd8ca;
    border-radius:13px;
    outline:none;
    background:#faf8f2;
    color:#33352c;
    font:inherit;
    font-size:16px;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.login-premium-field input::placeholder{
    color:#aaa89e;
}

.login-premium-field input:focus{
    border-color:#8d9162;
    background:#fff;
    box-shadow:0 0 0 4px rgba(141,145,98,.10);
}

.login-premium-submit{
    min-height:60px;
    margin-top:4px;
    padding:0 19px 0 21px;
    border:0;
    border-radius:13px;
    background:#505532;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    font:inherit;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 14px 30px rgba(80,85,50,.16);
    transition:
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.login-premium-submit:hover{
    background:#5e643b;
    transform:translateY(-1px);
    box-shadow:0 17px 34px rgba(80,85,50,.20);
}

.login-premium-submit-arrow{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.11);
    font-size:20px;
}


/* ---------------------------------------------------------
   SEGURIDAD + FOOTER
--------------------------------------------------------- */

.login-premium-security{
    margin-top:24px;
    display:flex;
    align-items:center;
    gap:9px;
    color:#88897d;
    font-size:12px;
    line-height:1.5;
}

.login-premium-security > span{
    width:8px;
    height:8px;
    flex:0 0 8px;
    border-radius:50%;
    background:#929767;
    box-shadow:0 0 0 4px rgba(146,151,103,.12);
}

.login-premium-footer{
    margin-top:22px;
    display:flex;
    justify-content:space-between;
    gap:18px;
    color:#97978e;
    font-size:12px;
}


/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */

@media(max-width:1050px){

    .login-premium-shell{
        grid-template-columns:1fr;
    }

    .login-premium-brand{
        min-height:auto;
        padding:38px 38px 34px;
    }

    .login-premium-brand::after{
        display:none;
    }

    .login-premium-brand-copy{
        padding:48px 0 38px;
    }

    .login-premium-brand h1{
        max-width:760px;
        font-size:52px;
    }

    .login-premium-main{
        min-height:auto;
        padding:45px 28px 55px;
    }

}

@media(max-width:640px){

    .login-premium-brand{
        padding:28px 22px;
    }

    .login-premium-brand-top{
        align-items:center;
    }

    .login-premium-logo-white{
        width:145px;
    }

    .login-premium-panel-label{
        max-width:130px;
        font-size:10px;
    }

    .login-premium-brand-copy{
        padding:38px 0 30px;
    }

    .login-premium-brand h1{
        font-size:39px;
    }

    .login-premium-brand-copy p{
        font-size:15px;
    }

    .login-premium-modules{
        gap:8px 16px;
    }

    .login-premium-modules span{
        font-size:12px;
    }

    .login-premium-brand blockquote{
        font-size:16px;
    }

    .login-premium-main{
        padding:30px 16px 38px;
    }

    .login-premium-main-head{
        margin-bottom:24px;
    }

    .login-premium-logo-main{
        width:125px;
    }

    .login-premium-card{
        padding:34px 23px 30px;
        border-radius:18px;
    }

    .login-premium-card::before{
        left:23px;
    }

    .login-premium-card h2{
        font-size:39px;
    }

    .login-premium-card-lead{
        font-size:15px;
    }

    .login-premium-field input{
        font-size:16px;
    }

    .login-premium-footer{
        flex-direction:column;
        gap:5px;
    }
}


/* =========================================================
   SESIÓN 0 · ADMIN
========================================================= */

.sesion0-dashboard-card{
    margin-top:20px;
}

.sesion0-kpis{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:15px;
}

.sesion0-kpis article{
    padding:21px;
    border:1px solid var(--line);
    background:#fff;
}

.sesion0-kpis span,
.sesion0-kpis small{
    display:block;
}

.sesion0-kpis span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.07em;
}

.sesion0-kpis strong{
    display:block;
    margin:8px 0 5px;
    color:var(--olive-deep);
    font-size:35px;
    line-height:1;
}

.sesion0-kpis small{
    color:var(--text-soft);
    font-size:12px;
}

.sesion0-filters{
    margin-top:20px;
    padding:17px;
    display:flex;
    align-items:end;
    gap:12px;
    border:1px solid var(--line);
    background:var(--cream);
}

.sesion0-filters label{
    min-width:220px;
    flex:1;
}

.sesion0-filters label > span{
    display:block;
    margin-bottom:7px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.sesion0-filters input,
.sesion0-filters select{
    width:100%;
    height:45px;
    box-sizing:border-box;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
}

.sesion0-filters button,
.sesion0-filters > a{
    min-height:45px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border:1px solid var(--olive-deep);
    border-radius:8px;
    background:var(--olive-deep);
    color:#fff;
    font:inherit;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.sesion0-filters > a{
    border-color:var(--line);
    background:#fff;
    color:var(--olive-deep);
}

.sesion0-list{
    margin-top:18px;
    display:grid;
    gap:10px;
}

.sesion0-lead-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:17px 19px;
    border:1px solid var(--line);
    background:#fff;
}

.sesion0-lead-main{
    min-width:0;
    display:flex;
    align-items:center;
    gap:14px;
}

.sesion0-lead-avatar{
    width:45px;
    height:45px;
    flex:0 0 45px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--olive-pale);
    color:var(--olive-deep);
    font-size:17px;
    font-weight:800;
}

.sesion0-lead-title{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}

.sesion0-lead-title h2{
    margin:0;
    color:var(--olive-deep);
    font-size:16px;
}

.sesion0-lead-main p{
    margin:4px 0 2px;
    color:var(--text-soft);
    font-size:13px;
}

.sesion0-lead-main small{
    color:#8A8B80;
    font-size:12px;
}

.sesion0-status{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    padding:0 8px;
    border-radius:999px;
    background:#EEEDE7;
    color:#606257;
    font-size:11px;
    font-weight:800;
}

.sesion0-status.estado-nueva{
    background:#F3EEDB;
    color:#7A692D;
}

.sesion0-status.estado-contactada{
    background:#E9EDF0;
    color:#4E6470;
}

.sesion0-status.estado-agendada{
    background:#E5E8D5;
    color:#62683D;
}

.sesion0-status.estado-realizada{
    background:#DDE8DF;
    color:#46634B;
}

.sesion0-status.estado-convertida{
    background:#D7E5DA;
    color:#365D40;
}

.sesion0-status.estado-no_asistio{
    background:#F4E7DF;
    color:#8A5946;
}

.sesion0-status.estado-cerrada{
    background:#ECE9E6;
    color:#6D6660;
}

.sesion0-lead-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:8px;
}

.sesion0-lead-actions a{
    min-height:37px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 11px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#fff;
    color:var(--olive-deep);
    font-size:12px;
    font-weight:700;
    text-decoration:none;
}

.sesion0-lead-actions .sesion0-wa-btn{
    border-color:#CFD7CE;
    background:#EEF3ED;
    color:#49634E;
}

.sesion0-empty{
    padding:28px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--text-soft);
    font-size:14px;
}


/* ---------------------------------------------------------
   DETAIL
--------------------------------------------------------- */

.sesion0-detail{
    margin-top:30px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 20px 50px rgba(75,79,53,.07);
}

.sesion0-detail-head{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:24px 27px;
    border-bottom:1px solid var(--line);
}

.sesion0-detail-head span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
}

.sesion0-detail-head h2{
    margin:6px 0 0;
    color:var(--olive-deep);
    font-size:28px;
}

.sesion0-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(340px,.75fr);
}

.sesion0-detail-info{
    padding:27px;
    border-right:1px solid var(--line);
}

.sesion0-info-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.sesion0-info-grid article{
    padding:14px;
    border:1px solid var(--line);
    background:var(--cream-light);
}

.sesion0-info-grid span,
.sesion0-info-grid strong{
    display:block;
}

.sesion0-info-grid span{
    margin-bottom:5px;
    color:var(--text-soft);
    font-size:12px;
}

.sesion0-info-grid strong{
    color:var(--olive-deep);
    font-size:13px;
    line-height:1.45;
    word-break:break-word;
}

.sesion0-motivo{
    margin-top:17px;
    padding:17px;
    border:1px solid var(--line);
}

.sesion0-motivo > span{
    display:block;
    margin-bottom:8px;
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.05em;
}

.sesion0-motivo p{
    margin:0;
    color:var(--text);
    font-size:14px;
    line-height:1.75;
}

.sesion0-wa-large{
    margin-top:15px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    padding:0 14px;
    border:1px solid #CBD7CC;
    border-radius:8px;
    background:#EEF4EE;
    color:#456049;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
}

.sesion0-detail-form{
    display:flex;
    flex-direction:column;
    gap:17px;
    padding:27px;
    background:var(--cream-light);
}

.sesion0-detail-form label > span{
    display:block;
    margin-bottom:7px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.sesion0-detail-form select,
.sesion0-detail-form input,
.sesion0-detail-form textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
}

.sesion0-detail-form select,
.sesion0-detail-form input{
    height:47px;
    padding:0 12px;
}

.sesion0-detail-form textarea{
    padding:12px;
    line-height:1.6;
    resize:vertical;
}

@media(max-width:1050px){
    .sesion0-kpis{
        grid-template-columns:repeat(2,1fr);
    }

    .sesion0-detail-grid{
        grid-template-columns:1fr;
    }

    .sesion0-detail-info{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:760px){
    .sesion0-filters{
        align-items:stretch;
        flex-direction:column;
    }

    .sesion0-filters label{
        min-width:0;
    }

    .sesion0-lead-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .sesion0-lead-actions{
        width:100%;
    }

    .sesion0-kpis{
        grid-template-columns:1fr;
    }

    .sesion0-info-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   CONTACTOS · ADMIN
========================================================= */

.contactos-dashboard-card{margin-top:20px;}

.contactos-kpis{
    margin-top:30px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:15px;
}

.contactos-kpis article{
    padding:21px;
    border:1px solid var(--line);
    background:#fff;
}

.contactos-kpis span,
.contactos-kpis small{display:block;}

.contactos-kpis span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.07em;
}

.contactos-kpis strong{
    display:block;
    margin:8px 0 5px;
    color:var(--olive-deep);
    font-size:35px;
    line-height:1;
}

.contactos-kpis small{
    color:var(--text-soft);
    font-size:12px;
}

.contactos-filters{
    margin-top:20px;
    padding:17px;
    display:flex;
    align-items:end;
    gap:12px;
    border:1px solid var(--line);
    background:var(--cream);
}

.contactos-filters label{min-width:220px;flex:1;}

.contactos-filters label > span{
    display:block;
    margin-bottom:7px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.contactos-filters input,
.contactos-filters select{
    width:100%;
    height:45px;
    box-sizing:border-box;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
}

.contactos-filters button,
.contactos-filters > a{
    min-height:45px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    border:1px solid var(--olive-deep);
    border-radius:8px;
    background:var(--olive-deep);
    color:#fff;
    font:inherit;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.contactos-filters > a{
    border-color:var(--line);
    background:#fff;
    color:var(--olive-deep);
}

.contactos-list{
    margin-top:18px;
    display:grid;
    gap:10px;
}

.contacto-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:17px 19px;
    border:1px solid var(--line);
    background:#fff;
}

.contacto-card-main{
    min-width:0;
    display:flex;
    align-items:center;
    gap:14px;
}

.contacto-avatar{
    width:45px;
    height:45px;
    flex:0 0 45px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--olive-pale);
    color:var(--olive-deep);
    font-size:17px;
    font-weight:800;
}

.contacto-card-title{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}

.contacto-card-title h2{
    margin:0;
    color:var(--olive-deep);
    font-size:16px;
}

.contacto-card-main p{
    margin:4px 0 2px;
    color:var(--text-soft);
    font-size:13px;
}

.contacto-card-main small{
    color:#8A8B80;
    font-size:12px;
}

.contacto-status{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    padding:0 8px;
    border-radius:999px;
    background:#EEEDE7;
    color:#606257;
    font-size:11px;
    font-weight:800;
}

.contacto-status.estado-nueva{background:#F3EEDB;color:#7A692D;}
.contacto-status.estado-contactada{background:#E9EDF0;color:#4E6470;}
.contacto-status.estado-respondida{background:#DDE8DF;color:#46634B;}
.contacto-status.estado-cerrada{background:#ECE9E6;color:#6D6660;}

.contacto-card-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:8px;
}

.contacto-card-actions a{
    min-height:37px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 11px;
    border:1px solid var(--line);
    border-radius:7px;
    background:#fff;
    color:var(--olive-deep);
    font-size:12px;
    font-weight:700;
    text-decoration:none;
}

.contacto-card-actions .contacto-mail-btn{background:#F2F0E8;}
.contacto-card-actions .contacto-wa-btn{
    border-color:#CFD7CE;
    background:#EEF3ED;
    color:#49634E;
}

.contactos-empty{
    padding:28px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--text-soft);
    font-size:14px;
}

.contacto-detail{
    margin-top:30px;
    border:1px solid var(--line);
    background:#fff;
    box-shadow:0 20px 50px rgba(75,79,53,.07);
}

.contacto-detail-head{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:24px 27px;
    border-bottom:1px solid var(--line);
}

.contacto-detail-head span{
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
}

.contacto-detail-head h2{
    margin:6px 0 0;
    color:var(--olive-deep);
    font-size:28px;
}

.contacto-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(340px,.75fr);
}

.contacto-detail-info{
    padding:27px;
    border-right:1px solid var(--line);
}

.contacto-info-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.contacto-info-grid article{
    padding:14px;
    border:1px solid var(--line);
    background:var(--cream-light);
}

.contacto-info-grid span,
.contacto-info-grid strong{display:block;}

.contacto-info-grid span{
    margin-bottom:5px;
    color:var(--text-soft);
    font-size:12px;
}

.contacto-info-grid strong{
    color:var(--olive-deep);
    font-size:13px;
    line-height:1.45;
    word-break:break-word;
}

.contacto-message-box{
    margin-top:17px;
    padding:17px;
    border:1px solid var(--line);
}

.contacto-message-box > span{
    display:block;
    margin-bottom:8px;
    color:var(--olive);
    font-size:12px;
    font-weight:800;
    letter-spacing:.05em;
}

.contacto-message-box p{
    margin:0;
    color:var(--text);
    font-size:14px;
    line-height:1.75;
}

.contacto-direct-actions{
    margin-top:15px;
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}

.contacto-mail-large,
.contacto-wa-large{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    padding:0 14px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#F2F0E8;
    color:var(--olive-deep);
    font-size:12px;
    font-weight:700;
    text-decoration:none;
}

.contacto-wa-large{
    border-color:#CBD7CC;
    background:#EEF4EE;
    color:#456049;
}

.contacto-detail-form{
    display:flex;
    flex-direction:column;
    gap:17px;
    padding:27px;
    background:var(--cream-light);
}

.contacto-detail-form label > span{
    display:block;
    margin-bottom:7px;
    color:var(--olive-deep);
    font-size:13px;
    font-weight:700;
}

.contacto-detail-form select,
.contacto-detail-form textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:14px;
}

.contacto-detail-form select{
    height:47px;
    padding:0 12px;
}

.contacto-detail-form textarea{
    padding:12px;
    line-height:1.6;
    resize:vertical;
}

@media(max-width:1050px){
    .contactos-kpis{grid-template-columns:repeat(2,1fr);}
    .contacto-detail-grid{grid-template-columns:1fr;}
    .contacto-detail-info{
        border-right:0;
        border-bottom:1px solid var(--line);
    }
}

@media(max-width:760px){
    .contactos-filters{
        align-items:stretch;
        flex-direction:column;
    }

    .contactos-filters label{min-width:0;}

    .contacto-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .contacto-card-actions{
        width:100%;
        flex-wrap:wrap;
    }

    .contactos-kpis{grid-template-columns:1fr;}
    .contacto-info-grid{grid-template-columns:1fr;}
}


/* =========================================================
   CONTACTOS · SMTP
========================================================= */

.contacto-retry-form{
    margin:0;
}

.contacto-retry-btn{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    border:1px solid #D9D1B4;
    border-radius:8px;
    background:#F7F2E2;
    color:#6B6039;
    font:inherit;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}

.contacto-retry-btn:hover{
    background:#F0E9D1;
}
