/* ISW PORTAL ADMIN - Estilos v3 */
:root{
    --nv:#1A2744;--nv2:#243556;--tl:#3FA6A6;--tl2:#2E8585;
    --st:#3F6E8C;--or:#FD7E14;--or2:#E36A00;
    --bg:#F4F6F8;--bd:#D9DEE3;--tx:#1A2744;--tx2:#5A6470;--tx3:#8A95A0;
    --gr:#4CAF50;--rd:#D94545;--yw:#FFC107;
    --label-w:140px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{font-family:-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--tx);line-height:1.5;font-size:16px}
a{color:var(--st);text-decoration:none}
a:hover{color:var(--tl)}

/* ===== LOGIN ===== */
.adm-login-body{background:var(--nv);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.adm-login{background:#fff;padding:40px;border-top:4px solid var(--tl);width:100%;max-width:420px}
.adm-login-brand{text-align:center;margin-bottom:24px}
.adm-login-mark{background:var(--tl);color:#fff;font-weight:800;font-size:22px;letter-spacing:1px;padding:10px;display:inline-block;margin-bottom:14px}
.adm-login h1{font-size:20px;margin-bottom:4px}
.adm-login p{color:var(--tx3);font-size:14px}
.adm-login-form label{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);margin:14px 0 5px}
.adm-login-form input{width:100%;padding:11px;border:1px solid var(--bd);font-size:15px}
.adm-login-form button{width:100%;background:var(--or);color:#fff;border:0;padding:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;margin-top:18px;font-size:14px}
.adm-login-form button:hover{background:var(--or2)}
.adm-login-note{font-size:12px;color:var(--tx3);text-align:center;margin-top:12px}

/* ===== LAYOUT ===== */
.adm-top{background:var(--nv);color:#fff;padding:0 22px;display:flex;justify-content:space-between;align-items:center;height:56px;border-bottom:3px solid var(--tl);position:sticky;top:0;z-index:100}
.adm-brand{display:flex;align-items:center;gap:10px}
.adm-brand-mark{background:var(--tl);font-weight:800;padding:7px 11px;letter-spacing:1px;font-size:15px}
.adm-brand-text{font-size:15px;font-weight:600;letter-spacing:.3px}
.adm-user{display:flex;align-items:center;gap:14px;font-size:15px}
.adm-user-name{color:#C5D2E2}
.adm-logout{color:var(--or);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px}
.adm-logout:hover{color:#fff}

.adm-wrap{display:grid;grid-template-columns:210px 1fr;min-height:calc(100vh - 56px)}
.adm-side{background:var(--nv2);padding:18px 0;border-right:1px solid #3D4F70}
.adm-nav{display:block;padding:11px 20px;color:#C5D2E2;font-size:15px;border-left:3px solid transparent;transition:all .15s}
.adm-nav:hover{background:rgba(255,255,255,.04);color:#fff}
.adm-nav.on{background:rgba(63,166,166,.15);color:#fff;border-left-color:var(--tl)}
.adm-nav-ext{font-size:13px;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px;margin-top:8px}
.adm-nav-sep{border:0;border-top:1px solid #3D4F70;margin:12px 18px}

.adm-main{padding:26px;display:flex;flex-direction:column;min-height:calc(100vh - 56px)}
.adm-content{flex:1}

/* ===== ELEMENTOS ===== */
.adm-h1{font-size:24px;font-weight:700;margin-bottom:18px;color:var(--nv);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adm-h1 small{font-size:16px;color:var(--tx3);font-weight:400}
.adm-back{font-size:15px;color:var(--st);font-weight:500}
.adm-page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px}

.adm-card{background:#fff;border:1px solid var(--bd);padding:20px;margin-bottom:18px}
.adm-card h2{font-size:14px;text-transform:uppercase;letter-spacing:.6px;color:var(--tl2);margin-bottom:16px;border-bottom:1px solid var(--bd);padding-bottom:8px}
.adm-card h4{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);margin:12px 0 6px}

.adm-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}
.adm-stat{background:#fff;border:1px solid var(--bd);padding:16px;text-align:center}
.adm-stat-val{font-size:26px;font-weight:700;color:var(--nv)}
.adm-stat-val.adm-ok{color:var(--gr)}
.adm-stat-val.adm-warn{color:var(--or)}
.adm-stat-val.adm-err{color:var(--rd)}
.adm-stat-val.adm-info{color:var(--tl)}
.adm-stat-lbl{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--tx3);margin-top:4px}

.adm-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}

.adm-table{width:100%;background:#fff;border:1px solid var(--bd);border-collapse:collapse;font-size:15px}
.adm-table th{background:var(--nv);color:#fff;text-align:left;padding:11px 13px;font-size:13px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.adm-table td{padding:10px 13px;border-bottom:1px solid var(--bd)}
.adm-table tr:hover td{background:#FAFBFC}
.adm-table .adm-num{text-align:right;font-variant-numeric:tabular-nums}
.adm-table-mini{width:100%;border-collapse:collapse;font-size:14px}
.adm-table-mini td{padding:6px 0;border-bottom:1px dotted var(--bd)}
.adm-table-mini td:last-child{text-align:right;font-weight:600}

.adm-link{color:var(--nv);font-weight:600}
.adm-link:hover{color:var(--tl)}

.adm-pill{display:inline-block;padding:2px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-left:4px;color:#fff}
.adm-pill-orange{background:var(--or)}
.adm-pill-teal{background:var(--tl)}
.adm-pill-navy{background:var(--nv)}
.adm-pill-green{background:var(--gr)}
.adm-pill-yellow{background:var(--yw);color:#333}
.adm-pill-gray{background:#8A95A0}
.adm-pill-red{background:var(--rd)}

/* ===== FILTROS ===== */
.adm-filters{background:#fff;border:1px solid var(--bd);padding:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.adm-filters input[type=text],.adm-filters select{border:1px solid var(--bd);padding:9px 11px;font-size:15px;min-width:170px}
.adm-filters input[type=text]{flex:1;min-width:220px}
.adm-filters button{background:var(--nv);color:#fff;border:0;padding:9px 20px;font-weight:600;cursor:pointer;font-size:14px;text-transform:uppercase;letter-spacing:.3px}
.adm-filters button:hover{background:var(--nv2)}

/* ============ FORMS - LAYOUT HORIZONTAL ============ */
.adm-form-grid{display:grid;grid-template-columns:1fr 400px;gap:18px}
@media(max-width:1100px){.adm-form-grid{grid-template-columns:1fr}}

/* Datos principales + Ubicación en 2 columnas */
.adm-cards-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:1400px){.adm-cards-2col{grid-template-columns:1fr}}

/* Card como grid: label izq / control der */
.adm-form .adm-card{
    display:grid;
    grid-template-columns:var(--label-w) 1fr;
    gap:12px 14px;
    align-items:center;
}
/* Elementos que ocupan ambas columnas */
.adm-form .adm-card > h2,
.adm-form .adm-card > h4,
.adm-form .adm-card > p,
.adm-form .adm-card > hr,
.adm-form .adm-card > .adm-grid2,
.adm-form .adm-card > .adm-grid3,
.adm-form .adm-card > .adm-check,
.adm-form .adm-card > .adm-servicios,
.adm-form .adm-card > .adm-preview,
.adm-form .adm-card > .adm-row-form,
.adm-form .adm-card > button {
    grid-column:1 / -1;
}
/* Labels directos del card - ALINEADAS A LA IZQUIERDA */
.adm-form .adm-card > label{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.4px;
    color:var(--tx2);
    font-weight:600;
    text-align:left;
    align-self:center;
    margin:0;
    padding-right:4px;
}
.adm-form .adm-card > textarea{
    grid-column:2 / -1;
    min-height:70px;
}
.adm-form .adm-card > label:has(+ textarea){
    align-self:start;
    padding-top:10px;
}

/* Controles */
.adm-form input[type=text],.adm-form input[type=number],.adm-form input[type=email],.adm-form input[type=url],.adm-form input[type=password],.adm-form input[type=datetime-local],.adm-form input[type=file],.adm-form select,.adm-form textarea{
    width:100%;border:1px solid var(--bd);padding:9px 11px;font-size:15px;font-family:inherit;background:#fff;
}
.adm-form textarea{resize:vertical;min-height:60px}
.adm-form input:focus,.adm-form select:focus,.adm-form textarea:focus{outline:0;border-color:var(--tl);box-shadow:0 0 0 2px rgba(63,166,166,.15)}

/* Grids internos */
.adm-grid2,.adm-grid3{display:grid;gap:10px}
.adm-grid2{grid-template-columns:1fr 1fr}
.adm-grid3{grid-template-columns:repeat(3,1fr)}
.adm-grid2 > div,.adm-grid3 > div{display:flex;flex-direction:column;gap:4px}
.adm-grid2 label,.adm-grid3 label{
    font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--tx2);
    font-weight:600;text-align:left;margin:0;
}

.adm-check{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--tx2);margin:6px 0;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}
.adm-check input{margin:0}

.adm-servicios .adm-checkgroup{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;margin-bottom:10px}

.adm-row-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.adm-row-form input,.adm-row-form select{border:1px solid var(--bd);padding:9px 11px;font-size:14px}
.adm-row-form button{background:var(--or);color:#fff;border:0;padding:9px 18px;font-weight:600;cursor:pointer}

.adm-preview{margin-bottom:8px;border:1px solid var(--bd);padding:8px;background:#FAFBFC;text-align:center;max-height:130px;overflow:hidden}
.adm-preview img{max-width:100%;max-height:110px}

/* ===== COLAPSO DE CARDS EN FORMULARIOS ===== */
.adm-form .adm-card > h2{
    cursor:pointer;
    user-select:none;
    position:relative;
    padding-right:28px;
    transition:color .15s;
}
.adm-form .adm-card > h2:hover{color:var(--tl)}
.adm-form .adm-card > h2::after{
    content:'▾';
    position:absolute;
    right:4px;
    top:50%;
    transform:translateY(-60%) rotate(0deg);
    transition:transform .25s;
    font-size:14px;
    color:var(--tl);
}
.adm-form .adm-card.adm-collapsed{padding-bottom:14px}
.adm-form .adm-card.adm-collapsed > h2{margin-bottom:0;border-bottom:0;padding-bottom:0}
.adm-form .adm-card.adm-collapsed > h2::after{transform:translateY(-60%) rotate(-90deg)}
.adm-form .adm-card.adm-collapsed > *:not(h2){display:none}

/* ===== BOTONES ===== */
.adm-btn-primary{background:var(--or);color:#fff;border:0;padding:11px 22px;font-weight:700;cursor:pointer;font-size:14px;text-transform:uppercase;letter-spacing:.5px;display:inline-block;text-align:center}
.adm-btn-primary:hover{background:var(--or2);color:#fff}
.adm-btn-sec{background:#fff;color:var(--st);border:1px solid var(--st);padding:11px 22px;font-weight:600;cursor:pointer;font-size:13px;text-transform:uppercase;letter-spacing:.3px;display:inline-block;text-align:center}
.adm-btn-sec:hover{background:var(--st);color:#fff}
.adm-btn-danger{background:var(--rd);color:#fff;border:0;padding:11px 22px;font-weight:700;cursor:pointer;font-size:13px;text-transform:uppercase;letter-spacing:.5px}
.adm-btn-danger:hover{background:#a01e1e}
.adm-btn-sm{background:#fff;border:1px solid var(--bd);padding:6px 11px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--tx2);cursor:pointer}
.adm-btn-sm:hover{background:var(--nv);color:#fff;border-color:var(--nv)}
.adm-btn-block{display:block;width:100%;margin-bottom:8px}
.adm-card-actions{position:sticky;top:70px}

/* ===== PAGINATION ===== */
.adm-pagination{display:flex;gap:4px;justify-content:center;margin:16px 0;flex-wrap:wrap}
.adm-page{display:inline-block;padding:7px 13px;background:#fff;border:1px solid var(--bd);font-size:14px;color:var(--tx2)}
.adm-page.on{background:var(--nv);color:#fff;border-color:var(--nv);font-weight:600}
.adm-page:hover:not(.on){background:#F4F6F8}
.adm-page-sep{padding:7px 4px;color:var(--tx3)}

/* ===== FLASH ===== */
.adm-flash{padding:11px 15px;margin-bottom:14px;border-left:4px solid;font-size:14px}
.adm-flash-ok{background:#E8F5E9;border-color:var(--gr);color:#1b5e20}
.adm-flash-error{background:#FFEBEE;border-color:var(--rd);color:#8b1c1c}
.adm-flash-info{background:#E1F5FE;border-color:var(--tl);color:#01579b}

.adm-muted{color:var(--tx3);font-size:14px}

/* ===== FOOTER ADMIN ===== */
.adm-footer{
    margin-top:24px;
    background:var(--nv);color:#C5D2E2;
    padding:14px 22px;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:16px;align-items:center;
    font-size:12px;
    border-top:3px solid var(--tl);
}
.adm-footer-stats{display:flex;gap:14px;flex-wrap:wrap}
.adm-footer-stat{display:inline-flex;align-items:center;gap:5px}
.adm-footer-stat strong{color:var(--tl);font-size:13px}
.adm-footer-clock{
    text-align:center;color:#fff;font-weight:600;letter-spacing:.5px;
    font-variant-numeric:tabular-nums;font-size:13px;
}
.adm-footer-clock small{display:block;font-size:10px;color:#9BB0C9;font-weight:400;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
.adm-footer-legal{text-align:right;color:#9BB0C9;font-size:11px;line-height:1.6}
.adm-footer-legal a{color:var(--tl)}
.adm-footer-legal a:hover{color:#fff}

/* ===== RESPONSIVE ===== */
@media(max-width:980px){
    :root{--label-w:115px}
    .adm-wrap{grid-template-columns:1fr}
    .adm-side{display:flex;overflow-x:auto;padding:0}
    .adm-nav{padding:11px 14px;border-left:0;border-bottom:3px solid transparent;white-space:nowrap}
    .adm-nav.on{border-bottom-color:var(--tl);border-left-color:transparent}
    .adm-stats{grid-template-columns:repeat(3,1fr)}
    .adm-row2{grid-template-columns:1fr}
    .adm-footer{grid-template-columns:1fr;text-align:center}
    .adm-footer-legal{text-align:center}
}
@media(max-width:640px){
    .adm-form .adm-card{grid-template-columns:1fr;gap:6px}
    .adm-form .adm-card > label{text-align:left;align-self:start;padding-right:0;font-size:12px}
    .adm-form .adm-card > textarea{grid-column:1}
}
