/* =========================================================
   Stona Financeiro — design system v3
   Dashboard moderno: cards flutuantes, destaque violeta,
   claro/escuro automático, desktop + iPhone
   ========================================================= */
:root{
  color-scheme:light;
  --bg:#f3f4f8; --surface:#ffffff; --surface-2:#f8f9fb; --surface-3:#eef0f5;
  --ink:#1e2033; --ink-2:#4b5068; --muted:#8a8fa3;
  --line:#eceef3; --line-2:#dfe2ea;
  --accent:#755ff8; --accent-hover:#6347ec; --accent-soft:#f0edff; --accent-ink:#5b43e0;
  --primary:#1e2033; --primary-ink:#ffffff; --primary-hover:#33364d;
  --focus:rgba(117,95,248,.22);
  --shadow:0 1px 2px rgba(30,32,51,.04),0 1px 8px rgba(30,32,51,.04);
  --shadow-lg:0 20px 48px rgba(30,32,51,.16),0 2px 8px rgba(30,32,51,.06);
  --glass:rgba(243,244,248,.82);
  --good:#16a34a; --good-ink:#15803d; --good-bg:#e7f8ee;
  --warn:#f59e0b; --warn-ink:#a16207; --warn-bg:#fef5e1;
  --bad:#ef4444;  --bad-ink:#dc2626;  --bad-bg:#feeceb;
  --info-ink:#5b43e0; --info-bg:#f0edff;
  /* séries — ordem fixa validada (CVD + contraste) */
  --s1:#755ff8; --s2:#22a7e8; --s3:#139e74; --s4:#e8930c; --s5:#df4f95; --s8:#e34948;
  --s-neutral:#d3d6e0; --s-prev:#c8ccd8;
  --grid:#eef0f4; --axis:#dfe2ea;
  --r:14px; --r-sm:10px;
  --side-w:256px; --top-h:64px; --tab-h:64px;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI Variable","Segoe UI",Roboto,system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#111117; --surface:#1c1c24; --surface-2:#22222c; --surface-3:#2a2a35;
    --ink:#f1f1f5; --ink-2:#b4b6c6; --muted:#7f8296;
    --line:#2a2a35; --line-2:#363643;
    --accent:#8470ff; --accent-hover:#9988ff; --accent-soft:rgba(132,112,255,.14); --accent-ink:#a596ff;
    --primary:#f1f1f5; --primary-ink:#16161c; --primary-hover:#ffffff;
    --focus:rgba(132,112,255,.3);
    --shadow:0 1px 2px rgba(0,0,0,.3);
    --shadow-lg:0 20px 56px rgba(0,0,0,.6);
    --glass:rgba(17,17,23,.78);
    --good-ink:#4ade80; --good-bg:rgba(34,197,94,.14);
    --warn-ink:#fbbf24; --warn-bg:rgba(245,158,11,.14);
    --bad-ink:#f87171;  --bad-bg:rgba(239,68,68,.15);
    --info-ink:#a596ff; --info-bg:rgba(132,112,255,.14);
    --s1:#8470ff; --s2:#2a9fdc; --s3:#16a37c; --s4:#c47a06; --s5:#e55c9f; --s8:#e66767;
    --s-neutral:#3c3c4a; --s-prev:#4a4a5a;
    --grid:#262630; --axis:#363643;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#111117; --surface:#1c1c24; --surface-2:#22222c; --surface-3:#2a2a35;
  --ink:#f1f1f5; --ink-2:#b4b6c6; --muted:#7f8296;
  --line:#2a2a35; --line-2:#363643;
  --accent:#8470ff; --accent-hover:#9988ff; --accent-soft:rgba(132,112,255,.14); --accent-ink:#a596ff;
  --primary:#f1f1f5; --primary-ink:#16161c; --primary-hover:#ffffff;
  --focus:rgba(132,112,255,.3);
  --shadow:0 1px 2px rgba(0,0,0,.3);
  --shadow-lg:0 20px 56px rgba(0,0,0,.6);
  --glass:rgba(17,17,23,.78);
  --good-ink:#4ade80; --good-bg:rgba(34,197,94,.14);
  --warn-ink:#fbbf24; --warn-bg:rgba(245,158,11,.14);
  --bad-ink:#f87171;  --bad-bg:rgba(239,68,68,.15);
  --info-ink:#a596ff; --info-bg:rgba(132,112,255,.14);
  --s1:#8470ff; --s2:#2a9fdc; --s3:#16a37c; --s4:#c47a06; --s5:#e55c9f; --s8:#e66767;
  --s-neutral:#3c3c4a; --s-prev:#4a4a5a;
  --grid:#262630; --axis:#363643;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
.content a:not(.btn):not(.plain):not(.hb):not(.li){color:var(--accent-ink);font-weight:500}
.content a:not(.btn):not(.plain):not(.hb):not(.li):hover{color:var(--accent-hover)}
h1,h2,h3,h4{margin:0 0 .6em;line-height:1.25;letter-spacing:-.015em;color:var(--ink)}
h1{font-size:28px;font-weight:750}h2{font-size:18px;font-weight:700}h3{font-size:15px;font-weight:650}
h4{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:650}
p{margin:0 0 .8em}
code{background:var(--surface-3);padding:2px 7px;border-radius:6px;font-size:12.5px;font-family:ui-monospace,"SF Mono",Menlo,monospace}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
::selection{background:var(--accent);color:#fff}
[hidden]{display:none!important}

/* ---------- shell ---------- */
.shell{display:flex;min-height:100vh;min-height:100dvh}
.side{width:var(--side-w);flex:none;position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--surface);z-index:40;padding-top:var(--sat);border-radius:0 18px 18px 0;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:12px;padding:22px 22px 18px;font-weight:750;font-size:15.5px;letter-spacing:-.01em}
.brand small{display:block;font-weight:500;font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:1px}
.logo{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--accent),#a78bfa);color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px;letter-spacing:-.04em;box-shadow:0 4px 12px rgba(117,95,248,.35)}
.side nav{display:flex;flex-direction:column;gap:2px;padding:4px 14px;overflow-y:auto;flex:1;scrollbar-width:thin}
.nav-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:650;padding:16px 10px 7px}
.side nav a,.nav-grp,.side-foot a,.side-foot button{display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:10px;color:var(--ink-2);font-size:13.5px;font-weight:550;border:0;background:none;width:100%;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s,color .12s}
.side nav a .ic,.nav-grp .ic{color:var(--muted)}
.side nav a:hover,.nav-grp:hover,.side-foot a:hover,.side-foot button:hover{color:var(--ink);background:var(--surface-2)}
.side nav a.on{background:linear-gradient(90deg,var(--accent-soft),transparent 140%);color:var(--ink);font-weight:650}
.side nav a.on .ic{color:var(--accent)}
.nav-grp .chev{margin-left:auto;width:16px;height:16px;transition:transform .2s}
.nav-grp[aria-expanded="true"] .chev{transform:rotate(180deg)}
.nav-grp.has-on{color:var(--ink)}
.nav-grp.has-on>.ic:first-child{color:var(--accent)}
.nav-sub{display:flex;flex-direction:column;gap:1px;padding:2px 0 6px 41px}
.nav-sub a{padding:6px 10px!important;font-size:13px!important;font-weight:500!important}
.nav-sub a.on{background:none!important;color:var(--accent-ink)!important;font-weight:650!important}
.count{margin-left:auto;background:var(--accent-soft);color:var(--accent-ink);font-size:11px;border-radius:6px;padding:1px 7px;font-weight:700;line-height:1.55}
.side-foot{padding:10px 14px calc(12px + var(--sab));display:flex;gap:6px}
.side-foot>*{flex:1}
.side-foot .mini-btn{justify-content:center}

.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#22a7e8);display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;flex:none}
.avatar.sm{width:28px;height:28px;font-size:11px}
.avatar.soft{background:var(--accent-soft);color:var(--accent-ink)}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:var(--top-h);padding:calc(10px + var(--sat)) 40px 10px;background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line)}
.top-left{margin-right:auto;min-width:0;display:none}
.top-left b{font-size:16px}
.iconbtn{position:relative;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:0;background:transparent;color:var(--ink-2);cursor:pointer;padding:0;transition:background .12s}
.iconbtn:hover{color:var(--ink);background:var(--surface-3)}
.iconbtn .dot{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--bad);border:2px solid var(--bg)}
.top-sep{width:1px;height:24px;background:var(--line-2);margin:0 8px}
.usermenu{position:relative}
.userbtn{display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;font:inherit;color:var(--ink);padding:4px 6px 4px 4px;border-radius:99px}
.userbtn:hover{background:var(--surface-3)}
.userbtn b{font-size:13.5px;font-weight:600}
.userbtn .chev{width:15px;height:15px;color:var(--muted)}
.dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:60;animation:pop .14s ease-out}
.dropdown .dd-h{padding:10px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.dropdown .dd-h b{display:block;font-size:14px}.dropdown .dd-h small{color:var(--muted);font-size:12px}
.dropdown a,.dropdown button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border-radius:8px;border:0;background:none;font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;text-align:left}
.dropdown a:hover,.dropdown button:hover{background:var(--surface-2);color:var(--ink)}
@keyframes pop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
.content{padding:30px 40px 80px;max-width:1440px;width:100%;margin:0 auto}

/* cabeçalho de página */
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.page-h h1{margin:0;font-size:28px}
.page-h .crumb{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px;font-weight:500}
.page-h .ph-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.periodbtn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font:inherit;font-size:13px;font-weight:500;box-shadow:var(--shadow)}
.periodbtn .ic{width:16px;height:16px;color:var(--muted)}

.tabbar{display:none}
.scrim{display:none}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid transparent;border-radius:var(--r);padding:22px;box-shadow:var(--shadow);margin-bottom:22px;min-width:0}
.card.p0{padding:0;overflow:hidden}
.card.narrow{max-width:680px}
.card.empty,.empty{text-align:center;color:var(--muted);padding:32px 16px}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-22px -22px 18px;padding:16px 22px;border-bottom:1px solid var(--line);min-height:56px}
.card-h h3{margin:0;font-size:15px}
.card-h a:not(.btn){font-size:12.5px;color:var(--muted)!important;font-weight:500!important}
.card-h a:not(.btn):hover{color:var(--accent-ink)!important}
.card>h3:first-child{margin:-22px -22px 18px;padding:18px 22px;border-bottom:1px solid var(--line)}
.card-sub{font-size:12.5px;color:var(--muted);margin:-6px 0 14px}
.headline{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;margin:-4px 0 14px}
.headline .hl{display:inline-flex;align-items:baseline;gap:8px}
.headline .hl b{font-size:26px;font-weight:750;letter-spacing:-.025em}
.headline .hl span{font-size:12.5px;color:var(--muted)}
.headline .hl i{display:inline-block;width:10px;height:10px;border-radius:50%;border:2.5px solid;align-self:center;background:transparent!important}
.headline .hl i.s1{border-color:var(--s1)}.headline .hl i.s2{border-color:var(--s2)}.headline .hl i.s3{border-color:var(--s3)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:22px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-bottom:22px}
.grid-21{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:22px;margin-bottom:22px}
.grid-12{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:22px;margin-bottom:22px}
.grid2>.card,.grid3>.card,.grid-21>.card,.grid-12>.card{margin-bottom:0}
.grid-form{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px}
.formula{background:var(--accent-soft);font-size:13px;box-shadow:none;color:var(--ink-2)}
.span2{grid-column:span 2}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px;margin-bottom:22px}
.kpi{background:var(--surface);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow);position:relative;overflow:hidden;min-width:0}
.kpi-l{font-size:11px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:7px}
.kpi-v{font-size:26px;font-weight:750;margin:6px 0 2px;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-s{font-size:12.5px;color:var(--muted)}
.kpi-s strong{color:var(--ink-2);font-weight:600}
.kpi.pos .kpi-v{color:var(--ink)}
.kpi .spark{position:absolute;top:18px;right:18px;width:64px;height:24px}
.kpi .spark svg{width:64px;height:24px}
.kpi:has(.spark) .kpi-l{padding-right:72px}

/* card de tendência (número grande + delta + área comparativa) */
.trends{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-bottom:22px}
.tcard{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;min-width:0}
.tcard-b{padding:20px 22px 0}
.tcard-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.tcard-h h3{margin:0;font-size:15.5px}
.tcard-h a{color:var(--muted);display:grid;place-items:center;width:28px;height:28px;border-radius:50%}
.tcard-h a:hover{background:var(--surface-3);color:var(--ink)}
.tcard-l{font-size:11px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.06em}
.tcard-v{display:flex;align-items:flex-start;gap:8px;margin:2px 0 4px}
.tcard-v b{font-size:30px;font-weight:780;letter-spacing:-.03em;line-height:1.15;white-space:nowrap}
.tcard-s{font-size:12px;color:var(--muted);margin-bottom:6px}
.tcard .viz{margin-top:auto}
.delta{display:inline-flex;align-items:center;font-size:12px;font-weight:650;padding:1px 7px;border-radius:99px;margin-top:6px;white-space:nowrap;background:var(--surface-3);color:var(--ink-2)}
.delta.up{background:var(--good-bg);color:var(--good-ink)}
.delta.down{background:var(--bad-bg);color:var(--bad-ink)}

/* ---------- tabelas ---------- */
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.card:not(.p0) th:first-child,.card:not(.p0) td:first-child{padding-left:0}
.card:not(.p0) th:last-child,.card:not(.p0) td:last-child{padding-right:0}
th{font-size:11px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;background:var(--surface)}
.card.p0 thead th,.tbl-soft thead th{background:var(--surface-2);border-bottom:0}
.card:not(.p0) .tbl-soft{margin:0 -22px}
.card:not(.p0) .tbl-soft th:first-child,.card:not(.p0) .tbl-soft td:first-child{padding-left:22px}
.card:not(.p0) .tbl-soft th:last-child,.card:not(.p0) .tbl-soft td:last-child{padding-right:22px}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--ink)}
th.sortable::after{content:"";display:inline-block;width:0;height:0;margin-left:5px;vertical-align:middle;border:4px solid transparent;opacity:0}
th.sortable:hover::after{opacity:.4;border-top-color:currentColor;border-bottom:0}
th.asc::after{opacity:1;border-bottom-color:currentColor;border-top:0}
th.desc::after{opacity:1;border-top-color:currentColor;border-bottom:0}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:background .12s}
tbody tr:hover td{background:var(--surface-2)}
tr.tot td{font-weight:700;border-top:1px solid var(--line-2);background:var(--surface-2)}
tr.clickable{cursor:pointer}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.right{text-align:right}.nowrap{white-space:nowrap}.wrap{white-space:normal;word-break:break-word}.center{text-align:center}
.pos{color:var(--good-ink)}.neg{color:var(--bad-ink)}
.small{font-size:12.5px}.muted{color:var(--muted)}
.w30{width:30px}.w80{width:84px!important;flex:none!important}.w100{width:116px!important;flex:none!important}
.pre{white-space:pre-wrap}
.tbl-search{max-width:280px}
.cellmain{display:flex;align-items:center;gap:12px;min-width:0}
.cellmain>span:last-child{min-width:0}
.cellmain b{font-weight:600}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:650;white-space:nowrap;background:var(--surface-3);color:var(--ink-2);line-height:1.6}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--muted)}
.b-green{background:var(--good-bg);color:var(--good-ink)}.b-green::before{background:var(--good)}
.b-red{background:var(--bad-bg);color:var(--bad-ink)}.b-red::before{background:var(--bad)}
.b-amber{background:var(--warn-bg);color:var(--warn-ink)}.b-amber::before{background:var(--warn)}
.b-blue{background:var(--accent-soft);color:var(--accent-ink)}.b-blue::before{background:var(--s1)}
.b-violet::before{background:var(--s5)}.b-teal::before{background:var(--s2)}
.flag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:650;padding:2px 8px;border-radius:6px;margin-top:4px;white-space:nowrap}
.flag::before{content:"!";display:grid;place-items:center;width:13px;height:13px;border-radius:50%;font-size:9.5px;font-weight:800}
.f-red{background:var(--bad-bg);color:var(--bad-ink)}.f-red::before{background:var(--bad);color:#fff}
.f-amber{background:var(--warn-bg);color:var(--warn-ink)}.f-amber::before{background:var(--warn);color:#1e2033}
.tag{display:inline-block;font-size:10.5px;padding:1px 7px;border-radius:6px;background:var(--surface-3);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-weight:650}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:5px 11px;font-size:12px;color:var(--ink-2)}
.chip b{color:var(--ink)}

/* ---------- alertas & toasts ---------- */
.alert{display:flex;gap:10px;align-items:flex-start;padding:13px 16px;border-radius:12px;margin-bottom:14px;font-size:13.5px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.alert::before{content:"";width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--muted)}
.a-success{background:var(--good-bg);box-shadow:none}.a-success::before{background:var(--good)}
.a-danger{background:var(--bad-bg);box-shadow:none}.a-danger::before{background:var(--bad)}
.a-warning{background:var(--warn-bg);box-shadow:none}.a-warning::before{background:var(--warn)}
.a-info{background:var(--info-bg);box-shadow:none}.a-info::before{background:var(--accent)}
.alert a{font-weight:650}
.toasts{position:fixed;right:24px;top:calc(76px + var(--sat));z-index:90;display:flex;flex-direction:column;gap:8px;max-width:380px;width:calc(100% - 48px);pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:10px;align-items:flex-start;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:13px 15px;border-radius:12px;box-shadow:var(--shadow-lg);font-size:13.5px;animation:toastIn .25s ease-out}
.toast::before{content:"";width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--muted)}
.toast.t-success::before{background:var(--good)}.toast.t-danger::before{background:var(--bad)}.toast.t-warning::before{background:var(--warn)}.toast.t-info::before{background:var(--accent)}
.toast button{margin-left:auto;background:none;border:0;color:var(--muted);cursor:pointer;font-size:17px;line-height:1;padding:0 0 0 8px}
.toast.out{animation:toastOut .2s ease-in forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(-6px)}}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 15px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;line-height:1;box-shadow:var(--shadow);transition:background .12s,border-color .12s,transform .06s}
.btn:hover{border-color:var(--muted)}
.btn:active{transform:scale(.98)}
.btn .ic{width:16px;height:16px}
.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-success{color:var(--good-ink)}.btn-success:hover{background:var(--good-bg);border-color:transparent}
.btn-danger{color:var(--bad-ink)}.btn-danger:hover{background:var(--bad-bg);border-color:transparent}
.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-2);box-shadow:none}
.btn-ghost:hover{background:var(--surface-3);color:var(--ink);border-color:transparent}
.btn-sm{height:30px;padding:0 11px;font-size:12.5px;border-radius:8px}
.btn-block{width:100%;height:46px;font-size:14.5px}
.btn-icon{width:38px;padding:0}
form.inline{display:inline-flex;gap:6px;align-items:center;vertical-align:middle;margin:0}
.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.toolbar p{margin:0}
.sp{flex:1}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}
.actions.sticky{position:sticky;bottom:0;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px 0 calc(12px + var(--sab));border-top:1px solid var(--line);z-index:5}
.danger-zone{margin-top:28px;padding-top:14px;border-top:1px dashed var(--line-2)}
.seg-ctl{display:inline-flex;background:var(--surface);border:1px solid var(--line-2);border-radius:10px;padding:3px;gap:2px;box-shadow:var(--shadow)}
.seg-ctl a,.seg-ctl button{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink-2)!important;border:0;background:none;cursor:pointer;font-family:inherit;white-space:nowrap}
.seg-ctl a:hover{color:var(--ink)!important}
.seg-ctl .on{background:var(--accent-soft);color:var(--accent-ink)!important}

/* ---------- formulários ---------- */
.form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:14px}
input,select,textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;width:100%;min-width:0;transition:border-color .12s,box-shadow .12s;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 55%,calc(100% - 12px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--focus)}
input[disabled]{background:var(--surface-2);color:var(--muted)}
input::placeholder,textarea::placeholder{color:var(--muted)}
input.big{font-size:24px;font-weight:700;letter-spacing:-.02em}
input[type=checkbox],input[type=radio]{width:18px;height:18px;padding:0;flex:none;-webkit-appearance:auto;appearance:auto;accent-color:var(--accent)}
input[type=date],input[type=month]{min-height:44px}
input[type=file]{padding:9px;background:var(--surface-2);font-size:13px}
.form label.check,label.check{flex-direction:row;align-items:center;gap:9px;font-weight:500;color:var(--ink);font-size:13.5px}
.hint{font-size:12px;color:var(--muted);font-weight:400;margin:-6px 0 14px;line-height:1.45}
label .hint{margin:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.radios{border:1px solid var(--line-2);border-radius:12px;padding:10px 14px;margin:0 0 14px}
.radios legend{font-size:12.5px;font-weight:600;color:var(--ink-2);padding:0 4px}
.radios label{flex-direction:row!important;align-items:center;gap:9px;font-weight:500!important;color:var(--ink)!important;margin:6px 0!important;font-size:14px!important}
.radios.seg{display:flex;gap:4px;padding:4px;background:var(--surface-3);border:0}
.radios.seg label{flex:1;justify-content:center;padding:9px;border-radius:9px;cursor:pointer;margin:0!important}
.radios.seg label:has(input:checked){background:var(--surface);box-shadow:var(--shadow)}
.radios.seg input{position:absolute;opacity:0;pointer-events:none}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px}
.filters input,.filters select{width:auto;min-width:150px;height:38px;padding:0 12px;font-size:13px;box-shadow:var(--shadow)}
.filters select{padding-right:30px}
.filters input[type=month],.filters input[type=date]{min-height:38px}
.filters label.check,.filters label.inline{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:7px}
.inline-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px}
.inline-form input,.inline-form select{width:auto;flex:1;min-width:110px;height:36px;padding:0 10px;font-size:13px}
form.reject input{width:220px;height:38px;padding:0 10px;font-size:13px}
select.sm{height:38px;padding:0 30px 0 11px;font-size:13px;width:auto}
details summary{cursor:pointer;font-weight:600;margin:12px 0;color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:6px}
details summary::-webkit-details-marker{display:none}
details summary::before{content:"+";display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:var(--surface-3);font-size:13px}
details[open] summary::before{content:"–"}
dl.dl{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;margin:0 0 12px}
dl.dl dt{color:var(--muted);font-size:12.5px}dl.dl dd{margin:0}
.bigmoney{font-size:34px;font-weight:780;margin:4px 0 16px;letter-spacing:-.03em}
img.receipt{max-width:100%;max-height:600px;border-radius:12px;border:1px solid var(--line)}

/* ---------- calculadora ---------- */
.calc-out{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--surface-2);border-radius:12px;padding:14px;margin:6px 0 14px}
.calc-out div,.suggest>div{display:flex;flex-direction:column}
.calc-out span{font-size:11.5px;color:var(--muted)}
.calc-out b{font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.calc-out b.neg{color:var(--bad-ink)}.calc-out b.pos{color:var(--good-ink)}
.suggest{display:grid;grid-template-columns:130px 1fr 1fr;gap:12px;align-items:end;border-top:1px dashed var(--line-2);padding-top:14px}
.suggest label{margin:0!important}
.suggest b{font-size:17px}

/* ---------- progresso / metas ---------- */
.bar{height:6px;background:var(--surface-3);border-radius:99px;overflow:hidden;margin:7px 0}
.bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:99px;transition:width .7s cubic-bezier(.2,.8,.2,1)}
.bar.ok i{background:var(--good)}.bar.warn i{background:var(--warn)}.bar.bad i{background:var(--bad)}
.meta-mini{display:flex;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.meta-mini:first-of-type{padding-top:0}
.meta-mini:last-child{border:0;padding-bottom:0}
.meta-mini .grow{flex:1;min-width:0}
.metas{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:22px}
.metas .card{margin:0}
.meta.off{opacity:.5}
.meta-top{display:flex;gap:18px;align-items:center;margin-bottom:6px}
.meta-v{font-size:13px;color:var(--ink-2)}.meta-v b{display:block;font-size:24px;color:var(--ink);letter-spacing:-.02em}
.row-sb{display:flex;justify-content:space-between;gap:10px;align-items:center}
.li{padding:11px 0;border-bottom:1px solid var(--line)}
.li:last-child{border:0}
.list a.li{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 -10px;padding:10px;border-radius:10px;border-bottom:0}
.list a.li+a.li{border-top:1px solid var(--line);border-radius:0}
.list a.li:hover{background:var(--surface-2);border-radius:10px}
.list .grow{flex:1;min-width:0}
.list a.li .right{text-align:right;white-space:nowrap}
.trip{display:flex;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.trip:last-child{border:0}
.trip .grow{flex:1;min-width:0}
.trip-d{width:50px;text-align:center;background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;padding:6px 0;flex:none}
.trip-d b{display:block;font-size:19px;line-height:1.1;letter-spacing:-.02em}.trip-d span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:650}

/* ---------- abas ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-2);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{padding:10px 14px;color:var(--muted)!important;font-weight:600!important;font-size:13.5px;border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px}
.tabs a:hover{color:var(--ink)!important}
.tabs a.on{color:var(--accent-ink)!important;border-bottom-color:var(--accent)}
.monthnav{display:flex;align-items:center;gap:8px}.monthnav strong{min-width:86px;text-align:center;font-size:15px}

/* ---------- gráficos ---------- */
.viz{position:relative;width:100%;min-height:40px}
.viz svg{display:block;width:100%;overflow:visible}
.viz text{font-family:inherit;font-size:11px;fill:var(--muted)}
.viz .grid{stroke:var(--grid);stroke-width:1;shape-rendering:crispEdges}
.viz .axis{stroke:var(--axis);stroke-width:1;shape-rendering:crispEdges}
.viz .s1{fill:var(--s1);stroke:var(--s1)}.viz .s2{fill:var(--s2);stroke:var(--s2)}.viz .s3{fill:var(--s3);stroke:var(--s3)}.viz .s4{fill:var(--s4);stroke:var(--s4)}
.viz .s5{fill:var(--s5);stroke:var(--s5)}.viz .s8{fill:var(--s8);stroke:var(--s8)}
.viz .sn{fill:var(--s-neutral);stroke:var(--s-neutral)}
.viz .sp{fill:var(--s-prev);stroke:var(--s-prev)}
.viz .ink{fill:var(--ink);stroke:var(--ink)}
.viz stop.s1{stop-color:var(--s1)}.viz stop.s2{stop-color:var(--s2)}.viz stop.s3{stop-color:var(--s3)}.viz stop.s8{stop-color:var(--s8)}
.viz path.mark,.viz rect.mark{stroke:none;transition:opacity .15s}
.viz .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.viz .line.sp{stroke-width:1.6}
.viz .gfill{stroke:none}
.viz .dot{stroke:var(--surface);stroke-width:2}
.viz .cross{stroke:var(--muted);stroke-width:1;opacity:0;shape-rendering:crispEdges;pointer-events:none}
.viz.hovering .cross{opacity:.5}
.viz.hovering .mark.dim{opacity:.35}
.viz .arc{stroke:var(--surface);stroke-width:2;transition:opacity .15s;cursor:pointer}
.viz .arc.dim{opacity:.3}
.viz .donut-c{font-size:12px;fill:var(--muted)}
.viz .donut-v{font-size:19px;font-weight:750;fill:var(--ink);letter-spacing:-.02em}
.viz .vlabel{fill:var(--ink-2);font-weight:650}
.viz-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink-2);margin:0 0 12px}
.viz-legend span{display:inline-flex;align-items:center;gap:7px}
.viz-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.viz-legend i.l{height:2px;width:14px;border-radius:2px}
i.s1{background:var(--s1)}i.s2{background:var(--s2)}i.s3{background:var(--s3)}i.s4{background:var(--s4)}i.s5{background:var(--s5)}i.s8{background:var(--s8)}i.sn{background:var(--s-neutral)}i.sp{background:var(--s-prev)}i.ink{background:var(--ink)}
.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:18px}
.donut-wrap>div:first-child{width:100%;max-width:210px}
.donut-leg{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0;width:100%}
.donut-leg div{display:grid;grid-template-columns:12px 1fr auto auto;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;cursor:default}
.donut-leg div:hover,.donut-leg div.on{background:var(--surface-2)}
.donut-leg i{width:10px;height:10px;border-radius:50%}
.donut-leg span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.donut-leg b{font-variant-numeric:tabular-nums;font-weight:650}
.donut-leg em{font-style:normal;color:var(--muted);font-size:12px;width:40px;text-align:right;font-variant-numeric:tabular-nums}
.donut-side .donut-wrap{flex-direction:row;align-items:center}
.donut-side .donut-wrap>div:first-child{max-width:190px;flex:none}
.hbars{display:flex;flex-direction:column;gap:2px}
.hb{display:grid;grid-template-columns:minmax(90px,34%) 1fr auto;gap:14px;align-items:center;padding:8px 10px;margin:0 -10px;border-radius:10px}
a.hb:hover,.hb:hover{background:var(--surface-2)}
.hb-l{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}
.hb-l small{display:block;color:var(--muted);font-size:11.5px;font-weight:400}
.hb-t{position:relative;height:12px;background:var(--surface-3);border-radius:4px}
.hb-t i{position:absolute;top:0;height:12px;border-radius:0 4px 4px 0;width:0;transition:width .7s cubic-bezier(.2,.8,.2,1),left .7s cubic-bezier(.2,.8,.2,1)}
.hb-t i.negb{border-radius:4px 0 0 4px}
.hb-t .zero{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--muted)}
.hb-v{font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:88px;text-align:right}
.hb-v small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.hg .hb-t{height:22px;background:none}
.hg .hb-t i{height:9px}
.hg .hb-t i+i{top:12px}
.viz-tip{position:fixed;z-index:100;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);padding:10px 12px;font-size:12px;min-width:160px;opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s}
.viz-tip.on{opacity:1;transform:none}
.viz-tip .tt{color:var(--muted);font-size:11.5px;margin-bottom:6px;font-weight:650}
.viz-tip .tr{display:flex;align-items:center;gap:8px;margin-top:4px}
.viz-tip .tr i{width:12px;height:2px;border-radius:2px;flex:none}
.viz-tip .tr b{font-size:13px;font-variant-numeric:tabular-nums}
.viz-tip .tr span{color:var(--ink-2);margin-left:auto;padding-left:14px}
.viz-table{margin-top:10px}
.viz-table summary{font-size:12px;margin:8px 0;color:var(--muted)}
.viz-table table{font-size:12.5px}
.viz-empty{color:var(--muted);font-size:13px;text-align:center;padding:36px 0}
.ring{display:block}
.ring .trk{stroke:var(--surface-3);fill:none}
.ring .val{stroke:var(--accent);fill:none;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1)}
.ring.ok .val{stroke:var(--good)}.ring.warn .val{stroke:var(--warn)}.ring.bad .val{stroke:var(--bad)}
.ring text{font-family:inherit;font-weight:700;fill:var(--ink);font-size:13px}
@keyframes vizGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes vizFade{from{opacity:0}to{opacity:1}}
.viz .grow{transform-box:fill-box;transform-origin:bottom;animation:vizGrow .6s cubic-bezier(.2,.8,.2,1) both}
.viz .grow.neg{transform-origin:top}
.viz .fade{animation:vizFade .6s ease both}

/* ---------- paleta de comandos ---------- */
.cmdk{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;background:rgba(17,17,23,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:vizFade .15s}
.cmdk-box{width:100%;max-width:620px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}
.cmdk-box input{border:0;border-bottom:1px solid var(--line);border-radius:0;font-size:16px;padding:17px 20px;box-shadow:none!important}
.cmdk-list{max-height:min(440px,60vh);overflow-y:auto;padding:6px}
.cmdk-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px 12px 4px;font-weight:650}
.cmdk-it{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;font-size:14px;cursor:pointer;color:var(--ink)}
.cmdk-it small{color:var(--muted);margin-left:auto;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.cmdk-it.on{background:var(--accent-soft);color:var(--accent-ink)}
.cmdk-foot{display:flex;gap:14px;border-top:1px solid var(--line);padding:10px 14px;font-size:11.5px;color:var(--muted)}
kbd{font-family:inherit;font-size:11px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;padding:0 5px;color:var(--muted);background:var(--surface-2)}

/* ---------- auth ---------- */
body.auth{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:20px;background:var(--bg)}
body.auth::before{content:"";position:fixed;inset:0;background:radial-gradient(900px 500px at 15% -10%,rgba(117,95,248,.22),transparent 60%),radial-gradient(700px 400px at 100% 110%,rgba(34,167,232,.16),transparent 60%);pointer-events:none}
.auth-box{position:relative;background:var(--surface);border-radius:20px;padding:34px;width:100%;max-width:410px;box-shadow:var(--shadow-lg)}
.auth-box h2{font-size:21px}
.auth .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.brand.big{padding:0 0 24px}

/* ---------- impressão ---------- */
@media print{.side,.top,.tabbar,.filters,.actions,.toolbar .btn,.toasts,.ph-actions{display:none!important}.content{padding:0}.card,.tcard{box-shadow:none;border:1px solid #ddd;break-inside:avoid}}

/* ---------- responsivo ---------- */
@media (max-width:1240px){.trends{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tcard-v b{font-size:25px}}
@media (max-width:1180px){.grid3{grid-template-columns:1fr 1fr}.grid-21,.grid-12{grid-template-columns:1fr}.content{padding:26px 28px 80px}.top{padding-left:28px;padding-right:28px}}
@media (max-width:1000px){.grid2,.grid-form{grid-template-columns:1fr}.span2{grid-column:auto}.trends{grid-template-columns:1fr}}
@media (max-width:860px){
  :root{--top-h:56px}
  .side{position:fixed;left:0;top:0;bottom:0;height:auto;transform:translateX(-104%);transition:transform .25s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-lg);width:min(300px,86vw)}
  body.nav-open .side{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(17,17,23,.4);z-index:35;animation:vizFade .2s}
  .top{padding:calc(8px + var(--sat)) 12px 8px 16px}
  .top-left{display:flex;align-items:center;gap:10px}
  .top-left .logo{width:30px;height:30px;font-size:14px;border-radius:9px}
  .top-sep,.userbtn b,.userbtn .chev,.hide-m{display:none}
  .content{padding:18px 16px calc(var(--tab-h) + 28px + var(--sab))}
  .page-h{margin-bottom:18px;align-items:flex-start}
  .page-h h1{font-size:24px}
  .page-h .ph-actions{width:100%}
  .page-h .ph-actions .seg-ctl{flex:1;overflow-x:auto}
  .page-h .ph-actions .seg-ctl a{flex:1;justify-content:center}
  .kpis{grid-template-columns:1fr 1fr;gap:12px}
  .kpi{padding:15px 16px}
  .kpi-v{font-size:20px}
  .kpi .spark{display:none}
  .kpi:has(.spark) .kpi-l{padding-right:0}
  .trends,.grid2,.grid3,.grid-21,.grid-12{gap:14px;margin-bottom:14px}
  .card{padding:18px;border-radius:16px;margin-bottom:14px}
  .card-h,.card>h3:first-child{margin:-18px -18px 16px;padding:14px 18px;min-height:0}
  .card:not(.p0) .tbl-soft{margin:0 -18px}
  .card:not(.p0) .tbl-soft th:first-child,.card:not(.p0) .tbl-soft td:first-child{padding-left:18px}
  .card:not(.p0) .tbl-soft th:last-child,.card:not(.p0) .tbl-soft td:last-child{padding-right:18px}
  .tcard-b{padding:16px 18px 0}
  .row3{grid-template-columns:1fr 1fr}
  .filters input,.filters select{flex:1;min-width:130px}
  dl.dl{grid-template-columns:110px 1fr}
  .suggest{grid-template-columns:1fr 1fr}.suggest label{grid-column:1/-1}
  .toasts{top:auto;bottom:calc(var(--tab-h) + 14px + var(--sab));right:12px;width:calc(100% - 24px)}
  .actions.sticky{bottom:calc(var(--tab-h) + var(--sab))}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(var(--tab-h) + var(--sab));padding:6px 8px var(--sab);background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--line)}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--muted);border:0;background:none;font-family:inherit;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tabbar .ic{width:23px;height:23px}
  .tabbar .on{color:var(--accent)}
  .tabbar .fab .ic{width:22px;height:22px;color:#fff}
  .tabbar .fab span:first-child{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--accent),#a78bfa);display:grid;place-items:center;box-shadow:0 8px 20px rgba(117,95,248,.4);margin-top:-8px}
  .donut-side .donut-wrap{flex-direction:column}
}
@media (max-width:560px){
  .row2,.row3{grid-template-columns:1fr}
  .metas{grid-template-columns:1fr}
  th,td{padding:10px 10px}
  .donut-wrap>div:first-child{max-width:180px}
  .hb{grid-template-columns:1fr auto;row-gap:6px}
  .hb-t{grid-column:1/-1;order:3}
  .hb-l{white-space:normal}
  .bigmoney{font-size:28px}
  form.reject input{width:100%}
  .monthnav strong{min-width:70px}
  .headline .hl b{font-size:21px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.tbl-soft td:first-child{min-width:230px}
.cellmain .flag{margin-top:5px}
@media (max-width:1000px){
  .trends{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 -16px 14px;padding:2px 16px 8px;scrollbar-width:none;gap:12px}
  .trends::-webkit-scrollbar{display:none}
  .tcard{flex:0 0 min(86%,360px);scroll-snap-align:start}
}
/* cadastros */
.req{color:var(--bad-ink);margin-left:3px;font-weight:700}
.nomb{margin-bottom:0!important}
.hint.pos{color:var(--good-ink)}
.form .calc-out.nomb{margin:0;align-self:end}
tr.muted td{opacity:.6}
/* rótulo + asterisco na mesma linha; campo e dica embaixo */
.form label:not(.check){display:grid;grid-template-columns:max-content 1fr;align-items:center;column-gap:2px;row-gap:6px}
.form label:not(.check)>*:not(.req){grid-column:1/-1}
.form fieldset label{display:flex!important}
.req{margin-left:2px}
