:root{
  --bg:#f6f5f2;--card:#fff;--ink:#1d1b19;--muted:#6f6a63;--line:#e6e2db;
  --acc:#b8456b;--acc-soft:#f6e4ea;--ok:#2f7d4f;--ok-soft:#e3f1e8;--warn:#b26a00;--warn-soft:#fbefd9;--bad:#b3261e;--bad-soft:#fbe5e3;
  --fixa:#5a6fb0;--cartao:#c27a2c;--festa:#b8456b;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
a{color:var(--acc)}
header.top{background:var(--card);border-bottom:1px solid var(--line);padding:14px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
header.top h1{font-size:18px;margin:0}
header.top .sub{color:var(--muted);font-size:13px}
header.top .user{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:13px;flex-wrap:wrap}
header.top .user a{color:var(--muted);text-decoration:none}
header.top .user a:hover{color:var(--acc)}
nav.tabs{display:flex;gap:4px;padding:0 24px;background:var(--card);border-bottom:1px solid var(--line);overflow-x:auto}
nav.tabs a{padding:12px 14px;color:var(--muted);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;white-space:nowrap}
nav.tabs a.on{color:var(--acc);border-color:var(--acc)}
main{max-width:1200px;margin:0 auto;padding:24px}
.grid{display:grid;gap:16px;margin-bottom:16px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.two{grid-template-columns:1.4fr 1fr}
@media(max-width:900px){.two{grid-template-columns:1fr}main{padding:14px}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.grid>.card{margin-bottom:0}
.card.narrow{max-width:720px}
.form-card{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.kpi .lbl{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.kpi .val{font-size:24px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .hint{color:var(--muted);font-size:12px;margin-top:4px}
h2{font-size:15px;margin:0 0 12px}
h3{font-size:13px;margin:18px 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.row h2{margin:0}
.card>.row{margin-bottom:12px}
.sp{flex:1}
.muted{color:var(--muted)}.small{font-size:12px}
.pos{color:var(--ok)}.neg{color:var(--bad)}
table{width:100%;border-collapse:collapse}
th,td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tfoot td{font-weight:700;border-bottom:none}
tr.inativa{opacity:.5}
td.acoes{white-space:nowrap;text-align:right}
td.acoes form{display:inline}
.tbl-wrap{overflow-x:auto}
button,.btn{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);background:var(--card);padding:7px 12px;color:var(--ink);text-decoration:none;display:inline-block;line-height:1.3}
button:hover,.btn:hover{border-color:#cfc9bf}
button.pri,.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}
button.pri:hover,.btn.pri:hover{filter:brightness(.95)}
.sm{padding:4px 8px !important;font-size:12px}
button.ghost{border-color:transparent;background:transparent;color:var(--muted)}
button.ghost:hover{color:var(--bad)}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}
input[type=checkbox]{width:auto}
input:focus,select:focus{outline:2px solid var(--acc-soft);border-color:var(--acc)}
input.inl{max-width:150px;text-align:right}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid.one{grid-template-columns:1fr}
.form-grid .full{grid-column:1/-1}
.form-grid h3{margin:8px 0 0}
.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:500}
.form-grid label.chk{flex-direction:row;align-items:center;gap:8px;font-size:13px;color:var(--ink)}
.calc{background:var(--bg);border-radius:8px;padding:10px 12px;font-size:13px}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600}
.b-contratar{background:var(--warn-soft);color:var(--warn)}
.b-contratado{background:#e6ecf8;color:var(--fixa)}
.b-quitado{background:var(--ok-soft);color:var(--ok)}
.prog{height:6px;background:var(--line);border-radius:6px;overflow:hidden;min-width:70px}
.prog>i{display:block;height:100%;background:var(--ok)}
.hist{font-size:12px;color:var(--muted);margin-top:2px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.chart{display:flex;align-items:flex-end;gap:10px;height:230px;padding-top:10px;overflow-x:auto}
.col{flex:1;min-width:58px;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.stack{flex:1;width:100%;max-width:46px;display:flex;flex-direction:column-reverse;position:relative}
.stack>div{width:100%}
.stack>div:last-child{border-radius:5px 5px 0 0}
.col .m{font-size:11px;color:var(--muted)}
.col .t{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}
.renda-line{position:absolute;left:-4px;right:-4px;border-top:2px dashed var(--ink);opacity:.45}
.empty{padding:28px;text-align:center;color:var(--muted)}
.alert{padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:13px}
.alert.ok{background:var(--ok-soft);color:var(--ok)}
.alert.erro{background:var(--bad-soft);color:var(--bad)}
footer{text-align:center;color:var(--muted);font-size:12px;padding:20px}
body.auth{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.auth-box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;width:min(380px,100%)}
.auth-box.wide{width:min(620px,100%)}
.auth-box h1{font-size:20px;margin:0 0 4px}
/* Gráfico de linhas */
.linechart{width:100%;height:auto;display:block;margin-top:8px;overflow:visible}
.linechart .grid-l{stroke:var(--line);stroke-width:1}
.linechart .ax{font-size:11px;fill:var(--muted)}
.linechart .lbl-total{font-size:11px;font-weight:700;fill:var(--ink)}
.linechart circle{cursor:pointer}
.linechart circle:hover{r:6}
/* Logo */
header.top .logo img{width:40px;height:40px;display:block;border-radius:10px}
.logo-auth{width:56px;height:56px;border-radius:14px;display:block;margin-bottom:12px}
