:root{
  --pl-navy:#102f87;
  --pl-blue:#173d9f;
  --pl-blue-2:#245dcc;
  --pl-orange:#ff861b;
  --pl-orange-dark:#e96f08;
  --pl-bg:#f3f6fb;
  --pl-border:#dce3ef;
  --pl-text:#172554;
  --pl-muted:#6b7280;
  --pl-green:#27a36a;
  --pl-red:#dc3545;
  --pl-yellow:#f0a500;
}

*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--pl-bg);color:var(--pl-text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}

/* Cabeçalho */
.navbar.bg-dark{background:linear-gradient(90deg,var(--pl-navy),var(--pl-blue))!important;border-bottom:4px solid var(--pl-orange);min-height:66px}
.navbar .navbar-brand{font-size:1.2rem;letter-spacing:.2px}
.navbar .navbar-brand:hover{color:#fff}
.navbar .text-white{font-weight:600}

main.container-fluid{max-width:1600px;margin:0 auto;padding-left:24px!important;padding-right:24px!important}

/* Cards */
.card,.kpi{border:1px solid var(--pl-border)!important;border-radius:14px!important;background:#fff;box-shadow:0 4px 16px rgba(16,47,135,.08)!important}
.card{overflow:hidden}
.card-header{background:#f7f9fd;border-bottom:1px solid var(--pl-border);font-weight:700;color:var(--pl-navy)}
.card:hover{box-shadow:0 7px 22px rgba(16,47,135,.11)!important}
.municipio-card{min-height:180px;border:1px solid var(--pl-border)!important;border-radius:16px!important;transition:.16s;box-shadow:0 5px 18px rgba(16,47,135,.08)!important}
.municipio-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(16,47,135,.14)!important;border-color:#b9c8e8!important}


/* Página inicial */
.index-logo{padding:4px 0 2px}
.logo-navegantes{display:inline-block;max-width:280px;width:auto;height:auto;max-height:95px;object-fit:contain}

/* Títulos */
h1,h2,h3,h4,h5,h6{color:var(--pl-navy);font-weight:750}
h2{letter-spacing:-.3px}
.small-muted{font-size:.84rem;color:var(--pl-muted)!important}

/* Botões */
.btn{border-radius:8px;font-weight:600}
.btn-dark{background:var(--pl-navy)!important;border-color:var(--pl-navy)!important}
.btn-dark:hover{background:#0b2469!important;border-color:#0b2469!important}
.btn-primary{background:var(--pl-blue-2)!important;border-color:var(--pl-blue-2)!important}
.btn-primary:hover{background:var(--pl-navy)!important;border-color:var(--pl-navy)!important}
.btn-warning{background:var(--pl-orange)!important;border-color:var(--pl-orange)!important;color:#fff!important}
.btn-warning:hover{background:var(--pl-orange-dark)!important;border-color:var(--pl-orange-dark)!important;color:#fff!important}
.btn-outline-primary{color:var(--pl-blue)!important;border-color:var(--pl-blue)!important}
.btn-outline-primary:hover{background:var(--pl-blue)!important;color:#fff!important}
.btn-outline-danger{border-width:1px}

/* KPI */
.kpi{padding:18px;position:relative;overflow:hidden}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pl-orange)}
.kpi .value{font-size:1.8rem;font-weight:800;color:var(--pl-navy)}

/* Formulários */
.form-control,.form-select{border:1px solid #cbd5e1;border-radius:8px;min-height:42px;color:#1e293b}
.form-control:focus,.form-select:focus{border-color:var(--pl-blue-2);box-shadow:0 0 0 .2rem rgba(36,93,204,.14)}
.form-label{font-weight:650;color:var(--pl-navy)}

/* Alertas */
.alert{border-radius:10px;border:1px solid transparent}
.alert-success{background:#edf9f2;border-color:#bde7cf;color:#17663f}
.alert-warning{background:#fff7e8;border-color:#ffd999;color:#8a5900}
.alert-danger{background:#fff0f1;border-color:#f3b7bd;color:#9b1c27}
.alert-info{background:#eef5ff;border-color:#bfd5ff;color:#174a9c}

/* Navegação / abas */
.nav-pills .nav-link{border-radius:8px;color:var(--pl-navy);font-weight:650}
.nav-pills .nav-link.active{background:var(--pl-orange)!important;color:#fff!important}
.nav-tabs{border-bottom-color:var(--pl-border)}
.nav-tabs .nav-link{color:var(--pl-navy);font-weight:650;border:0;border-bottom:3px solid transparent}
.nav-tabs .nav-link.active{color:var(--pl-navy);border-bottom-color:var(--pl-orange);background:#fff}

/* Tabelas */
.table{color:#1e293b;margin-bottom:0}
.table thead th{background:var(--pl-navy);color:#fff;border-color:var(--pl-navy);font-weight:700;vertical-align:middle}
.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:#f7f9fd}
.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:#eef4ff}
.table td,.table th{border-color:#e3e8f0}
.table-responsive{border-radius:10px;border:1px solid var(--pl-border);background:#fff}
.sticky-head{position:sticky;top:0;z-index:5}
.table-votes th{white-space:nowrap}

/* Status */
.status-ok{color:var(--pl-green)!important;font-weight:650}
.status-warn{color:var(--pl-yellow)!important;font-weight:650}
.status-error{color:var(--pl-red)!important;font-weight:650}

/* Página pública */
.public-planilha-wrap{width:100%;overflow-x:auto}
.public-planilha{width:100%;table-layout:fixed;margin:0;font-size:.78rem}
.public-planilha th,.public-planilha td{padding:.28rem .22rem;vertical-align:middle;overflow:hidden}
.public-planilha th:first-child,.public-planilha td:first-child{width:52px;text-align:center}
.public-planilha th:nth-child(2),.public-planilha td:nth-child(2){width:145px}
.public-planilha .candidate-col{width:68px;text-align:center}
.public-planilha .extra-col{width:58px;text-align:center}
.public-planilha thead th{white-space:normal;line-height:1.08;word-break:break-word}
.public-planilha thead th small{font-size:.66rem;display:block;line-height:1.05;white-space:normal;overflow-wrap:anywhere}
.public-planilha tbody td:nth-child(n+3),.public-planilha tfoot th:nth-child(n+3){text-align:center}
.public-planilha .sticky-col{position:sticky;left:0;z-index:3;background:var(--bs-table-bg,#fff)}
.public-planilha thead .sticky-col{z-index:4;background:var(--pl-navy)}

/* Scanner */
.scanner{max-width:720px;margin:auto}
.qr-box{border:2px dashed #aeb9c9;border-radius:14px;padding:12px;background:#fff}
.camera-container{max-width:100%;padding:8px;position:relative;overflow:hidden}
.camera-container #reader{width:100%!important;max-width:none!important}
.camera-container #reader__scan_region{min-height:0!important}
.camera-container #reader video{display:block;width:100%!important;height:auto!important;min-height:340px;aspect-ratio:4/3;object-fit:contain;background:#111;border-radius:12px}
.camera-container #reader__dashboard{padding:8px 0 0!important}
.camera-container #reader__dashboard_section_csr button{font-size:.9rem}
.camera-guide{position:absolute;left:8%;right:8%;top:50%;height:auto;aspect-ratio:1/1;transform:translateY(-50%);border:2px solid rgba(255,255,255,.95);border-radius:14px;pointer-events:none;box-shadow:0 0 0 9999px rgba(0,0,0,.08)}
.camera-guide span{position:absolute;left:50%;bottom:-34px;transform:translateX(-50%);white-space:nowrap;background:rgba(16,47,135,.92);color:#fff;border-radius:8px;padding:6px 10px;font-size:.72rem;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.camera-note{font-size:.85rem;color:var(--pl-muted)}

/* Rodapé */
footer{color:#64748b!important;border-top:1px solid var(--pl-border);background:#fff;margin-top:24px}

/* Links */
a{color:var(--pl-blue);text-decoration-color:rgba(23,61,159,.25)}
a:hover{color:var(--pl-orange-dark)}

@media (min-width:1200px){
  .public-planilha{font-size:.8rem}
  .public-planilha .candidate-col{width:72px}
  .public-planilha .extra-col{width:62px}
}
@media(max-width:767.98px){
  main.container-fluid{padding-left:12px!important;padding-right:12px!important}
  .navbar.bg-dark{min-height:58px}
  .navbar .navbar-brand{font-size:1rem}
  .public-planilha{font-size:.66rem}
  .public-planilha th,.public-planilha td{padding:.2rem .12rem}
  .public-planilha th:first-child,.public-planilha td:first-child{width:42px}
  .public-planilha th:nth-child(2),.public-planilha td:nth-child(2){width:100px}
  .public-planilha .candidate-col{width:54px}
  .public-planilha .extra-col{width:48px}
  .public-planilha thead th small{font-size:.56rem}
  .camera-container{padding:4px}
  .camera-container #reader video{min-height:360px}
  .camera-guide{left:6%;right:6%}
}


/* Bandeira do Brasil no título da apuração geral */
.titulo-bandeira-brasil{display:inline-flex;vertical-align:-4px;width:30px;height:22px;margin-right:6px;align-items:center;justify-content:center}
.titulo-bandeira-brasil img{display:block;width:30px;height:22px;object-fit:contain}
