*{box-sizing:border-box}
:root{
 --navy:#20242b;--navy2:#18202d;--orange:#f28c28;--orange-dark:#e87d15;--orange-light:#f28c28;--orange-soft:#fff3e8;--sidebar-end:#101722;
 --text:#1d2a3a;--muted:#687586;--bg:#f4f6f9;--white:#fff;
 --sidebar-expanded:255px;--sidebar-collapsed:72px;--topbar:66px
}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
body{overflow-x:hidden}
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar);background:var(--navy);color:#fff;border-bottom:3px solid var(--orange);display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 8px;z-index:1000;box-shadow:0 2px 12px #0002}
.topbar-left{display:flex;align-items:center;gap:14px}
.brand{color:#fff;text-decoration:none;font-weight:800;font-size:21px;letter-spacing:.6px}
.sidebar-toggle{width:52px;height:48px;border:1px solid #ffffff55;background:transparent;border-radius:5px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
.sidebar-toggle span{display:block;width:25px;height:3px;background:#fff;border-radius:2px}
.sidebar-toggle:hover{background:#ffffff12;border-color:var(--orange)}
.topbar-right{display:flex;align-items:center}
.profile-wrap{position:relative}
.profile-button{width:46px;height:46px;border:1px solid #ffffff66;background:transparent;color:#fff;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center}
.profile-button:hover{background:#ffffff12}
.profile-button svg{width:26px;height:26px;fill:currentColor}
.profile-menu{position:absolute;right:0;top:55px;width:225px;background:#fff;color:#172131;border-radius:8px;box-shadow:0 8px 25px #0002;padding:7px;z-index:1200}
.profile-menu:before{content:"";position:absolute;right:17px;top:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #fff}
.profile-menu-item{width:100%;display:flex;align-items:center;gap:8px;padding:11px 12px;text-decoration:none;color:#172131;background:#fff;border:0;text-align:left;font-size:14px;cursor:pointer;border-radius:5px}
.profile-menu-item:hover{background:#f4f5f7}
.profile-menu-icon{width:22px;text-align:center}
.profile-logout{color:#c62828}
.profile-menu-separator{height:1px;background:#e7e9ed;margin:5px 7px}

.sidebar{position:fixed;top:var(--topbar);bottom:0;left:0;width:var(--sidebar-expanded);background:linear-gradient(180deg,var(--navy2),var(--sidebar-end));z-index:900;transition:width .2s ease;overflow-x:hidden;overflow-y:auto;box-shadow:2px 0 12px #0002}
.sidebar-nav{padding:10px 8px 30px}
.nav-item{min-height:45px;color:#eef2f7;text-decoration:none;display:flex;align-items:center;gap:12px;padding:9px 11px;margin:2px 0;border-radius:4px;font-size:14px;transition:.15s;position:relative;white-space:nowrap}
.nav-item:hover{background:#ffffff10;color:#fff}
.nav-item.active{background:linear-gradient(90deg,var(--orange),var(--orange-light));color:#fff;font-weight:700;box-shadow:0 3px 10px #0002}
.nav-icon{width:27px;min-width:27px;height:27px;display:flex;align-items:center;justify-content:center}
.nav-icon svg{width:20px;height:20px;fill:currentColor}
.nav-label{overflow:hidden;text-overflow:ellipsis;transition:opacity .12s ease}
.nav-arrow{margin-left:auto;font-size:22px;color:#bfc6cf;transition:opacity .12s ease}

.main-content{padding:92px 28px 35px;margin-left:var(--sidebar-expanded);min-height:100vh;transition:margin-left .2s ease}
.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}
.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed)}
.sidebar-collapsed .nav-item{justify-content:center;padding-left:0;padding-right:0}
.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-arrow{opacity:0;width:0;overflow:hidden;pointer-events:none}
.sidebar-collapsed .nav-icon{width:27px;min-width:27px}
.sidebar-collapsed .nav-item{gap:0}

/* Sidebar colapsado: todos los iconos ocupan exactamente la misma celda.
   Los nombres se muestran mediante un tooltip uniforme. */
.sidebar-collapsed .nav-item:hover::after,
.sidebar-collapsed .nav-item.tooltip-open::after{
    content:attr(data-tooltip);
    position:absolute;
    left:66px;
    top:50%;
    transform:translateY(-50%);
    background:#20242b;
    color:#fff;
    padding:7px 10px;
    border-radius:6px;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
    z-index:2005;
    box-shadow:0 6px 16px #0003;
    pointer-events:none;
}

/* En modo colapsado los grupos no abren el submenú dentro del sidebar.
   El JS los presenta como un panel flotante para que nunca se corte. */
.sidebar-collapsed .nav-group.is-open .nav-submenu,
.sidebar-collapsed .nav-group .nav-submenu{display:none}
.sidebar-flyout{
    position:fixed;
    min-width:218px;
    max-width:280px;
    background:#20242b;
    color:#fff;
    border-radius:7px;
    padding:7px;
    box-shadow:0 10px 28px #0004;
    z-index:3000;
    border:1px solid #ffffff18;
}
.sidebar-flyout[hidden]{display:none}
.sidebar-flyout-title{
    padding:8px 10px 9px;
    color:#fff;
    font-size:13px;
    font-weight:700;
    border-bottom:1px solid #ffffff18;
}
.sidebar-flyout-link{
    display:flex;align-items:center;gap:8px;
    min-height:34px;padding:7px 10px;
    border-radius:5px;color:#cbd3dd;text-decoration:none;
    font-size:13px;white-space:nowrap;
}
.sidebar-flyout-link:hover,.sidebar-flyout-link.active{background:#ffffff12;color:var(--orange)}
.sidebar-flyout-dot{width:5px;height:5px;min-width:5px;border-radius:50%;background:#8f9aaa}
.sidebar-flyout-link.active .sidebar-flyout-dot{background:var(--orange)}

.dashboard-page{max-width:1380px;margin:0 auto}
.welcome-section h1{font-size:38px;line-height:1.15;margin:22px 0 22px;font-weight:700}
.welcome-section p{font-size:18px;line-height:1.45;margin:0 0 20px}
.role-banner{min-height:56px;background:var(--orange-soft);border:1px solid #ffc98f;border-radius:9px;display:flex;align-items:center;gap:11px;padding:0 16px;font-size:16px;margin-bottom:28px}
.role-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.role-icon svg{width:24px;height:24px;fill:#51308c}
.election-hero{position:relative;min-height:310px;border-radius:15px;border:1px solid #dfe4eb;overflow:hidden;background:linear-gradient(135deg,#fff 0%,var(--orange-soft) 100%);box-shadow:0 6px 24px #16223312;display:flex;align-items:center;justify-content:center;text-align:center;padding:35px 25px}
.election-hero-dynamic{border-top:4px solid var(--orange)}
.hero-branding{display:flex;align-items:center;justify-content:center;gap:34px;max-width:1050px;width:100%;position:relative;z-index:1}
.hero-logo-wrap{width:145px;height:145px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dfe4eb;border-radius:16px;padding:14px;box-shadow:0 5px 18px #16223312;flex:0 0 auto}
.hero-logo{max-width:100%;max-height:100%;object-fit:contain}
.hero-title{display:flex;flex-direction:column;align-items:flex-start;line-height:1.12;position:relative;z-index:1;text-align:left}
.hero-title h2{font-size:40px;font-weight:850;letter-spacing:.3px;color:var(--orange-dark);margin:0}
.hero-title h3{font-size:29px;font-weight:750;color:var(--text);margin:12px 0 0}
.hero-title .hero-period{font-size:21px;font-weight:650;color:var(--muted);margin:12px 0 0}
@media(max-width:760px){.hero-branding{flex-direction:column;gap:20px}.hero-title{align-items:center;text-align:center}.hero-title h2{font-size:32px}.hero-title h3{font-size:24px}.hero-title .hero-period{font-size:18px}.hero-logo-wrap{width:120px;height:120px}}
.page{max-width:1400px;margin:0 auto}
.page h1{font-size:38px;margin:15px 0 22px}
.notice{margin-top:15px;background:#fff;padding:22px;border-radius:10px;border:1px solid #ddd;font-size:16px}
.notice p{margin-bottom:0;line-height:1.5}
.alert{max-width:1200px;margin:0 auto 18px;padding:12px 18px;border-radius:7px}
.success{background:#eaf7ee}.error{background:#fdecec}.warning{background:#fff5dc}
/* ============================================================
   PANEL PRINCIPAL — posición compacta
   ============================================================ */
.dashboard-page-compact{
    margin-top:-18px;
}
.dashboard-page-compact .welcome-section h1{
    margin-top:0;
}

/* ============================================================
   CAMBIAR CONTRASEÑA — tarjeta centrada y visible sin scroll
   ============================================================ */
.change-password-page{
    width:100%;
    min-height:calc(100vh - var(--topbar) - 20px);
    display:flex;
    justify-content:center;
    align-items:flex-start;
    padding:8px 16px 30px;
}

.login-card{
    width:100%;
    max-width:620px;
    margin:0 auto;
    background:#fff;
    padding:30px 34px 28px;
    border-radius:16px;
    box-shadow:0 8px 30px #0001;
}

.change-password-header{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:22px;
}

.change-password-icon{
    width:42px;
    height:42px;
    min-width:42px;
    border-radius:11px;
    background:var(--orange-soft);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
}

.change-password-header h1{
    margin:0 0 6px;
    font-size:32px;
    line-height:1.15;
    color:var(--text);
}

.change-password-header p{
    margin:0;
    color:var(--muted);
    font-size:15px;
    line-height:1.4;
}

.login-card form{
    display:grid;
    gap:16px;
}

.change-password-field{
    display:grid;
    gap:7px;
}

.change-password-field label{
    color:#25384f;
    font-size:14px;
    font-weight:700;
}

.login-card input{
    width:100%;
    height:46px;
    padding:0 13px;
    border:1px solid #ccd6e2;
    border-radius:9px;
    background:#fff;
    color:var(--text);
    font-size:15px;
    outline:none;
    transition:border-color .15s ease,box-shadow .15s ease;
}

.login-card input:focus{
    border-color:var(--orange);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 15%,transparent);
}

.primary{
    width:100%;
    height:46px;
    margin-top:2px;
    padding:0 16px;
    border:0;
    border-radius:9px;
    background:var(--orange);
    color:#fff;
    font-weight:700;
    font-size:15px;
    cursor:pointer;
    transition:background .15s ease,transform .1s ease;
}

.primary:hover{
    background:var(--orange-dark);
}

.primary:active{
    transform:scale(.99);
}

@media(max-width:650px){
    .dashboard-page-compact{
        margin-top:-12px;
    }

    .change-password-page{
        padding:4px 10px 24px;
        min-height:auto;
    }

    .login-card{
        max-width:100%;
        padding:24px 20px 22px;
        border-radius:14px;
    }

    .change-password-header h1{
        font-size:26px;
    }
}

@media(max-width:900px){
 .main-content{padding-left:18px;padding-right:18px}
 .brand{font-size:19px}
 .election-hero{min-height:300px}

}
@media(max-width:650px){
 :root{--topbar:62px}
 .brand{font-size:16px}
 .sidebar{width:var(--sidebar-collapsed)}
 .main-content{margin-left:var(--sidebar-collapsed);padding-top:84px}
 .sidebar .nav-label,.sidebar .nav-arrow{display:none}
 .nav-item{justify-content:center}
 .welcome-section h1{font-size:32px}.welcome-section p{font-size:16px}

}
/* Ámbito */
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px}.breadcrumb{font-size:13px;color:#7a8593;margin-bottom:7px}.breadcrumb span{padding:0 6px;color:#adb4be}.page-subtitle{margin:0;color:#697586;font-size:15px}.ambito-page h1{font-size:34px;margin:0 0 4px}.module-card{background:#fff;border:1px solid #dfe4eb;border-radius:10px;box-shadow:0 4px 18px #1522350d;overflow:hidden}.module-card-header{display:flex;align-items:center;justify-content:space-between;padding:19px 22px;border-bottom:1px solid #edf0f3}.module-card-header h2{font-size:21px;margin:0 0 4px}.module-card-header p{font-size:14px;color:#718092;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;padding:9px 14px;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark)}.btn-light{background:#fff;border-color:#cfd5dc;color:#374151}.btn-light:hover{background:#f5f6f8}.inline-form{background:#fffaf5;border-bottom:1px solid #f0dfcd;padding:18px 22px}.hidden{display:none!important}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}.field-wide{grid-column:1/-1}.field label,.modal label{display:block;font-size:13px;font-weight:700;color:#465365;margin-bottom:6px}.field label span,.modal label span{color:#d73535}.field input,.field select,.modal input,.modal select{width:100%;height:40px;border:1px solid #cfd5dc;border-radius:6px;background:#fff;padding:0 11px;font-size:14px;color:#263343;outline:none}.field input:focus,.field select:focus,.modal input:focus,.modal select:focus{border-color:var(--orange);box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 15%,transparent)}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.filter-bar{display:flex;align-items:center;gap:9px;padding:15px 22px}.search-field{height:38px;display:flex;align-items:center;gap:8px;border:1px solid #d3d8df;border-radius:6px;background:#fff;width:min(380px,100%);padding:0 11px}.search-field span{font-size:18px;color:#8a94a2}.search-field input{border:0;outline:0;width:100%;font-size:14px;background:transparent}.clear-filter{font-size:13px;color:#5c6b7d;text-decoration:none}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{background:#f7f8fa;color:#596678;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.3px;padding:11px 15px;border-top:1px solid #edf0f3;border-bottom:1px solid #e3e7ec}.data-table td{padding:12px 15px;border-bottom:1px solid #edf0f3;color:#354253}.data-table tbody tr:hover{background:#fffaf5}.strong{font-weight:600;color:#1f2c3b!important}.status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700}.status-active{background:#e8f7ed;color:#19713b}.status-inactive{background:#eef0f3;color:#687586}.actions{display:flex;gap:5px;align-items:center}.actions form{margin:0}.icon-btn{border:1px solid #d8dde3;background:#fff;color:#596779;border-radius:5px;width:33px;height:31px;cursor:pointer}.icon-btn:hover{border-color:var(--orange);color:#df7412;background:#fff8f0}.empty{text-align:center!important;color:#8792a0!important;padding:32px!important}.pagination{display:flex;justify-content:flex-end;gap:5px;padding:13px 18px;list-style:none;margin:0}.pagination li{list-style:none}.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 9px;border:1px solid #d9dee5;border-radius:5px;color:#4e5c6e;text-decoration:none;font-size:13px;background:#fff}.pagination .active span{background:var(--orange);color:#fff;border-color:var(--orange)}.modal-backdrop{position:fixed;inset:0;background:#10172266;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(520px,100%);background:#fff;border-radius:10px;box-shadow:0 20px 60px #0003;padding:0}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid #edf0f3}.modal-header h3{margin:0;font-size:19px}.modal-header button{border:0;background:transparent;font-size:26px;color:#6c7684;cursor:pointer}.modal form{padding:20px}.modal form label{margin-top:4px}.modal form input,.modal form select{margin-bottom:13px}.modal .form-actions{margin-top:8px}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}.filter-bar{flex-wrap:wrap}.search-field{width:100%}.module-card-header{align-items:flex-start;gap:12px;flex-direction:column}}

.validation-summary{margin:0 0 16px;padding:12px 16px;border:1px solid #efb0b0;background:#fff0f0;color:#8b1e1e;border-radius:8px;font-size:14px}.validation-summary ul{margin:7px 0 0 20px;padding:0}.field-error{display:block;margin-top:5px;color:#b42318;font-size:13px}.inline-form{transition:none}

.module-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.import-summary{margin:0 22px 15px;padding:13px 16px;border:1px solid #cfe1d4;background:#f4fbf6;color:#285b35;border-radius:8px;font-size:14px}
.import-summary-grid{display:flex;gap:18px;flex-wrap:wrap;margin:10px 0 8px}
.import-summary-grid span{background:#fff;border:1px solid #dce9df;border-radius:6px;padding:7px 10px;color:#56645b}
.import-summary-grid b{margin-left:4px;color:#1f3325}
.field small{display:block;margin-top:6px;color:#718092;font-size:12px}
@media(max-width:760px){.module-actions{width:100%;justify-content:flex-start}.module-actions .btn{flex:1}}

/* ===== SIDEBAR TREEVIEW / MENÚ EN CASCADA ===== */
.nav-group{margin:0;padding:0}
.nav-group-row{margin:0}
.nav-group-toggle{
    width:100%;
    border:0;
    background:transparent;
    text-align:left;
    font-family:inherit;
    cursor:pointer;
}
.nav-group-toggle .nav-arrow{
    margin-left:auto;
    font-size:22px;
    color:#bfc6cf;
    transform:rotate(0deg);
    transition:transform .18s ease,color .18s ease;
}
.nav-group.is-open .nav-group-toggle .nav-arrow{
    transform:rotate(90deg);
    color:#fff;
}
.nav-submenu{
    display:none;
    flex-direction:column;
    margin:0 8px 4px 27px;
    padding:4px 0 6px 16px;
    border-left:1px solid #ffffff30;
}
.nav-group.is-open .nav-submenu{
    display:flex;
}
.nav-subitem{
    min-height:35px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:7px 10px;
    color:#cbd3dd;
    text-decoration:none;
    font-size:13px;
    border-radius:5px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.nav-subitem:hover{background:#ffffff10;color:#fff}
.nav-subitem.active{
    background:#ffffff14;
    color:var(--orange);
    font-weight:700;
}
.nav-subitem-dot{
    width:5px;
    height:5px;
    min-width:5px;
    border-radius:50%;
    background:#8f9aaa;
}
.nav-subitem.active .nav-subitem-dot{background:var(--orange)}
.sidebar-collapsed .nav-group{position:relative;width:100%;}
.sidebar-collapsed .nav-group-row{display:flex;justify-content:center;align-items:center;width:100%;}
.sidebar-collapsed .nav-group-toggle{width:45px!important;min-width:45px!important;height:45px!important;min-height:45px!important;margin:2px auto!important;padding:0!important;display:flex;align-items:center;justify-content:center!important;gap:0!important;box-sizing:border-box}
.sidebar-collapsed .nav-group-toggle .nav-icon{width:27px;min-width:27px;height:27px;margin:0;flex:0 0 27px}
.sidebar-collapsed .nav-submenu{display:none}
.sidebar-collapsed > .sidebar-nav > .nav-item{width:45px;min-width:45px;height:45px;min-height:45px;margin:2px auto;padding:0!important;display:flex;align-items:center;justify-content:center!important;gap:0!important}
.sidebar-collapsed > .sidebar-nav > .nav-item .nav-icon{margin:0;width:27px;min-width:27px;height:27px;flex:0 0 27px}
.sidebar-collapsed .nav-group-toggle{justify-content:center;padding-left:0;padding-right:0}
.sidebar-collapsed .nav-group-toggle .nav-label,
.sidebar-collapsed .nav-group-toggle .nav-arrow{
    opacity:0;width:0;overflow:hidden;pointer-events:none;
}
.sidebar-collapsed .nav-item::after{content:none!important;display:none!important;}
.sidebar-simple-tooltip{position:fixed;z-index:5000;max-width:260px;padding:7px 10px;background:#20242b;color:#fff;border:1px solid #ffffff18;border-radius:5px;box-shadow:0 6px 16px #0004;font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;pointer-events:none;}
.sidebar-simple-tooltip[hidden]{display:none!important;}

/* El sidebar tiene su propio scroll; el contenido principal no se mueve al navegar. */
.sidebar{scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:#ffffff35 transparent}
.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.sidebar::-webkit-scrollbar-thumb{background:#ffffff35;border-radius:10px}
.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff55}



/* =========================================================
   DIGITACIÓN DE ACTAS
   ========================================================= */

.acta-modal-backdrop{
    position:fixed;
    inset:0;
    z-index:2200;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(16,23,34,.48);
    backdrop-filter:blur(2px);
}
.acta-modal-backdrop[aria-hidden="true"]{display:none}
 .acta-modal{
    width:min(610px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    background:#fff;
    border-radius:24px;
    box-shadow:0 24px 70px rgba(0,0,0,.24);
}
.acta-modal-search{width:min(610px,100%)}
.acta-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 26px 15px;
    border-bottom:1px solid #edf0f4;
}
.acta-modal-header h3{
    margin:0;
    color:#162033;
    font-size:22px;
    line-height:1.15;
    font-weight:700;
}
.acta-modal-close{
    border:0;
    background:transparent;
    color:#8b96a6;
    font-size:26px;
    line-height:1;
    cursor:pointer;
    padding:0 2px;
}
.acta-modal-body{padding:22px 26px 8px}
.acta-field-label{
    display:block;
    margin:0 0 9px;
    color:#98a3b5;
    font-size:14px;
    font-weight:700;
    letter-spacing:.8px;
}
.acta-field-label span{color:#ef5a5a}
.mesa-search-box{
    height:60px;
    display:flex;
    align-items:center;
    gap:11px;
    padding:0 15px;
    border:2px solid #d3dbe7;
    border-radius:15px;
    background:#fff;
    transition:border-color .16s ease,box-shadow .16s ease;
}
.mesa-search-box:focus-within{
    border-color:#8bb5ea;
    box-shadow:0 0 0 3px rgba(48,103,164,.08);
}
.mesa-search-box.is-valid{
    border-color:var(--orange);
    box-shadow:0 0 0 1px color-mix(in srgb, var(--orange) 12%, transparent);
}
.mesa-search-box.is-invalid{border-color:#e65353}
.mesa-search-box.is-loading{border-color:#9bb0c9}
.mesa-search-icon{
    flex:0 0 auto;
    color:#93a0b2;
    font-size:31px;
    line-height:1;
    transform:rotate(-20deg);
}
.mesa-search-box input{
    min-width:0;
    flex:1;
    border:0;
    outline:0;
    background:transparent;
    color:#273247;
    font-size:21px;
    font-weight:500;
}
.mesa-search-box input::placeholder{color:#a1adbd}
.mesa-validation-icon{
    width:23px;
    height:23px;
    flex:0 0 23px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    font-size:13px;
    font-weight:800;
}
.mesa-validation-icon.valid{
    color:var(--orange);
    border:2px solid var(--orange);
}
.mesa-validation-icon.invalid{
    color:#fff;
    background:#e65353;
}
.mesa-validation-icon.loading{
    color:#728197;
    font-size:20px;
}
.mesa-validation-message{
    min-height:21px;
    margin:7px 0 0;
    color:#66748a;
    font-size:14px;
}
.mesa-validation-message.success{color:var(--orange)}
.mesa-validation-message.error{color:#d33b3b}
.mesa-validation-message.warning{color:#c27a00}
.mesa-validation-message.loading{color:#718096}

.tipo-acta-step{
    margin-top:17px;
    padding-top:2px;
}
.tipo-acta-step.hidden{display:none}
.tipo-label{margin-bottom:9px}
.acta-type-options{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.acta-type-option{
    position:relative;
    min-height:50px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px 13px;
    border:1px solid #d7dee8;
    border-radius:14px;
    background:#fff;
    cursor:pointer;
    transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.acta-type-option:hover:not(.disabled-option){
    border-color:#8eacd0;
}
.acta-type-option.selected{
    border-color:var(--orange);
    background:var(--orange-soft);
    box-shadow:0 1px 0 rgba(42,87,136,.05);
}
.acta-type-option.disabled-option{
    cursor:not-allowed;
    opacity:.58;
    background:#f8fafc;
}
.acta-type-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.radio-visual{
    width:22px;
    height:22px;
    flex:0 0 22px;
    border:2px solid #c9d2df;
    border-radius:50%;
    position:relative;
}
.acta-type-option.selected .radio-visual{
    border-color:var(--orange);
}
.acta-type-option.selected .radio-visual::after{
    content:"";
    position:absolute;
    inset:5px;
    border-radius:50%;
    background:var(--orange);
}
.type-icon{
    color:#91a0b5;
    font-size:20px;
    line-height:1;
}
.type-text{
    min-width:0;
    flex:1;
    display:flex;
    flex-direction:column;
    gap:2px;
}
.type-text strong{
    color:#536176;
    font-size:17px;
}
.type-text small{
    color:#8995a7;
    font-size:12px;
}
.type-status{
    flex:0 0 auto;
    border:1px solid #f1c65a;
    color:#b87900;
    background:#fffaf0;
    border-radius:999px;
    padding:4px 8px;
    font-size:11px;
    font-weight:700;
}
.acta-modal-footer{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:20px;
    padding:14px 26px 20px;
}
.acta-modal-cancel{
    border:0;
    background:transparent;
    color:#707d91;
    font-size:18px;
    cursor:pointer;
}
.acta-continue-btn{
    min-width:170px;
    min-height:58px;
    border-radius:14px;
    font-size:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
}
.acta-continue-btn:disabled{
    background:#aabbd0;
    border-color:#aabbd0;
    color:#fff;
    cursor:not-allowed;
    opacity:1;
}

/* Formulario del acta */
.acta-info-card{
    margin:0 0 18px;
    padding:20px 22px;
    background:#fff;
    border:1px solid #e5eaf0;
    border-radius:12px;
    box-shadow:0 4px 16px rgba(25,38,58,.04);
}
.acta-info-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}
.acta-kicker{
    color:#8090a5;
    font-size:11px;
    font-weight:800;
    letter-spacing:1px;
}
.acta-info-title h2{
    margin:4px 0 0;
    color:#182235;
    font-size:22px;
}
.acta-state-badge{
    padding:7px 11px;
    border-radius:999px;
    background:#eef3f8;
    color:#647287;
    font-size:12px;
    font-weight:700;
}
.acta-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.acta-info-grid div{
    padding:11px 13px;
    background:#f8fafc;
    border:1px solid #edf0f4;
    border-radius:9px;
}
.acta-info-grid span{
    display:block;
    margin-bottom:4px;
    color:#8a96a8;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.35px;
}
.acta-info-grid strong{
    display:block;
    color:#334158;
    font-size:13px;
    line-height:1.3;
}
.acta-entry-card{overflow:hidden}
.acta-table-wrap{overflow:auto}
.acta-vote-table{
    width:100%;
    min-width:760px;
    border-collapse:separate;
    border-spacing:0;
}
.acta-vote-table th{
    padding:13px 12px;
    background:#f5f7fa;
    border-bottom:1px solid #dfe5ec;
    color:#657287;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.35px;
    text-align:center;
}
.acta-vote-table th:first-child{text-align:left}
.acta-vote-table td{
    padding:10px 12px;
    border-bottom:1px solid #edf0f4;
    vertical-align:middle;
}
.party-cell{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:240px;
    color:#3d4b60;
    font-size:13px;
    font-weight:600;
}
.party-logo{
    width:32px;
    height:32px;
    object-fit:contain;
    border-radius:6px;
    border:1px solid #e3e8ef;
    background:#fff;
}
.party-logo-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#7d899b;
    font-size:12px;
    font-weight:700;
}
.acta-vote-table td:not(:first-child){
    width:190px;
    text-align:center;
}
.vote-input{
    width:125px;
    height:43px;
    padding:0 12px;
    border:1px solid #cfd7e2;
    border-radius:9px;
    outline:0;
    text-align:center;
    color:#26344a;
    font-size:16px;
    background:#fff;
}
.vote-input:focus{
    border-color:#77a5d8;
    box-shadow:0 0 0 3px rgba(53,105,164,.08);
}
.special-start td{
    padding:9px 12px;
    background:#f7f9fb;
    color:#8b97a8;
    font-size:10px;
    font-weight:800;
    letter-spacing:1px;
    border-top:8px solid #fff;
}
.special-row td{background:#fcfdfe}
.special-row td:first-child strong{color:#637084;font-size:12px}
.total-row td{
    background:#f2f6fa;
    border-bottom:0;
}
.total-row td:first-child strong{
    color:#24334a;
    font-size:13px;
}
.total-input{
    border-color:#aebdce;
    background:#fff;
    font-weight:700;
}
.acta-validation-help{
    margin:18px 20px 0;
    padding:13px 15px;
    border:1px solid #dce8f3;
    border-radius:9px;
    background:#f7fbff;
    color:#627186;
    font-size:12px;
}
.acta-validation-help > div{
    display:flex;
    align-items:center;
    gap:7px;
    color:#315b87;
}
.help-icon{
    width:19px;
    height:19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#dceaf8;
    color:#315b87;
    font-weight:800;
}
.acta-validation-help p{margin:6px 0 0 26px}
.acta-form-actions{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    padding:18px 20px 20px;
}
.acta-filter-bar{padding-bottom:18px}

@media(max-width:760px){
    .acta-modal-header{padding-left:22px;padding-right:22px}
    .acta-modal-body{padding:25px 22px 8px}
    .acta-modal-footer{padding-left:22px;padding-right:22px}
    .acta-info-grid{grid-template-columns:1fr 1fr}
    .acta-info-title{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){
    .acta-modal{border-radius:18px}
    .mesa-search-box{height:62px;border-radius:16px}
    .mesa-search-box input{font-size:20px}
    .acta-modal-footer{gap:12px;justify-content:space-between}
    .acta-continue-btn{min-width:0;flex:1}
    .acta-info-grid{grid-template-columns:1fr}
}

/* =========================================================
   ACTAS REGISTRADAS - VISTA DE SEGUIMIENTO
   ========================================================= */
.actas-registered-page{max-width:100%;}
.actas-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.actas-header-left{display:flex;align-items:center;gap:18px}
.actas-header-icon{width:64px;height:64px;border-radius:18px;background:#e8eef6;color:#285a91;display:flex;align-items:center;justify-content:center;font-size:31px;font-weight:700}
.actas-header h1{margin:0;color:#152238;font-size:28px;line-height:1.1}
.actas-header p{margin:5px 0 0;color:#8996a9;font-size:15px}
.actas-header-actions{display:flex;align-items:center;gap:12px}
.actas-top-button{min-height:52px;padding:0 22px;border:1px solid #dfe5ed;border-radius:14px;background:#fff;color:#68768b;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:16px;cursor:pointer;transition:.15s ease}
.actas-top-button:hover{border-color:#9fb4cc;color:#2b5d91;background:#f9fbfd}
.actas-top-button span{font-size:22px;line-height:1}
.actas-panel{padding:0;background:transparent}
.actas-filters{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.actas-search-control{width:284px;height:58px;border:1px solid #dfe5ed;border-radius:14px;background:#fff;display:flex;align-items:center;gap:12px;padding:0 16px;box-sizing:border-box}
.actas-search-control:focus-within{border-color:#8fb2d9;box-shadow:0 0 0 3px rgba(55,104,158,.08)}
.actas-search-control>span{color:#8e9caf;font-size:26px;line-height:1}
.actas-search-control input{width:100%;border:0;outline:0;background:transparent;color:#29384d;font-size:18px}
.actas-search-control input::placeholder{color:#99a6b8}
.actas-select{height:58px;width:322px;border:1px solid #dfe5ed;border-radius:14px;background:#fff;padding:0 46px 0 17px;color:#18263b;font-size:17px;outline:0;cursor:pointer}
.actas-select:focus{border-color:#8fb2d9;box-shadow:0 0 0 3px rgba(55,104,158,.08)}
.actas-status-tabs{height:58px;display:flex;align-items:center;border:1px solid #dfe5ed;border-radius:14px;background:#f7f9fb;padding:3px;box-sizing:border-box}
.actas-status-tab{height:50px;padding:0 19px;border:0;border-radius:11px;background:transparent;color:#8a97a9;font-size:16px;cursor:pointer;white-space:nowrap}
.actas-status-tab.active{background:#fff;color:#315b8b;box-shadow:0 1px 4px rgba(31,48,72,.08)}
.actas-list-module{min-height:180px;position:relative}
.actas-list-meta{display:flex;align-items:center;gap:10px;margin:0 0 10px 2px;color:#91a0b2;font-size:13px}
.actas-filtered-note{padding:4px 8px;border-radius:999px;background:#edf3f8;color:#60758d;font-size:11px}
.actas-cards{display:flex;flex-direction:column;gap:14px}
.acta-record-card{min-height:98px;display:grid;grid-template-columns:52px minmax(0,1fr) auto 70px;align-items:center;gap:16px;padding:16px 18px 16px 24px;background:#fff;border:1px solid #d7dee7;border-radius:18px;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}
.acta-record-card:hover{border-color:#bccbdd;box-shadow:0 4px 18px rgba(30,52,78,.05)}
.acta-record-icon{width:52px;height:52px;border-radius:14px;background:#e9eff6;color:#285b91;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700}
.acta-record-main{min-width:0}
.acta-record-title-row{display:flex;align-items:center;gap:10px;min-width:0}
.acta-record-title{display:flex;align-items:center;gap:10px;min-width:0}
.acta-record-title strong{color:#122238;font-size:20px;white-space:nowrap}
.acta-record-type{padding:5px 10px;border-radius:999px;background:#f0f4f8;color:#6c7a8e;font-size:11px;white-space:nowrap}
.acta-record-type.regional{color:#315e8f}
.acta-record-type.municipal{color:#6b657f}
.acta-status-pill{margin-left:auto;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}
.acta-status-pill.consistente{background:#eaf8ef;color:#19844b}
.acta-status-pill.observada{background:#fff2e5;color:#bd6d13}
.acta-record-location{margin-top:5px;color:#8b9aae;font-size:15px}
.acta-record-location span,.acta-record-scope span{margin:0 5px;color:#c0c9d4}
.acta-record-scope{margin-top:4px;color:#9aa6b6;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acta-record-side{min-width:150px;text-align:right}
.acta-record-user{display:flex;justify-content:flex-end;align-items:center;gap:6px;color:#78869a;font-size:14px}
.acta-user-icon{font-size:17px;color:#8291a5}
.acta-record-date{margin-top:6px;color:#c0c9d4;font-size:12px}
.acta-record-actions{display:flex;align-items:center;justify-content:flex-end;gap:13px}
.acta-icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:#8b99aa;font-size:22px;cursor:pointer;padding:7px;text-decoration:none;border-radius:8px}.acta-icon-button:hover{background:#f2f5f9;color:#315f91}
.acta-icon-button:disabled{opacity:1}
.acta-chevron{color:#8c99aa;font-size:24px;line-height:1}
.actas-empty-state{padding:52px 20px;text-align:center;background:#fff;border:1px dashed #d8e0e9;border-radius:18px;color:#7f8ca0}
.actas-empty-icon{font-size:34px;color:#9aa7b7;margin-bottom:10px}
.actas-empty-state strong{display:block;color:#334258;font-size:17px}
.actas-empty-state p{margin:6px 0 0;font-size:13px}
.actas-pagination{padding:16px 4px 0}
.actas-registered-page.is-refreshing #refreshActasButton{opacity:.62;pointer-events:none}
.actas-registered-page.is-refreshing .actas-list-module{opacity:.65;transition:opacity .12s ease}

@media(max-width:1050px){
    .actas-filters{flex-wrap:wrap}
    .actas-search-control{width:250px}
    .actas-select{width:280px}
    .acta-record-card{grid-template-columns:52px minmax(0,1fr) 50px}
    .acta-record-side{display:none}
}
@media(max-width:720px){
    .actas-header{align-items:flex-start;flex-direction:column}
    .actas-header-actions{width:100%}
    .actas-top-button{flex:1}
    .actas-search-control,.actas-select,.actas-status-tabs{width:100%}
    .actas-filters{align-items:stretch;flex-direction:column}
    .acta-record-card{grid-template-columns:44px minmax(0,1fr) 36px;padding:14px}
    .acta-record-icon{width:44px;height:44px;font-size:22px}
    .acta-record-title-row{align-items:flex-start;flex-direction:column;gap:5px}
    .acta-record-title strong{font-size:17px}
    .acta-status-pill{margin-left:0}
    .acta-record-scope{white-space:normal}
    .acta-record-actions{gap:0}
}

/* ============================================================
   REPORTE
   ============================================================ */
.reporte-page{max-width:1500px;margin:0 auto;padding-bottom:42px}
.reporte-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
.reporte-header h1{margin:4px 0 2px;color:#122238;font-size:30px;letter-spacing:-.5px}
.reporte-header-actions{display:flex;gap:10px;align-items:center}
.reporte-export-btn,.reporte-dashboard-btn{display:inline-flex;align-items:center;gap:8px;border-radius:12px;padding:12px 16px;text-decoration:none;font-weight:700;font-size:13px;border:1px solid #dbe2eb}
.reporte-refresh-btn{display:inline-flex;align-items:center;gap:8px;border-radius:12px;padding:12px 16px;background:#fff;color:#52657d;font-weight:700;font-size:13px;border:1px solid #dbe2eb;cursor:pointer;transition:all .18s ease}
.reporte-refresh-btn:hover{background:#f6f8fb;border-color:#cbd6e3;color:#234e7d}
.reporte-refresh-btn:disabled{opacity:.7;cursor:wait}
.reporte-refresh-btn.is-loading{animation:reporte-spin .9s linear infinite}
.reporte-last-update{font-size:11px;color:#8b98a9;min-width:88px;text-align:right}
@keyframes reporte-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.reporte-export-btn{background:var(--orange-soft);border-color:color-mix(in srgb,var(--orange) 30%,#dbe2eb);color:var(--orange-dark)}
.reporte-dashboard-btn{background:color-mix(in srgb,var(--orange-soft) 72%,#ffffff);border-color:color-mix(in srgb,var(--orange) 24%,#dbe2eb);color:var(--orange-dark)}
.reporte-filters-card,.reporte-card{background:#fff;border:1px solid #dce3eb;border-radius:18px;box-shadow:0 4px 18px rgba(30,52,78,.04)}
.reporte-filters-card{padding:18px 20px;margin-bottom:14px}
.reporte-section-title{display:flex;align-items:center;gap:9px;color:#1b2b42;font-size:17px;margin-bottom:14px}
.reporte-section-icon{width:28px;height:28px;border-radius:9px;background:#edf3fb;color:#2b6097;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.reporte-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px}
.reporte-filter-grid label{display:flex;flex-direction:column;gap:7px;min-width:0}
.reporte-filter-grid label>span{font-size:12px;color:#5d6e84;font-weight:700}
.reporte-filter-grid select,.reporte-filter-grid input{height:42px;border:1px solid #d7e0ea;border-radius:10px;padding:0 12px;background:#fff;color:#24344a;font-size:13px;outline:none}
.reporte-filter-grid select:focus,.reporte-filter-grid input:focus{border-color:#7aa6d5;box-shadow:0 0 0 3px rgba(54,118,184,.1)}
.reporte-filter-grid select:disabled{background:#f3f6f9;color:#a3adba}
.reporte-filter-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}
.reporte-exclusion-controls{display:flex;align-items:center;gap:8px}
.reporte-switch-line{display:flex;align-items:center;gap:9px;color:#5c6d83;font-size:13px;cursor:pointer}
.reporte-switch-line input{position:absolute;opacity:0}
.reporte-switch{width:38px;height:21px;border-radius:20px;background:#c5cfdb;position:relative;transition:.15s}
.reporte-switch:after{content:"";position:absolute;width:17px;height:17px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:.15s}
.reporte-switch-line input:checked+.reporte-switch{background:#2877d5}
.reporte-switch-line input:checked+.reporte-switch:after{transform:translateX(17px)}
.reporte-help{width:18px;height:18px;border:1px solid #9caabd;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#8190a3;font-size:11px}
.reporte-apply-btn{border:0;background:#2469bd;color:#fff;border-radius:10px;padding:11px 18px;font-weight:700;cursor:pointer}
.reporte-observed-box{margin-top:15px;border:1px solid #eadfd4;background:#fffaf6;border-radius:14px;padding:14px}
.reporte-observed-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:11px}
.reporte-observed-head strong{display:block;color:#3b4655;font-size:13px}
.reporte-observed-head small{display:block;color:#8b97a6;margin-top:3px}
.reporte-selected-count{background:#fff0df;color:#ad6a18;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;white-space:nowrap}
.reporte-observed-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:8px}
.reporte-observed-item{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e5e0db;border-radius:10px;padding:9px 10px;cursor:pointer}
.reporte-observed-item input{position:absolute;opacity:0}
.reporte-check{width:17px;height:17px;border:1px solid #b7c2ce;border-radius:4px;background:#fff;flex:none}
.reporte-observed-item input:checked+.reporte-check{background:#2877d5;border-color:#2877d5;box-shadow:inset 0 0 0 3px #fff}
.reporte-observed-item strong{display:block;font-size:12px;color:#26364c}
.reporte-observed-item small{display:block;color:#8c99aa;font-size:10px;margin-top:2px}
.reporte-observed-item em{margin-left:auto;font-style:normal;font-size:10px;color:#a06b28}
.reporte-exclusion-alert{display:flex;align-items:center;gap:8px;padding:11px 14px;background:#fff7eb;border:1px solid #f2d6a9;border-radius:12px;color:#9b641d;margin-bottom:14px;font-size:13px}
.reporte-exclusion-alert span{color:#ad8a5c}
.reporte-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.reporte-summary-card{min-height:92px;border:1px solid #e1e7ee;border-radius:15px;background:#fff;display:flex;align-items:center;gap:13px;padding:14px 16px;box-sizing:border-box}
.reporte-summary-card .summary-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:800}
.reporte-summary-card>div{min-width:0;position:relative;flex:1}
.reporte-summary-card span:not(.summary-icon){display:block;color:#66768b;font-size:12px}
.reporte-summary-card strong{display:block;color:#13253d;font-size:22px;margin-top:2px}
.reporte-summary-card small{color:#8b98a9;font-size:11px}
.reporte-summary-card.blue .summary-icon{background:#e7f0fc;color:#2d75c2}
.reporte-summary-card.green .summary-icon{background:#e5f7ec;color:#1b9658}
.reporte-summary-card.red .summary-icon{background:#fde9ec;color:#d9364f}
.reporte-summary-card.orange .summary-icon{background:#fff0dc;color:#e18a12}
.reporte-card{padding:18px 20px;margin-bottom:14px}
.reporte-card-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}
.reporte-card-head h2{margin:0;color:#162840;font-size:18px}
.reporte-card-head p{margin:4px 0 0;color:#8a98aa;font-size:12px}
.reporte-total-box{background:#f1f5fa;border-radius:10px;padding:9px 12px;color:#6b7a8d;font-size:12px}
.reporte-total-box strong{color:#21354e}
.reporte-bars{height:330px;display:flex;align-items:flex-end;gap:18px;padding:10px 8px 0;border-bottom:1px solid #dfe5ec;position:relative}
.reporte-bar-item{height:100%;flex:1;min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}
.reporte-bar-value{font-size:11px;font-weight:800;color:#243752;min-height:16px}
.reporte-bar-track{width:62%;height:225px;display:flex;align-items:flex-end;justify-content:center;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#edf1f5 45px);border-bottom:0}
.reporte-bar{width:100%;max-width:62px;min-height:8px;background:#4c8edb;border-radius:5px 5px 0 0;box-shadow:0 -1px 0 rgba(0,0,0,.03)}
.reporte-bar-item:nth-child(2) .reporte-bar{background:#61ad70}
.reporte-bar-item:nth-child(3) .reporte-bar{background:#df596c}
.reporte-bar-item:nth-child(4) .reporte-bar{background:#e39a43}
.reporte-bar-item:nth-child(5) .reporte-bar{background:#8d68c7}
.reporte-bar-item:nth-child(6) .reporte-bar{background:#55b6c3}
.reporte-bar-item:nth-child(7) .reporte-bar{background:#7d91a7}
.reporte-bar-item.other .reporte-bar{background:#aab6c5}
.reporte-bar-item strong{font-size:11px;color:#53637a;text-align:center;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.reporte-bar-item small{font-size:10px;color:#8c99aa}
.reporte-no-data{width:100%;text-align:center;color:#8a97a8;padding:120px 0}
.reporte-legend{display:flex;gap:12px;flex-wrap:wrap;color:#6f7e91;font-size:11px}
.reporte-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}
.reporte-legend .dot.green{background:#42a969}.reporte-legend .dot.red{background:#e74b5d}.reporte-legend .dot.orange{background:#ed9a1e}
.reporte-table-wrap{overflow:auto;border:1px solid #e1e7ee;border-radius:12px}
.reporte-results-table{width:100%;border-collapse:collapse;min-width:1050px}
.reporte-results-table th{background:#f3f6fa;color:#56677e;font-size:11px;font-weight:800;text-align:center;padding:10px 8px;border-bottom:1px solid #dce4ed;white-space:nowrap}
.reporte-results-table th:nth-child(2),.reporte-results-table td:nth-child(2){text-align:left}
.reporte-results-table td{padding:9px 8px;border-bottom:1px solid #edf0f4;color:#46566c;font-size:11px;text-align:center}
.reporte-results-table td strong{color:#263850}
.reporte-results-table .number-cell{font-variant-numeric:tabular-nums}
.reporte-results-table .number-cell.strong{font-weight:800;color:#20324b}
.reporte-results-table tbody tr:hover{background:#f8fbfd}
.reporte-total-row td{background:#eaf2fd;color:#172c49;font-weight:800;border-bottom:0}
.reporte-status-pill{display:inline-block;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800}
.reporte-status-pill.consistent{background:#e8f7ee;color:#21834e}
.reporte-status-pill.observed{background:#fff0e8;color:#bd6c19}
.reporte-muted{color:#8b98a9;font-size:12px}

@media(max-width:1200px){
    .reporte-filter-grid{grid-template-columns:repeat(3,1fr)}
    .reporte-observed-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
    .reporte-header{flex-direction:column}.reporte-header-actions{width:100%}.reporte-export-btn,.reporte-dashboard-btn{flex:1;justify-content:center}
    .reporte-summary-grid{grid-template-columns:repeat(2,1fr)}
    .reporte-observed-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:650px){
    .reporte-filter-grid{grid-template-columns:1fr}
    .reporte-filter-bottom{align-items:stretch;flex-direction:column}
    .reporte-summary-grid{grid-template-columns:1fr}
    .reporte-observed-grid{grid-template-columns:1fr}
    .reporte-bars{gap:7px;overflow-x:auto}
}


/* Reporte > Seguimiento */
.reporte-progress-card{padding-bottom:16px}
.reporte-progress-track{height:12px;background:#edf1f5;border-radius:999px;overflow:hidden}
.reporte-progress-fill{height:100%;border-radius:999px;background:#3b7db5;transition:width .25s ease}
.reporte-progress-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:10px;color:#718095;font-size:11px}
.reporte-progress-legend span{display:inline-flex;align-items:center;gap:6px}
.reporte-progress-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}
.dot-consistent{background:#3b9b67}
.dot-observed{background:#d58b2a}
.dot-pending{background:#a7b1bd}
.reporte-status-pill.pending{background:#eef1f4;color:#687686}
.reporte-seguimiento-table{min-width:1750px}
.reporte-seguimiento-table th,.reporte-seguimiento-table td{vertical-align:middle}
.reporte-seguimiento-table .tracking-person{max-width:190px;white-space:normal;line-height:1.35}
.reporte-seguimiento-table td:nth-child(5),
.reporte-seguimiento-table td:nth-child(7),
.reporte-seguimiento-table td:nth-child(8){text-align:left}


/* ============================================================
   AUDITORÍA Y TRAZABILIDAD
   ============================================================ */
.auditoria-page{max-width:1500px;margin:0 auto}.auditoria-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.auditoria-head h1{font-size:34px;margin:0 0 4px;color:#122b49}.auditoria-head p{margin:0;color:#6d7c8f;font-size:15px}.breadcrumb{color:#71839a;font-size:14px;margin-bottom:10px}.breadcrumb span{padding:0 8px;color:#a6b1be}.auditoria-head-actions{display:flex;gap:8px}.auditoria-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 16px;border-radius:10px;border:1px solid transparent;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;box-sizing:border-box}.auditoria-btn-primary{background:var(--orange);color:#fff}.auditoria-btn-primary:hover{background:var(--orange-dark)}.auditoria-btn-export{background:var(--orange-soft);border-color:color-mix(in srgb,var(--orange) 30%,#dbe2eb);color:var(--orange-dark)}.auditoria-btn-light{background:#fff;border-color:#d5dde6;color:#516176}.auditoria-btn-light:hover{background:#f7f9fb}.auditoria-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.auditoria-summary-card{min-height:92px;border:1px solid #dfe6ee;border-radius:15px;background:#fff;display:flex;align-items:center;gap:13px;padding:14px 17px}.auditoria-summary-card .summary-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}.auditoria-summary-card small{display:block;color:#718198;font-size:12px}.auditoria-summary-card strong{display:block;color:#172b45;font-size:23px;margin-top:3px}.auditoria-summary-card.blue .summary-icon{background:#e8f1fc;color:#2d76c4}.auditoria-summary-card.orange .summary-icon{background:#fff1df;color:#d9800b}.auditoria-summary-card.green .summary-icon{background:#e6f7ed;color:#159052}.auditoria-summary-card.purple .summary-icon{background:#f0eafd;color:#6d45bd}.auditoria-card{background:#fff;border:1px solid #dce3eb;border-radius:18px;box-shadow:0 4px 18px rgba(30,52,78,.04);margin-bottom:14px;overflow:hidden}.auditoria-filters{padding:18px 20px}.auditoria-card-title{display:flex;align-items:center;gap:12px;margin-bottom:16px}.audit-title-icon{width:36px;height:36px;border-radius:11px;background:#edf4fc;color:#2874c6;display:flex;align-items:center;justify-content:center;font-size:22px}.auditoria-card-title h2,.auditoria-table-head h2{margin:0;color:#172b45;font-size:18px}.auditoria-card-title p,.auditoria-table-head p{margin:4px 0 0;color:#8a98aa;font-size:12px}.auditoria-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.auditoria-filter-grid label{display:flex;flex-direction:column;gap:7px;min-width:0}.auditoria-filter-grid label span{font-size:12px;color:#5d6e84;font-weight:700}.auditoria-filter-grid input,.auditoria-filter-grid select{height:42px;border:1px solid #d7e0ea;border-radius:10px;padding:0 11px;background:#fff;color:#24344a;font-size:13px;outline:none}.auditoria-filter-grid input:focus,.auditoria-filter-grid select:focus{border-color:#78a6d4;box-shadow:0 0 0 3px rgba(54,118,184,.1)}.auditoria-filter-grid .audit-readonly{background:#f5f7f9;color:#a1adbb}.auditoria-filter-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.auditoria-table-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 14px}.audit-filter-badge{background:#edf4fb;color:#3c6289;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700}.auditoria-table-wrap{overflow:auto;border-top:1px solid #e8edf2}.auditoria-table{width:100%;border-collapse:collapse;min-width:1050px;font-size:12px}.auditoria-table th{background:#f5f7fa;color:#586a80;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.25px;padding:11px 12px;border-bottom:1px solid #dde4eb;white-space:nowrap}.auditoria-table td{padding:10px 12px;border-bottom:1px solid #edf1f5;color:#43546a;vertical-align:middle}.auditoria-table tbody tr:hover{background:#f9fbfd}.auditoria-table td:nth-child(1),.auditoria-table td:nth-child(6),.auditoria-table td:nth-child(7){white-space:nowrap}.auditoria-table td strong{display:block;color:#263950}.auditoria-table td small{display:block;color:#8a98aa;margin-top:2px}.audit-date{font-variant-numeric:tabular-nums}.auditoria-table code{font-size:11px;background:#f2f4f7;padding:3px 6px;border-radius:5px;color:#58677a}.audit-action{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf3f9;color:#49627e;font-weight:800;font-size:10px;white-space:nowrap}.audit-action-registrar,.audit-action-habilitar{background:#e7f7ed;color:#177a43}.audit-action-editar,.audit-action-actualizar-permisos{background:#e9f1fc;color:#2b68a9}.audit-action-deshabilitar,.audit-action-login-fallido{background:#fdebed;color:#c7374e}.audit-action-exportar{background:#eef8f2;color:#267548}.audit-action-login,.audit-action-logout{background:#f1eefc;color:#6a4ca5}.audit-detail-btn{border:1px solid #d7e0e8;background:#fff;color:#3970a6;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:700;cursor:pointer}.audit-detail-btn:hover{background:#f1f6fb;border-color:#b9cee3}.audit-empty{text-align:center!important;padding:40px!important;color:#8996a5!important}.auditoria-card>.pagination{border-top:1px solid #edf1f5;margin:0}.audit-modal-backdrop{position:fixed;inset:0;background:rgba(16,23,34,.58);z-index:2500;display:flex;align-items:center;justify-content:center;padding:20px}.audit-modal-backdrop[hidden]{display:none}.audit-modal{width:min(920px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.28)}.audit-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:19px 22px;border-bottom:1px solid #e9edf2}.audit-modal-head h3{margin:0;color:#172b45;font-size:19px}.audit-modal-head p{margin:4px 0 0;color:#8491a0;font-size:12px}.audit-modal-head button{border:0;background:transparent;color:#6c7888;font-size:28px;line-height:1;cursor:pointer}.audit-modal-body{padding:20px 22px}.audit-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.audit-detail-grid>div{border:1px solid #e1e7ed;border-radius:10px;padding:10px 12px;background:#fafbfd}.audit-detail-grid span,.audit-json-grid h4,.audit-user-agent h4{display:block;color:#7a899a;font-size:11px;font-weight:700;margin:0 0 5px}.audit-detail-grid strong{display:block;color:#273a51;font-size:13px;word-break:break-word}.audit-json-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.audit-json-grid section,.audit-user-agent{border:1px solid #e1e7ed;border-radius:10px;padding:12px;background:#fafbfd}.audit-json-grid h4,.audit-user-agent h4{margin-bottom:8px}.audit-json-grid pre{margin:0;max-height:300px;overflow:auto;background:#182433;color:#e8edf4;border-radius:8px;padding:12px;font:12px/1.5 Consolas,Monaco,monospace;white-space:pre-wrap;word-break:break-word}.audit-user-agent{margin-top:14px}.audit-user-agent p{margin:0;color:#4e5f73;font-size:12px;line-height:1.5;word-break:break-word}.audit-modal-footer{display:flex;justify-content:flex-end;padding:14px 22px;border-top:1px solid #e9edf2}.audit-modal-open{overflow:hidden}@media(max-width:1000px){.auditoria-summary{grid-template-columns:repeat(2,1fr)}.auditoria-filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.auditoria-head{align-items:flex-start;flex-direction:column}.auditoria-head h1{font-size:28px}.auditoria-summary{grid-template-columns:1fr}.auditoria-filter-grid{grid-template-columns:1fr}.auditoria-filter-actions{flex-direction:column}.auditoria-filter-actions .auditoria-btn{width:100%}.audit-detail-grid,.audit-json-grid{grid-template-columns:1fr}}


/* Configuración General */
.config-page{max-width:1450px;margin:0 auto}.config-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px}.config-head h1{font-size:34px;margin:0 0 4px;color:#122b49}.config-head p{margin:0;color:#6d7c8f;font-size:15px}.config-head-badge{background:#eef4fb;color:#416384;border:1px solid #dbe6f1;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.config-card{background:#fff;border:1px solid #dce3eb;border-radius:18px;box-shadow:0 4px 18px rgba(30,52,78,.04);margin-bottom:14px;padding:20px 22px}.config-card-title{display:flex;align-items:center;gap:12px;margin-bottom:18px}.config-card-title>span{width:38px;height:38px;border-radius:11px;background:var(--orange-soft);color:var(--orange);display:flex;align-items:center;justify-content:center;font-size:18px}.config-card-title h2{margin:0;color:#172b45;font-size:19px}.config-card-title p{margin:4px 0 0;color:#8a98aa;font-size:12px}.config-grid{display:grid;gap:14px}.config-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.config-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.config-grid label{display:flex;flex-direction:column;gap:7px}.config-grid label>span{font-size:12px;color:#5d6e84;font-weight:700}.config-grid label b{color:#d73535}.config-grid input,.config-grid select{height:42px;border:1px solid #d7e0ea;border-radius:10px;padding:0 11px;background:#fff;color:#24344a;font-size:13px;outline:none}.config-grid input:focus,.config-grid select:focus{border-color:var(--orange);box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 15%,transparent)}.config-grid input[type=color]{padding:4px;height:48px;cursor:pointer}.logo-config-row{display:flex;gap:20px;align-items:center}.logo-preview{width:180px;height:110px;border:1px dashed #cbd6e1;border-radius:12px;background:#fafbfd;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-preview img{max-width:160px;max-height:90px;object-fit:contain}.logo-empty{color:#8b98a7;font-size:12px}.logo-config-fields{display:flex;flex-direction:column;gap:7px}.logo-config-fields input[type=file]{max-width:420px}.logo-config-fields small,.config-help{color:#7c8999;font-size:11px}.config-danger-link{border:0;background:transparent;color:#c33c4b;padding:0;text-align:left;cursor:pointer;font-weight:700;font-size:12px}.theme-presets{display:flex;gap:8px;flex-wrap:wrap;margin:-3px 0 16px}.theme-preset{border:1px solid #d8e0e8;background:#fff;color:#4d6076;border-radius:9px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}.theme-preset:hover{border-color:var(--orange);color:var(--orange)}.theme-preview{height:105px;margin-top:16px;border:1px solid #dfe5ec;border-radius:12px;overflow:hidden;position:relative;background:#f4f6f9}.theme-preview .preview-top{height:25px;background:var(--preview-top)}.theme-preview .preview-side{position:absolute;left:0;top:25px;bottom:0;width:95px;background:linear-gradient(180deg,var(--preview-side),var(--preview-side-end))}.theme-preview .preview-body{margin-left:95px;padding:13px}.theme-preview .preview-card{height:35px;background:#fff;border-radius:7px;border:1px solid #e1e6ec}.theme-preview .preview-button{width:80px;height:9px;margin-top:8px;border-radius:5px;background:var(--preview-primary)}.config-actions{display:flex;justify-content:flex-end;padding:2px 0 25px}.config-save{border:0;background:var(--orange);color:#fff;border-radius:10px;padding:12px 20px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb,var(--orange) 22%,transparent)}.config-save:hover{background:var(--orange-dark)}.config-alert{padding:12px 15px;border-radius:10px;margin-bottom:14px}.config-alert-error{background:#fdebed;color:#a82f3f;border:1px solid #f5cbd1}.module-loading{opacity:.58;transition:opacity .12s ease;pointer-events:none}@media(max-width:1000px){.config-grid-3,.config-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.config-head{align-items:flex-start;flex-direction:column}.config-head h1{font-size:28px}.config-grid-3,.config-grid-4{grid-template-columns:1fr}.logo-config-row{align-items:flex-start;flex-direction:column}}

/* Logo dinámico del encabezado y login */
.brand{display:flex;align-items:center;gap:10px}.brand-logo{width:34px;height:34px;object-fit:contain;border-radius:4px;background:#fff1}.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.login-brand img{max-width:85px;max-height:70px;object-fit:contain}.login-brand strong{font-size:21px;color:#172b45}


/* Paginación personalizada del sistema */
.custom-pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 4px 4px;flex-wrap:wrap;}
.pagination-summary{color:#64748b;font-size:14px;}
.pagination-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.pagination-btn,.pagination-number{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid #d5dce5;border-radius:8px;background:#fff;color:#24364b;text-decoration:none;font-size:14px;font-weight:600;}
.pagination-number{min-width:38px;padding:0 9px;}
.pagination-number.active{background:var(--primary,#f28c28);border-color:var(--primary,#f28c28);color:#fff;}
.pagination-btn:hover,.pagination-number:hover{border-color:var(--primary,#f28c28);color:var(--primary,#f28c28);}
.pagination-number.active:hover{color:#fff;}
.pagination-btn.disabled{opacity:.5;cursor:not-allowed;background:#f8fafc;}
.pagination-ellipsis{padding:0 4px;color:#64748b;}
@media(max-width:700px){.custom-pagination{align-items:flex-start;flex-direction:column}.pagination-links{width:100%;}}

/* Selector de cantidad de registros de la paginación */
.pagination-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.pagination-per-page-form{display:flex;align-items:center;gap:7px;margin:0}
.pagination-per-page-label{color:#334155;font-size:14px;font-weight:700}
.pagination-per-page-select{height:38px;min-width:68px;padding:0 30px 0 10px;border:1px solid #d5dce5;border-radius:8px;background:#fff;color:#24364b;font-size:14px;font-weight:700;cursor:pointer;outline:none}
.pagination-per-page-select:focus{border-color:var(--primary,#f28c28);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary,#f28c28) 15%,transparent)}
@media(max-width:700px){.pagination-left{width:100%;justify-content:space-between}.pagination-per-page-form{margin-left:auto}.pagination-links{width:100%;}}

/* Roles y Permisos: selección visual de módulos y submódulos */
.access-grid{display:grid;grid-template-columns:1fr;gap:12px;padding:18px 22px 8px}
.access-card{border:1px solid #dfe5ec;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(20,30,45,.03)}
.access-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f7f9fb;border-bottom:1px solid #e7ebf0}
.access-module,.access-child{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.access-module{font-weight:700;color:#1d2b3d;font-size:16px}
.access-module input,.access-child input{position:absolute;opacity:0;pointer-events:none}
.check-ui{width:19px;height:19px;border:1.5px solid #bcc7d4;border-radius:5px;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex:0 0 19px;transition:.15s}
.access-module input:checked + .check-ui,.access-child input:checked + .check-ui{background:var(--orange,#f28c28);border-color:var(--orange,#f28c28)}
.access-module input:checked + .check-ui::after,.access-child input:checked + .check-ui::after{content:'✓';color:#fff;font-size:14px;font-weight:800;line-height:1}
.access-module input:indeterminate + .check-ui{background:var(--orange,#f28c28);border-color:var(--orange,#f28c28)}
.access-module input:indeterminate + .check-ui::after{content:'−';color:#fff;font-size:16px;font-weight:800;line-height:1}
.access-children{display:flex;flex-wrap:wrap;gap:9px;padding:14px 16px;background:#fff}
.access-child{border:1px solid #dfe5ec;border-radius:8px;padding:9px 12px;color:#334155;background:#fff;min-width:180px}
.access-child:hover{border-color:var(--orange,#f28c28);background:var(--orange-soft,#fff3e8)}
.access-child:has(input:checked){border-color:var(--orange,#f28c28);background:var(--orange-soft,#fff3e8);font-weight:600}
.access-simple-note{padding:11px 16px;color:#748196;font-size:13px}
.access-help{margin:10px 22px 20px;padding:13px 16px;border:1px solid #e6eaf0;border-radius:9px;background:#fafbfc;color:#64748b;font-size:13px}
.access-help ul{margin:7px 0 0 18px;padding:0}
.access-help li{margin:4px 0}
@media (max-width:700px){
 .access-card-header{align-items:flex-start;flex-direction:column}
 .access-child{min-width:0;width:100%}
}

/* Selector de roles tipo dropdown */
.role-picker{position:relative;width:100%}
.role-picker-button{width:100%;min-height:52px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;color:#26384d;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;text-align:left;font:inherit;cursor:pointer}
.role-picker-button:hover{border-color:var(--orange,#f28c28)}
.role-picker-button:focus{outline:none;border-color:var(--orange,#f28c28);box-shadow:0 0 0 3px rgba(242,140,40,.12)}
.role-picker-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-picker-arrow{font-size:20px;color:#6b7788}
.role-picker-menu{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 5px);max-height:280px;overflow:auto;background:#fff;border:1px solid #d7dee7;border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.14);padding:7px}
.role-picker-title{padding:8px 10px 10px;color:#718096;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #edf0f4;margin-bottom:4px}
.role-picker-option{display:flex;align-items:center;gap:10px;padding:10px;border-radius:7px;cursor:pointer;color:#26384d}
.role-picker-option:hover{background:#f7f9fb}
.role-picker-option input{position:absolute;opacity:0;pointer-events:none}
.role-check-box{width:18px;height:18px;border:1.5px solid #b9c4d1;border-radius:4px;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px}
.role-check:checked + .role-check-box{background:var(--orange,#f28c28);border-color:var(--orange,#f28c28)}
.role-check:checked + .role-check-box::after{content:'✓';color:#fff;font-size:13px;font-weight:800}

/* ============================================================
   REPORTE > RESULTADOS — vista compacta y temática
   ============================================================ */
.reporte-page{max-width:1500px;margin:0 auto;padding-bottom:42px}
.reporte-filters-card{background:transparent;border:0;box-shadow:none;border-radius:0;padding:4px 0 12px;margin-bottom:8px}
.reporte-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:18px;align-items:end}
.reporte-filter-grid--3{grid-template-columns:repeat(3,minmax(150px,1fr))}
.reporte-filter-grid--4{grid-template-columns:repeat(4,minmax(150px,1fr))}
.reporte-filter-grid--5{grid-template-columns:repeat(5,minmax(140px,1fr))}
.reporte-filter-field{display:flex;flex-direction:column;gap:5px;min-width:0;position:relative}
.reporte-filter-field>span{display:flex;align-items:center;justify-content:space-between;gap:7px;color:#17395f;font-size:15px;font-weight:700;line-height:1.2;white-space:nowrap}
.reporte-filter-arrow{color:var(--orange);font-size:21px;line-height:.7;font-weight:800;transform:translateY(-1px)}
.reporte-filter-field select{appearance:none;-webkit-appearance:none;height:36px;border:0;border-bottom:2px solid #dfe6ee;border-radius:0;padding:0 24px 4px 0;background:transparent;color:#183653;font-size:14px;font-weight:600;outline:none;cursor:pointer;text-overflow:ellipsis}
.reporte-filter-field select:focus{border-bottom-color:var(--orange);box-shadow:none}
.reporte-filter-field select:disabled{color:#6d7c8d;background:transparent;opacity:.82;cursor:default}
.reporte-filter-bottom{display:flex;align-items:center;justify-content:flex-start;margin-top:12px}
.reporte-exclusion-controls{display:flex;align-items:center;gap:8px}
.reporte-switch-line{font-size:13px;color:#53677e}
.reporte-help{width:18px;height:18px;border-color:#a9b7c8;color:#718298}
.reporte-apply-btn{display:none!important}
.reporte-observed-box{margin-top:12px}

.reporte-progress-results{padding:10px 16px 9px;border-radius:10px;box-shadow:0 2px 10px rgba(30,52,78,.05);margin-bottom:14px;overflow:hidden}
.reporte-progress-top{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.reporte-progress-title{display:flex;align-items:baseline;gap:10px;color:var(--orange-dark);font-size:13px;font-weight:700}
.reporte-progress-title strong{font-size:28px;line-height:1;color:#17395f;letter-spacing:-.7px}
.reporte-progress-total{font-size:13px;color:#53677e}
.reporte-progress-total strong{color:#17395f;font-size:17px}
.reporte-progress-track{height:8px;background:#e8edf3;border-radius:999px;overflow:hidden;margin:7px 0 6px}
.reporte-progress-fill{height:100%;border-radius:999px;background:var(--orange);transition:width .25s ease}
.reporte-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.reporte-progress-updated{font-size:9px;color:#6f8197;letter-spacing:.35px;font-weight:700}
.reporte-progress-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:#61748a;font-size:10px}
.reporte-progress-legend span{display:inline-flex;align-items:center;gap:5px}
.progress-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.progress-dot.counted{background:var(--orange)}
.progress-dot.consistent{background:#3fa96a}
.progress-dot.observed{background:#e54c61}
.progress-dot.pending{background:#aeb9c6}

.reporte-ranking-head{margin-bottom:4px}
.reporte-ranking-head h2{font-size:19px}
.reporte-refresh-inline{border-color:var(--orange);color:var(--orange-dark);background:var(--orange-soft);padding:9px 14px}
.reporte-refresh-inline:hover{background:var(--orange-soft);border-color:var(--orange);color:var(--orange-dark);filter:brightness(.98)}
.reporte-chart-card{padding:16px 18px 12px}
.reporte-ranking-bars{height:365px;display:flex;align-items:flex-end;gap:18px;padding:8px 12px 0;border-bottom:1px solid #dfe5ec;position:relative}
.reporte-ranking-item{position:relative;justify-content:flex-end;gap:4px}
.reporte-logo-wrap{height:54px;display:flex;align-items:center;justify-content:center;margin-bottom:2px}
.reporte-party-logo{width:52px;height:52px;object-fit:contain;display:block}
.reporte-party-logo-fallback{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--orange-soft);border:2px solid var(--orange);color:var(--orange-dark);font-weight:900;font-size:22px}
.reporte-ranking-item .reporte-bar-value{font-size:12px;color:#17395f}
.reporte-ranking-item .reporte-bar-track{width:72%;height:235px;background:repeating-linear-gradient(to top,transparent 0,transparent 46px,#edf1f5 47px)}
.reporte-ranking-item .reporte-bar{width:100%;max-width:120px;background:color-mix(in srgb,var(--orange) 82%,#ffffff);border-radius:9px 9px 2px 2px;box-shadow:none}
.reporte-ranking-item:nth-child(2) .reporte-bar{background:color-mix(in srgb,var(--orange) 70%,#ffffff)}
.reporte-ranking-item:nth-child(3) .reporte-bar{background:color-mix(in srgb,var(--orange) 58%,#ffffff)}
.reporte-ranking-item:nth-child(4) .reporte-bar{background:color-mix(in srgb,var(--orange) 48%,#ffffff)}
.reporte-ranking-item:nth-child(5) .reporte-bar{background:color-mix(in srgb,var(--orange) 38%,#ffffff)}
.reporte-ranking-item:nth-child(6) .reporte-bar{background:color-mix(in srgb,var(--orange) 28%,#ffffff)}
.reporte-ranking-item strong{font-size:11px;color:#17395f;max-width:145px}
.reporte-ranking-item small{font-size:10px;color:#6d7e92}
.reporte-ranking-item.other .reporte-bar{background:color-mix(in srgb,var(--orange) 24%,#ffffff)}

.reporte-table-card{padding:16px 18px 12px}
.reporte-table-card .reporte-card-head{margin-bottom:8px}
.reporte-table-head{align-items:center}
.reporte-export-inline{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border:1px solid color-mix(in srgb,var(--orange) 34%,#dce3eb);border-radius:9px;background:var(--orange-soft);color:var(--orange-dark);font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap;transition:.16s ease}
.reporte-export-inline:hover{border-color:var(--orange);filter:brightness(.98);transform:translateY(-1px)}
.reporte-export-inline span{font-size:14px;line-height:1}
.reporte-table-wrap{border-radius:9px}
.reporte-results-table{min-width:0}
.reporte-results-table th{background:color-mix(in srgb,var(--orange-soft) 55%,#f3f6fa);color:#53677e}
.reporte-results-table td{font-size:12px}
.reporte-total-row td{background:color-mix(in srgb,var(--orange-soft) 75%,#eaf2fd);color:#17395f}

@media(max-width:1200px){
    .reporte-filter-grid,.reporte-filter-grid--4,.reporte-filter-grid--5,.reporte-filter-grid--6{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
    .reporte-filter-grid{grid-template-columns:repeat(2,1fr)}
    .reporte-progress-top{align-items:flex-start;flex-direction:column;gap:4px}
}
@media(max-width:650px){
    .reporte-filter-grid{grid-template-columns:1fr}
    .reporte-ranking-bars{gap:8px;overflow-x:auto;height:350px}
    .reporte-ranking-item{min-width:105px}
    .reporte-progress-meta{align-items:flex-start;flex-direction:column}
}

/* ============================================================
   REPORTE > RESULTADOS — filtros geográficos en cascada
   ============================================================ */
.reporte-cascade-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;min-height:58px;justify-content:flex-start}
.reporte-cascade-field{position:relative;min-width:108px;width:max-content;max-width:220px;flex:0 1 auto}
.reporte-cascade-trigger,.reporte-cascade-locked{width:max-content;max-width:220px;min-width:108px;height:54px;padding:0 0 9px;border:0;border-bottom:2px solid #dfe6ee;border-radius:0;background:transparent;color:#17395f;display:flex;align-items:flex-end;justify-content:flex-start;gap:7px;font-size:18px;font-weight:700;line-height:1.1;text-align:left;white-space:normal}
.reporte-cascade-trigger{cursor:pointer}
.reporte-cascade-trigger:hover{border-bottom-color:var(--orange)}
.reporte-cascade-trigger:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 55%,transparent);outline-offset:3px}
.reporte-cascade-value{display:block;min-width:0;max-width:170px;white-space:normal;overflow-wrap:anywhere;line-height:1.15}
.reporte-cascade-locked{cursor:default}
.reporte-cascade-locked.is-placeholder{color:#8795a5;font-weight:700}
.reporte-cascade-chevron{width:11px;height:11px;flex:0 0 11px;border-right:1.8px solid var(--orange);border-bottom:1.8px solid var(--orange);transform:rotate(45deg) translateY(-4px);margin-right:0}
.reporte-cascade-menu{position:absolute;z-index:120;left:-10px;top:58px;width:260px;max-height:330px;overflow:auto;background:#fff;border:1px solid #d5dde7;border-radius:10px;box-shadow:0 16px 34px rgba(23,57,95,.16);padding:8px}
.reporte-cascade-search-wrap{position:sticky;top:0;z-index:2;background:#fff;padding:2px 2px 8px;border-bottom:1px solid #edf1f5;display:flex;align-items:center;gap:7px}
.reporte-cascade-search-icon{color:#8090a3;font-size:17px;line-height:1}
.reporte-cascade-search{width:100%;height:34px;border:1px solid #d6dfe9;border-radius:7px;padding:0 9px;background:#fff;color:#17395f;font-size:13px;outline:none}
.reporte-cascade-search:focus{border-color:var(--orange);box-shadow:0 0 0 2px color-mix(in srgb,var(--orange) 12%,transparent)}
.reporte-cascade-options{display:flex;flex-direction:column;gap:2px;padding-top:6px}
.reporte-cascade-option{appearance:none;border:0;background:transparent;color:#17395f;text-align:left;padding:9px 10px;border-radius:7px;font-size:13px;line-height:1.2;cursor:pointer}
.reporte-cascade-option:hover,.reporte-cascade-option:focus-visible{background:var(--orange-soft);color:var(--orange-dark);outline:none}
.reporte-cascade-clear{border-top:1px solid #edf1f5;border-radius:0;margin-top:5px;color:#78899d}
.reporte-election-field{min-width:230px;width:max-content;max-width:300px}
.reporte-election-menu{width:290px}

.reporte-clear-filters-btn{
    flex:0 0 auto;
    align-self:flex-start;
    height:42px;
    min-width:120px;
    padding:0 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--orange);
    border-radius:10px;
    background:#fff;
    color:var(--orange-dark);
    font-size:14px;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    box-sizing:border-box;
    box-shadow:0 2px 6px rgba(23,57,95,.05);
    transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,box-shadow .15s ease;
}

.reporte-clear-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:17px;
    line-height:1;
    font-weight:800;
    transform:translateY(-.5px);
}

.reporte-clear-filters-btn:hover{
    background:var(--orange-soft);
    border-color:var(--orange);
    color:var(--orange-dark);
    box-shadow:0 4px 10px rgba(23,57,95,.08);
}

.reporte-clear-filters-btn:active{
    transform:translateY(1px);
    box-shadow:0 1px 3px rgba(23,57,95,.06);
}

.reporte-clear-filters-btn:focus-visible{
    outline:2px solid color-mix(in srgb,var(--orange) 45%,transparent);
    outline-offset:2px;
}

.reporte-filter-bottom{margin-top:10px}

@media(max-width:1200px){
    .reporte-cascade-filters{gap:8px}
    .reporte-cascade-field,.reporte-cascade-trigger,.reporte-cascade-locked{min-width:108px}
}
@media(max-width:850px){
    .reporte-cascade-filters{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:12px 20px}
    .reporte-cascade-field,.reporte-cascade-trigger,.reporte-cascade-locked{min-width:0;max-width:100%}
    .reporte-cascade-menu{left:0;right:auto;max-width:calc(100vw - 30px)}
}
@media(max-width:560px){
    .reporte-cascade-filters{grid-template-columns:1fr}
}


/* ============================================================
   RESPONSIVE GLOBAL — sistema electoral
   ============================================================ */
img,svg,video,canvas{max-width:100%;}
button,input,select,textarea{font:inherit;}
*,*::before,*::after{min-width:0;}

@media (max-width: 760px){
    html{font-size:16px;}
    body{overflow-x:hidden;}

    .topbar{
        height:var(--topbar);
        padding:0 10px 0 8px;
    }
    .topbar-left{gap:8px;min-width:0;}
    .sidebar-toggle{width:44px;height:44px;flex:0 0 44px;}
    .sidebar-toggle span{width:22px;height:2px;}
    .brand{font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .brand-logo{width:30px;height:30px;flex:0 0 30px;}
    .profile-button{width:42px;height:42px;}

    /* En móvil el menú sale por encima del contenido y no consume ancho. */
    .sidebar{
        width:min(285px,86vw);
        transform:translateX(-105%);
        transition:transform .22s ease;
        box-shadow:8px 0 30px rgba(0,0,0,.22);
    }
    .mobile-nav-open .sidebar{transform:translateX(0);}
    .mobile-nav-open::after{
        content:"";
        position:fixed;
        inset:var(--topbar) 0 0 0;
        background:rgba(8,16,27,.42);
        z-index:850;
    }
    .mobile-nav-open .topbar{z-index:1001;}
    .mobile-nav-open .sidebar{z-index:1000;}

    .main-content,
    .sidebar-collapsed .main-content{
        margin-left:0;
        padding:calc(var(--topbar) + 18px) 12px 26px;
        width:100%;
    }
    .sidebar-collapsed .sidebar{width:min(285px,86vw);}
    .sidebar-collapsed .nav-label,.sidebar-collapsed .nav-arrow{opacity:1;width:auto;overflow:visible;pointer-events:auto;display:inline;}
    .sidebar-collapsed .nav-item{justify-content:flex-start;padding-left:11px;padding-right:11px;gap:12px;}
    .sidebar-collapsed .nav-icon{width:27px;min-width:27px;}
    .sidebar-collapsed .nav-group-toggle{justify-content:flex-start;padding-left:11px;padding-right:11px;}
    .sidebar-collapsed .nav-group-toggle .nav-label,.sidebar-collapsed .nav-group-toggle .nav-arrow{opacity:1;width:auto;overflow:visible;pointer-events:auto;}

    .page,.dashboard-page,.auditoria-page,.config-page{width:100%;max-width:none;}
    .page h1{font-size:30px;line-height:1.15;}
    .page-heading,.module-card-header{gap:12px;}
    .page-heading{align-items:flex-start;flex-direction:column;}
    .module-card-header{align-items:flex-start;flex-direction:column;}
    .module-actions{width:100%;}
    .module-actions .btn{min-height:42px;}

    .form-grid{grid-template-columns:1fr;}
    .field-wide{grid-column:auto;}
    .form-actions{flex-direction:column;}
    .form-actions .btn{width:100%;}

    .filter-bar{padding:12px 14px;}
    .search-field{width:100%;}
    .table-wrap,.reporte-table-wrap,.auditoria-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
    .data-table,.auditoria-table{min-width:720px;}
    .data-table th,.data-table td{white-space:nowrap;}

    .pagination{justify-content:center;flex-wrap:wrap;}
    .custom-pagination{padding-left:0;padding-right:0;}
    .pagination-links{overflow-x:auto;max-width:100%;padding-bottom:2px;}

    .modal-backdrop,.acta-modal-backdrop,.audit-modal-backdrop{padding:10px;align-items:flex-start;overflow-y:auto;}
    .modal,.acta-modal,.audit-modal{width:100%;max-width:none;margin-top:4vh;max-height:92vh;border-radius:16px;}
    .modal form,.modal-body,.acta-modal-body,.audit-modal-body{padding-left:16px;padding-right:16px;}

    .welcome-section h1{font-size:30px;}
    .welcome-section p{font-size:15px;}
    .role-banner{align-items:flex-start;min-height:auto;padding:12px;font-size:14px;}
    .election-hero{min-height:250px;padding:24px 16px;}
    .hero-branding{gap:16px;}

    /* Formularios densos de digitación */
    .acta-form-grid,.acta-fields-grid,.acta-votes-grid,.digitar-grid{grid-template-columns:1fr!important;}
    .acta-modal-header{padding:15px 17px;}
    .acta-modal-header h3{font-size:19px;}
    .mesa-search-box{height:52px;}
    .mesa-search-box input{font-size:17px;}

    /* Cards y grids generales */
    .summary-grid,.stats-grid,.cards-grid,.dashboard-grid{grid-template-columns:1fr!important;}
    .card,.module-card,.reporte-card,.config-card{max-width:100%;}
}

@media (max-width: 560px){
    .brand-logo{display:none;}
    .brand{font-size:15px;}
    .topbar-right{margin-left:auto;}
    .profile-menu{position:fixed;right:8px;top:calc(var(--topbar) + 7px);width:min(260px,calc(100vw - 16px));}
    .main-content{padding-left:10px;padding-right:10px;}
    .module-card,.reporte-card,.config-card{border-radius:12px;}
    .module-card-header{padding:15px;}
    .inline-form{padding:15px;}
    .field input,.field select,.modal input,.modal select{height:44px;font-size:16px;}
    .btn{min-height:42px;}
}

/* Reporte: en pantallas pequeñas los filtros pasan a una columna y los
   desplegables quedan dentro del ancho visible. */
@media (max-width: 850px){
    .reporte-page{width:100%;}
    .reporte-cascade-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;width:100%;}
    .reporte-cascade-field,.reporte-election-field{min-width:0;width:100%;}
    .reporte-cascade-trigger,.reporte-cascade-locked{min-width:0;width:100%;font-size:16px;height:50px;}
    .reporte-cascade-menu{left:0;right:0;width:auto;max-width:none;}
    .reporte-progress-results,.reporte-chart-card,.reporte-table-card{padding:13px 12px;}
    .reporte-ranking-bars{gap:10px;padding-left:4px;padding-right:4px;overflow-x:auto;}
    .reporte-ranking-item{min-width:112px;flex:0 0 112px;}
    .reporte-ranking-item strong{max-width:105px;}
    .reporte-export-inline{height:36px;padding:0 10px;}
}

@media (max-width: 560px){
    .reporte-cascade-filters{grid-template-columns:1fr;gap:5px;}
    .reporte-cascade-trigger,.reporte-cascade-locked{height:48px;font-size:16px;}
    .reporte-election-field{min-width:0;}
    .reporte-progress-title{gap:7px;flex-wrap:wrap;}
    .reporte-progress-title strong{font-size:24px;}
    .reporte-progress-legend{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;width:100%;}
    .reporte-ranking-bars{height:315px;}
    .reporte-ranking-item .reporte-bar-track{height:190px;}
    .reporte-party-logo{width:46px;height:46px;}
    .reporte-party-logo-fallback{width:42px;height:42px;}
    .reporte-table-head{align-items:flex-start;}
    .reporte-export-inline{align-self:flex-start;}
    .reporte-results-table{min-width:610px;}
}

/* Auditoría y configuraciones densas */
@media (max-width: 680px){
    .auditoria-head,.config-head{align-items:flex-start;flex-direction:column;}
    .auditoria-head-actions,.config-actions{width:100%;}
    .auditoria-head-actions .auditoria-btn,.config-actions .config-save{width:100%;}
    .config-grid-3,.config-grid-4{grid-template-columns:1fr;}
    .logo-config-row{align-items:flex-start;flex-direction:column;}
    .logo-preview{width:100%;max-width:280px;}
}

/* Evita que encabezados largos rompan el layout en móvil. */
@media (max-width: 760px){
    h1,h2,h3,h4,p,.page-subtitle,.module-card-header p{overflow-wrap:anywhere;}
    .topbar + .sidebar + .main-content{min-width:0;}
}

/* ============================================================
   TIPOGRAFÍA GLOBAL — escala compacta y legible
   Inspirada en interfaces de productividad modernas.
   Se aplica a todo el sistema, incluido login y módulos internos.
   ============================================================ */
html{font-size:14px}
html,body,button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
body{font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body p,body li,body label,body small,body td,body th{line-height:1.45}
body h1{font-size:28px;line-height:1.2}
body h2{font-size:21px;line-height:1.25}
body h3{font-size:18px;line-height:1.3}
body h4{font-size:16px;line-height:1.35}
body button,body input,body select,body textarea{font-size:14px}

/* Encabezados y textos principales */
body .page h1{font-size:28px;line-height:1.2;margin-top:12px;margin-bottom:16px}
body .welcome-section h1{font-size:30px;line-height:1.2;margin:18px 0 14px}
body .welcome-section p{font-size:15px}
body .role-banner{font-size:14px}
body .login-card{padding:28px}
body .login-brand strong{font-size:18px}
body .login-card input{font-size:14px}
body .primary{font-size:14px}

/* Barra superior / navegación */
body .brand{font-size:18px}
body .nav-item{font-size:14px}
body .nav-subitem{font-size:13px}
body .profile-menu-item{font-size:13px}

/* Formularios y módulos */
body .page-subtitle{font-size:14px}
body .breadcrumb{font-size:12px}
body .module-card-header h2{font-size:19px}
body .module-card-header p{font-size:13px}
body .field label,body .modal label{font-size:12px}
body .field input,body .field select,body .modal input,body .modal select{font-size:13px}
body .btn{font-size:13px}
body .data-table{font-size:13px}
body .data-table th{font-size:11px}
body .data-table td{font-size:13px}
body .pagination a,body .pagination span{font-size:12px}
body .pagination-summary{font-size:13px}
body .pagination-btn,body .pagination-number{font-size:13px}

/* Dashboard */
body .hero-title h2{font-size:30px}
body .hero-title h3{font-size:22px}
body .hero-title .hero-period{font-size:16px}

/* Reporte de resultados */
body .reporte-filter-field>span{font-size:14px}
body .reporte-filter-field select{font-size:14px}
body .reporte-cascade-trigger,
body .reporte-cascade-locked{font-size:14px}
body .reporte-cascade-value{font-size:14px}
body .reporte-cascade-search{font-size:13px}
body .reporte-cascade-option{font-size:14px}
body .reporte-switch-line{font-size:13px}
body .reporte-progress-title{font-size:12px}
body .reporte-progress-title strong{font-size:24px}
body .reporte-progress-total{font-size:12px}
body .reporte-card-head h2{font-size:17px}
body .reporte-card-head p{font-size:12px}
body .reporte-bar-value{font-size:11px}
body .reporte-bar-item strong{font-size:11px}
body .reporte-bar-item small{font-size:10px}
body .reporte-results-table th{font-size:11px}
body .reporte-results-table td{font-size:12px}

/* Selector de elecciones: nunca mostrar una opción global 'Todas'. */
.reporte-election-menu .reporte-cascade-option[data-value="TODAS"]{display:none!important}

@media(max-width:760px){
  body h1{font-size:24px}
  body h2{font-size:19px}
  body h3{font-size:17px}
  body .page h1{font-size:24px}
  body .welcome-section h1{font-size:26px}
  body .hero-title h2{font-size:26px}
  body .hero-title h3{font-size:20px}
  body .hero-title .hero-period{font-size:15px}
}

/* Reducción adicional de títulos sobredimensionados en módulos existentes */
body .personeros-page .module-card-header h2,
body .mesas-page .module-card-header h2{font-size:20px}
body .advance-intro h3{font-size:20px}
body .advance-intro>strong{font-size:26px}
body .auditoria-head h1,
body .config-head h1{font-size:28px}
body .actas-header h1{font-size:24px}
body .actas-header p{font-size:13px}
body .actas-top-button{font-size:14px}
body .actas-select{font-size:14px}
body .actas-status-tab{font-size:14px}
body .acta-record-title strong{font-size:18px}
body .acta-record-location{font-size:13px}
body .acta-record-user{font-size:13px}
body .reporte-header h1{font-size:28px}
body .config-head h1{line-height:1.2}

/* ============================================================
   AJUSTE VISUAL FINAL — RESULTADOS Y SIDEBAR CONTRAÍDO
   Solo reglas específicas; no reemplaza estilos globales.
   ============================================================ */

/* Filtros: apariencia limpia, compacta y sin líneas inferiores. */
.reporte-cascade-filters{
    align-items:flex-start;
    gap:14px;
    min-height:58px;
}
.reporte-cascade-field{
    min-width:0;
    width:max-content;
    max-width:260px;
    flex:0 0 auto;
}
.reporte-cascade-trigger,
.reporte-cascade-locked{
    width:max-content;
    max-width:260px;
    min-width:0;
    min-height:42px;
    height:auto;
    padding:0;
    border:0 !important;
    border-bottom:0 !important;
    border-radius:0;
    background:transparent;
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    gap:6px;
    color:#17395f;
    font-size:16px;
    font-weight:700;
    line-height:1.15;
    text-align:left;
    white-space:normal;
}
.reporte-cascade-trigger:hover,
.reporte-cascade-trigger:focus-visible{
    border:0 !important;
    border-bottom:0 !important;
    background:transparent;
}
.reporte-cascade-value{
    display:block;
    min-width:0;
    max-width:220px;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    line-height:1.15;
}
.reporte-cascade-chevron{
    width:10px;
    height:10px;
    flex:0 0 10px;
    border-right:1.8px solid var(--orange);
    border-bottom:1.8px solid var(--orange);
    transform:rotate(45deg);
    margin:3px 0 0 1px;
}
.reporte-election-field{
    min-width:0;
    width:max-content;
    max-width:320px;
}
.reporte-election-field .reporte-cascade-trigger{
    max-width:320px;
}
.reporte-filter-bottom{margin-top:4px}

/* Sidebar contraído: una sola columna geométrica para TODOS los iconos,
   con o sin submódulos. */
.sidebar-collapsed .sidebar-nav{
    padding-left:8px;
    padding-right:8px;
}
.sidebar-collapsed .sidebar-nav > .nav-item,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle{
    width:45px !important;
    min-width:45px !important;
    height:45px !important;
    min-height:45px !important;
    margin:3px auto !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:0 !important;
    box-sizing:border-box;
    border-radius:4px;
}
.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon{
    width:27px !important;
    min-width:27px !important;
    height:27px !important;
    margin:0 !important;
    flex:0 0 27px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon svg,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon svg{
    width:20px;
    height:20px;
}
.sidebar-collapsed .nav-group-row{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
}
.sidebar-collapsed .nav-group{
    width:100%;
    margin:0;
    padding:0;
}

@media(max-width:900px){
    .reporte-cascade-filters{gap:10px}
    .reporte-cascade-field,.reporte-cascade-trigger,.reporte-cascade-locked{max-width:100%}
}
@media(max-width:650px){
    .reporte-cascade-filters{gap:4px;}
    .reporte-cascade-trigger,.reporte-cascade-locked{font-size:15px;min-height:44px}
}

/* Ajuste final: misma columna geométrica para iconos simples y grupos. */
.sidebar-collapsed .sidebar-nav > .nav-item,
.sidebar-collapsed .sidebar-nav > .nav-group {
    width:100% !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle {
    box-sizing:border-box;
}
.sidebar-collapsed .sidebar-nav > .nav-item,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row {
    height:45px !important;
    min-height:45px !important;
    margin:3px 0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item {
    width:100% !important;
}
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row {
    width:100% !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon {
    width:27px !important;
    min-width:27px !important;
    height:27px !important;
    flex:0 0 27px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle {
    width:45px !important;
    min-width:45px !important;
    height:45px !important;
    min-height:45px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon svg,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon svg {
    width:20px !important;
    height:20px !important;
    display:block;
}
/* El tooltip de módulo simple es interactivo: el nombre también es un enlace. */
.sidebar-simple-tooltip {
    pointer-events:auto !important;
    text-decoration:none;
    cursor:pointer;
}
@media(max-width:760px){
    .reporte-cascade-trigger,.reporte-cascade-locked{align-items:flex-start;}
}


/* Ajuste definitivo del sidebar contraído: la misma caja y el mismo centro
   para módulos simples y módulos con submódulos. */
.sidebar-collapsed .sidebar-nav > .nav-item,
.sidebar-collapsed .sidebar-nav > .nav-group {
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item {
    height:51px !important;
    min-height:51px !important;
}
.sidebar-collapsed .sidebar-nav > .nav-group {
    height:51px !important;
    min-height:51px !important;
}
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row {
    width:51px !important;
    height:51px !important;
    min-height:51px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}
.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon,
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon {
    width:27px !important;
    min-width:27px !important;
    height:27px !important;
    min-height:27px !important;
    margin:0 !important;
    padding:0 !important;
    flex:0 0 27px !important;
}
.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle {
    width:45px !important;
    min-width:45px !important;
    height:45px !important;
    min-height:45px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:0 !important;
}
.sidebar-simple-tooltip {
    pointer-events:auto !important;
    text-decoration:none !important;
    cursor:pointer !important;
    user-select:none;
}

/* ============================================================
   SIDEBAR CONTRAÍDO — ALINEACIÓN FINAL
   Todos los iconos (módulos simples y grupos) comparten
   exactamente el mismo eje horizontal y la misma celda visual.
   ============================================================ */
@media (min-width: 761px){
    .sidebar-collapsed .sidebar-nav{
        padding-left:8px !important;
        padding-right:8px !important;
    }

    /* Cada entrada ocupa todo el ancho disponible del sidebar.
       Esto hace que el centro geométrico sea idéntico para todos. */
    .sidebar-collapsed .sidebar-nav > .nav-item,
    .sidebar-collapsed .sidebar-nav > .nav-group{
        width:100% !important;
        height:51px !important;
        min-height:51px !important;
        margin:0 !important;
        padding:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        box-sizing:border-box !important;
    }

    /* El contenedor del grupo debe ocupar exactamente el mismo ancho
       que un módulo simple; ya no se usa una caja de 51px desplazada. */
    .sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row{
        width:100% !important;
        height:51px !important;
        min-height:51px !important;
        margin:0 !important;
        padding:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        box-sizing:border-box !important;
    }

    /* La celda del icono es idéntica en ambos casos. */
    .sidebar-collapsed .sidebar-nav > .nav-item .nav-icon,
    .sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon{
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        min-height:27px !important;
        margin:0 !important;
        padding:0 !important;
        flex:0 0 27px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        box-sizing:border-box !important;
    }

    .sidebar-collapsed .sidebar-nav > .nav-item .nav-icon svg,
    .sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon svg{
        width:20px !important;
        height:20px !important;
        display:block !important;
        margin:0 !important;
    }

    /* El botón del grupo conserva una caja de 45px centrada en el mismo
       eje que el módulo simple. */
    .sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle{
        width:45px !important;
        min-width:45px !important;
        height:45px !important;
        min-height:45px !important;
        margin:0 auto !important;
        padding:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:0 !important;
        box-sizing:border-box !important;
    }
}

/* ============================================================
   SIDEBAR CONTRAÍDO — CENTRADO ABSOLUTO
   La referencia horizontal de TODOS los iconos es el centro real
   del sidebar. No depende del ancho del botón ni de si tiene hijos.
   ============================================================ */
@media (min-width: 761px){
    body.sidebar-collapsed .sidebar-nav{
        position:relative;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-item,
    body.sidebar-collapsed .sidebar-nav > .nav-group{
        position:relative !important;
        width:100% !important;
        height:51px !important;
        min-height:51px !important;
        margin:0 !important;
        padding:0 !important;
        display:block !important;
        box-sizing:border-box !important;
    }

    /* Módulo sin submódulos: centro absoluto respecto al sidebar. */
    body.sidebar-collapsed .sidebar-nav > .nav-item{
        position:relative !important;
        left:auto !important;
        transform:none !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon{
        position:absolute !important;
        left:50% !important;
        top:50% !important;
        transform:translate(-50%,-50%) !important;
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        min-height:27px !important;
        margin:0 !important;
        padding:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        flex:none !important;
    }

    /* Módulo con submódulos: el row ocupa todo el ancho y el botón
       se centra mediante left:50%, exactamente igual al módulo simple. */
    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row{
        position:relative !important;
        width:100% !important;
        height:51px !important;
        min-height:51px !important;
        margin:0 !important;
        padding:0 !important;
        display:block !important;
        box-sizing:border-box !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle{
        position:absolute !important;
        left:50% !important;
        top:50% !important;
        transform:translate(-50%,-50%) !important;
        width:45px !important;
        min-width:45px !important;
        height:45px !important;
        min-height:45px !important;
        margin:0 !important;
        padding:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:0 !important;
        box-sizing:border-box !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon{
        position:static !important;
        transform:none !important;
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        min-height:27px !important;
        margin:0 !important;
        padding:0 !important;
        flex:0 0 27px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon svg,
    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-row > .nav-group-toggle .nav-icon svg{
        width:20px !important;
        height:20px !important;
        margin:0 !important;
        display:block !important;
    }
}

/* ============================================================
   SIDEBAR — ESTRUCTURA UNIFICADA
   Los módulos simples y los módulos con submódulos usan ahora
   exactamente el mismo elemento visual (.nav-item). Esto evita
   cualquier desplazamiento horizontal del icono.
   ============================================================ */
@media (min-width: 761px){
    body.sidebar-collapsed .sidebar-nav > .nav-group{
        width:100% !important;
        height:51px !important;
        min-height:51px !important;
        margin:0 !important;
        padding:0 !important;
        position:relative !important;
        display:block !important;
        box-sizing:border-box !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle{
        position:absolute !important;
        left:50% !important;
        top:50% !important;
        transform:translate(-50%,-50%) !important;
        width:45px !important;
        min-width:45px !important;
        height:45px !important;
        min-height:45px !important;
        margin:0 !important;
        padding:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        gap:0 !important;
        box-sizing:border-box !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle .nav-icon{
        position:static !important;
        transform:none !important;
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        min-height:27px !important;
        margin:0 !important;
        padding:0 !important;
        flex:0 0 27px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
    }
}

/* ============================================================
   MÓVIL — menú lateral tipo aplicación
   ============================================================ */
@media (max-width:760px){
    .topbar{
        height:var(--topbar);
        padding:0 8px;
        gap:6px;
    }
    .topbar-left{gap:7px;min-width:0;flex:1;}
    .brand{
        font-size:14px;
        letter-spacing:.1px;
        max-width:calc(100vw - 108px);
    }
    .brand-logo{width:32px;height:32px;flex:0 0 32px;}
    .sidebar-toggle{width:42px;height:42px;flex:0 0 42px;}
    .profile-button{width:40px;height:40px;flex:0 0 40px;}

    /* El menú abierto ocupa una anchura cómoda sin cubrir toda la pantalla. */
    .sidebar,
    .sidebar-collapsed .sidebar{
        width:min(270px,82vw) !important;
        max-width:270px !important;
        top:var(--topbar) !important;
        bottom:0 !important;
        transform:translateX(-105%);
        overflow-x:hidden;
        overflow-y:auto;
        z-index:1000;
    }
    .mobile-nav-open .sidebar{transform:translateX(0) !important;}

    .mobile-nav-open .sidebar-nav{
        padding:12px 10px 28px;
    }
    .mobile-nav-open .nav-item,
    .mobile-nav-open .nav-group-toggle{
        min-height:44px;
        font-size:14px;
    }
    .mobile-nav-open .nav-icon{
        width:25px;
        min-width:25px;
        height:25px;
    }
    .mobile-nav-open .nav-label{
        opacity:1;
        width:auto;
        overflow:visible;
        pointer-events:auto;
    }

    /* En móvil el grupo usa la misma fila que un módulo simple. */
    .mobile-nav-open .nav-group > .nav-group-toggle{
        width:100%;
        display:flex;
        align-items:center;
        justify-content:flex-start;
        gap:12px;
        padding:9px 11px;
    }

    .mobile-nav-open .nav-group .nav-arrow{margin-left:auto;}

    /* Evita que el estado desktop 'collapsed' interfiera con el menú móvil. */
    body.mobile-nav-open .nav-item,
    body.mobile-nav-open .nav-group-toggle{
        justify-content:flex-start !important;
    }
}

/* ============================================================
   SIDEBAR CONTRAÍDO — CORRECCIÓN ESTRUCTURAL FINAL
   Un único eje horizontal para módulos simples y grupos.
   ============================================================ */
@media (min-width:761px){
    body.sidebar-collapsed .sidebar-nav{
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        width:100% !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-item,
    body.sidebar-collapsed .sidebar-nav > .nav-group{
        position:relative !important;
        width:100% !important;
        height:51px !important;
        min-height:51px !important;
        margin:0 !important;
        padding:0 !important;
        box-sizing:border-box !important;
        flex:0 0 51px !important;
    }

    /* Módulo simple: la caja completa ocupa el ancho y el icono se centra. */
    body.sidebar-collapsed .sidebar-nav > .nav-item{
        display:grid !important;
        place-items:center !important;
    }

    /* Grupo: exactamente la misma caja que un módulo simple. */
    body.sidebar-collapsed .sidebar-nav > .nav-group{
        display:grid !important;
        place-items:center !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle{
        position:static !important;
        width:45px !important;
        min-width:45px !important;
        height:45px !important;
        min-height:45px !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        display:grid !important;
        place-items:center !important;
        box-sizing:border-box !important;
        transform:none !important;
    }

    /* Misma celda visual para ambos tipos. */
    body.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon,
    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle .nav-icon{
        position:static !important;
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        min-height:27px !important;
        margin:0 !important;
        padding:0 !important;
        flex:0 0 27px !important;
        display:grid !important;
        place-items:center !important;
        transform:none !important;
        box-sizing:border-box !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-item .nav-icon svg,
    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle .nav-icon svg{
        display:block !important;
        width:20px !important;
        height:20px !important;
        margin:0 !important;
        padding:0 !important;
    }

    body.sidebar-collapsed .sidebar-nav > .nav-item .nav-label,
    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle .nav-label,
    body.sidebar-collapsed .sidebar-nav > .nav-item .nav-arrow,
    body.sidebar-collapsed .sidebar-nav > .nav-group > .nav-group-toggle .nav-arrow{
        display:none !important;
    }
}

/* ============================================================
   MOBILE — SIDEBAR FINAL
   En móvil el menú es un panel independiente; nunca hereda
   geometría del sidebar contraído de escritorio.
   ============================================================ */
@media (max-width:760px){
    body.mobile-nav-open{
        overflow:hidden;
    }

    body.mobile-nav-open .topbar{
        left:0 !important;
        right:0 !important;
        width:100vw !important;
        max-width:none !important;
        z-index:2001 !important;
    }

    body.mobile-nav-open .sidebar,
    body.mobile-nav-open.sidebar-collapsed .sidebar{
        position:fixed !important;
        top:var(--topbar) !important;
        left:0 !important;
        bottom:0 !important;
        width:min(280px,82vw) !important;
        max-width:280px !important;
        margin:0 !important;
        padding:0 !important;
        transform:translateX(0) !important;
        overflow-x:hidden !important;
        overflow-y:auto !important;
        z-index:2000 !important;
        box-sizing:border-box !important;
        border-right:1px solid rgba(255,255,255,.08);
    }

    body.mobile-nav-open .sidebar-nav{
        width:100% !important;
        padding:10px 10px 24px !important;
        margin:0 !important;
        display:block !important;
        box-sizing:border-box !important;
    }

    /* Todos los módulos móviles vuelven a la misma fila horizontal. */
    body.mobile-nav-open .sidebar-nav > .nav-item,
    body.mobile-nav-open .sidebar-nav > .nav-group,
    body.mobile-nav-open .sidebar-nav > .nav-group > .nav-group-toggle{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:44px !important;
        height:auto !important;
        margin:2px 0 !important;
        box-sizing:border-box !important;
    }

    body.mobile-nav-open .sidebar-nav > .nav-item,
    body.mobile-nav-open .sidebar-nav > .nav-group > .nav-group-toggle{
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
        gap:10px !important;
        padding:9px 11px !important;
        position:relative !important;
        transform:none !important;
    }

    body.mobile-nav-open .nav-icon,
    body.mobile-nav-open .nav-group-toggle .nav-icon{
        position:static !important;
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        min-height:27px !important;
        margin:0 !important;
        padding:0 !important;
        flex:0 0 27px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
    }

    body.mobile-nav-open .nav-icon svg,
    body.mobile-nav-open .nav-group-toggle .nav-icon svg{
        width:20px !important;
        height:20px !important;
    }

    body.mobile-nav-open .nav-label,
    body.mobile-nav-open .nav-group-toggle .nav-label{
        display:block !important;
        width:auto !important;
        max-width:calc(100% - 60px) !important;
        opacity:1 !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
        white-space:nowrap !important;
        pointer-events:auto !important;
        flex:1 1 auto !important;
    }

    body.mobile-nav-open .nav-arrow,
    body.mobile-nav-open .nav-group-toggle .nav-arrow{
        display:block !important;
        width:auto !important;
        opacity:1 !important;
        margin-left:auto !important;
        flex:0 0 auto !important;
        pointer-events:auto !important;
    }

    /* El estado activo ocupa toda la fila en móvil, no solo el icono. */
    body.mobile-nav-open .sidebar-nav > .nav-item.active,
    body.mobile-nav-open .sidebar-nav > .nav-group > .nav-group-toggle.active{
        width:100% !important;
        background:linear-gradient(90deg,var(--orange),var(--orange-light)) !important;
        color:#fff !important;
        box-shadow:0 3px 10px #0002 !important;
    }

    /* En móvil los submenús se muestran dentro del panel, nunca como flyout. */
    body.mobile-nav-open .nav-group .nav-submenu{
        display:block !important;
        position:static !important;
        width:100% !important;
        margin:0 !important;
        padding:2px 0 4px 38px !important;
        box-sizing:border-box !important;
        background:transparent !important;
        box-shadow:none !important;
    }

    body.mobile-nav-open .nav-group:not(.is-open) .nav-submenu{
        display:none !important;
    }

    body.mobile-nav-open .nav-subitem{
        min-height:38px !important;
        padding:7px 10px !important;
        font-size:13px !important;
        white-space:normal !important;
    }

    /* El fondo oscuro cubre todo lo que queda fuera del panel. */
    body.mobile-nav-open::after{
        content:"" !important;
        position:fixed !important;
        top:var(--topbar) !important;
        right:0 !important;
        bottom:0 !important;
        left:0 !important;
        background:rgba(8,16,27,.42) !important;
        z-index:1990 !important;
        pointer-events:auto !important;
    }

    /* El contenido nunca conserva el margen del sidebar de escritorio. */
    body.mobile-nav-open .main-content,
    body.mobile-nav-open.sidebar-collapsed .main-content{
        margin-left:0 !important;
        width:100% !important;
        min-width:0 !important;
    }
}

/* ============================================================
   SIDEBAR MÓVIL — submódulos estilo menú de bloque
   En móvil los submódulos no se muestran como árbol indentado;
   forman un bloque continuo debajo del módulo padre.
   ============================================================ */
@media (max-width:760px){
    .sidebar .nav-group{
        width:100%;
        margin:0;
        padding:0;
    }

    .sidebar .nav-group-row{
        width:100%;
        margin:0;
        padding:0;
    }

    .sidebar .nav-group-toggle{
        width:100%;
        min-height:48px;
        margin:0;
        padding:10px 16px;
        border-radius:0;
        background:transparent;
        display:flex;
        align-items:center;
        gap:12px;
    }

    .sidebar .nav-group.is-open .nav-group-toggle,
    .sidebar .nav-group-toggle:hover,
    .sidebar .nav-group-toggle:focus-visible{
        background:#20282f;
    }

    .sidebar .nav-group-toggle .nav-label{
        flex:1 1 auto;
        width:auto;
        opacity:1;
        overflow:visible;
        pointer-events:auto;
        display:block;
        text-align:left;
    }

    .sidebar .nav-group-toggle .nav-arrow{
        width:auto;
        opacity:1;
        overflow:visible;
        pointer-events:auto;
        display:block;
        margin-left:auto;
        flex:0 0 auto;
    }

    .sidebar .nav-group.is-open .nav-submenu{
        display:flex;
        width:100%;
        margin:0;
        padding:4px 0 8px;
        border-left:0;
        border-radius:0;
        background:#2c3c43;
        box-sizing:border-box;
        gap:0;
    }

    .sidebar .nav-subitem{
        width:100%;
        min-height:44px;
        margin:0;
        padding:9px 16px 9px 30px;
        border-radius:0;
        display:flex;
        align-items:center;
        gap:12px;
        color:#91aabc;
        font-size:14px;
        line-height:1.25;
        box-sizing:border-box;
    }

    .sidebar .nav-subitem:hover,
    .sidebar .nav-subitem:focus-visible{
        background:#344950;
        color:#fff;
        outline:none;
    }

    .sidebar .nav-subitem.active{
        background:#344950;
        color:#fff;
        font-weight:600;
    }

    .sidebar .nav-subitem-dot{
        width:18px;
        height:18px;
        min-width:18px;
        border:2px solid #86a8b8;
        background:transparent;
        border-radius:50%;
        box-sizing:border-box;
    }

    .sidebar .nav-subitem.active .nav-subitem-dot{
        border-color:var(--orange);
        background:transparent;
    }
}

/* ============================================================
   Reporte > Modal de mesas observadas
   Selección por mesa sin alterar las actas almacenadas.
   ============================================================ */
.reporte-help-button{border:1px solid #a9b7c8;background:transparent;padding:0;cursor:pointer;font-family:inherit;transition:.15s ease}
.reporte-help-button:hover,.reporte-help-button:focus-visible{border-color:var(--orange,#f28a18);color:var(--orange,#f28a18);background:#fff8ef;outline:none;box-shadow:0 0 0 3px rgba(242,138,24,.12)}
.reporte-modal-open{overflow:hidden}
.reporte-observed-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}
.reporte-observed-modal[hidden]{display:none!important}
.reporte-observed-backdrop{position:absolute;inset:0;background:rgba(16,27,43,.58);backdrop-filter:blur(2px)}
.reporte-observed-dialog{position:relative;z-index:1;width:min(720px,100%);max-height:min(760px,calc(100vh - 48px));display:flex;flex-direction:column;background:#fff;border:1px solid #dfe5ec;border-radius:18px;box-shadow:0 22px 60px rgba(15,35,58,.24);overflow:hidden}
.reporte-observed-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px 15px;border-bottom:1px solid #e8edf3;background:#fff}
.reporte-observed-dialog-head>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}
.reporte-observed-dialog-icon{width:34px;height:34px;border-radius:11px;background:#fff0dc;color:#d87d0d;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;flex:none}
.reporte-observed-dialog-head h3{margin:0;color:#172b46;font-size:17px;line-height:1.25}
.reporte-observed-dialog-head p{margin:4px 0 0;color:#718198;font-size:12px;line-height:1.45}
.reporte-observed-close{width:32px;height:32px;border:0;background:transparent;border-radius:8px;color:#7a889a;font-size:25px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}
.reporte-observed-close:hover{background:#f2f5f8;color:#263b56}
.reporte-observed-summary{display:flex;align-items:center;gap:8px;padding:11px 20px;background:#f7f9fb;border-bottom:1px solid #e8edf3;color:#718096;font-size:11px}
.reporte-observed-summary strong{font-size:18px;color:#17395f}
.reporte-observed-summary b{margin-left:auto;color:#b66a15;font-size:11px;white-space:nowrap}
.reporte-observed-search{display:flex;align-items:center;gap:8px;margin:12px 20px 0;padding:0 10px;height:38px;border:1px solid #d7e0ea;border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.reporte-observed-search:focus-within{border-color:#8bb6e8;box-shadow:0 0 0 3px rgba(40,119,213,.10)}
.reporte-observed-search-icon{font-size:20px;line-height:1;color:#8392a5;transform:rotate(-20deg);flex:none}
.reporte-observed-search-input{width:100%;height:100%;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;font:inherit;font-size:12px;color:#263b56}
.reporte-observed-search-input::placeholder{color:#9aa7b7}
.reporte-observed-search-clear{width:24px;height:24px;border:0;background:transparent;color:#8190a2;border-radius:6px;font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}
.reporte-observed-search-clear:hover{background:#f1f4f7;color:#263b56}
.reporte-observed-empty{padding:18px 20px;text-align:center;color:#7b899b;font-size:12px}
.reporte-observed-list{padding:12px 20px;overflow:auto;display:grid;gap:7px;min-height:80px}
.reporte-observed-row{position:relative;display:flex;align-items:center;gap:10px;min-height:56px;padding:9px 11px;border:1px solid #e2e8ef;border-radius:11px;background:#fff;cursor:pointer;transition:.15s ease}
.reporte-observed-row:hover{border-color:#c8d5e3;background:#fbfcfd}
.reporte-observed-row.is-excluded{background:#fffaf4;border-color:#f1dcc2}
.reporte-observed-row input{position:absolute;opacity:0;pointer-events:none}
.reporte-observed-row .reporte-check{width:18px;height:18px;border-radius:5px;position:relative}
.reporte-observed-row input:checked+.reporte-check{background:#2877d5;border-color:#2877d5;box-shadow:inset 0 0 0 3px #fff}
.reporte-observed-row-main{display:flex;flex-direction:column;min-width:0;flex:1}
.reporte-observed-row-main strong{font-size:12px;color:#253a55}
.reporte-observed-row-main small{font-size:10px;color:#8a98aa;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reporte-observed-row em{font-style:normal;font-size:10px;color:#8a6a3c;white-space:nowrap}
.reporte-observed-state{font-size:10px;font-weight:700;color:#3b9564;min-width:84px;text-align:right;white-space:nowrap}
.reporte-observed-row.is-excluded .reporte-observed-state{color:#c27719}
.reporte-observed-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 20px;border-top:1px solid #e8edf3;background:#fff}
.reporte-observed-dialog-foot>div{display:flex;gap:8px;flex:none}
.reporte-observed-note{font-size:10px;color:#8a98a8;line-height:1.4}
.reporte-modal-cancel,.reporte-modal-apply{height:36px;padding:0 14px;border-radius:9px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}
.reporte-modal-cancel{border:1px solid #d6dee8;background:#fff;color:#617188}
.reporte-modal-cancel:hover{background:#f6f8fa}
.reporte-modal-apply{border:1px solid var(--orange,#f28a18);background:var(--orange,#f28a18);color:#fff}
.reporte-modal-apply:hover{filter:brightness(.96)}

@media(max-width:650px){
    .reporte-observed-modal{padding:10px}
    .reporte-observed-dialog{max-height:calc(100vh - 20px);border-radius:15px}
    .reporte-observed-dialog-head{padding:15px}
    .reporte-observed-summary{padding:10px 15px}
    .reporte-observed-search{margin:10px 12px 0;height:40px}
    .reporte-observed-list{padding:10px 12px}
    .reporte-observed-dialog-foot{padding:11px 12px;align-items:stretch;flex-direction:column}
    .reporte-observed-note{font-size:9px}
    .reporte-observed-dialog-foot>div{width:100%}
    .reporte-modal-cancel,.reporte-modal-apply{flex:1}
    .reporte-observed-state{min-width:76px}
}

/* Ajustes del buscador de mesas observadas */
.reporte-observed-row[hidden],
.reporte-observed-empty[hidden],
.reporte-observed-search-clear[hidden]{display:none !important;}

/* Evita el segundo botón X nativo de los input[type=search] */
.reporte-observed-search-input::-webkit-search-cancel-button,
.reporte-observed-search-input::-webkit-search-decoration,
.reporte-observed-search-input::-webkit-search-results-button,
.reporte-observed-search-input::-webkit-search-results-decoration{display:none !important;-webkit-appearance:none !important;appearance:none !important;}
.reporte-observed-search-input{-webkit-appearance:none;appearance:none;}

/* ============================================================
   REPORTE > RANKING DE RESULTADOS - CARRUSEL DE 5 PARTIDOS
   Ajuste final: barra + logo 50/50, carrusel sin recorte y tooltip único.
   ============================================================ */
.reporte-ranking-card{overflow:visible;position:relative}
.reporte-ranking-carousel{--ranking-visible:5;position:relative;display:flex;align-items:center;gap:4px;margin-top:4px;overflow:visible}
.reporte-ranking-viewport{overflow:hidden;flex:1;min-width:0;position:relative}
.reporte-ranking-track{display:flex;align-items:stretch;transition:transform .28s ease;will-change:transform}
.reporte-ranking-slide{position:relative;flex:0 0 auto;min-width:0;padding:0 8px;box-sizing:border-box}
.reporte-ranking-stage{height:365px;position:relative;display:flex;align-items:flex-end;justify-content:center;padding:0 10px 0;overflow:visible}
.reporte-ranking-gridline{position:absolute;left:8px;right:8px;height:1px;background:#edf1f5;pointer-events:none}
.reporte-ranking-gridline:nth-child(1){top:15%}
.reporte-ranking-gridline:nth-child(2){top:35%}
.reporte-ranking-gridline:nth-child(3){top:55%}
.reporte-ranking-gridline:nth-child(4){top:75%}
/* El contenedor de la barra deja espacio arriba para que incluso la barra
   más alta tenga su logo visible y centrado 50/50 sobre el borde superior. */
.reporte-ranking-bar-wrap{position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:82%;width:min(68%,136px);display:flex;align-items:flex-end;justify-content:center;overflow:visible;--ranking-logo-size:76px;--ranking-logo-half:38px}
.reporte-ranking-bar{width:100%;min-height:8px;border-radius:10px 10px 3px 3px;background:color-mix(in srgb,var(--orange) 70%,#75a9d2);transition:height .28s ease,filter .2s ease;box-shadow:0 1px 2px rgba(23,57,95,.06)}
.reporte-ranking-slide:nth-child(2n) .reporte-ranking-bar{background:color-mix(in srgb,var(--orange) 58%,#75a9d2)}
.reporte-ranking-slide:nth-child(3n) .reporte-ranking-bar{background:color-mix(in srgb,var(--orange) 48%,#75a9d2)}
.reporte-ranking-slide:nth-child(4n) .reporte-ranking-bar{background:color-mix(in srgb,var(--orange) 38%,#75a9d2)}
.reporte-ranking-slide:nth-child(5n) .reporte-ranking-bar{background:color-mix(in srgb,var(--orange) 30%,#75a9d2)}
/* 50% del logo queda dentro de la barra y 50% fuera. */
.reporte-ranking-logo-button{position:absolute;left:50%;bottom:calc(var(--ranking-bar-height) - var(--ranking-logo-half));transform:translateX(-50%);width:var(--ranking-logo-size);height:var(--ranking-logo-size);padding:4px;border:1px solid #dfe5ec;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;border-radius:6px;box-shadow:0 1px 3px rgba(23,57,95,.08);box-sizing:border-box}
.reporte-ranking-logo-button:hover,.reporte-ranking-logo-button.is-open{box-shadow:0 0 0 2px color-mix(in srgb,var(--orange) 35%,#fff),0 5px 14px rgba(23,57,95,.12)}
.reporte-ranking-logo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.reporte-ranking-logo-button .reporte-party-logo-fallback{width:56px;height:56px;border-radius:50%;background:var(--orange-soft);color:var(--orange-dark);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:25px}
/* El tooltip se crea en body y por eso nunca queda recortado por el carrusel. */
.reporte-ranking-tooltip{position:fixed;left:0;top:0;width:260px;max-width:calc(100vw - 24px);padding:12px 14px;background:var(--orange);color:#fff;border:1px solid color-mix(in srgb,var(--orange-dark) 60%,#fff);border-radius:6px;box-shadow:0 10px 24px rgba(23,57,95,.22);display:flex;flex-direction:column;gap:4px;text-align:left;font-size:11px;line-height:1.4;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease;z-index:2147483000}
.reporte-ranking-tooltip::after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid var(--orange)}
.reporte-ranking-tooltip.is-below{transform:translateY(-4px)}
.reporte-ranking-tooltip.is-below::after{top:-10px;bottom:auto;border-top:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid var(--orange)}
.reporte-ranking-tooltip strong{font-size:12px;line-height:1.25;margin-bottom:2px;white-space:normal}
.reporte-ranking-tooltip span{display:block}
.reporte-ranking-tooltip-floating{opacity:1!important;visibility:visible!important;transform:translateY(0)!important}
.reporte-ranking-name{height:34px;margin-top:9px;text-align:center;color:#17395f;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}
.reporte-ranking-nav{flex:0 0 38px;width:38px;height:38px;border:0;background:transparent;color:#8b929a;font-size:48px;line-height:30px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:30;padding:0}
.reporte-ranking-nav:hover{color:#69727b}
.reporte-ranking-nav:focus-visible{outline:2px solid color-mix(in srgb,var(--orange) 55%,#fff);outline-offset:2px;border-radius:6px}
.reporte-ranking-nav[hidden]{display:none}
@media(max-width:900px){
    .reporte-ranking-carousel{--ranking-visible:3}
    .reporte-ranking-stage{height:330px}
    .reporte-ranking-logo-button{width:68px;height:68px}
    .reporte-ranking-bar-wrap{--ranking-logo-size:68px;--ranking-logo-half:34px}
    .reporte-ranking-nav{flex-basis:34px;width:34px}
}
@media(max-width:650px){
    .reporte-ranking-carousel{--ranking-visible:2}
    .reporte-ranking-slide{padding:0 5px}
    .reporte-ranking-stage{height:285px;padding:0 4px}
    .reporte-ranking-bar-wrap{width:min(70%,108px)}
    .reporte-ranking-logo-button{width:58px;height:58px}
    .reporte-ranking-bar-wrap{--ranking-logo-size:58px;--ranking-logo-half:29px}
    .reporte-ranking-tooltip{width:210px;font-size:10px}
    .reporte-ranking-name{font-size:10px}
    .reporte-ranking-nav{flex-basis:30px;width:30px;font-size:40px}
}

/* Cuadro de resultados por organización política */
.reporte-results-party-table{min-width:0!important;table-layout:fixed}
.reporte-results-party-table th:first-child{width:7%;text-align:center}
.reporte-results-party-table th:nth-child(2){width:49%;text-align:left}
.reporte-results-party-table th:nth-child(3){width:15%;text-align:right}
.reporte-results-party-table th:nth-child(4),
.reporte-results-party-table th:nth-child(5){width:14.5%;text-align:right}
.reporte-results-party-table td{height:56px;padding:10px 18px;font-size:13px;vertical-align:middle}
.reporte-results-party-table td:first-child{text-align:center}
.reporte-results-party-table td:nth-child(2){text-align:left}
.reporte-results-party-table td:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums}
.reporte-results-party-table .reporte-special-result-row{background:rgba(255,145,0,.035)}
.reporte-results-party-table .reporte-special-result-row strong{font-weight:700}
.reporte-results-party-table .reporte-special-icon{font-size:18px;color:#ff8a00;background:#fff7ed;border-color:#ffd7a8}
.reporte-party-cell-content{display:flex;align-items:center;gap:12px;min-width:0}
.reporte-party-table-logo{width:34px;height:34px;min-width:34px;border-radius:6px;background:#fff;border:1px solid #e0e6ed;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 1px 2px rgba(23,57,95,.06)}
.reporte-party-table-logo img{display:block;width:100%;height:100%;object-fit:contain;padding:3px;box-sizing:border-box}
.reporte-party-table-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--orange-soft);color:var(--orange-dark);font-weight:800;font-size:15px}
.reporte-party-cell-content strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#17395f;font-size:13px}
.reporte-results-party-table .percentage-cell{font-weight:700;color:#344d69}
@media(max-width:700px){
  .reporte-results-party-table{table-layout:auto;min-width:620px!important}
  .reporte-results-party-table th:first-child{width:7%}
  .reporte-results-party-table th:nth-child(2){width:43%}
  .reporte-results-party-table th:nth-child(3){width:17%}
  .reporte-results-party-table th:nth-child(4),
  .reporte-results-party-table th:nth-child(5){width:16.5%}
  .reporte-results-party-table td{height:52px;padding:9px 12px}
  .reporte-party-table-logo{width:30px;height:30px;min-width:30px}
  .reporte-party-cell-content{gap:9px}
  .reporte-party-cell-content strong{font-size:12px}
}


/* Configuración General - Puesta en Cero */
.config-alert-success{background:#edf9f1;color:#247343;border:1px solid #ccebd6}
.config-actions{align-items:center;gap:10px}
.config-reset{border:1px solid var(--orange);background:#fff;color:var(--orange);border-radius:10px;padding:12px 18px;font-weight:800;cursor:pointer;box-shadow:0 3px 10px rgba(30,52,78,.05)}
.config-reset:hover{background:var(--orange-soft);border-color:var(--orange-dark);color:var(--orange-dark)}
.config-reset span{font-size:16px;margin-right:5px}
.config-modal-backdrop{position:fixed;inset:0;z-index:9999;background:rgba(15,23,34,.62);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}
.config-modal-backdrop[hidden]{display:none}
.config-reset-modal{position:relative;width:min(560px,100%);background:#fff;border:1px solid #dce3eb;border-radius:18px;box-shadow:0 22px 70px rgba(15,23,42,.28);padding:28px}
.config-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:#7c8999;font-size:28px;line-height:1;cursor:pointer}
.config-reset-icon{width:46px;height:46px;border-radius:13px;background:var(--orange-soft);color:var(--orange);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;margin-bottom:14px}
.config-reset-modal h2{margin:0 0 8px;color:#172b45;font-size:23px}
.config-reset-lead{margin:0;color:#5f7188;font-size:14px;line-height:1.6}
.config-reset-lead code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#172b45;background:#f4f6f8;border-radius:5px;padding:2px 5px}
.config-reset-warning{margin:16px 0;padding:12px 14px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#8a5a22;font-size:12px;line-height:1.55}
.config-reset-confirm-label{margin:18px 0 7px;color:#52657b;font-size:13px;font-weight:700}
.config-reset-confirm-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;color:#172b45;background:#f6f8fa;border:1px solid #e1e7ee;border-radius:8px;padding:9px 11px;display:inline-block;font-size:13px;letter-spacing:.02em}
.config-reset-input{display:block;width:100%;height:44px;margin-top:9px;border:1px solid #d4dde7;border-radius:10px;padding:0 12px;color:#24344a;font-size:14px;outline:none;box-sizing:border-box}
.config-reset-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 15%,transparent)}
.config-reset-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.config-cancel,.config-reset-submit{height:42px;border-radius:9px;padding:0 16px;font-size:13px;font-weight:800;cursor:pointer}
.config-cancel{border:1px solid #d6dfe9;background:#fff;color:#52657b}
.config-reset-submit{border:0;background:var(--orange);color:#fff}
.config-reset-submit:hover:not(:disabled){background:var(--orange-dark)}
.config-reset-submit:disabled{opacity:.45;cursor:not-allowed}
body.config-modal-open{overflow:hidden}
@media(max-width:680px){
 .config-actions{width:100%;flex-direction:column-reverse;align-items:stretch}
 .config-actions .config-save,.config-actions .config-reset{width:100%}
 .config-reset-modal{padding:22px}
 .config-reset-actions{flex-direction:column-reverse}
 .config-cancel,.config-reset-submit{width:100%}
}


/* ============================================================
   LOGIN — distribución centrada y responsive
   ============================================================ */
.auth-main{
    margin-left:0;
    padding:20px 20px 32px;
    min-height:calc(100vh - var(--topbar));
    display:flex;
    flex-direction:column;
}
.auth-main > .login-page{
    flex:1 1 auto;
    width:100%;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:58px 0 48px;
    box-sizing:border-box;
}
.login-page .login-card{
    width:min(440px, 100%);
    max-width:440px;
    margin:0;
    padding:28px 32px 30px;
    background:#fff;
    border:1px solid #e2e7ee;
    border-radius:16px;
    box-shadow:0 10px 28px rgba(25,42,63,.09);
}
.login-page .login-brand{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-bottom:22px;
    text-align:left;
}
.login-page .login-brand img{
    width:62px;
    height:62px;
    object-fit:contain;
    flex:0 0 62px;
    border-radius:6px;
}
.login-page .login-brand strong{
    color:#122b49;
    font-size:20px;
    line-height:1.2;
    font-weight:800;
}
.login-page .login-heading h1{
    margin:0 0 6px;
    color:#122b49;
    font-size:27px;
    line-height:1.2;
    letter-spacing:-.25px;
}
.login-page .login-heading p{
    margin:0 0 22px;
    color:#687586;
    font-size:14px;
}
.login-page .login-form{
    display:grid;
    gap:14px;
}
.login-page .login-field{
    display:grid;
    gap:6px;
}
.login-page .login-field label{
    color:#465365;
    font-size:13px;
    font-weight:700;
}
.login-page .login-field input{
    width:100%;
    height:44px;
    padding:0 13px;
    border:1px solid #cfd7e2;
    border-radius:8px;
    background:#fff;
    color:#1d2a3a;
    font-size:15px;
    outline:none;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.login-page .login-field input:focus{
    border-color:var(--orange);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 14%,transparent);
}
.login-page .login-submit{
    width:100%;
    min-height:44px;
    margin-top:2px;
    border-radius:8px;
    font-size:14px;
    letter-spacing:.15px;
}
@media(max-width:650px){
    .auth-main{padding:14px 12px 24px;}
    .auth-main > .login-page{padding:28px 0 30px;align-items:flex-start;}
    .login-page .login-card{width:min(390px,100%);padding:24px 20px 26px;border-radius:14px;}
    .login-page .login-brand{gap:10px;margin-bottom:19px;}
    .login-page .login-brand img{width:54px;height:54px;flex-basis:54px;}
    .login-page .login-brand strong{font-size:17px;}
    .login-page .login-heading h1{font-size:24px;}
    .login-page .login-heading p{font-size:13px;margin-bottom:19px;}
    .login-page .login-form{gap:12px;}
    .login-page .login-field input{height:42px;font-size:14px;}
    .login-page .login-submit{min-height:42px;}
}

/* ============================================================
   CAMBIAR CONTRASEÑA — DISEÑO COMPACTO Y EQUILIBRADO
   ============================================================ */
.change-password-page{
    min-height:calc(100vh - var(--topbar) - 24px);
    padding:22px 16px 28px;
    align-items:flex-start;
}

.change-password-page .change-password-card{
    width:min(500px, 100%);
    max-width:500px;
    padding:24px 26px 24px !important;
    margin:0 auto;
    border-radius:16px;
    box-shadow:0 8px 28px rgba(24,32,45,.08);
}

.change-password-page .change-password-header{
    align-items:center;
    gap:12px;
    margin-bottom:18px;
}

.change-password-page .change-password-icon{
    width:38px;
    height:38px;
    min-width:38px;
    border-radius:10px;
    font-size:18px;
}

.change-password-page .change-password-header h1{
    font-size:27px;
    line-height:1.15;
    letter-spacing:-.35px;
    margin:0 0 4px;
}

.change-password-page .change-password-header p{
    font-size:13px;
    line-height:1.4;
}

.change-password-page .login-card form{
    gap:12px;
}

.change-password-page .change-password-field{
    gap:5px;
}

.change-password-page .change-password-field label{
    font-size:13px;
}

.change-password-page .login-card input{
    height:42px;
    padding:0 12px;
    border-radius:8px;
    font-size:14px;
}

.change-password-page .change-password-submit{
    height:44px;
    min-height:44px;
    margin-top:3px;
    border-radius:8px;
    font-size:14px;
    letter-spacing:.1px;
}

@media(max-width:650px){
    .change-password-page{
        min-height:auto;
        padding:16px 12px 24px;
    }

    .change-password-page .change-password-card{
        width:100%;
        max-width:500px;
        padding:22px 20px 22px !important;
        border-radius:14px;
    }

    .change-password-page .change-password-header h1{
        font-size:24px;
    }

    .change-password-page .change-password-header p{
        font-size:12.5px;
    }
}

/* ============================================================
   REPORTE — BOTÓN LIMPIAR, ESTILO CONSISTENTE CON ACTUALIZAR
   ============================================================ */
.reporte-cascade-filters .reporte-clear-filters-btn{
    height:42px;
    min-height:42px;
    min-width:120px;
    padding:0 16px;
    align-self:flex-start;
    border:1px solid var(--orange);
    border-radius:10px;
    background:#fff;
    color:var(--orange-dark);
    font-size:14px;
    font-weight:700;
}
.reporte-cascade-filters .reporte-clear-filters-btn:hover{
    background:var(--orange-soft);
    color:var(--orange-dark);
    border-color:var(--orange);
}
.reporte-cascade-filters .reporte-clear-icon{
    font-size:17px;
}

/* ============================================================
   AJUSTE FINAL DE VISTAS — PANEL, CAMBIO DE CONTRASEÑA Y FILTROS
   ============================================================ */

/* Panel principal: acercar el contenido al encabezado sin tocar
   el espaciado general del resto de módulos. */
.dashboard-page-compact{
    margin-top:-62px;
}

.dashboard-page-compact .welcome-section h1{
    margin-top:0;
    margin-bottom:16px;
    font-size:34px;
}

.dashboard-page-compact .welcome-section p{
    margin-bottom:16px;
    font-size:17px;
}

.dashboard-page-compact .role-banner{
    margin-bottom:22px;
}

.dashboard-page-compact .election-hero{
    min-height:300px;
}

/* Cambiar contraseña: tarjeta más pequeña, compacta y completa en pantalla. */
.change-password-page{
    min-height:calc(100vh - var(--topbar) - 18px);
    padding:18px 16px 22px;
    align-items:flex-start;
}

.change-password-page .change-password-card{
    width:min(430px,100%);
    max-width:430px;
    padding:22px 24px 22px !important;
    border-radius:14px;
    box-shadow:0 7px 24px rgba(24,32,45,.07);
}

.change-password-page .change-password-header{
    gap:10px;
    margin-bottom:15px;
}

.change-password-page .change-password-icon{
    width:34px;
    height:34px;
    min-width:34px;
    border-radius:9px;
    font-size:16px;
}

.change-password-page .change-password-header h1{
    font-size:24px;
    line-height:1.15;
    margin-bottom:3px;
}

.change-password-page .change-password-header p{
    font-size:12.5px;
}

.change-password-page .login-card form{
    gap:10px;
}

.change-password-page .change-password-field{
    gap:4px;
}

.change-password-page .change-password-field label{
    font-size:12.5px;
}

.change-password-page .login-card input{
    height:38px;
    min-height:38px;
    padding:0 11px;
    border-radius:7px;
    font-size:13px;
}

.change-password-page .change-password-submit{
    height:40px;
    min-height:40px;
    margin-top:2px;
    border-radius:8px;
    font-size:13px;
}

/* Filtros de resultados: botón Limpiar al mismo nivel y tamaño
   visual que los filtros, sin ocupar espacio vertical innecesario. */
.reporte-cascade-filters{
    align-items:center;
    gap:12px;
    min-height:44px;
}

.reporte-cascade-filters .reporte-clear-filters-btn,
.reporte-clear-filters-btn{
    flex:0 0 auto;
    align-self:center;
    width:auto;
    min-width:96px;
    height:40px;
    min-height:40px;
    padding:0 14px;
    margin:0;
    border:1px solid var(--orange);
    border-radius:8px;
    background:#fff;
    color:var(--orange-dark);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    font-size:13px;
    font-weight:700;
    line-height:1;
    box-sizing:border-box;
    box-shadow:none;
    transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}

.reporte-cascade-filters .reporte-clear-icon,
.reporte-clear-icon{
    font-size:15px;
    line-height:1;
}

.reporte-cascade-filters .reporte-clear-filters-btn:hover,
.reporte-clear-filters-btn:hover{
    background:var(--orange-soft);
    border-color:var(--orange);
    color:var(--orange-dark);
    box-shadow:none;
}

.reporte-cascade-filters .reporte-clear-filters-btn:active,
.reporte-clear-filters-btn:active{
    transform:translateY(1px);
}

@media(max-width:650px){
    .dashboard-page-compact{
        margin-top:-38px;
    }

    .dashboard-page-compact .welcome-section h1{
        font-size:30px;
    }

    .change-password-page{
        min-height:auto;
        padding:14px 12px 20px;
    }

    .change-password-page .change-password-card{
        width:100%;
        max-width:430px;
        padding:20px 18px 20px !important;
    }

    .change-password-page .change-password-header h1{
        font-size:22px;
    }

    .reporte-cascade-filters{
        gap:8px;
    }

    .reporte-cascade-filters .reporte-clear-filters-btn,
    .reporte-clear-filters-btn{
        min-width:88px;
        height:38px;
        min-height:38px;
        padding:0 12px;
        font-size:12.5px;
    }
}

/* ============================================================
   AJUSTE SOLICITADO — PANEL, CAMBIO DE CONTRASEÑA Y FILTROS
   ============================================================ */

/* Panel principal: mantener el contenido arriba, como una pantalla
   de inicio compacta y con poco espacio desperdiciado. */
.dashboard-page-compact{
    /* Acerca el panel al encabezado: evita el espacio vertical excesivo
       que se aprecia al ingresar al Panel principal. */
    margin-top:-139px !important;
}
.dashboard-page-compact .welcome-section h1{
    margin:0 0 14px !important;
    font-size:34px !important;
    line-height:1.15;
}
.dashboard-page-compact .welcome-section p{
    margin:0 0 16px !important;
    font-size:17px !important;
    line-height:1.35;
}
.dashboard-page-compact .role-banner{
    min-height:54px;
    margin-bottom:20px !important;
}
.dashboard-page-compact .election-hero{
    min-height:300px !important;
}

/* Cambio de contraseña: tarjeta compacta, centrada y visible. */
.change-password-page{
    min-height:calc(100vh - var(--topbar) - 12px) !important;
    padding:16px 16px 20px !important;
    align-items:flex-start !important;
}
.change-password-page .change-password-card{
    width:430px !important;
    max-width:calc(100vw - 32px) !important;
    padding:22px 24px 20px !important;
    margin:0 auto !important;
    border-radius:14px !important;
}
.change-password-page .change-password-header{
    gap:10px !important;
    margin-bottom:13px !important;
}
.change-password-page .change-password-icon{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    border-radius:9px !important;
    font-size:16px !important;
}
.change-password-page .change-password-header h1{
    font-size:24px !important;
    line-height:1.15 !important;
    margin:0 0 3px !important;
}
.change-password-page .change-password-header p{
    font-size:12.5px !important;
    line-height:1.35 !important;
}
.change-password-page .login-card form{
    gap:9px !important;
}
.change-password-page .change-password-field{
    gap:4px !important;
}
.change-password-page .change-password-field label{
    font-size:12.5px !important;
    line-height:1.2;
}
.change-password-page .login-card input{
    height:39px !important;
    min-height:39px !important;
    padding:0 11px !important;
    border-radius:7px !important;
    font-size:13px !important;
}
.change-password-page .change-password-submit{
    height:40px !important;
    min-height:40px !important;
    margin-top:2px !important;
    border-radius:8px !important;
    font-size:13px !important;
}

/* Filtros de reportes: una sola línea, compactos y alineados.
   El botón Limpiar queda al final, a la misma altura de los filtros. */
.reporte-filters-card{
    padding:12px 16px !important;
}
.reporte-cascade-filters{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:18px !important;
    min-height:44px !important;
    width:100%;
}
.reporte-cascade-field,
.reporte-election-field{
    width:auto !important;
    max-width:220px !important;
    min-width:0 !important;
    flex:0 0 auto !important;
}
.reporte-cascade-trigger,
.reporte-cascade-locked{
    width:auto !important;
    max-width:220px !important;
    min-width:0 !important;
    min-height:40px !important;
    height:40px !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    font-size:16px !important;
    line-height:1 !important;
    white-space:nowrap !important;
}
.reporte-cascade-value{
    max-width:190px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}
.reporte-cascade-chevron{
    width:9px !important;
    height:9px !important;
    flex:0 0 9px !important;
    margin:0 0 4px 0 !important;
}
.reporte-election-field .reporte-cascade-trigger{
    max-width:260px !important;
}
.reporte-clear-filters-btn,
.reporte-cascade-filters .reporte-clear-filters-btn{
    flex:0 0 auto !important;
    width:auto !important;
    min-width:88px !important;
    height:40px !important;
    min-height:40px !important;
    padding:0 14px !important;
    margin:0 !important;
    align-self:center !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    border:1px solid var(--orange) !important;
    border-radius:7px !important;
    background:#fff !important;
    color:var(--orange-dark) !important;
    font-size:13px !important;
    font-weight:700 !important;
    line-height:1 !important;
    box-shadow:none !important;
    white-space:nowrap !important;
}
.reporte-clear-filters-btn:hover,
.reporte-cascade-filters .reporte-clear-filters-btn:hover{
    background:var(--orange-soft) !important;
    border-color:var(--orange-dark) !important;
    color:var(--orange-dark) !important;
}
.reporte-clear-icon{
    font-size:15px !important;
    line-height:1 !important;
}
.reporte-filter-bottom{
    margin-top:8px !important;
}

@media(max-width:900px){
    .reporte-cascade-filters{
        flex-wrap:wrap !important;
        gap:8px 16px !important;
    }
}
@media(max-width:650px){
    .dashboard-page-compact{
        margin-top:-58px !important;
    }
    .dashboard-page-compact .welcome-section h1{
        font-size:30px !important;
    }
    .change-password-page{
        min-height:auto !important;
        padding:12px 10px 18px !important;
    }
    .change-password-page .change-password-card{
        width:100% !important;
        max-width:430px !important;
        padding:20px 18px 20px !important;
    }
    .change-password-page .change-password-header h1{
        font-size:22px !important;
    }
    .reporte-cascade-filters{
        gap:6px 12px !important;
    }
    .reporte-cascade-trigger,
    .reporte-cascade-locked{
        font-size:15px !important;
    }
    .reporte-clear-filters-btn,
    .reporte-cascade-filters .reporte-clear-filters-btn{
        height:38px !important;
        min-height:38px !important;
        min-width:82px !important;
        padding:0 12px !important;
        font-size:12.5px !important;
    }
}


/* AJUSTE FINAL PANEL PRINCIPAL - 2026-09-27
   No usar márgenes negativos: pueden ocultar el título y el encabezado.
   El contenido debe iniciar dentro del área visible debajo del topbar. */
.dashboard-page-compact{
    margin-top:0 !important;
}
.dashboard-page-compact .welcome-section h1{
    margin-top:0 !important;
}
@media(max-width:650px){
    .dashboard-page-compact{
        margin-top:0 !important;
    }
}


/* ============================================================
   REPORTE > RESULTADOS — filtro TIPO DE ELECCIÓN
   Ajuste exclusivo del selector de elecciones.
   No afecta los filtros geográficos.
   ============================================================ */
#reporteFiltersForm .reporte-election-field{
    width:240px;
    min-width:240px;
    max-width:240px;
    flex:0 0 240px;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-trigger{
    width:240px;
    min-width:240px;
    max-width:240px;
    height:54px;
    padding:0 0 9px;
    align-items:center;
    gap:7px;
    box-sizing:border-box;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-value{
    flex:0 1 auto;
    width:auto;
    min-width:0;
    max-width:205px;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    line-height:1.15;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-chevron{
    flex:0 0 11px;
    margin:0;
    transform:rotate(45deg);
    align-self:center;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-trigger:hover{
    border-bottom-color:var(--orange);
}

@media (max-width:900px){
    #reporteFiltersForm .reporte-election-field{
        width:230px;
        min-width:230px;
        max-width:230px;
        flex-basis:230px;
    }
    #reporteFiltersForm .reporte-election-field .reporte-cascade-trigger{
        width:230px;
        min-width:230px;
        max-width:230px;
    }
    #reporteFiltersForm .reporte-election-field .reporte-cascade-value{
        max-width:195px;
    }
}

/* ============================================================
   AJUSTE EXCLUSIVO — FILTRO TIPO DE ELECCIONES
   No altera Región, Provincia, Distrito, Local ni Mesa.
   ============================================================ */
#reporteFiltersForm .reporte-election-field {
    width: fit-content !important;
    max-width: 300px !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-trigger {
    width: fit-content !important;
    max-width: 300px !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    white-space: normal !important;
    line-height: 1.15 !important;
    overflow: visible !important;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-value {
    display: block !important;
    width: fit-content !important;
    max-width: 225px !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.15 !important;
}

#reporteFiltersForm .reporte-election-field .reporte-cascade-chevron {
    flex: 0 0 9px !important;
    width: 9px !important;
    height: 9px !important;
    margin: 0 !important;
    align-self: center !important;
}

/* ============================================================
   AJUSTE EXCLUSIVO — FILTRO LOCAL DE VOTACIÓN
   Solo corrige el comportamiento visual del filtro data-filter-key="local".
   No modifica Región, Provincia, Distrito, Mesa ni Tipo de Elección.
   ============================================================ */
#reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] {
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 235px !important;
    flex: 0 0 auto !important;
}

#reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-trigger,
#reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-locked {
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 235px !important;
    height: auto !important;
    min-height: 40px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    white-space: normal !important;
    line-height: 1.15 !important;
    overflow: visible !important;
}

#reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-value {
    display: block !important;
    width: fit-content !important;
    max-width: 205px !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.15 !important;
}

#reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-chevron {
    flex: 0 0 9px !important;
    width: 9px !important;
    height: 9px !important;
    margin: 0 !important;
    align-self: center !important;
}

@media (max-width: 900px) {
    #reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] {
        max-width: 220px !important;
    }

    #reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-trigger,
    #reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-locked {
        max-width: 220px !important;
    }

    #reporteFiltersForm .reporte-cascade-field[data-filter-key="local"] .reporte-cascade-value {
        max-width: 190px !important;
    }
}

/* REPORTE > SEGUIMIENTO: filtros compactos en cascada y tabla resumida */
#seguimientoFilters.seguimiento-filters-card{padding:8px 0 14px;margin:0 0 12px;background:transparent;border:0;box-shadow:none;border-radius:0}
.seguimiento-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.seguimiento-filter-field{position:relative;display:flex;align-items:center;min-width:0;max-width:100%;height:48px;flex:0 1 auto}
.seguimiento-filter-field select{appearance:none;-webkit-appearance:none;border:0;border-bottom:2px solid #e1e7ee;border-radius:0;background:transparent;color:#17395f;height:44px;padding:0 25px 2px 0;font-family:inherit;font-size:15px;font-weight:750;line-height:1.2;cursor:pointer;outline:none;text-overflow:ellipsis;min-width:100px;max-width:230px}
.seguimiento-filter-field select:focus{border-bottom-color:var(--orange);box-shadow:none}
.seguimiento-filter-field select:disabled{opacity:.55;cursor:default}
.seguimiento-filter-field i{position:absolute;right:7px;top:17px;width:9px;height:9px;border-right:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(45deg);pointer-events:none}
.seguimiento-filter-field:nth-child(1) select{width:118px}
.seguimiento-filter-field:nth-child(2) select{width:142px}
.seguimiento-filter-field:nth-child(3) select{width:132px}
.seguimiento-filter-field.seguimiento-local-field select{width:245px;max-width:245px}
.seguimiento-filter-field.seguimiento-status-field select{width:132px}
.seguimiento-clear-btn{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;margin-left:2px;padding:0 17px;border:1px solid var(--orange);border-radius:10px;background:#fff;color:var(--orange-dark);font-family:inherit;font-size:14px;font-weight:750;white-space:nowrap;cursor:pointer}
.seguimiento-clear-btn span{font-size:18px;line-height:1}
.seguimiento-clear-btn:hover{background:var(--orange-soft)}
.seguimiento-table-card{padding:14px 16px 0;overflow:hidden}
.seguimiento-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.seguimiento-table-head h2{font-size:17px;margin:0;color:#17395f}
.seguimiento-table-head p{font-size:12px;margin:4px 0 0;color:#78879a}
.seguimiento-compact-table{width:100%;min-width:850px;table-layout:auto}
.seguimiento-compact-table th{padding:12px 11px;font-size:11px;white-space:nowrap}
.seguimiento-compact-table td{padding:14px 11px;font-size:12px;line-height:1.35;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}
.seguimiento-compact-table td:nth-child(1),.seguimiento-compact-table td:nth-child(2),.seguimiento-compact-table td:nth-child(3){min-width:85px}
.seguimiento-compact-table .seguimiento-local-cell{min-width:150px;max-width:280px;font-weight:650;color:#17395f}
.seguimiento-compact-table td:nth-child(5){white-space:nowrap;font-weight:800}
.seguimiento-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 2px 14px;color:#66778d;font-size:12px}
.seguimiento-pagination-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.seguimiento-pagination-info label{font-weight:700;color:#44566e}
.seguimiento-pagination-info select{height:36px;min-width:78px;padding:0 10px;border:1px solid #d8e0ea;border-radius:9px;background:#fff;color:#17395f;font:inherit;font-weight:700}
.seguimiento-pagination-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.seguimiento-pagination-actions button{height:36px;min-width:36px;padding:0 11px;border:1px solid #d8e0ea;border-radius:9px;background:#fff;color:#17395f;font:inherit;font-weight:650;cursor:pointer}
.seguimiento-pagination-actions button.active{background:var(--orange);border-color:var(--orange);color:#fff}
.seguimiento-pagination-actions button:disabled{opacity:.45;cursor:default}
.seguimiento-pagination-actions button:not(:disabled):hover{border-color:var(--orange)}
.seguimiento-page-ellipsis{padding:0 3px;color:#8491a1}
@media(max-width:900px){
 .seguimiento-filter-row{gap:8px 12px}
 .seguimiento-filter-field.seguimiento-local-field select{width:210px;max-width:210px}
 .seguimiento-table-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
 .seguimiento-filter-row{align-items:stretch;gap:5px 12px}
 .seguimiento-filter-field{height:42px}
 .seguimiento-filter-field select{height:40px;font-size:13px}
 .seguimiento-filter-field:nth-child(1) select{width:100px}
 .seguimiento-filter-field:nth-child(2) select{width:115px}
 .seguimiento-filter-field:nth-child(3) select{width:110px}
 .seguimiento-filter-field.seguimiento-local-field select{width:175px;max-width:175px}
 .seguimiento-filter-field.seguimiento-status-field select{width:112px}
 .seguimiento-clear-btn{height:38px;padding:0 12px;font-size:13px}
 .seguimiento-pagination{align-items:flex-start;flex-direction:column}
}


/* Seguimiento: mostrar únicamente el siguiente nivel geográfico disponible. */
#seguimientoFilters .seguimiento-filter-row{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}
#seguimientoFilters .seguimiento-filter-field{flex:0 0 auto}
#seguimientoFilters .seguimiento-region-field select{width:160px}
#seguimientoFilters .seguimiento-provincia-field select{width:170px}
#seguimientoFilters .seguimiento-distrito-field select{width:170px}
#seguimientoFilters .seguimiento-local-field select{width:245px;max-width:245px}
#seguimientoFilters .seguimiento-status-field select{width:132px}
#seguimientoFilters .seguimiento-clear-btn{margin-left:0}


/* Seguimiento: mismos desplegables compactos de Reporte > Resultados,
   sin subrayado y con Limpiar pegado al último filtro visible. */
#seguimientoFilters.seguimiento-filters-card{padding:0;margin:0 0 12px;background:transparent;border:0;box-shadow:none;border-radius:0}
#seguimientoFilters .seguimiento-cascade-filters{display:flex;align-items:center;justify-content:flex-start;gap:14px;flex-wrap:wrap;min-height:48px}
#seguimientoFilters .seguimiento-cascade-field{position:relative;flex:0 0 auto;width:max-content;min-width:0;max-width:260px}
#seguimientoFilters .seguimiento-cascade-field .reporte-cascade-trigger{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;width:max-content;min-width:0;max-width:260px;min-height:42px;height:auto;padding:0;border:0!important;border-bottom:0!important;border-radius:0;background:transparent;color:#17395f;font-size:16px;font-weight:750;line-height:1.2;text-align:left;white-space:normal;box-shadow:none}
#seguimientoFilters .seguimiento-cascade-field .reporte-cascade-trigger:hover,#seguimientoFilters .seguimiento-cascade-field .reporte-cascade-trigger:focus-visible{border:0!important;background:transparent;box-shadow:none}
#seguimientoFilters .seguimiento-cascade-field .reporte-cascade-value{display:block;max-width:245px;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.2}
#seguimientoFilters .seguimiento-cascade-field .reporte-cascade-chevron{flex:0 0 10px;width:10px;height:10px;margin:0 2px 3px 0;transform:rotate(45deg)}
#seguimientoFilters .seguimiento-cascade-field .reporte-cascade-menu{top:calc(100% + 6px);left:-8px;width:270px;max-width:min(270px, calc(100vw - 32px));max-height:340px;display:flex;flex-direction:column;overflow:hidden;padding:8px;border-radius:12px}
#seguimientoFilters .seguimiento-cascade-menu[hidden]{display:none!important}
#seguimientoFilters .seguimiento-cascade-menu[style*="display: none"]{display:none!important}
#seguimientoFilters .reporte-cascade-search-wrap{position:relative;top:auto;flex:0 0 auto;padding:2px 2px 8px;background:#fff}
#seguimientoFilters .reporte-cascade-options{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-top:6px;scrollbar-gutter:stable}
#seguimientoFilters .reporte-cascade-option[hidden]{display:none!important}
#seguimientoFilters .reporte-cascade-option.is-selected{background:var(--orange-soft);color:var(--orange-dark);font-weight:750}
#seguimientoFilters .seguimiento-clear-btn{align-self:center;flex:0 0 auto;min-width:120px;height:42px;min-height:42px;margin:0;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--orange);border-radius:10px;background:#fff;color:var(--orange-dark);font-size:14px;font-weight:750;white-space:nowrap}
#seguimientoFilters .seguimiento-clear-btn:hover{background:var(--orange-soft)}
@media(max-width:600px){
 #seguimientoFilters .seguimiento-cascade-filters{gap:8px 14px;align-items:center}
 #seguimientoFilters .seguimiento-cascade-field .reporte-cascade-trigger{font-size:14px;min-height:38px}
 #seguimientoFilters .seguimiento-cascade-field .reporte-cascade-value{max-width:190px}
 #seguimientoFilters .seguimiento-clear-btn{height:38px;min-height:38px;min-width:108px;padding:0 12px;font-size:13px}
}
