:root{
    --bg:#f4f7f2;
    --card:#ffffff;
    --ink:#172018;
    --muted:#667064;
    --line:#dfe7dc;
    --primary:#285c38;
    --primary-2:#3d7a4c;
    --accent:#c9a33d;
    --danger:#b42318;
    --danger-bg:#fff0ed;
    --soft:#edf5eb;
    --shadow:0 12px 35px rgba(31,45,34,.09);
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Roboto,Arial,sans-serif;font-size:14px;}
a{color:inherit;text-decoration:none}.topbar{height:auto;min-height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px;padding:10px 26px;position:sticky;top:0;z-index:10;box-shadow:0 4px 16px rgba(0,0,0,.04)}
.brand{display:flex;align-items:center;gap:12px;min-width:285px}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:white;display:grid;place-items:center;font-weight:900;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)}.brand-mark.big{width:72px;height:72px;border-radius:22px;font-size:34px;margin:auto}
nav{display:flex;gap:8px;flex:1 1 100%;flex-wrap:wrap;order:3}nav a,.userbox a,.button,button{border:0;border-radius:12px;padding:10px 14px;background:transparent;color:var(--ink);font-weight:700;cursor:pointer}nav a:hover,.userbox a:hover,.button.secondary,button.secondary{background:var(--soft)}.userbox{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;margin-left:auto;flex-wrap:wrap}.container{max-width:1480px;margin:0 auto;padding:28px}.login-container{max-width:980px;padding-top:8vh}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.page-head h1{margin:0;font-size:30px}.page-head p{margin:6px 0 0;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:20px}.flash-stack{display:grid;gap:8px;margin-bottom:16px}.flash{padding:12px 16px;border-radius:14px;background:var(--soft);border:1px solid var(--line);font-weight:700}.flash.danger{background:var(--danger-bg);color:var(--danger)}.flash.success{background:#eaf7ec;color:#12652c}.flash.warning{background:#fff8df;color:#7c5a00}
.login-card{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}.login-hero{text-align:center}.login-hero h1{font-size:42px;margin:16px 0 8px}.login-hero p{color:var(--muted);font-size:17px;line-height:1.5}.form-card h2,.card h2{margin:0 0 14px}.form-grid{display:grid;gap:14px}.form-grid.narrow{max-width:560px}.filters{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:14px;align-items:end;margin-bottom:18px}label{display:grid;gap:6px;font-weight:800;color:#314035}input,select{width:100%;padding:11px 12px;border:1px solid #cfd9cd;border-radius:12px;background:#fff;color:var(--ink);font:inherit}input:focus,select:focus{outline:3px solid rgba(61,122,76,.15);border-color:var(--primary-2)}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.check input{width:auto}.hint,small{color:var(--muted)}button.primary,.button.primary{background:var(--primary);color:#fff}button.primary:hover,.button.primary:hover{background:#1f472d}.button.secondary,button.secondary{border:1px solid var(--line)}.small{font-size:12px;padding:7px 10px;border-radius:10px}.actions{display:flex;gap:10px;flex-wrap:wrap}.form-actions{margin-top:16px;display:flex;justify-content:flex-end}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;margin:18px 0}.kpi{background:#fff;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.kpi span{display:block;color:var(--muted);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.05em}.kpi strong{display:block;font-size:30px;margin:6px 0}.kpi.danger{border-left-color:var(--danger)}.kpi.danger strong{color:var(--danger)}
.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.grid-two.align-start{align-items:start}.chart-card canvas{width:100%;max-width:100%;background:linear-gradient(180deg,#fff,#fbfdfb);border-radius:16px;border:1px solid #edf1ec}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th{background:#eef5ec;color:#263628;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.035em}.table th,.table td{border-bottom:1px solid var(--line);padding:10px;vertical-align:top}.table.compact th,.table.compact td{padding:8px}.table tr:hover{background:#fbfdfb}.row-risk{background:var(--danger-bg)}.row-risk td:nth-last-child(-n+3){color:var(--danger);font-weight:800}.editable input{min-width:90px}.editable td:nth-child(2){min-width:260px}.mini-table{display:grid;gap:8px}.mini-row{padding:10px;border-radius:12px;background:var(--danger-bg);border:1px solid #ffd8d1}.mini-row strong{display:block}.mini-row small{display:block;margin-top:2px}
.calendar{width:100%;border-collapse:separate;border-spacing:8px;background:transparent;box-shadow:none;border:0;padding:0}.calendar th{color:var(--muted);padding:6px}.calendar td{height:132px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;vertical-align:top;box-shadow:var(--shadow);min-width:130px}.calendar .muted-day{opacity:.45}.calendar .has-data{border-color:#b9d5b9}.day-num{font-weight:900;font-size:18px}.day-pill{display:inline-block;margin:8px 0 6px;background:var(--primary);color:#fff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.empty{color:#9aa39a;font-size:12px}.risk{color:var(--danger);font-weight:900;display:block}.calendar small{display:block}
@media(max-width:1000px){.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:16px}.brand{min-width:0}.userbox,nav{flex-wrap:wrap}.filters,.kpis,.grid-two,.login-card{grid-template-columns:1fr}.container{padding:16px}.page-head{display:grid}.calendar{font-size:12px}.calendar td{min-width:105px}}

/* V2 - BI visual */
.dashboard-head h1{font-size:34px}.bi-hero{display:grid;grid-template-columns:1fr 1fr 1.05fr;gap:18px;margin:18px 0}.gauge-card{position:relative;overflow:hidden}.gauge-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 5%,rgba(201,163,61,.15),transparent 35%);pointer-events:none}.gauge-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.gauge-title span{font-weight:900;color:#314035;text-transform:uppercase;font-size:11px;letter-spacing:.06em}.gauge-title strong{font-size:30px;color:var(--primary)}.gauge-card canvas{width:100%;display:block}.executive-card{background:linear-gradient(135deg,#ffffff 0%,#f7fbf4 55%,#eef6e9 100%);display:flex;flex-direction:column;justify-content:center}.executive-card .eyebrow{font-weight:900;color:var(--accent);text-transform:uppercase;font-size:12px;letter-spacing:.08em}.executive-card h2{font-size:30px;margin:8px 0}.executive-card p{font-size:16px;line-height:1.55;color:#314035}.status-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.status-strip span{border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900}.status-strip .ok{background:#eaf7ec;color:#12652c}.status-strip .warn{background:#fff8df;color:#7c5a00}.status-strip .bad{background:#fff0ed;color:#b42318}.checks-row{display:flex;gap:16px;flex-wrap:wrap}.import-manual{margin-top:18px}.chart-card h2{font-size:18px}.chart-card canvas{min-height:260px}.table td:nth-child(2){max-width:340px}.row-risk td{background:rgba(255,240,237,.55)}
@media(max-width:1100px){.bi-hero{grid-template-columns:1fr}.gauge-title strong{font-size:26px}}

/* V3 - diagnóstico de importação */
.folder-status{margin-top:8px;background:#f7fbf4;border:1px dashed #b9d5b9;border-radius:14px;padding:12px;color:#314035}.folder-status ul{margin:8px 0 0;padding-left:18px}.folder-status li{margin:3px 0}.danger-text{color:var(--danger);font-weight:800;margin:8px 0 0}

/* V4 - previsto x realizado + forecasting */
.bi-warning{display:flex;align-items:center;gap:14px;justify-content:space-between;margin:14px 0;background:#fff8df;border-color:#eddca2;color:#5f4300}.bi-warning strong{font-size:16px}.bi-warning span{flex:1;line-height:1.45}.bi-extra{margin-top:18px}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.section-title h2{margin:0}.section-title p{margin:4px 0 0;color:var(--muted)}.bi-table-card{margin-top:18px}.bi-data-table td small{display:block;color:var(--muted);margin-top:2px}.status-badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900;white-space:nowrap}.status-badge.ok{background:#eaf7ec;color:#12652c}.status-badge.warn{background:#fff8df;color:#7c5a00}.status-badge.bad{background:#fff0ed;color:#b42318}.status-badge.info{background:#eaf1fb;color:#2d5b89}.negative{color:var(--danger);font-weight:900}.positive{color:var(--primary);font-weight:900}.table td:nth-child(2) strong{display:block}.chart-card canvas{image-rendering:auto}.table-wrap{max-height:520px;border-radius:14px;border:1px solid var(--line)}.table-wrap .table th{position:sticky;top:0;z-index:2}
@media(max-width:900px){.bi-warning{display:grid}.section-title{display:grid}.table-wrap{max-height:none}}

/* V5 - motor de fórmulas da planilha + forecasting */
.formula-note{display:flex;gap:10px;align-items:flex-start;margin:14px 0;background:#f8fbf6;border-color:#cfe0c9;color:#263628;line-height:1.45}.formula-note strong{white-space:nowrap;color:var(--primary)}.kpis-wide{grid-template-columns:repeat(4,minmax(170px,1fr))}.kpis-wide .kpi strong{font-size:26px}.bi-data-table th,.bi-data-table td{white-space:nowrap}.bi-data-table td:nth-child(2){white-space:normal;min-width:260px}.bi-data-table th:nth-child(2){min-width:260px}.chart-card h2{min-height:24px}.row-risk .status-badge.bad{box-shadow:0 0 0 1px rgba(180,35,24,.15)}
@media(max-width:1200px){.kpis-wide{grid-template-columns:repeat(2,minmax(170px,1fr))}.formula-note{display:grid}.formula-note strong{white-space:normal}}
@media(max-width:700px){.kpis-wide{grid-template-columns:1fr}}

/* V8 - BI em tela cheia, visual executivo e forecast operacional */
.container{width:100%;max-width:none;margin:0;padding:24px 28px}.dashboard-v8{width:100%;max-width:none}.topbar{padding-left:28px;padding-right:28px}.supreme-head{background:linear-gradient(135deg,#183420 0%,#285c38 45%,#3d7a4c 100%);color:#fff;border-radius:28px;padding:28px 32px;box-shadow:0 18px 50px rgba(25,52,32,.22);position:relative;overflow:hidden}.supreme-head:after{content:"";position:absolute;right:-120px;top:-140px;width:360px;height:360px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%);pointer-events:none}.supreme-head h1{font-size:40px;letter-spacing:-.03em}.supreme-head p{color:rgba(255,255,255,.86);max-width:980px;font-size:16px;line-height:1.5}.supreme-head .eyebrow{color:#f1d675;font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.supreme-head .button.secondary{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.25)}.supreme-head .button.primary{background:#f3c544;color:#1e2a1d}.filters-wide{grid-template-columns:repeat(5,minmax(160px,1fr));align-items:end}.explain-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin:16px 0}.v8-note{border-left:6px solid var(--primary);background:linear-gradient(135deg,#ffffff,#f4fbf2)}.v8-note.darker{border-left-color:#c9a33d;background:linear-gradient(135deg,#fffdfa,#fff8df)}.v8-note span{font-size:14px}.v8-hero{grid-template-columns:minmax(300px,.8fr) minmax(300px,.8fr) minmax(420px,1.2fr);align-items:stretch}.v8-exec{min-height:100%;border:1px solid #cbdcc8}.kpis-v8{grid-template-columns:repeat(8,minmax(145px,1fr));gap:12px}.kpis-v8 .kpi{min-height:122px;background:linear-gradient(180deg,#fff,#fbfdf8)}.kpis-v8 .kpi strong{font-size:25px;letter-spacing:-.03em}.kpis-v8 .kpi:nth-child(3n){border-left-color:#c9a33d}.kpis-v8 .kpi:nth-child(4n){border-left-color:#496f9d}.forecast-summary-card{margin-top:18px;background:linear-gradient(135deg,#ffffff,#f6fbf3)}.forecast-cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}.forecast-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:16px;border-left:5px solid var(--primary);box-shadow:0 8px 24px rgba(31,45,34,.07)}.forecast-card span{display:block;color:var(--muted);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.06em}.forecast-card strong{display:block;font-size:29px;margin:5px 0;color:#172018}.forecast-card.danger{border-left-color:var(--danger);background:#fff8f6}.forecast-card.danger strong{color:var(--danger)}.forecast-card.ok{border-left-color:#16743a}.charts-v8{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.charts-v8 .chart-card{min-width:0}.chart-card canvas{width:100%;min-height:320px}.wide-chart{grid-column:auto}.bi-table-card .table-wrap{max-height:640px}.bi-data-table th{background:#e6f0e2;color:#213323}.bi-data-table td{background:rgba(255,255,255,.72)}.bi-data-table tr:hover td{background:#f5fbf2}.mini-row{border-left:4px solid var(--danger);background:#fff7f5}.status-badge.ok{box-shadow:0 0 0 1px rgba(18,101,44,.08)}.status-badge.warn{box-shadow:0 0 0 1px rgba(124,90,0,.08)}.status-badge.bad{box-shadow:0 0 0 1px rgba(180,35,24,.08)}
@media(max-width:1500px){.kpis-v8{grid-template-columns:repeat(4,minmax(160px,1fr))}.forecast-cards{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:1100px){.container{padding:16px}.explain-grid,.v8-hero,.charts-v8{grid-template-columns:1fr}.kpis-v8{grid-template-columns:repeat(2,minmax(150px,1fr))}.forecast-cards{grid-template-columns:1fr 1fr}.supreme-head h1{font-size:32px}.filters-wide{grid-template-columns:1fr}}
@media(max-width:650px){.kpis-v8,.forecast-cards{grid-template-columns:1fr}.supreme-head{padding:22px}.supreme-head h1{font-size:28px}}

/* V10 - ajuste fino de layout, filtro robusto e forecast por SKU */
.filters-wide{grid-template-columns:1fr 1fr 1.1fr 2fr .9fr auto;gap:12px}
.filter-reset{display:flex;align-items:center;justify-content:center;height:42px;align-self:end}
.charts-v8{align-items:start}
.risk-card{align-self:start;max-height:510px;overflow:hidden}
.risk-scroll{max-height:390px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}
.risk-scroll .mini-row{margin-bottom:8px}
.risk-scroll .mini-row:last-child{margin-bottom:0}
.chart-card{align-self:start}
.chart-card canvas{display:block}
.sku-focus-card{margin:18px 0;background:linear-gradient(135deg,#17351f,#2b633a);color:#fff;border:0;box-shadow:0 18px 50px rgba(25,52,32,.20)}
.sku-focus-card .hint{color:rgba(255,255,255,.78);margin:14px 0 0}
.sku-focus-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.sku-focus-head .eyebrow{font-size:12px;font-weight:900;color:#f3c544;text-transform:uppercase;letter-spacing:.12em}
.sku-focus-head h2{font-size:28px;margin:4px 0 2px;color:#fff}
.sku-focus-head p{margin:0;color:rgba(255,255,255,.82)}
.focus-status .status-badge{font-size:13px;background:#fff;color:#17351f}
.sku-focus-grid{display:grid;grid-template-columns:repeat(8,minmax(125px,1fr));gap:10px}
.sku-focus-grid article{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:14px;backdrop-filter:blur(3px)}
.sku-focus-grid span{display:block;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.72)}
.sku-focus-grid strong{display:block;font-size:24px;margin-top:5px;color:#fff}
.sku-focus-grid .negative{color:#ffb2a8}.sku-focus-grid .positive{color:#bdf0c9}
.forecast-cards{grid-template-columns:repeat(9,minmax(130px,1fr))}
.forecast-card strong{font-size:24px}.forecast-card{padding:14px}
.bi-table-card .table-wrap{max-height:560px}.bi-data-table th,.bi-data-table td{font-size:12px}.bi-data-table td:nth-child(2){min-width:300px}
@media(max-width:1700px){.forecast-cards{grid-template-columns:repeat(5,minmax(140px,1fr))}.sku-focus-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}}
@media(max-width:1150px){.filters-wide{grid-template-columns:1fr 1fr}.filter-reset{height:auto}.sku-focus-head{display:grid}.sku-focus-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:650px){.filters-wide,.sku-focus-grid{grid-template-columns:1fr}.risk-card{max-height:none}.risk-scroll{max-height:360px}}

/* V11 - filtro por lista suspensa, SKU dependente da linha e layout sem buraco branco */
.filters-v11{
    grid-template-columns:150px 150px 210px minmax(420px,1.5fr) minmax(260px,.9fr) 150px 100px;
    align-items:end;
}
.filters-v11 .sku-select-label select{font-weight:750;background:#fff;min-height:46px}
.filters-v11 .text-search-label input{min-height:46px}
.field-hint{font-size:11px;color:#667064;font-weight:700;margin-top:2px}
.charts-v11{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;grid-auto-rows:auto;margin-top:18px}
.charts-v11 .card{align-self:start}
.charts-v11 .chart-card{min-height:0;overflow:hidden}
.charts-v11 canvas{max-height:430px}
.forecast-risk-row{grid-template-columns:minmax(0,1fr) minmax(420px,.8fr)}
.risk-card-v11{height:480px;display:flex;flex-direction:column;overflow:hidden;border-left:6px solid var(--danger)}
.risk-card-v11 h2{margin-bottom:6px}.risk-card-v11 .hint{margin:0 0 10px}
.risk-scroll-v11{overflow-y:auto;min-height:0;max-height:none;padding-right:6px;display:grid;gap:8px;scrollbar-width:thin}
.risk-scroll-v11 .mini-row{margin:0;min-height:auto}
.risk-scroll-v11 .mini-row strong{font-size:13px}
.risk-scroll-v11 .mini-row small{font-size:11px;line-height:1.35}
.table-wrap{background:#fff}
.login-card{min-height:calc(100vh - 170px)}
.login-card .form-card{max-width:760px;margin-left:auto;margin-right:auto}
@media(max-width:1450px){
    .filters-v11{grid-template-columns:repeat(2,minmax(160px,1fr));}
    .filters-v11 .sku-select-label,.filters-v11 .text-search-label{grid-column:span 2}
    .forecast-risk-row{grid-template-columns:1fr}
    .risk-card-v11{height:420px}
}
@media(max-width:900px){
    .filters-v11,.charts-v11{grid-template-columns:1fr}
    .filters-v11 .sku-select-label,.filters-v11 .text-search-label{grid-column:auto}
    .risk-card-v11{height:400px}
}

/* V13 - caminho fixo de rede/pasta/arquivo */
.source-config-card{margin-bottom:18px;border-left:6px solid var(--primary)}
.source-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f7fbf4;border:1px solid var(--line);border-radius:14px;padding:12px;color:#314035}
.source-current code{background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px 9px;font-family:Consolas,monospace;max-width:100%;overflow:auto}
.pill{display:inline-block;border-radius:999px;background:#eaf7ec;color:#12652c;padding:6px 10px;font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.04em}

.warning-box {
  border: 1px solid #e5c65a;
  background: #fff8d8;
  color: #3d3210;
  border-radius: 16px;
  padding: 14px 16px;
  line-height: 1.45;
}
.warning-box.compact { margin: 8px 0 14px; }
.actions-row {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.actions-row button { min-width: 220px; }
.source-diagnostics {
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid #c9d8c3;
  border-radius: 16px;
  background: #f7fbf3;
  color: #172316;
  display: grid;
  gap: 6px;
  font-size: 0.92rem;
}
.source-diagnostics code, .warning-box code {
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 8px;
  padding: 2px 6px;
}

/* V17 - fonte PCP robusta */
.official-source-card {
    border: 1px solid rgba(37, 99, 235, 0.18);
    background: linear-gradient(135deg, rgba(239, 246, 255, 0.92), rgba(255,255,255,0.98));
}
.official-source-card h2 {
    margin-bottom: 8px;
}
.official-source-card input[type="file"] {
    padding: 12px;
    border: 1px dashed rgba(37, 99, 235, 0.35);
    border-radius: 14px;
    background: #fff;
}

/* V18 - Ponte PCP */
.bridge-card {
  border: 1px solid rgba(37, 99, 235, 0.25);
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255,255,255,0.98));
}
.bridge-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.bridge-grid input[readonly] {
  font-family: Consolas, 'Courier New', monospace;
  background: #f8fafc;
  border-color: #bfdbfe;
}
@media (max-width: 900px) {
  .bridge-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   V19 — Design moderno, metas por SKU e S&OP
   100% offline: sem CDN, fontes do sistema, gráficos em canvas.
   ============================================================ */
:root{
    --primary-deep:#16351f;
    --gold:#d8af3e;
    --gold-soft:#f6e9c2;
    --ink-2:#2a3a2e;
    --ring-track:#e9efe6;
    --blue:#315f93;
    --violet:#6b4fa0;
    --radius-xl:26px;
    --shadow-1:0 10px 30px rgba(22,53,31,.08);
    --shadow-2:0 22px 60px rgba(22,53,31,.18);
}
/* Navegação com estado ativo e realce sutil */
nav a{position:relative;transition:background .15s ease,color .15s ease}
nav a.active{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff}
nav a.active:hover{background:linear-gradient(135deg,#1f472d,var(--primary-2))}
nav a:not(.active):hover{background:var(--soft)}
details.navgroup{position:relative}
details.navgroup>summary{list-style:none;display:inline-flex;align-items:center;cursor:pointer;border-radius:12px;padding:10px 14px;font-weight:700;color:var(--ink);user-select:none;white-space:nowrap}
details.navgroup>summary::-webkit-details-marker{display:none}
details.navgroup>summary::after{content:'▾';font-size:10px;margin-left:6px;opacity:.6}
details.navgroup>summary:hover{background:var(--soft)}
details.navgroup>summary.active{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff}
details.navgroup[open]>summary{background:var(--soft)}
.navmenu{position:absolute;top:calc(100% + 6px);left:0;min-width:212px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.14);padding:8px;display:flex;flex-direction:column;gap:4px;z-index:30}
.navmenu a{white-space:nowrap;padding:9px 12px;border-radius:10px}
[data-theme=dark] .navmenu{background:#141c17;border-color:var(--line);box-shadow:0 12px 30px rgba(0,0,0,.5)}

/* Cabeçalho de página padrão (telas internas) */
.head-v19{background:linear-gradient(125deg,#15301d 0%,#26573a 48%,#3c7a4d 100%);color:#fff;border-radius:var(--radius-xl);padding:30px 34px;box-shadow:var(--shadow-2);position:relative;overflow:hidden;margin-bottom:20px}
.head-v19:after{content:"";position:absolute;right:-140px;top:-160px;width:420px;height:420px;background:radial-gradient(circle,rgba(216,175,62,.22),transparent 62%);pointer-events:none}
.head-v19:before{content:"";position:absolute;left:-90px;bottom:-150px;width:340px;height:340px;background:radial-gradient(circle,rgba(255,255,255,.10),transparent 65%);pointer-events:none}
.head-v19 .eyebrow{color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.14em;font-size:12px}
.head-v19 h1{font-size:38px;letter-spacing:-.03em;margin:6px 0 8px}
.head-v19 p{color:rgba(255,255,255,.86);max-width:980px;font-size:15px;line-height:1.55;margin:0}
.head-v19 .head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;position:relative;z-index:1}
.head-v19 .button.primary{background:var(--gold);color:#1e2a1d}
.head-v19 .button.primary:hover{background:#e7c558}
.head-v19 .button.secondary{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.28)}
.head-v19 .button.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}

/* Filtros compactos em barra */
.filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:18px}
.filterbar label{font-size:12px}
.filterbar .grow{flex:1;min-width:160px}

/* KPIs de meta — números grandes e arrojados */
.meta-kpis{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:14px;margin:4px 0 20px}
.meta-kpi{position:relative;background:linear-gradient(180deg,#fff,#fafdf8);border:1px solid var(--line);border-radius:22px;padding:18px 18px 16px;box-shadow:var(--shadow-1);overflow:hidden}
.meta-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--primary),var(--primary-2))}
.meta-kpi.gold:before{background:linear-gradient(180deg,var(--gold),#b9912b)}
.meta-kpi.blue:before{background:linear-gradient(180deg,#4f86c6,var(--blue))}
.meta-kpi.bad:before{background:linear-gradient(180deg,#e06754,var(--danger))}
.meta-kpi .label{display:block;color:var(--muted);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.meta-kpi .value{display:block;font-size:32px;font-weight:900;letter-spacing:-.03em;margin:6px 0 2px;color:var(--ink)}
.meta-kpi .sub{display:block;color:var(--muted);font-size:12px}
.meta-kpi.bad .value{color:var(--danger)}
.meta-kpi.gold .value{color:#9a7b1f}

/* Anel de atingimento (canvas) + bloco resumo */
.ring-row{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(260px,.8fr) 1.4fr;gap:18px;margin-bottom:20px}
.ring-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ring-card canvas{width:100%;max-width:260px}
.ring-card .ring-cap{font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#314035;font-size:12px;margin-top:4px}
.ring-card small{color:var(--muted)}
.sop-readout{background:linear-gradient(135deg,#ffffff,#f5fbf2);display:flex;flex-direction:column;justify-content:center;gap:10px}
.sop-readout h2{margin:0;font-size:22px}
.sop-readout .pace{display:flex;gap:18px;flex-wrap:wrap}
.sop-readout .pace div{flex:1;min-width:120px}
.sop-readout .pace span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.sop-readout .pace strong{display:block;font-size:24px;letter-spacing:-.02em}

/* Barras de progresso de meta */
.progress{height:12px;border-radius:999px;background:var(--ring-track);overflow:hidden;position:relative}
.progress > i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary-2),var(--primary));transition:width .5s ease}
.progress.gold > i{background:linear-gradient(90deg,#e7c558,var(--gold))}
.progress.bad > i{background:linear-gradient(90deg,#e06754,var(--danger))}
.progress.warn > i{background:linear-gradient(90deg,#f0c34a,#d39a10)}

/* Status de meta */
.status-badge.meta-ok{background:#e8f7ec;color:#12652c}
.status-badge.meta-ritmo{background:#eaf3ff;color:#2d5b89}
.status-badge.meta-atencao{background:#fff6da;color:#7c5a00}
.status-badge.meta-critico{background:#ffece8;color:#b42318}
.status-badge.meta-sem{background:#eef0ee;color:#5b6660}

/* Cartão de upload de metas (substitui no servidor) */
.upload-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:18px}
.dropcard{border:1px dashed #9bbf9b;background:linear-gradient(135deg,#f6fbf3,#fff);border-radius:18px;padding:18px}
.dropcard input[type=file]{padding:14px;border:1px dashed #b6d3b6;border-radius:14px;background:#fff;width:100%}
.dropcard .mini{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.bridge-mini{background:linear-gradient(135deg,rgba(239,246,255,.92),#fff);border:1px solid #bcd6f5;border-radius:18px;padding:16px}
.bridge-mini code{display:block;background:#fff;border:1px solid #cfe0c9;border-radius:10px;padding:8px 10px;font-family:Consolas,monospace;overflow:auto;font-size:12px}

/* Grade editável de metas */
.goals-table input{padding:7px 8px;border-radius:9px;min-width:84px;text-align:right}
.goals-table td:first-child,.goals-table td:nth-child(2){text-align:left}
.goals-table .new-row td{background:#f6fbf3}
.goals-table tfoot td{background:#eef5ec;font-weight:800}

/* Tabela comparativa pedido x produção x meta */
.cmp-num{text-align:right;white-space:nowrap}
.cmp-meta{font-weight:900}
.attain-cell{display:flex;align-items:center;gap:8px;min-width:140px}
.attain-cell .progress{flex:1}
.attain-cell b{min-width:48px;text-align:right}

/* Aviso quando não há metas ainda */
.empty-metas{display:flex;gap:16px;align-items:center;background:linear-gradient(135deg,#fffdf5,#fff8df);border:1px solid #eddca2;border-radius:20px;padding:22px;color:#5f4300}
.empty-metas .big{font-size:40px;line-height:1}
.empty-metas h3{margin:0 0 4px}

@media(max-width:1450px){.meta-kpis{grid-template-columns:repeat(3,minmax(160px,1fr))}.ring-row{grid-template-columns:1fr 1fr}.upload-grid{grid-template-columns:1fr}}
@media(max-width:900px){.meta-kpis{grid-template-columns:1fr 1fr}.ring-row{grid-template-columns:1fr}.head-v19 h1{font-size:30px}}
@media(max-width:600px){.meta-kpis{grid-template-columns:1fr}}

/* ============================================================
   V20 — Leitura gráfica moderna: tooltips, sparklines, heatmap
   ============================================================ */
/* Tooltip interativo dos gráficos */
.chart-tip{position:fixed;z-index:9999;pointer-events:none;display:none;background:rgba(20,34,24,.96);color:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 12px 34px rgba(0,0,0,.28);font-size:12px;min-width:150px;backdrop-filter:blur(4px)}
.chart-tip .tt-title{font-weight:900;margin-bottom:6px;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:5px}
.chart-tip .tt-row{display:flex;align-items:center;gap:7px;margin-top:4px;white-space:nowrap}
.chart-tip .tt-row .tt-name{color:rgba(255,255,255,.82)}
.chart-tip .tt-row b{margin-left:auto;font-weight:800}
.chart-tip .tt-dot{width:9px;height:9px;border-radius:3px;display:inline-block;flex:none}
.chart-card canvas{cursor:crosshair}

/* KPIs com sparkline e variação */
.kpi-trend{position:relative;display:flex;flex-direction:column;padding-bottom:40px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}
.kpi-trend:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(31,45,34,.14)}
.kpi-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kpi-foot small{color:var(--muted)}
.kpi-delta{font-size:11px;font-weight:900;border-radius:999px;padding:2px 7px;white-space:nowrap}
.kpi-delta.up{background:#e8f7ec;color:#12652c}
.kpi-delta.down{background:#ffece8;color:#b42318}
.kpi-spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:36px;display:block;opacity:.92}
.kpis-v8 .kpi-trend strong{margin-bottom:2px}

/* Cabeçalho moderno reutilizável para telas internas simples */
.page-head.modern{background:linear-gradient(125deg,#15301d,#27583a 55%,#3c7a4d);color:#fff;border-radius:var(--radius-xl);padding:26px 30px;box-shadow:var(--shadow-2);position:relative;overflow:hidden}
.page-head.modern:after{content:"";position:absolute;right:-120px;top:-140px;width:360px;height:360px;background:radial-gradient(circle,rgba(216,175,62,.20),transparent 62%)}
.page-head.modern h1{color:#fff;margin-top:2px}.page-head.modern p{color:rgba(255,255,255,.85)}
.page-head.modern .eyebrow{display:block;color:var(--gold);font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:12px;margin-bottom:2px}
.page-head.modern .button.secondary{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.28)}
.page-head.modern .button.primary{background:var(--gold);color:#1e2a1d}

/* Faixa de KPIs (relatório / telas simples) */
.kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin:0 0 18px}
.kpi-strip .mini-kpi{background:linear-gradient(180deg,#fff,#fafdf8);border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:16px;padding:13px 14px;box-shadow:var(--shadow-1)}
.kpi-strip .mini-kpi span{display:block;color:var(--muted);font-weight:900;text-transform:uppercase;font-size:10px;letter-spacing:.05em}
.kpi-strip .mini-kpi strong{display:block;font-size:23px;letter-spacing:-.02em;margin-top:4px}
.kpi-strip .mini-kpi.gold{border-left-color:var(--gold)}.kpi-strip .mini-kpi.blue{border-left-color:var(--blue)}.kpi-strip .mini-kpi.bad{border-left-color:var(--danger)}.kpi-strip .mini-kpi.green{border-left-color:#2f8f5b}
@media(max-width:1200px){.kpi-strip{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:560px){.kpi-strip{grid-template-columns:1fr 1fr}}

/* Calendário em heatmap */
.calendar-v20{margin-top:8px}
.cal-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 14px;color:var(--muted);font-size:12px;font-weight:700}
.cal-legend .scale{display:flex;gap:3px}
.cal-legend .scale i{width:20px;height:12px;border-radius:3px;display:inline-block}
.calendar td{position:relative;transition:transform .12s ease,box-shadow .12s ease}
.calendar td.has-data:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(31,45,34,.16);z-index:2}
.heat-0{background:#fff}.heat-1{background:#eef6e9}.heat-2{background:#d8ecd0}.heat-3{background:#b6dcab}.heat-4{background:#8fca80}.heat-5{background:#5fae57;color:#0f2a14}
.cal-day-head{display:flex;align-items:center;justify-content:space-between}
.cal-bar{height:7px;border-radius:999px;background:rgba(0,0,0,.07);overflow:hidden;margin:7px 0 4px}
.cal-bar > i{display:block;height:100%;background:linear-gradient(90deg,var(--primary-2),var(--primary))}
.cal-bar.over > i{background:linear-gradient(90deg,#e7c558,var(--gold))}
.cal-metrics{display:flex;justify-content:space-between;font-size:11px;color:#3a4a3d;font-weight:700}
.cal-risk-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 3px rgba(180,35,24,.16)}
.cal-pill-sm{display:inline-block;background:var(--primary);color:#fff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900}
.cal-horizons{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.cal-horizons .hz{font-size:10px;font-weight:900;border-radius:7px;padding:2px 6px;color:#fff;line-height:1.3}
.hz-24{background:#2f8050}.hz-48{background:#4f86c6}.hz-72{background:#bd9128}.hz-96{background:#7d63ad}
@media(max-width:1000px){.kpi-spark{height:28px}.cal-horizons .hz{font-size:9px;padding:1px 4px}}

/* Alertas de ineficiência */
.sev-badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900;letter-spacing:.03em;white-space:nowrap}
.sev-critica{background:#ffe3de;color:#a01a0e;box-shadow:0 0 0 1px rgba(180,35,24,.18)}
.sev-alta{background:#fff0d2;color:#8a5a00}
.sev-media{background:#eaf1fb;color:#2d5b89}
.alerts-overlay .mini-row{border-left:4px solid var(--danger);background:#fff7f5}
.alert-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.alert-pills .pill{border-radius:999px;padding:6px 11px;font-weight:900;font-size:12px}
.alert-pills .pill.crit{background:#ffe3de;color:#a01a0e}
.alert-pills .pill.alta{background:#fff0d2;color:#8a5a00}
.alert-pills .pill.media{background:#eaf1fb;color:#2d5b89}
.alert-pills .pill.total{background:#23311c;color:#fff}
.crit-banner{margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg,#b42318,#7d150d);color:#fff;box-shadow:0 14px 34px rgba(180,35,24,.28);animation:critpulse 2.4s ease-in-out infinite}
@keyframes critpulse{0%,100%{box-shadow:0 14px 34px rgba(180,35,24,.28)}50%{box-shadow:0 14px 44px rgba(180,35,24,.5)}}
.crit-banner-inner{display:flex;align-items:center;gap:16px;padding:16px 20px}
.crit-banner .crit-ico{font-size:30px;line-height:1;flex:none}
.crit-banner .crit-text{flex:1;min-width:0}
.crit-banner .crit-text strong{display:block;font-size:16px}
.crit-banner .crit-text small{display:block;color:rgba(255,255,255,.9);margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.crit-banner .crit-text em{font-style:normal;color:#ffd9d3}
.crit-banner .button{background:#fff;color:#b42318;font-weight:900;flex:none}
.crit-banner .button:hover{background:#ffe9e6}
@media(max-width:700px){.crit-banner-inner{flex-direction:column;align-items:flex-start}}

/* Sino de notificações na barra superior */
.userbox .bell{position:relative;font-size:18px;padding:8px 10px;border-radius:12px;text-decoration:none}
.userbox .bell:hover{background:var(--soft)}
.userbox .bell.has-unread{animation:bellwiggle 2.5s ease-in-out infinite}
@keyframes bellwiggle{0%,92%,100%{transform:rotate(0)}94%{transform:rotate(12deg)}96%{transform:rotate(-10deg)}98%{transform:rotate(6deg)}}
.bell-badge{position:absolute;top:0;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:900;display:grid;place-items:center;box-shadow:0 0 0 2px #fff}

/* Lista de notificações */
.notif-list{display:grid;gap:10px;margin-top:6px}
.notif{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-left:5px solid #9aa39a;border-radius:16px;padding:14px 16px;box-shadow:var(--shadow-1)}
.notif.unread{background:linear-gradient(135deg,#fffaf8,#fff)}
.notif.lvl-critica{border-left-color:var(--danger)}
.notif.lvl-alta{border-left-color:var(--gold)}
.notif-ico{font-size:22px;line-height:1;flex:none;margin-top:2px}
.notif.lvl-critica .notif-ico{color:var(--danger)}
.notif-body{flex:1;min-width:0}
.notif-body strong{display:block;font-size:15px}
.notif-body p{margin:4px 0 4px;color:#3a4a3d}
.notif-actions{flex:none}

/* Manual / ajuda */
.manual-steps{margin:0;padding-left:20px;line-height:1.6}
.manual-steps li{margin:8px 0}
.manual-list{margin:0;padding-left:18px;line-height:1.55}
.manual-list li{margin:6px 0}
.manual-code{background:#13251a;color:#eaf7ec;border-radius:12px;padding:12px 14px;overflow:auto;font-family:Consolas,monospace;font-size:13px;white-space:pre-wrap;word-break:break-all}

/* Boletim executivo — impressão */
@media print{
  .topbar,.no-print,.crit-banner,.filterbar,form,button,.actions{display:none !important}
  body{background:#fff;font-size:12px}
  .container{padding:0;max-width:none}
  .head-v19,.boletim-head{background:#fff !important;color:#000 !important;box-shadow:none;border:1px solid #000;border-radius:0;padding:10px 12px}
  .head-v19:after,.head-v19:before{display:none}
  .head-v19 .eyebrow{color:#000}.head-v19 h1{font-size:20px;color:#000}.head-v19 p{color:#222}
  .card,.meta-kpi{box-shadow:none !important;border:1px solid #bbb !important;break-inside:avoid;page-break-inside:avoid}
  .meta-kpi:before{display:none}
  .meta-kpis,.boletim-kpis{grid-template-columns:repeat(6,1fr) !important;gap:6px}
  .meta-kpi .value{font-size:18px}
  .table-wrap{max-height:none !important;overflow:visible !important}
  .bi-table-card{page-break-inside:auto}
  .status-badge,.sev-badge{border:1px solid #999}
  a[href]:after{content:""}
  h2{page-break-after:avoid}
  .boletim-head{page-break-after:avoid}
  .forecast-cards{grid-template-columns:repeat(7,1fr) !important}
}

/* ============================================================
   V21 — Largura TOTAL da página, mais cor e gráficos cheios
   (regras no fim do arquivo = vencem qualquer conflito anterior)
   ============================================================ */
html,body{width:100%;overflow-x:hidden}
main.container:not(.login-container){width:100% !important;max-width:none !important;margin:0 !important;padding:22px clamp(14px,2vw,40px) !important}
.dashboard-v8{width:100%;max-width:none}
/* Cabeçalhos e seções ocupam a largura inteira */
.supreme-head,.head-v19,.page-head.modern{width:100%}
/* Grades de gráficos: 2 colunas reais que esticam */
.grid-two,.charts-v11,.charts-v8{width:100%}
.charts-v11{grid-template-columns:repeat(2,minmax(0,1fr))}
.chart-card{align-self:stretch;min-width:0}
.chart-card canvas{width:100% !important;display:block}
.gauge-card canvas{width:100% !important}
.forecast-summary-card canvas{width:100% !important;display:block}
.bi-hero,.v8-hero{width:100%}

/* KPIs do painel com MAIS COR (ciclo de 6 tons, fundo levemente tingido) */
.kpis-v8{grid-template-columns:repeat(8,minmax(150px,1fr))}
.kpis-v8 .kpi{border-left-width:6px;transition:transform .12s ease,box-shadow .12s ease}
.kpis-v8 .kpi:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(31,45,34,.16)}
.kpis-v8 .kpi:nth-child(6n+1){border-left-color:#2f8050;background:linear-gradient(180deg,#fff,#eef9ee)}
.kpis-v8 .kpi:nth-child(6n+2){border-left-color:#4f86c6;background:linear-gradient(180deg,#fff,#eef4fb)}
.kpis-v8 .kpi:nth-child(6n+3){border-left-color:#d8af3e;background:linear-gradient(180deg,#fff,#fdf7e6)}
.kpis-v8 .kpi:nth-child(6n+4){border-left-color:#7d63ad;background:linear-gradient(180deg,#fff,#f4f0fb)}
.kpis-v8 .kpi:nth-child(6n+5){border-left-color:#2aa5a0;background:linear-gradient(180deg,#fff,#ebf9f8)}
.kpis-v8 .kpi:nth-child(6n+6){border-left-color:#cf5a42;background:linear-gradient(180deg,#fff,#fdeeea)}
.kpis-v8 .kpi.danger{border-left-color:var(--danger) !important;background:linear-gradient(180deg,#fff,#fdecea) !important}
.kpis-v8 .kpi strong{color:#16261b}
.kpi-trend .kpi-spark{opacity:1}

/* Tabelas e cartões largos usam tudo */
.bi-table-card,.forecast-summary-card,.card.bi-table-card{width:100%}
.table-wrap{width:100%}

/* Cabeçalho da página interna em largura total e com leve brilho */
.head-v19{box-shadow:0 16px 44px rgba(22,53,31,.20)}

@media(max-width:1500px){.kpis-v8{grid-template-columns:repeat(4,minmax(150px,1fr))}}
@media(max-width:1100px){.charts-v11{grid-template-columns:1fr}}
@media(max-width:700px){.kpis-v8{grid-template-columns:1fr 1fr}}

/* Sinalização de dados suspeitos (células destacadas) */
.cell-flag{background:#fff1c9 !important;box-shadow:inset 4px 0 0 #d8af3e;cursor:help;font-weight:800}
.flag-mark{font-weight:900;color:#b07d0a}
.row-risk td.cell-flag{background:#ffe2d6 !important;box-shadow:inset 4px 0 0 var(--danger)}
.row-risk td.cell-flag .flag-mark{color:var(--danger)}
.suspeitos-chip{display:inline-block;margin:0 0 16px;background:#fff1c9;border:1px solid #e6c65a;color:#7a5800;border-radius:999px;padding:10px 16px;font-weight:800;text-decoration:none;box-shadow:0 6px 18px rgba(216,175,62,.18)}
.suspeitos-chip:hover{background:#ffe7a8}
tr.is-resolved{opacity:.5}

/* ============================================================
   V22 — Responsivo / celular (fim do arquivo = vence conflitos)
   ============================================================ */
@media(max-width:820px){
  /* Menu vira uma faixa rolável de uma linha (deslize para o lado) */
  nav{flex-wrap:nowrap;overflow-x:auto;width:100%;gap:4px;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  nav::-webkit-scrollbar{height:6px}
  nav::-webkit-scrollbar-thumb{background:#cdd8c9;border-radius:6px}
  nav a{white-space:nowrap;flex:0 0 auto;padding:9px 12px}
  .userbox{width:100%;flex-wrap:wrap;justify-content:flex-start}
  .table-wrap{-webkit-overflow-scrolling:touch}
  .actions .button,.actions button{flex:1 1 auto;text-align:center}
}
@media(max-width:600px){
  .filterbar{flex-direction:column;align-items:stretch}
  .filterbar label,.filterbar .grow{width:100%}
  .filterbar button.primary{width:100%}
  .head-v19 .head-row{flex-direction:column;align-items:stretch}
  .head-v19 h1{font-size:24px}
  .page-head{display:grid}
  .page-head h1{font-size:24px}
  .bridge-grid,.checks-row,.upload-grid{grid-template-columns:1fr !important}
  .form-actions{justify-content:stretch}
  .form-actions button{width:100%}
  .meta-kpi .value{font-size:24px}
  .ring-card canvas{max-height:230px}
}

/* ============================================================
   V23 — Busca global de SKU + tema escuro
   ============================================================ */
.topsearch{margin:0}
.topsearch input{width:190px;max-width:42vw;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font:inherit;color:var(--ink)}
.topsearch input:focus{outline:3px solid rgba(61,122,76,.15);border-color:var(--primary-2);background:#fff}
.theme-toggle{font-size:16px;line-height:1;background:transparent;border:1px solid var(--line) !important;border-radius:12px;padding:8px 10px !important}
.theme-toggle:hover{background:var(--soft)}

/* ----- Modo escuro (aplicado em <html data-theme="dark">) ----- */
[data-theme=dark]{
  --bg:#0f1512; --card:#161d18; --ink:#e7eee8; --muted:#9fb0a4; --line:#28332b;
  --primary:#3d7a4c; --primary-2:#56a06e; --soft:#1b241e; --danger:#ff6f62; --danger-bg:#3a201d;
  --shadow:0 16px 40px rgba(0,0,0,.5); --ring-track:#28332b;
}
[data-theme=dark] body{background:var(--bg);color:var(--ink)}
[data-theme=dark] .topbar{background:#121814;border-bottom-color:var(--line);box-shadow:0 4px 16px rgba(0,0,0,.45)}
[data-theme=dark] .card,[data-theme=dark] .kpi,[data-theme=dark] .meta-kpi,[data-theme=dark] .calendar td,[data-theme=dark] .mini-row,[data-theme=dark] .flash{background:var(--card);border-color:var(--line)}
[data-theme=dark] .kpis-v8 .kpi{background:#161d18 !important}
[data-theme=dark] .meta-kpi:before{opacity:.4}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#10160f;color:var(--ink);border-color:var(--line)}
[data-theme=dark] .topsearch input{background:#10160f}
[data-theme=dark] .topsearch input:focus{background:#0c110b}
[data-theme=dark] .table th{background:#1b241e;color:#cfe0d2}
[data-theme=dark] .table th,[data-theme=dark] .table td{border-bottom-color:var(--line)}
[data-theme=dark] .table tr:hover{background:#1a231d}
[data-theme=dark] .row-risk{background:#3a201d}
[data-theme=dark] .button.secondary,[data-theme=dark] button.secondary,[data-theme=dark] nav a:hover,[data-theme=dark] .userbox a:hover,[data-theme=dark] .theme-toggle:hover{background:#1c2620}
[data-theme=dark] .button.secondary,[data-theme=dark] button.secondary{color:var(--ink);border-color:var(--line)}
[data-theme=dark] nav a.active{background:var(--primary);color:#fff}
[data-theme=dark] .empty-metas,[data-theme=dark] .warning-box,[data-theme=dark] .source-config-card{background:var(--card);border-color:var(--line)}
[data-theme=dark] .field-hint,[data-theme=dark] small,[data-theme=dark] .hint{color:var(--muted)}
[data-theme=dark] code{background:#10160f;color:#cfe0d2}
[data-theme=dark] .suspeitos-chip{background:#2c2614;border-color:#5a4a1a;color:#e8d490}
/* Gráficos continuam em placa clara para legibilidade total */
[data-theme=dark] .chart-card canvas,[data-theme=dark] .ring-card canvas,[data-theme=dark] .gauge-card canvas{background:linear-gradient(180deg,#fff,#fbfdfb);border:1px solid #d9e3d8;border-radius:16px}

/* Painel personalizável */
.customize-panel .cust-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:6px}
.customize-panel .check{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-weight:700;cursor:pointer}
[data-theme=dark] .customize-panel .check{background:#1b241e}
tr.is-resolved td{text-decoration:line-through;text-decoration-color:rgba(0,0,0,.3)}
tr.is-resolved td:last-child{text-decoration:none}
