*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f4f5f7;--surface:#fff;--surface2:#f0f2f5;
  --border:rgba(0,0,0,.08);--border2:rgba(0,0,0,.14);
  --text:#1a1a2e;--text2:#5a6070;--text3:#9aa0ad;
  --blue:#2563eb;--blue-l:#dbeafe;--blue-m:#93c5fd;
  --green:#059669;--green-l:#d1fae5;
  --amber:#d97706;--amber-l:#fef3c7;
  --font:'Segoe UI',system-ui,-apple-system,sans-serif;
  --r:10px;--rl:14px;
  --sh:0 1px 4px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.04);
}
@media(prefers-color-scheme:dark){:root{
  --bg:#0f1117;--surface:#1a1d27;--surface2:#22263a;
  --border:rgba(255,255,255,.07);--border2:rgba(255,255,255,.13);
  --text:#e8eaf0;--text2:#8b93a8;--text3:#545c70;
  --blue-l:#1e3a5f;--green-l:#064e3b;--amber-l:#451a03;
  --sh:0 1px 4px rgba(0,0,0,.3),0 4px 16px rgba(0,0,0,.2);
}}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh}

/* HEADER */
.header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 32px;display:flex;align-items:center;justify-content:space-between;height:60px;position:sticky;top:0;z-index:10}
.hlogo{width:32px;height:32px;background:var(--blue);border-radius:8px;display:flex;align-items:center;justify-content:center}
.hlogo svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2}
.header h1{font-size:16px;font-weight:600;color:var(--text);margin-left:10px}
.hright{display:flex;align-items:center;gap:10px}
.sync-btn{display:flex;align-items:center;gap:6px;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}
.sync-btn:hover{opacity:.88}
.sync-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.sync-btn.loading svg{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.last-sync{font-size:12px;color:var(--text3)}
.main{padding:20px 32px 40px;max-width:1300px;margin:0 auto}
@media(max-width:600px){.main{padding:12px 14px 32px}.header{padding:0 14px}}

/* FILTROS */
.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:14px 18px;margin-bottom:20px;box-shadow:var(--sh);display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.filter-label{font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fbtn{font-size:12px;font-weight:600;padding:5px 13px;border-radius:20px;border:1.5px solid var(--border2);background:transparent;color:var(--text2);cursor:pointer;transition:all .15s;white-space:nowrap}
.fbtn:hover{border-color:var(--blue);color:var(--blue)}
.fbtn.active{background:var(--blue);border-color:var(--blue);color:#fff}
.filter-sep{width:1px;height:24px;background:var(--border2);margin:0 4px}
.fselect{font-size:12px;font-weight:500;padding:5px 10px;border-radius:8px;border:1.5px solid var(--border2);background:var(--surface);color:var(--text);cursor:pointer;outline:none}
.fselect:focus{border-color:var(--blue)}
.filter-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.vendedor-filter{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* ALERT */
.alert{border-radius:var(--r);padding:12px 16px;font-size:13px;margin-bottom:18px;display:none;line-height:1.7}
.alert.show{display:block}
.aw{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c}
.debug-box{display:none;font-size:11px;font-family:'Courier New',monospace;background:var(--surface2);border:1px solid var(--border2);border-radius:8px;padding:12px;margin-bottom:16px;overflow-x:auto;color:var(--text2);white-space:pre-wrap;word-break:break-all;line-height:1.6}

/* MÉTRICAS */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.metrics{grid-template-columns:1fr}}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:18px 20px;box-shadow:var(--sh);position:relative;overflow:hidden}
.metric::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--acc,var(--blue))}
.mic{width:36px;height:36px;border-radius:9px;background:var(--ibg,var(--blue-l));display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.mic svg{width:18px;height:18px;fill:none;stroke:var(--ic,var(--blue));stroke-width:2}
.mlabel{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.mval{font-size:26px;font-weight:700;color:var(--text);letter-spacing:-.02em;line-height:1;margin-bottom:4px}
.msub{font-size:12px;color:var(--text2)}
.mperiod{font-size:10px;color:var(--text3);margin-top:2px}

/* GRID */
.g2{display:grid;grid-template-columns:5fr 4fr;gap:14px;margin-bottom:14px}
@media(max-width:900px){.g2{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:20px 22px;box-shadow:var(--sh)}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.ct{font-size:13px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:7px}
.ct svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.cbadge{font-size:11px;font-weight:600;background:var(--green-l);color:var(--green);border-radius:20px;padding:2px 10px}

/* RANKING */
.ri{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.ri:last-child{border-bottom:none;padding-bottom:0}
.rpos{font-size:13px;font-weight:700;width:24px;text-align:center;flex-shrink:0}
.rav{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.rinfo{flex:1;min-width:0}
.rname{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rbw{height:3px;background:var(--surface2);border-radius:2px;margin-top:4px}
.rb{height:3px;border-radius:2px}
.rmeta{font-size:11px;color:var(--text3);margin-top:3px}
.rval{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}
.empty{text-align:center;padding:2rem 1rem;color:var(--text3);font-size:13px}

/* TABELA */
.stitle{font-size:13px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 12px;display:flex;align-items:center;gap:8px}
.stitle::after{content:'';flex:1;height:1px;background:var(--border2)}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;padding:0 12px 10px;text-align:left;border-bottom:1px solid var(--border2)}
td{padding:9px 12px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--surface2)}
.badge{display:inline-flex;align-items:center;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600}
.bg{background:var(--green-l);color:var(--green)}.ba{background:var(--amber-l);color:var(--amber)}
.footer{text-align:center;font-size:11px;color:var(--text3);margin-top:32px;padding-bottom:16px}

/* PERÍODO ATIVO */
.period-tag{font-size:11px;background:var(--blue-l);color:var(--blue);border-radius:20px;padding:3px 10px;font-weight:600}

/* ===== extras do sistema ===== */
[hidden]{display:none!important}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);box-shadow:var(--sh);padding:32px;width:100%;max-width:360px}
.login-box h1{font-size:20px;margin:14px 0 4px}
.login-box p{font-size:13px;color:var(--text2);margin-bottom:20px}
label.f{display:block;font-size:12px;font-weight:600;color:var(--text2);margin:0 0 5px}
.inp{width:100%;font:inherit;font-size:14px;padding:9px 12px;border-radius:8px;border:1.5px solid var(--border2);background:var(--surface);color:var(--text);outline:none}
.inp:focus{border-color:var(--blue)}
.field{margin-bottom:14px}
.btn{font:inherit;font-size:13px;font-weight:600;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:10px 18px;cursor:pointer}
.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:wait}
.btn.sec{background:transparent;color:var(--text2);border:1.5px solid var(--border2)}
.btn.sm{padding:5px 10px;font-size:12px}
.btn.danger{background:#dc2626}
.err{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:14px}
.ok{background:var(--green-l);border:1px solid var(--green);color:var(--green);border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.grid2{grid-template-columns:1fr}}
.chk{display:flex;align-items:center;gap:8px;font-size:14px;margin:6px 0}
.chk input{width:18px;height:18px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.note{font-size:12px;color:var(--text2);margin-top:12px;line-height:1.5}
.who{font-size:13px;color:var(--text2)}
dialog{border:1px solid var(--border2);border-radius:var(--rl);background:var(--surface);color:var(--text);padding:24px;width:min(560px,94vw)}
dialog::backdrop{background:rgba(0,0,0,.45)}
.actions{display:flex;gap:6px}
.right{text-align:right}
.audit{font-size:12px;color:var(--text2)}

textarea.inp{resize:vertical;font-family:inherit}
tr.canc td{background:#fef2f2;color:#b91c1c}
tr.canc td .badge.bg,tr.canc td .badge.ba{background:#fee2e2;color:#b91c1c}
tr.canc:hover td{background:#fee2e2}
.badge.br{background:#fee2e2;color:#b91c1c}
@media(prefers-color-scheme:dark){tr.canc td{background:#3b1414;color:#fca5a5}tr.canc:hover td{background:#4a1a1a}.badge.br{background:#5b1f1f;color:#fca5a5}}

.req{color:#dc2626;font-weight:700}
.inp.bad{border-color:#dc2626;background:#fef2f2}
@media(prefers-color-scheme:dark){.inp.bad{background:#3b1414}}
.badge.bn{background:var(--surface2);color:var(--text2)}
tr.canc td .badge.bn{background:#fee2e2;color:#b91c1c}
