@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--navy:#102a43;--navy2:#1b556d;--blue:#2563eb;--accent:#35b8d0;--blue-soft:#e8f0ff;--blue-faint:#f4f8fc;--bg:#f3f6fa;--text:#243b53;--muted:#718096;--line:#e5eaf0;--green:#13a471;--red:#d64545;--amber:#d88a10;--radius:14px;--shadow:0 5px 20px rgba(20,45,75,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--navy);color:white;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:0 8px 26px}.brand>span,.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--accent));font-weight:800;font-size:18px}.brand b{line-height:1.15}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{color:rgba(255,255,255,.74);text-decoration:none;padding:12px;border-radius:9px;display:flex;gap:12px;align-items:center;font-weight:500}.sidebar nav a i{font-style:normal;font-size:19px;width:22px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.13);color:white}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding:18px 5px 0;display:flex;align-items:center;gap:10px}.sidebar-user>span{width:35px;height:35px;border-radius:50%;background:var(--accent);display:grid;place-items:center;font-weight:700}.sidebar-user div{min-width:0}.sidebar-user b,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user b{font-size:12px}.sidebar-user small{font-size:10px;color:rgba(255,255,255,.62);margin-top:4px}.app{margin-left:230px;min-height:100vh}.topbar{height:92px;background:white;border-bottom:1px solid var(--line);padding:19px 28px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:22px;margin:0}.topbar p{margin:5px 0 0;color:var(--muted);font-size:12px}.top-actions{display:flex;align-items:center;gap:10px}.content{padding:24px 28px 80px;max-width:1600px;margin:auto}.menu-toggle{display:none;border:0;background:none;font-size:24px}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 15px;font-weight:600;color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.light{background:#fff;color:var(--navy);border:0}.btn.ghost{background:transparent}.btn.small{padding:7px 10px;font-size:12px}.btn.wide{width:100%;padding:13px}.icon-btn{border:0;background:#eff3f7;border-radius:9px;width:38px;height:38px;cursor:pointer}.badge,.status{display:inline-flex;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap}.badge.success,.status.completed,.status.available,.status.picked_up{background:#ddf8ed;color:#087850}.status.pending{background:#fff1d6;color:#a66300}.status.confirmed,.status.assigned,.status.planned{background:#e7efff;color:#215bb0}.status.in_transit{background:#eee7ff;color:#7141c3}.status.cancelled,.status.out_of_service,.status.not_found{background:#ffe5e5;color:#b72f2f}.alert{margin:18px 28px 0;padding:12px 16px;border-radius:10px}.alert.success{background:#dcf8eb;color:#087650}.alert.warning{background:#fff2d9;color:#8c5900}.alert.danger{background:#ffe4e4;color:#9f2929}.mode-banner{background:linear-gradient(110deg,var(--navy),var(--navy2));color:white;padding:21px 24px;border-radius:var(--radius);display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.mode-banner b,.mode-banner span{display:block}.mode-banner b{font-size:17px;margin-bottom:5px}.mode-banner span{color:rgba(255,255,255,.76);font-size:12px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.kpi{background:#fff;border-radius:var(--radius);padding:18px;border-left:4px solid var(--blue);box-shadow:var(--shadow)}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi span{font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.4px}.kpi strong{display:block;font-size:27px;margin:9px 0}.kpi small{font-size:10px}.kpi.violet{border-color:#7957d5}.kpi.amber{border-color:#e9a52b}.kpi.green{border-color:#13a471}.kpi.cyan{border-color:#31a9c4}.kpi.orange{border-color:#e57932}.kpi.navy{border-color:#243b53}.kpi.red{border-color:#db4b4b}.grid.two{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;margin-bottom:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.panel-head,.action-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-head h2,.action-row h2{font-size:16px;margin:0}.panel-head p,.action-row p{font-size:11px;color:var(--muted);margin:5px 0 0}.panel-head a{font-size:12px;color:var(--blue);text-decoration:none;font-weight:600}.alert-list{display:grid;gap:10px}.alert-row{display:flex;align-items:center;gap:12px;padding:12px;background:#fff7f7;border-radius:9px}.alert-row i{font-style:normal;background:#d64c4c;color:#fff;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-weight:700}.alert-row b,.alert-row span{display:block}.alert-row span{color:var(--muted);font-size:11px;margin-top:3px}.empty{color:var(--muted);text-align:center;padding:35px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 10px;font-size:12px}th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.4px}tbody tr:hover{background:#f9fbfd}.block{display:block;color:var(--muted);margin-top:4px}.search{background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 12px;display:flex;align-items:center;min-width:330px}.search input{border:0;outline:0;padding:11px;width:100%;background:transparent}.filters{display:flex;gap:7px;overflow:auto;margin-bottom:18px;padding-bottom:2px}.filters a{padding:8px 12px;border-radius:20px;background:#fff;border:1px solid var(--line);color:var(--text);text-decoration:none;white-space:nowrap;font-size:12px}.filters a.active{background:var(--navy);color:#fff}.request-board{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.request-card,.vehicle-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:var(--shadow)}.request-id,.vehicle-card>div:first-child{display:flex;justify-content:space-between}.request-card h3,.vehicle-card h3{margin:14px 0 6px}.request-card>p,.vehicle-card>p{color:var(--muted);font-size:12px}.request-meta{display:flex;flex-wrap:wrap;gap:14px;color:#52677a;font-size:11px;margin:14px 0}.inline-edit{display:grid;grid-template-columns:1fr 1fr;gap:7px;border-top:1px solid var(--line);padding-top:12px}.inline-edit input,.inline-edit select{min-width:0}.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.vehicle-icon{font-size:27px;color:var(--blue)}dl{display:grid;grid-template-columns:1fr 1fr;gap:12px}dt{font-size:10px;color:var(--muted);text-transform:uppercase}dd{margin:3px 0 0;font-size:12px;font-weight:600}.capacity{height:6px;background:#e8edf2;border-radius:5px;overflow:hidden}.capacity i{display:block;height:100%;background:var(--green)}dialog{border:0;border-radius:16px;padding:0;width:min(720px,calc(100% - 24px));box-shadow:0 20px 60px #102a4366}dialog::backdrop{background:#102a4388}.modal-form{padding:22px}.modal-form header,.modal-form footer{display:flex;justify-content:space-between;align-items:center}.modal-form header{border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:18px}.modal-form header h2{margin:0}.modal-form header p{margin:5px 0 0;color:var(--muted)}.modal-form header button{border:0;background:none;font-size:27px}.modal-form footer{justify-content:flex-end;gap:10px;margin-top:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.span-2{grid-column:span 2}label{display:block;font-size:11px;font-weight:600;color:#52677a}input,select,textarea{width:100%;border:1px solid #d8e0e8;border-radius:8px;padding:10px;margin-top:6px;background:#fff;color:var(--text)}textarea{min-height:70px;resize:vertical}.check{display:flex;align-items:flex-start;gap:8px;font-size:12px}.check input{width:auto;margin:1px 0}.consent,fieldset{margin-top:17px;border:1px solid #dce5ed;border-radius:10px;padding:14px}.consent{background:var(--blue-faint)}.consent .check+.check{margin-top:12px}fieldset legend{font-size:12px;font-weight:700}.muted-fields{margin-top:12px}.map-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.legend{display:flex;gap:16px;font-size:11px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.dot.high{background:#e44949}.dot.medium{background:#e9a52b}.dot.low{background:#2ca879}.map-panel{padding:0;overflow:hidden;position:relative}#map{height:620px}.map-summary{position:absolute;z-index:500;bottom:20px;left:20px;background:#fff;padding:13px 16px;border-radius:10px;box-shadow:var(--shadow);max-width:300px}.map-summary b,.map-summary span{display:block}.map-summary span{font-size:10px;color:var(--muted);margin-top:4px}.timeline article{display:grid;grid-template-columns:125px 15px 1fr;gap:12px;min-height:60px}.timeline time{font-size:10px;color:var(--muted)}.timeline i{width:9px;height:9px;border:2px solid var(--blue);border-radius:50%;position:relative}.timeline i:after{content:'';position:absolute;width:1px;height:52px;background:var(--line);left:2px;top:9px}.timeline span,.timeline small{color:var(--muted)}.timeline small{display:block;margin-top:5px}.bottom-nav{display:none}.login-body{min-height:100vh;background:linear-gradient(135deg,#0e2a43,#1d5973);display:grid;place-items:center;padding:20px}.login-card{width:min(400px,100%);background:#fff;padding:35px;border-radius:20px;box-shadow:0 24px 70px #06172766;text-align:center}.login-card .brand-mark{margin:auto;color:#fff}.login-card h1{margin:16px 0 5px}.login-card .muted{margin-bottom:25px}.muted{color:var(--muted)}.login-card label{text-align:left;margin-bottom:14px}.login-card .check{margin:15px 0}.forgot{display:block;margin:18px 0;color:var(--blue);text-decoration:none;font-size:12px}.login-card small{color:var(--muted)}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.vehicle-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.app{margin-left:0}.topbar{height:76px;padding:13px 15px}.topbar h1{font-size:18px}.menu-toggle{display:inline-block;margin-right:7px}.topbar>div:first-child{display:grid;grid-template-columns:auto 1fr}.topbar p{grid-column:2}.top-actions .btn{display:none}.content{padding:15px 12px 85px}.alert{margin:12px}.mode-banner{align-items:flex-start;gap:12px}.mode-banner .btn{font-size:11px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:9px}.kpi{padding:14px}.kpi strong{font-size:23px}.grid.two,.request-board{grid-template-columns:1fr}.vehicle-grid{grid-template-columns:1fr}.panel{padding:14px}.bottom-nav{display:flex;position:fixed;inset:auto 0 0;background:#fff;border-top:1px solid var(--line);z-index:15;justify-content:space-around;padding:7px 2px max(7px,env(safe-area-inset-bottom))}.bottom-nav a{color:#718096;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:52px}.bottom-nav a.active{color:var(--blue)}.bottom-nav i{font-style:normal;font-size:19px}.bottom-nav small{font-size:9px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.search{min-width:0;flex:1}.action-row{gap:8px}.action-row .btn{white-space:nowrap}.inline-edit{grid-template-columns:1fr}.map-toolbar{align-items:flex-start;gap:12px;flex-direction:column}#map{height:65vh}.legend{font-size:10px}}
.quick-layout{display:grid;grid-template-columns:minmax(320px,560px) 1fr;gap:20px;align-items:start}.quick-panel{padding:28px}.quick-title{display:flex;gap:13px;align-items:center;margin-bottom:24px}.quick-title>span{width:42px;height:42px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:25px}.quick-title h2{margin:0;font-size:20px}.quick-title p{margin:5px 0 0;color:var(--muted);font-size:11px}.quick-panel form>label:not(.check){font-size:12px;margin-top:14px}.quick-panel input{font-size:16px;padding:13px}.location-box{display:flex;align-items:center;justify-content:space-between;background:var(--blue-faint);border:1px solid #dce5ed;border-radius:11px;padding:13px;margin-top:17px}.location-box b,.location-box small{display:block}.location-box small{color:var(--muted);margin-top:4px}.privacy-check{margin:13px 2px}.quick-save{font-size:15px;margin-top:20px;padding:14px}.privacy-note{text-align:center;color:var(--muted);font-size:10px;margin:14px 0 0}.mini-warning{background:#fff1d6;color:#9b6200;padding:9px 11px;border-radius:8px;margin-top:7px;font-size:11px}.recent-list article{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.recent-list article>span{width:36px;height:36px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:700}.recent-list b,.recent-list small{display:block}.recent-list small,.recent-list time{color:var(--muted);font-size:10px}.recent-list small{margin-top:4px}
@media(max-width:760px){.quick-layout{grid-template-columns:1fr}.quick-panel{padding:20px 16px}.recent-panel{display:none}}
.document-search{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.document-search .btn{height:46px}.lookup-message{padding:11px;border-radius:9px;margin-top:12px;background:#fff1d6;color:#956000}.roll-result{background:#eaf7f1;border:1px solid #cceade;border-radius:11px;padding:15px;margin:17px 0}.roll-result span,.roll-result strong,.roll-result small{display:block}.roll-result span{color:#087650;text-transform:uppercase;font-size:10px;font-weight:800}.roll-result strong{font-size:17px;margin:7px 0}.roll-result small{color:#587166}.new-badge{background:#eef3f8;color:#52677a;border-radius:8px;padding:10px;margin:17px 0 2px;font-size:11px;font-weight:700}#registrationFields>label{margin-top:14px}
.brand>span,.brand-mark{background:linear-gradient(135deg,var(--blue),var(--accent,#35b8d0))}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-form>label{margin-bottom:15px}.settings-form>.btn{margin-top:17px}.import-note{background:var(--blue-faint);border:1px solid var(--line);border-radius:10px;padding:13px}.import-note b,.import-note span{display:block}.import-note span{font-size:10px;color:var(--muted);margin-top:5px}.color-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.color-input{border:1px solid var(--line);border-radius:9px;padding:7px;margin-top:7px;display:flex;align-items:center;gap:7px}.color-input input{width:36px;height:32px;border:0;padding:0;margin:0}.color-input output{font-size:10px;color:var(--muted)}
.color-input .hex-input{flex:1;min-width:0;width:auto;margin:0;border:0;padding:4px 2px;font:inherit;font-size:13px;font-variant-numeric:tabular-nums;text-transform:uppercase;letter-spacing:.5px;color:var(--text);background:none}
.color-input .hex-input:focus{outline:2px solid var(--blue-soft);outline-offset:2px;border-radius:5px}.color-input .hex-input:invalid{color:#b42318}.theme-preview{height:120px;border:1px solid var(--line);border-radius:11px;display:grid;grid-template-columns:85px 1fr;overflow:hidden;margin-top:18px;background:#f4f6f9}.theme-preview aside{background:var(--navy)}.theme-preview>div{padding:18px}.theme-preview span{display:block;width:60%;height:9px;border-radius:8px;background:var(--accent);margin-bottom:12px}.theme-preview b{display:block}.theme-preview button{border:0;background:var(--blue);color:#fff;border-radius:6px;padding:7px 11px;font-size:9px;margin-top:15px}@media(max-width:850px){.settings-grid{grid-template-columns:1fr}}@media(max-width:520px){.color-grid{grid-template-columns:1fr}}
.zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.zone-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:var(--shadow)}.zone-card.disabled{opacity:.65}.zone-head{display:grid;grid-template-columns:12px 1fr auto;gap:11px;align-items:start}.zone-head>i{width:12px;height:42px;border-radius:6px}.zone-head h3{margin:2px 0 4px}.zone-head p{margin:0;color:var(--muted);font-size:10px}.zone-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:18px 0}.zone-stats div{text-align:center;background:#f5f8fb;padding:10px 4px;border-radius:8px}.zone-stats strong,.zone-stats span{display:block}.zone-stats strong{font-size:16px}.zone-stats span{font-size:8px;color:var(--muted);margin-top:3px}.zone-location{color:var(--muted);font-size:10px;border-top:1px solid var(--line);padding:12px 0}.zone-card footer{display:flex;justify-content:flex-end;gap:7px}.zone-card footer form{margin:0}.zone-capture{margin-top:14px}@media(max-width:1050px){.zone-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.zone-grid{grid-template-columns:1fr}}
.voted-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:20px}.voted-confirm{text-align:center;padding:30px}.voted-symbol{width:58px;height:58px;background:#dcf8eb;color:#087650;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:800;margin:auto}.voted-confirm h2{margin:14px 0 5px}.voted-confirm>p,.voted-confirm>small{color:var(--muted)}.voted-confirm form{text-align:left;max-width:400px;margin:22px auto}.voted-confirm form input{font-size:20px;padding:14px}.voted-confirm form .btn{margin-top:13px;padding:14px}.voted-confirm>small{display:block;font-size:9px}.turnout-panel{background:linear-gradient(125deg,var(--navy),var(--navy2));color:#fff;padding:30px}.turnout-panel>span{text-transform:uppercase;font-size:11px;color:rgba(255,255,255,.75);font-weight:700}.turnout-panel>strong{display:block;font-size:52px;margin:20px 0 0}.turnout-panel>p{color:rgba(255,255,255,.75)}.turnout-panel>div:last-child{font-size:12px;color:rgba(255,255,255,.86)}.turnout-bar{height:12px;background:#ffffff20;border-radius:8px;overflow:hidden;margin:28px 0 12px}.turnout-bar i{display:block;height:100%;background:var(--accent,#35b8d0);border-radius:8px}@media(max-width:760px){.voted-layout{grid-template-columns:1fr}.turnout-panel{order:-1}.turnout-panel>strong{font-size:40px}}
.user-actions{display:flex;gap:5px;align-items:center}.user-actions form{margin:0}.danger-btn{border-color:#ffd1d1;color:#b72f2f;background:#fff5f5}.btn:disabled{opacity:.45;cursor:not-allowed}
.whatsapp-btn{background:#25d366;color:#fff;border-color:#25d366}.whatsapp-btn:hover{background:#1faa52;border-color:#1faa52}

/* El atributo hidden siempre oculta, aunque la clase defina display (botones, formularios en grilla) */
[hidden]{display:none!important}
/* Tonos derivados del tema: siguen los colores elegidos en Configurar → Perfil visual */
@supports (color:color-mix(in srgb,red 50%,blue)){:root{--navy2:color-mix(in srgb,var(--navy) 70%,var(--accent));--blue-soft:color-mix(in srgb,var(--blue) 12%,#fff);--blue-faint:color-mix(in srgb,var(--blue) 4%,#fff)}}
.theme-presets{margin-bottom:15px}.theme-presets>span{display:block;font-size:12px;font-weight:600;margin-bottom:7px}.theme-presets>div{display:flex;flex-wrap:wrap;gap:7px}
.theme-presets button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:5px 11px 5px 5px;font:inherit;font-size:12px;cursor:pointer;color:var(--text)}
.theme-presets button:hover,.theme-presets button.active{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}.theme-presets i{width:22px;height:22px;border-radius:50%;display:block}
.contrast-warning{background:#fff2d9;color:#8c5900;border-radius:9px;padding:9px 12px;font-size:12px;margin:12px 0 0}

/* Afiliación partidaria */
.party-chip{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:800;letter-spacing:.3px;background:#eef2f7;color:#334155;margin:0 4px 4px 0}
.party-chip.anr{background:#c8102e;color:#fff}.party-chip.plra{background:#1d4ed8;color:#fff}.party-chip small{font-weight:600;opacity:.85;letter-spacing:0}
.party-chip button{border:0;background:none;color:inherit;cursor:pointer;padding:0 0 0 2px;font-size:14px;line-height:1}
.affiliation-card{border:1px solid var(--line);border-radius:11px;padding:15px;margin-top:14px;background:#fff}
.affiliation-card.aff-ok{border-color:#cceade;background:#f2fbf7}.affiliation-card.aff-other{border-color:#f5d9a8;background:#fffaf0}
.aff-head{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.aff-head>span{text-transform:uppercase;font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.4px}
.aff-message{margin:8px 0 0;font-size:13px;font-weight:600}.aff-ok .aff-message{color:#087650}.aff-other .aff-message{color:#8c5900}
.aff-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.aff-request{margin-top:10px;font-size:12px;color:var(--muted)}
.aff-form{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px;display:grid;gap:10px}.aff-form>label{font-size:12px}
.aff-verify{margin-top:12px;font-size:12px}.aff-verify summary{cursor:pointer;color:var(--blue);font-weight:600}.aff-verify-body{display:grid;gap:10px;margin-top:10px}
.aff-links{display:flex;gap:8px;flex-wrap:wrap}.aff-mark{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}
.aff-hint{font-size:11px;color:var(--muted);margin:0}.aff-error{color:#9f2929;font-size:12px;margin:0}
.affiliation-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
.aff-search{display:flex;gap:8px;margin-bottom:14px}.aff-search input{flex:1;min-width:0}
.aff-status-form{display:flex;gap:6px;align-items:center}.aff-status-form select{width:auto}.aff-status-form input{min-width:110px}
.cell-sub{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.party-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}.party-list li{display:flex;align-items:center;gap:6px}.party-list li .party-chip{margin:0}.party-list small{color:var(--muted);font-size:11px}
@media(max-width:1050px){.affiliation-layout{grid-template-columns:1fr}}
@media(max-width:760px){.aff-status-form{flex-wrap:wrap}.aff-status-form input{flex:1}.aff-mark{grid-template-columns:1fr}}

/* Tablero: encabezado, tarjetas agrupadas y afiliación. Todo toma los colores del Perfil visual */
@supports (color:color-mix(in srgb,red 50%,blue)){:root{--bg:color-mix(in srgb,var(--blue) 3%,#f3f5f8)}}
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--navy),var(--navy2));color:#fff;border-radius:18px;padding:26px 28px;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;box-shadow:var(--shadow)}
.hero::after{content:'';position:absolute;right:-70px;top:-90px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,var(--accent),transparent 68%);opacity:.35;pointer-events:none}
.hero>div{position:relative;z-index:1}.hero-kicker{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:rgba(255,255,255,.7);font-weight:700}
.hero h2{margin:7px 0 5px;font-size:25px}.hero p{margin:0;color:rgba(255,255,255,.8);font-size:13px}
.hero-actions{display:flex;gap:9px;flex-wrap:wrap}.btn.hero-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}.btn.hero-ghost:hover{background:rgba(255,255,255,.2)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:11px}
.stat header{display:flex;align-items:center;gap:10px}.stat header i{font-style:normal;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:17px;flex:none}
.stat header span{font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.4px;color:var(--muted)}
.stat strong{font-size:31px;line-height:1}.stat strong small{font-size:12px;color:var(--muted);font-weight:600;margin-left:6px}
.stat-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted);margin-top:auto}.stat-meta b{color:var(--text)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:1px;background:#cbd5e1}.dot.primary{background:var(--blue)}.dot.amber{background:#e9a52b}.dot.green{background:#13a471}.dot.red{background:#db4b4b}
.stat-progress{height:7px;border-radius:9px;background:#eef2f7;overflow:hidden}.stat-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--accent));border-radius:9px}
.info-note{background:var(--blue-faint);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:12px;margin-bottom:16px}.info-note a{color:var(--blue);font-weight:600}
.aff-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.aff-kpi{border:1px solid var(--line);border-radius:12px;padding:14px 15px;background:var(--blue-faint)}.aff-kpi span{display:block;font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:.4px;color:var(--muted)}
.aff-kpi strong{display:block;font-size:25px;margin:7px 0 3px}.aff-kpi small{font-size:11px;color:var(--muted)}
.aff-kpi.highlight{background:linear-gradient(135deg,var(--blue),var(--accent));border-color:transparent;color:#fff}.aff-kpi.highlight span,.aff-kpi.highlight small{color:rgba(255,255,255,.88)}
.party-anr{background:#c8102e}.party-plra{background:#1d4ed8}.party-other{background:#475569}.compo-other{background:#a3b1c2}.compo-none{background:var(--accent)}
.aff-compo{display:flex;height:12px;border-radius:9px;overflow:hidden;background:#eef2f7}.aff-compo i{display:block;height:100%}
.aff-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11px;color:var(--muted);margin:9px 0 20px}.aff-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.aff-dash-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:24px}.aff-dash-grid h3{font-size:13px;margin:0 0 12px}
.funnel{display:grid;gap:9px;margin-bottom:12px}.funnel div{display:grid;grid-template-columns:120px 1fr 56px;gap:10px;align-items:center;font-size:12px}
.funnel em{display:block;height:24px;border-radius:7px;background:linear-gradient(90deg,var(--blue),var(--accent))}.funnel b{text-align:right}
.aff-dash table.compact-table{min-width:0}.compact-table th,.compact-table td{padding:9px 8px}
.share{display:flex;align-items:center;gap:7px;min-width:90px}.share i{flex:1;height:6px;border-radius:6px;background:#eef2f7;overflow:hidden;display:block}.share i b{display:block;height:100%}
.view-tabs{display:flex;gap:4px;background:#eef2f7;padding:4px;border-radius:11px;width:max-content;max-width:100%;overflow:auto;margin-bottom:18px}
.view-tabs a{padding:8px 14px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}.view-tabs a.active{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(16,42,67,.12)}
@media(max-width:1050px){.stat-grid,.aff-kpis{grid-template-columns:repeat(2,1fr)}.aff-dash-grid{grid-template-columns:1fr}}
@media(max-width:760px){.hero{flex-direction:column;align-items:flex-start;padding:20px}.hero h2{font-size:21px}.stat-grid{gap:9px}.stat{padding:14px}.stat strong{font-size:25px}.aff-kpi strong{font-size:21px}.funnel div{grid-template-columns:96px 1fr 44px}}
@media(max-width:420px){.stat-grid,.aff-kpis{grid-template-columns:1fr}}
