:root{
  --paper:#F4F3EF; --surface:#FFFFFF; --surface-2:#FAF9F5; --line:#E4E1D8; --line-2:#EEEBE3;
  --ink:#23272E; --ink-soft:#4C525B; --muted:#7A8089;
  --gold:#A88A4C; --gold-soft:#C7AE73; --gold-wash:#F3ECDC; --graphite:#1F2937;
  --ok:#2F7A57; --ok-wash:#E4F0EA; --warn:#B9862A; --warn-wash:#F7EDD8;
  --crit:#B23A2E; --crit-wash:#F6E2DE; --wait:#6B7280; --wait-wash:#ECEDEE;
  --enc:#5A6068; --enc-wash:#E9EAEC;
  --a-trab:#A88A4C; --a-civ:#3C5A70; --a-cons:#6F8A4E; --a-trib:#9C6B3F;
  --a-fam:#7E6597; --a-crim:#A84D3E; --a-adm:#4F7A82; --a-out:#8A9098;
  --shadow:0 1px 2px rgba(31,41,55,.05),0 8px 24px -14px rgba(31,41,55,.18);
  --r:14px; --serif:"Fraunces",Georgia,serif; --sans:"Archivo","Segoe UI",system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#12151A; --surface:#1A1E25; --surface-2:#20252D; --line:#2C323B; --line-2:#262B33;
  --ink:#E9E7E0; --ink-soft:#B9BDC4; --muted:#8A9099;
  --gold:#CBAE71; --gold-soft:#A98F51; --gold-wash:#2A2820; --graphite:#0E1319;
  --ok:#4FB187; --ok-wash:#16271F; --warn:#DFAE55; --warn-wash:#2A2314;
  --crit:#E0705F; --crit-wash:#2C1815; --wait:#9AA1AB; --wait-wash:#242830;
  --enc:#9AA1AB; --enc-wash:#23272E;
  --a-trab:#CBAE71; --a-civ:#6E93AD; --a-cons:#9DBB76; --a-trib:#C79463;
  --a-fam:#AB93C2; --a-crim:#D6796A; --a-adm:#79A9B2; --a-out:#9AA1AB;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -16px rgba(0,0,0,.6);
}}
:root[data-theme="dark"]{
  --paper:#12151A; --surface:#1A1E25; --surface-2:#20252D; --line:#2C323B; --line-2:#262B33;
  --ink:#E9E7E0; --ink-soft:#B9BDC4; --muted:#8A9099;
  --gold:#CBAE71; --gold-soft:#A98F51; --gold-wash:#2A2820; --graphite:#0E1319;
  --ok:#4FB187; --ok-wash:#16271F; --warn:#DFAE55; --warn-wash:#2A2314;
  --crit:#E0705F; --crit-wash:#2C1815; --wait:#9AA1AB; --wait-wash:#242830;
  --enc:#9AA1AB; --enc-wash:#23272E;
  --a-trab:#CBAE71; --a-civ:#6E93AD; --a-cons:#9DBB76; --a-trib:#C79463;
  --a-fam:#AB93C2; --a-crim:#D6796A; --a-adm:#79A9B2; --a-out:#9AA1AB;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -16px rgba(0,0,0,.6);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.45}
h1,h2,h3{margin:0}
.tnum{font-variant-numeric:tabular-nums}
.hidden{display:none!important}
a{color:var(--gold)}
button{font-family:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:22px 16px 40px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
input,select{font-family:inherit;font-size:14px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
input:focus,select:focus{outline:2px solid var(--gold-soft);outline-offset:1px;border-color:transparent}
label.fld{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:600;letter-spacing:.02em}
.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600;font-size:13px;padding:9px 14px;border-radius:9px;cursor:pointer}
.btn:hover{border-color:var(--gold-soft)}
.btn.primary{background:var(--graphite);color:#fff;border-color:transparent}
.btn.primary:hover{background:var(--gold);color:#1b160a}
:root[data-theme="dark"] .btn.primary{background:var(--gold);color:#1b160a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.primary{background:var(--gold);color:#1b160a}}
.btn.sm{padding:6px 10px;font-size:12px}
.err{color:var(--crit);font-size:13px;min-height:18px}
.ok{color:var(--ok);font-size:13px}

/* ---------- login ---------- */
.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:100%;max-width:380px;padding:30px 28px}
.login-card .mark{width:54px;height:54px;border:1.5px solid var(--gold);border-radius:12px;display:grid;place-items:center;background:var(--gold-wash);margin:0 auto 14px}
.login-card .name{font-family:var(--serif);font-weight:600;font-size:23px;text-align:center;letter-spacing:.02em}
.login-card .name b{color:var(--gold)}
.login-card .sub{font-size:11.5px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;text-align:center;margin-top:5px;margin-bottom:22px}
.login-card .fgrp{margin-bottom:14px}
.login-card input{width:100%}
.login-card .btn{width:100%;margin-top:6px}

/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand .mark{width:42px;height:42px;border:1.5px solid var(--gold);border-radius:9px;display:grid;place-items:center;background:var(--gold-wash);flex:none}
.brand .name{font-family:var(--serif);font-weight:600;font-size:20px;letter-spacing:.02em;line-height:1}
.brand .name b{color:var(--gold)}
.brand .sub{font-size:11.5px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:4px}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.icon-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);height:38px;min-width:38px;padding:0 10px;border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.icon-btn:hover{border-color:var(--gold-soft);color:var(--gold)}
.userchip{font-size:12.5px;color:var(--ink-soft);padding:0 6px}
.userchip b{color:var(--ink)}

/* ---------- strip ---------- */
.strip{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}
.client{flex:2 1 360px;padding:16px 18px;position:relative;overflow:hidden}
.client::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.client .crow{display:flex;align-items:center;gap:10px}
.client select{font-family:var(--serif);font-size:18px;font-weight:600;border:none;background:transparent;color:var(--ink);padding:4px 2px;max-width:100%;flex:1}
.cli-meta{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}
.cli-meta b{color:var(--ink-soft);font-weight:600}
.period{flex:1 1 210px;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.plabel{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pnav{display:flex;align-items:center;gap:10px}
.pnav button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;font-size:16px;flex:none}
.pnav button:hover{border-color:var(--gold-soft);color:var(--gold)}
.pnav .pval{font-family:var(--serif);font-size:18px;font-weight:600;flex:1;text-align:center;text-transform:capitalize}
.franq{flex:1 1 180px;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.franq label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.franq .frow{display:flex;align-items:baseline;gap:8px}
.franq input{width:78px;font-family:var(--serif);font-size:26px;font-weight:600;text-align:center;padding:4px 6px}
.franq .unit{font-size:12px;color:var(--muted)}

/* ---------- kpis ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}
.kpi{padding:14px 16px}
.kpi .k-lab{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kpi .k-val{font-family:var(--serif);font-size:32px;font-weight:600;line-height:1.05;margin-top:6px}
.kpi .k-sub{font-size:12px;color:var(--muted);margin-top:2px}
.kpi.ok .k-val{color:var(--ok)} .kpi.warn .k-val{color:var(--warn)} .kpi.crit .k-val{color:var(--crit)}

.consume{margin-top:14px;padding:16px 18px}
.consume .ch{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.consume h3{font-family:var(--serif);font-size:16px;font-weight:600}
.consume .cnum{font-size:13px;color:var(--muted)}
.bar{height:16px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);margin-top:12px;overflow:hidden}
.bar .fill{height:100%;border-radius:7px 0 0 7px;transition:width .4s ease;min-width:2px}
.cleg{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}
.cleg span{display:inline-flex;align-items:center;gap:6px}
.dot{width:9px;height:9px;border-radius:50%;flex:none}

.grid2{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;margin-top:14px}
.panel{padding:16px 18px}
.panel h2{font-family:var(--serif);font-size:16px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.panel h2 .n{font-family:var(--sans);font-size:12px;color:var(--muted);font-weight:500}
.distrow{display:flex;align-items:center;gap:10px;margin-bottom:9px;font-size:13px}
.distrow .dl{width:104px;flex:none;color:var(--ink-soft);font-weight:500}
.distrow .dbarwrap{flex:1;background:var(--surface-2);border-radius:6px;height:16px;overflow:hidden;border:1px solid var(--line-2)}
.distrow .dbar{height:100%;border-radius:6px}
.distrow .dv{width:30px;text-align:right;flex:none;color:var(--muted);font-weight:600}
.respitem{display:flex;align-items:center;gap:10px;margin-bottom:9px;font-size:13px}
.respitem .rn{flex:1;color:var(--ink-soft)}
.respitem .rbar{height:8px;border-radius:5px;background:var(--gold-soft);flex:none}
.respitem .rv{width:26px;text-align:right;color:var(--muted);font-weight:600}

.hist{margin-top:14px;padding:16px 18px 12px}
.hist h2{font-family:var(--serif);font-size:16px;font-weight:600;margin-bottom:2px}
.phelp{font-size:12px;color:var(--muted);margin:2px 0 12px}
.chartbox{width:100%;overflow-x:auto}
svg .axis{fill:var(--muted);font-size:11px} svg .barlab{fill:var(--ink-soft);font-size:11px;font-weight:600} svg .mlab{fill:var(--muted);font-size:11px}

.listcard{margin-top:14px;padding:16px 18px}
.lhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.lhead h2{font-family:var(--serif);font-size:16px;font-weight:600}
.lhead .lactions{display:flex;gap:8px;flex-wrap:wrap}
.scope{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.scope button{border:none;background:var(--surface);color:var(--ink-soft);font-size:12.5px;font-weight:600;padding:7px 12px;cursor:pointer}
.scope button.on{background:var(--graphite);color:#fff}
:root[data-theme="dark"] .scope button.on{background:var(--gold);color:#1b160a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .scope button.on{background:var(--gold);color:#1b160a}}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filters input[type=text]{flex:1;min-width:180px}
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fchip{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:20px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px}
.fchip .cdot{width:8px;height:8px;border-radius:50%}
.fchip.on{border-color:transparent;color:#fff;background:var(--graphite)}
:root[data-theme="dark"] .fchip.on{background:var(--gold);color:#1b160a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fchip.on{background:var(--gold);color:#1b160a}}

.tblwrap{overflow:auto;max-height:560px;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;font-size:12.5px;min-width:1000px}
thead th{position:sticky;top:0;background:var(--surface-2);color:var(--muted);font-weight:600;text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
tbody td{padding:9px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}
tbody tr:hover{background:var(--surface-2)}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
td.parte{max-width:300px;min-width:220px}
td.parte .pt{font-weight:600;color:var(--ink);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
td.parte .po{font-size:11.5px;color:var(--muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
td.acaocell{max-width:170px}
td.acaocell > div{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.achip{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px;color:#fff;white-space:nowrap;display:inline-block}
.num{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink-soft)}
.num a{color:var(--gold);text-decoration:none;border-bottom:1px dotted var(--gold-soft)}
.val{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink-soft)}
.pill{font-size:11px;font-weight:600;padding:4px 9px;border-radius:20px;border:1px solid transparent;cursor:pointer;white-space:nowrap;user-select:none}
.pill:hover{filter:brightness(.97);box-shadow:0 0 0 3px var(--line)}
.pill.ativo{color:var(--ok);background:var(--ok-wash);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}
.pill.atencao{color:var(--warn);background:var(--warn-wash);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.pill.aguardando{color:var(--wait);background:var(--wait-wash);border-color:color-mix(in srgb,var(--wait) 35%,transparent)}
.pill.urgente{color:var(--crit);background:var(--crit-wash);border-color:color-mix(in srgb,var(--crit) 35%,transparent)}
.pill.encerrado{color:var(--enc);background:var(--enc-wash);border-color:color-mix(in srgb,var(--enc) 35%,transparent)}
.ult{max-width:220px;font-size:11.5px;color:var(--muted)}
.ult .utxt{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rowdel{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:6px}
.rowdel:hover{color:var(--crit);background:var(--crit-wash)}
.emptyt{padding:26px;text-align:center;color:var(--muted);font-style:italic}
.footnote{font-size:11.5px;color:var(--muted);margin-top:18px;text-align:center;line-height:1.7}
.footnote b{color:var(--ink-soft)}

/* ---------- modal ---------- */
.overlay{position:fixed;inset:0;background:rgba(15,18,22,.55);display:grid;place-items:center;padding:16px;z-index:50}
.modal{width:100%;max-width:560px;max-height:90vh;overflow:auto;padding:22px 24px}
.modal h3{font-family:var(--serif);font-size:19px;font-weight:600;margin-bottom:4px}
.modal .mhelp{font-size:12.5px;color:var(--muted);margin-bottom:16px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.formgrid .full{grid-column:1/-1}
.formgrid input,.formgrid select{width:100%}
.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.utable{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px;min-width:0}
.utable th,.utable td{text-align:left;padding:8px 8px;border-bottom:1px solid var(--line-2)}
.utable th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.dropzone{border:1.5px dashed var(--line);border-radius:12px;padding:22px;text-align:center;color:var(--muted);background:var(--surface-2);font-size:13px}

@media (max-width:820px){.kpis{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}}
@media (max-width:440px){.brand .sub{display:none}}
