.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 16px;display:grid}.stat-card{text-align:center;background:#fff;border-radius:15px;flex-direction:column;align-items:center;padding:14px 9px 12px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 6px 18px #b8702a1f,0 2px 6px #17285f0f}.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px #b8702a29,0 4px 10px #17285f14}.stat-seal{background:var(--sky);border-radius:999px;justify-content:center;align-items:center;min-width:54px;height:54px;margin-bottom:8px;padding:0 8px;display:inline-flex;position:relative}.stat-seal:before{content:"";border:4px solid var(--yellow);clip-path:inset(0 0 55%);border-radius:999px;position:absolute;inset:-4px}.stat-card b{font-family:var(--font-mono);color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:15px;font-weight:800;line-height:1.1;display:block}.stat-card p{color:var(--muted);font-size:8.5px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;margin:2px 0 0;line-height:1.25}.progress-stats{grid-template-columns:repeat(2,1fr);gap:10px;margin:4px 0 16px;display:grid}.progress-stats .stat-card{grid-column:span 1}.progress-card{color:#fff;border-radius:16px;grid-column:span 2;padding:15px}.progress-card.blue{background:var(--blue)}.progress-card.navy{background:var(--navy)}.progress-card-top{align-items:center;gap:11px;margin-bottom:11px;display:flex}.progress-chip{color:#fff;background:#fff3;border-radius:11px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.progress-card b{font-size:13.5px;font-family:var(--font);color:#fff;display:block}.progress-card small{opacity:.85;color:#fff;font-size:10.5px}.progress-bar{background:#ffffff2a;border-radius:99px;height:7px;overflow:hidden}.progress-bar i{background:var(--yellow);border-radius:99px;height:100%;display:block}.progress-pct{color:#fff;justify-content:space-between;margin-top:7px;font-size:10.5px;font-weight:700;display:flex}@media (max-width:520px){.progress-stats{grid-template-columns:1fr 1fr}}.badge{font-size:10px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;flex:none;align-items:center;padding:4px 10px;display:inline-flex}.badge.ok{color:#0f6b3a;background:#e3faf0}.badge.danger{color:#a3231e;background:#fff0ef}.badge.neutral{color:var(--muted);background:#eef3f8}.voter-row .badge.sm{font-size:12.5px;font-family:var(--font);text-transform:none;letter-spacing:0;padding:4px 10px;font-weight:700}.voter-row.compact-row{justify-content:space-between;gap:8px;padding:9px 14px}.voter-row.compact-row b{font-size:12.5px;font-weight:700}.voter-row.compact{padding:8px 12px}.voter-row.compact .avatar{width:28px;height:28px;font-size:12px}.voter-row.compact b{font-size:12px}.voter-row.compact p{font-size:10.5px}.export-row{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.ext-btn{background:linear-gradient(155deg, #1177bf, var(--blue));color:#fff;font-size:12.5px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border:0;border-radius:12px;padding:12px 16px;transition:transform .1s,box-shadow .15s,opacity .15s;box-shadow:0 5px 14px #0c5f9e47}.ext-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #0c5f9e57}.ext-btn:active:not(:disabled){transform:translateY(0)}.ext-btn.secondary{color:var(--navy);box-shadow:none;background:#eaf3fb}.ext-btn.warn{color:#fff;background:#e04b3f;box-shadow:0 5px 14px #e04b3f4d}.ext-btn.full{width:100%}.ext-btn:disabled{opacity:.5;cursor:default}.bell-btn{color:#fff;cursor:pointer;background:#ffffff19;border:0;border-radius:10px;place-items:center;width:40px;height:40px;transition:background .15s;display:grid;position:relative}.bell-btn:hover:not(:disabled){background:#ffffff30}.bell-btn:disabled{opacity:.5;cursor:default}.bell-badge{background:var(--gold);color:#3a2f05;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 3px;font-size:10px;font-weight:800;display:grid;position:absolute;top:-4px;right:-4px}.bell-semaforo{border:2px solid var(--navy);border-radius:50%;width:11px;height:11px;position:absolute;bottom:-2px;right:-2px}.bell-semaforo-inline{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.bell-popover-backdrop{z-index:39;position:fixed;inset:0}.bell-popover{z-index:40;background:#fff;border-radius:14px;width:min(260px,82vw);padding:10px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 16px 34px #17285f38}.bell-popover-row{width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:9px 6px;font-size:12.5px;display:flex}.bell-popover-row:hover{background:#f2f5fa}.bell-popover-divider{background:#edf1f5;height:1px;margin:4px 0}.bell-popover-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 6px 2px;font-size:10.5px;font-weight:700}.bell-popover-status{margin:8px 6px 2px;font-size:11.5px;font-weight:700}.log-list{gap:8px;display:grid}.log-row{background:#fff;border-radius:13px;align-items:center;gap:10px;padding:11px 13px;transition:box-shadow .15s;display:flex;box-shadow:0 3px 12px #b8702a1a,0 1px 4px #17285f0d}.log-row:hover{box-shadow:0 6px 18px #b8702a24,0 2px 6px #17285f12}.log-row b{font-size:12px}.log-row p{color:var(--muted);margin:3px 0 0;font-size:11px}.config-tabs{flex-wrap:wrap;gap:8px;margin:4px 0 18px;display:flex}.config-tabs button{min-width:84px;color:var(--navy);font-size:12px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:#eaf3fb;border:0;border-radius:12px;flex:auto;padding:12px 10px;transition:background .15s,color .15s}.config-tabs button.active{background:var(--navy);color:#fff}.config-tabs button:hover:not(.active){background:#dcedf9}.config-tab-sub{letter-spacing:.06em;opacity:.65;margin-top:2px;font-size:9.5px;font-weight:600;display:block}.link-row{background:#fff;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px;transition:box-shadow .15s;display:flex;box-shadow:0 3px 12px #b8702a1a,0 1px 4px #17285f0d}.link-row:hover{box-shadow:0 6px 18px #b8702a24,0 2px 6px #17285f12}.link-row b{color:var(--navy);font-size:14px}.link-row p{color:var(--muted);margin:4px 0 8px;font-size:12px}.link-row code{color:var(--blue);word-break:break-all;background:#f2f8fc;border-radius:8px;padding:6px 9px;font-size:11px;display:block}.ext-note{color:var(--muted);margin:14px 2px 0;font-size:12px;line-height:1.5}.calendar{background:#fff;border-radius:18px;padding:14px;box-shadow:0 6px 18px #b8702a1f,0 2px 6px #17285f0f}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-head b{text-transform:capitalize;color:var(--navy);font-size:14px}.calendar-head button{color:var(--navy);cursor:pointer;background:#eaf3fb;border:0;border-radius:8px;width:30px;height:30px;font-size:16px;transition:background .15s}.calendar-head button:hover{background:#dcedf9}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekdays span{color:var(--muted);padding-bottom:6px;font-size:10px;font-weight:800}.calendar-day{color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 0;font-size:12px;font-weight:700;transition:background .15s;position:relative}.calendar-day:hover{background:#f2f8fc}.calendar-day.today{background:var(--sky);color:var(--navy)}.calendar-day.selected{background:var(--navy);color:#fff}.calendar-dot{background:var(--orange);border-radius:50%;width:5px;height:5px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.calendar-day.selected .calendar-dot{background:#fff}.map-filters{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.map-filter-btn{font-size:11px;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;background:#fff;border:1.5px solid;border-radius:999px;padding:7px 14px;transition:transform .1s}.map-filter-btn:hover{transform:translateY(-1px)}.map-add-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.map-add-row .active-add{background:var(--orange);color:#4a2c00}.map-wrap{border-radius:18px;overflow:hidden;box-shadow:0 6px 18px #b8702a1f,0 2px 6px #17285f0f}.map-wrap .leaflet-container{z-index:1}.scroll-top-btn{right:18px;bottom:calc(22px + env(safe-area-inset-bottom));background:var(--navy);color:#fff;cursor:pointer;z-index:40;border:0;border-radius:50%;place-items:center;width:46px;height:46px;transition:transform .15s,box-shadow .15s;display:grid;position:fixed;box-shadow:0 10px 24px #17285f59}.scroll-top-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px #17285f66}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.module-card,.voter-row,.user-row,.search-card,.user-form{transition:transform .15s,box-shadow .15s;box-shadow:0 6px 18px #b8702a1a,0 2px 6px #17285f0f!important}.module-card:hover,.voter-row:hover,.user-row:hover{transform:translateY(-2px);box-shadow:0 12px 26px #b8702a29,0 4px 10px #17285f14!important}.login-card,.ext-login-card{box-shadow:0 24px 60px #b8702a29,0 4px 16px #17285f1a!important}@media (max-width:480px){.config-tabs button{min-width:72px;padding:10px 8px;font-size:10px}.export-row .ext-btn{flex:auto}}
