:root{--primary:#635bff;--primary-dark:#4b43df;--sidebar:#101526;--surface:#fff;--bg:#f4f6fb;--text:#20243a;--muted:#7a8097;--border:#e8eaf1}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(180deg,#11172a,#0b1020);color:#fff;display:flex;flex-direction:column;z-index:1040;transition:.25s}.brand{height:78px;display:flex;align-items:center;gap:12px;padding:0 24px;font-size:1.1rem;font-weight:800;border-bottom:1px solid rgba(255,255,255,.07)}.brand-icon{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#756fff,#9a6bff);display:grid;place-items:center}.sidebar-nav{padding:18px 14px;gap:5px}.sidebar-nav .nav-link{color:#aeb5cc;display:flex;align-items:center;gap:12px;border-radius:12px;padding:11px 13px;font-weight:600}.sidebar-nav .nav-link:hover,.sidebar-nav .nav-link.active{color:#fff;background:rgba(99,91,255,.22)}.nav-section{padding:17px 12px 7px;color:#687089;text-transform:uppercase;font-size:.7rem;font-weight:800;letter-spacing:.12em}.sidebar-footer{margin-top:auto;padding:16px}.sidebar-footer a{color:#ff9a9a;text-decoration:none;display:flex;gap:12px;padding:12px}.main-area{margin-left:260px;width:calc(100% - 260px)}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:16px;position:sticky;top:0;z-index:1020}.topbar h1{font-size:1.15rem;margin:0;font-weight:800}.topbar small{color:var(--muted)}.menu-btn{display:none;font-size:1.6rem}.user-box{margin-left:auto;display:flex;align-items:center;gap:10px}.avatar{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--primary),#9f75ff);color:#fff;display:grid;place-items:center;font-weight:800}.user-info{display:flex;flex-direction:column;font-size:.85rem}.user-info span{color:var(--muted);font-size:.72rem}.content{padding:28px}.stat-card,.panel-card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 30px rgba(31,38,88,.05)}.stat-card{padding:22px;display:flex;align-items:center;justify-content:space-between}.stat-card .icon{width:52px;height:52px;border-radius:16px;background:#efefff;color:var(--primary);display:grid;place-items:center;font-size:1.35rem}.stat-card h3{font-size:1.7rem;font-weight:800;margin:4px 0}.stat-card p{color:var(--muted);margin:0}.panel-card{padding:22px}.table{--bs-table-bg:transparent}.table thead th{color:#787f96;font-size:.78rem;text-transform:uppercase;border-bottom-color:var(--border)}.table td{vertical-align:middle;border-bottom-color:#f0f1f5}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.form-control,.form-select{border-radius:11px;border-color:#dde0e9;padding:.72rem .85rem}.modal-content{border:0;border-radius:18px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#8d7cff 0,transparent 30%),linear-gradient(135deg,#0d1223,#181f38)}.login-card{width:min(430px,92vw);background:rgba(255,255,255,.98);padding:34px;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.login-logo{width:62px;height:62px;border-radius:20px;background:linear-gradient(135deg,var(--primary),#a372ff);display:grid;place-items:center;color:#fff;font-size:1.7rem;margin-bottom:20px}.sidebar-overlay{display:none}@media(max-width:991px){.sidebar{transform:translateX(-100%)}.sidebar.show{transform:translateX(0)}.main-area{margin-left:0;width:100%}.menu-btn{display:inline-flex}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1030}.user-info{display:none}.content{padding:18px}.topbar{padding:0 16px}.topbar small{display:none}}

/* Identidade visual Fiscal On */
.brand{height:112px;padding:14px 18px;justify-content:center;background:rgba(255,255,255,.98)}
.brand-logo{display:block;width:100%;max-width:205px;max-height:84px;object-fit:contain}
.login-brand{display:flex;justify-content:center;align-items:center;margin:0 auto 22px}
.login-brand img{display:block;width:min(290px,82%);max-height:190px;object-fit:contain}
.login-card{text-align:left}
.login-card>h2,.login-card>p{text-align:center}
@media(max-width:991px){.brand{height:100px}.brand-logo{max-width:185px;max-height:74px}}

/* Relatório de votos */
.resumo-voto-card{height:100%;min-height:130px;padding:22px;border-radius:18px;color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 12px 30px rgba(15,36,70,.12);overflow:hidden;position:relative}.resumo-voto-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.1);right:-32px;bottom:-45px}.resumo-voto-card span{display:block;font-size:.83rem;opacity:.88;font-weight:650}.resumo-voto-card strong{display:block;font-size:2rem;line-height:1.1;margin-top:8px}.resumo-voto-card>i{font-size:2rem;opacity:.88;z-index:1}.resumo-voto-card.azul{background:linear-gradient(135deg,#0d4c7f,#1268a3)}.resumo-voto-card.verde{background:linear-gradient(135deg,#087a48,#0aa763)}.resumo-voto-card.cinza{background:linear-gradient(135deg,#5c6572,#7b8796)}.resumo-voto-card.vermelho{background:linear-gradient(135deg,#b72e3c,#df4a59)}.resumo-voto-card.roxo{background:linear-gradient(135deg,#5a42a8,#7b5bc7)}.chart-wrap{height:430px}.ranking-lista{display:flex;flex-direction:column;gap:10px}.ranking-item{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:14px}.ranking-item .posicao{width:34px;height:34px;border-radius:11px;background:#edf5fb;color:#0d4c7f;display:grid;place-items:center;font-weight:800}.ranking-item div{min-width:0}.ranking-item strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-item small{display:block;color:var(--muted);font-size:.72rem}.ranking-item b{font-size:1rem;color:#0b8f55}.empty-report{height:380px;display:grid;place-items:center;align-content:center;color:var(--muted);text-align:center}.empty-report i{font-size:3rem;margin-bottom:10px}.filtro-relatorio{padding:18px}@media(max-width:575px){.resumo-voto-card{min-height:110px}.resumo-voto-card strong{font-size:1.7rem}.chart-wrap{height:360px}}@media print{.sidebar,.topbar,.filtro-relatorio,.btn{display:none!important}.main-area{margin:0!important;width:100%!important}.content{padding:0!important}.panel-card,.resumo-voto-card{box-shadow:none!important;break-inside:avoid}.chart-wrap{height:360px}}
