/* DLAB Controle — tema escuro (paleta e tipografia do site dlabsolutions.pt) */
:root{
  color-scheme:dark;
  --bg:#0a0c10; --bg-2:#0e1218; --ink:#f6f3ec; --mute:#8d95a4; --mute-2:#5f6776;
  --line:rgba(255,255,255,.095); --line-2:rgba(255,255,255,.055);
  --blue:#4f8fff; --blue-2:#8db8ff; --navy:#27384c; --navy-2:#314760; --navy-3:#3d5675;
  --steel:#9db0c6; --steel-2:#c9d4e1; --brand-grey:#d1d0cb;
  --late:#ff7d6e; --late-bg:rgba(255,125,110,.13); --soon:#f2c261; --soon-bg:rgba(242,194,97,.12); --ok:#5fd6a2; --ok-bg:rgba(95,214,162,.12);
  --surface:#10141b; --paper:#0a0c10;
  --r-xl:28px; --r-lg:20px; --r-md:14px; --r-sm:10px;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --font:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(900px 520px at 8% -8%,rgba(79,143,255,.14),transparent 62%),
  radial-gradient(760px 560px at 104% 14%,rgba(39,56,76,.62),transparent 62%),
  radial-gradient(700px 480px at 50% 118%,rgba(79,143,255,.08),transparent 60%)}
#fx{position:fixed;inset:0;z-index:0;pointer-events:none}
#app{position:relative;z-index:1}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
a{color:inherit}
::selection{background:rgba(79,143,255,.4)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mono{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px}

/* ---------- barra de topo: logótipo + menu em pílula ---------- */
.top{position:sticky;top:0;z-index:30;padding:14px 28px;background:linear-gradient(180deg,rgba(10,12,16,.92),rgba(10,12,16,.55) 70%,transparent)}
.top-in{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand img{display:block;height:24px;width:auto}
.brand-sub{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding-left:12px;border-left:1px solid var(--line);line-height:18px}
.nav{position:relative;display:flex;gap:2px;padding:5px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid var(--line);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 14px 40px -18px rgba(0,0,0,.8);max-width:100%;overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{position:relative;z-index:1;padding:8px 16px;border-radius:999px;text-decoration:none;color:var(--mute);font-weight:500;white-space:nowrap;transition:color .25s;display:flex;align-items:center;gap:7px}
.nav a:hover{color:var(--ink)}
.nav a[aria-current=page]{color:var(--ink)}
.nav-ind{position:absolute;z-index:0;top:5px;bottom:5px;left:0;right:100%;border-radius:999px;pointer-events:none;
  background:linear-gradient(180deg,rgba(79,143,255,.38),rgba(79,143,255,.17));border:1px solid rgba(141,184,255,.38);box-shadow:0 0 26px rgba(79,143,255,.28),inset 0 1px 0 rgba(255,255,255,.14)}
.nav-ind.fwd{transition:right .32s var(--ease),left .52s var(--ease)}
.nav-ind.back{transition:left .32s var(--ease),right .52s var(--ease)}
.nav-ind.snap{transition:none}
.nav .n{font-size:11px;font-weight:600;padding:0 7px;border-radius:99px;background:var(--late);color:#18090a;line-height:17px}
.top-r{display:flex;align-items:center;gap:12px;flex:none}
.mode{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:99px;background:var(--soon-bg);color:var(--soon);border:1px solid rgba(242,194,97,.25);cursor:pointer}
.mode.live{background:var(--ok-bg);color:var(--ok);border-color:rgba(95,214,162,.28)}
.linkbtn{background:none;border:0;color:var(--mute);cursor:pointer;padding:6px 4px}
.linkbtn:hover{color:var(--ink)}

main{max-width:1280px;margin:0 auto;padding:22px 28px 90px}
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}
.page-h h1{font-family:var(--serif);font-size:clamp(30px,4vw,44px);font-weight:350;letter-spacing:-.02em;line-height:1.08;font-variation-settings:"opsz" 120}
.page-h h1 i{font-style:italic;color:var(--blue-2)}
.page-h .sub{color:var(--mute);margin-top:6px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ink);padding:9px 18px;border-radius:999px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s,box-shadow .2s,transform .15s}
.btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#06101f;font-weight:600}
.btn.primary:hover{background:#6aa0ff;border-color:#6aa0ff;box-shadow:0 0 28px rgba(79,143,255,.45)}
.btn.sm{padding:5px 13px;font-size:13px}
.btn.ghost{background:transparent;border-color:transparent;color:var(--mute)}
.btn.ghost:hover{color:var(--ink);background:rgba(255,255,255,.06)}
.btn.danger{color:var(--late)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.onnavy{background:transparent;border-color:var(--line);color:var(--ink)}
.btn.solidwhite{background:var(--ink);color:#0a0c10;border-color:var(--ink);font-weight:600}
.btn.solidwhite:hover{background:#fff;box-shadow:0 0 30px rgba(246,243,236,.28)}

/* ---------- cartões de vidro ---------- */
.card,.list,.chart,.tbl-wrap,.panel,.fin,.note-box{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.058),rgba(255,255,255,.022));border:1px solid var(--line);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(20px) saturate(1.25);backdrop-filter:blur(20px) saturate(1.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 24px 56px -28px rgba(0,0,0,.75)}
.card:before,.list:before,.chart:before,.tbl-wrap:before,.panel:before,.fin:before,.note-box:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;opacity:0;transition:opacity .35s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,-50%),rgba(79,143,255,.13),transparent 60%)}
.card:hover:before,.list:hover:before,.chart:hover:before,.tbl-wrap:hover:before,.panel:hover:before,.fin:hover:before{opacity:1}
.lbl{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.num-serif{font-family:var(--serif);font-weight:350;letter-spacing:-.03em;font-variation-settings:"opsz" 144}

/* ---------- painel (bento) ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.hero2{grid-column:span 8;padding:34px 38px 32px;overflow:hidden;min-height:310px;display:flex;flex-direction:column;justify-content:space-between;gap:22px;border-radius:var(--r-xl)}
.hero2:after{content:"";position:absolute;right:-12%;top:-30%;width:70%;height:150%;background:radial-gradient(closest-side,rgba(79,143,255,.2),transparent);pointer-events:none}
.hero2 .orb{position:absolute;right:-70px;top:50%;width:420px;height:420px;transform:translateY(-50%);opacity:.9;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 45%);mask-image:linear-gradient(90deg,transparent 0,#000 45%)}
.hero2>*:not(.orb){position:relative;z-index:1}
.hero2 .lbl{display:flex;align-items:center;gap:9px}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--late);box-shadow:0 0 0 0 rgba(255,125,110,.6);animation:pulse 2s infinite}
.pulse.ok{background:var(--ok);animation:none;box-shadow:0 0 12px rgba(95,214,162,.7)}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(255,125,110,0)}100%{box-shadow:0 0 0 0 rgba(255,125,110,0)}}
.hero2 .big{font-family:var(--serif);font-weight:300;font-size:clamp(54px,7.4vw,92px);letter-spacing:-.04em;line-height:1;margin:12px 0 14px;font-variation-settings:"opsz" 144}
.hero2 .big small{font-size:.38em;font-weight:300;color:var(--mute);letter-spacing:0;margin-left:2px}
.hero2 .note{color:var(--steel-2);max-width:30em;font-size:14.5px;line-height:1.5}
.hero2 .zero{color:var(--mute)}
.hero2 .hero-cta{display:flex;gap:10px;flex-wrap:wrap}
.ring-card{grid-column:span 4;padding:26px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;border-radius:var(--r-xl)}
.ring{position:relative;width:176px;height:176px;margin:8px 0 10px}
.ring svg{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.ring .trk{fill:none;stroke:rgba(255,255,255,.08);stroke-width:9}
.ring .val{fill:none;stroke:url(#rg);stroke-width:9;stroke-linecap:round;filter:drop-shadow(0 0 9px rgba(79,143,255,.8));transition:stroke-dashoffset 1.3s var(--ease)}
.ring .in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .in b{font-family:var(--serif);font-weight:350;font-size:44px;letter-spacing:-.03em;line-height:1}
.ring .in span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-top:4px}
.ring-card .note{color:var(--mute);font-size:13px}
.kpi{grid-column:span 3;padding:22px 24px 20px;display:flex;flex-direction:column;gap:8px}
.kpi .v{font-family:var(--serif);font-weight:350;font-size:34px;letter-spacing:-.03em;line-height:1.1;font-variation-settings:"opsz" 120}
.kpi .v.pos{color:var(--ok)}.kpi .v.neg{color:var(--late)}
.kpi .note{color:var(--mute);font-size:13px;line-height:1.4;min-height:2.8em}
.tl-card{grid-column:span 12;padding:22px 28px 6px}
.tl-card .tl-head{display:flex;justify-content:space-between;align-items:center;color:var(--mute)}
.chart-card{grid-column:span 7;padding:24px 26px 18px}
.side-card{grid-column:span 5;padding:0;overflow:hidden}
.side-card.wide{grid-column:span 7}
.chart-card.half{grid-column:span 6}
.side-card .item{grid-template-columns:1fr auto auto;padding:14px 24px}.side-card .item .acts{grid-column:1/-1}
.half{grid-column:span 6}
.card-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.card-h h2{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:-.015em}
.card-h a,.card-h button{font-size:13px;color:var(--mute);text-decoration:none}
.card-h a:hover{color:var(--ink)}
.side-card .card-h{padding:22px 24px 0;margin-bottom:6px}
.side-card .list{border:0;background:none;box-shadow:none;backdrop-filter:none;border-radius:0}
.side-card .list:before{display:none}

/* linha do tempo */
.tl{position:relative;padding:0}
.tl-stage{position:relative}
.tl-axis{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22) 6%,rgba(255,255,255,.22) 94%,transparent)}
.tl-tick{position:absolute;top:0;transform:translateX(-50%);font-family:var(--mono);font-size:10.5px;color:var(--mute-2);white-space:nowrap;letter-spacing:.04em}
.tl-tick:before{content:"";position:absolute;left:50%;top:-5px;height:5px;width:1px;background:rgba(255,255,255,.2)}
.tl-today{position:absolute;top:0;width:1px;background:linear-gradient(180deg,transparent,var(--blue));box-shadow:0 0 12px var(--blue)}
.tl-today b{position:absolute;bottom:-28px;transform:translateX(-50%);font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:500;background:var(--blue);color:#06101f;padding:0 10px;border-radius:99px;line-height:20px}
.tl-item{position:absolute;display:flex;align-items:center;gap:8px;font-size:12px;line-height:1;white-space:nowrap;padding:8px 12px 8px 11px;background:rgba(255,255,255,.07);border:1px solid var(--line);border-left:2px solid var(--steel);border-radius:9px;color:var(--ink);cursor:default;backdrop-filter:blur(8px);transition:background .2s,transform .2s}
.tl-item:hover{background:rgba(255,255,255,.13);transform:translateY(-2px)}
.tl-item.late{border-left-color:var(--late)}
.tl-item.hoje{border-left-color:var(--soon)}
.tl-item em{font-style:normal;color:var(--mute)}
.tl-stem{position:absolute;width:1px;background:rgba(255,255,255,.16);transform-origin:bottom}
.tl-dot{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--steel);transform:translate(-50%,-50%);box-shadow:0 0 0 4px rgba(10,12,16,.9)}
.tl-dot.late{background:var(--late);box-shadow:0 0 0 4px rgba(10,12,16,.9),0 0 14px var(--late)}.tl-dot.hoje{background:var(--soon);box-shadow:0 0 0 4px rgba(10,12,16,.9),0 0 14px var(--soon)}
@media (prefers-reduced-motion:no-preference){
  .tl-stage:not(.still) .tl-stem{animation:grow .7s var(--ease) both;animation-delay:var(--d,0s)}
  .tl-stage:not(.still) .tl-item{animation:show .5s ease both;animation-delay:calc(var(--d,0s) + .25s)}
  @keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  @keyframes show{from{opacity:0}to{opacity:1}}
}

/* entrada das páginas */
@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise .7s var(--ease) both;animation-delay:calc(var(--i,0) * 65ms)}
  @keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
}

/* ---------- listas, gráficos ---------- */
.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:8px;align-items:start}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.sec-h h2{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:-.015em}
.sec-h a,.sec-h button{font-size:13px;color:var(--mute);text-decoration:none}
.sec-h a:hover{color:var(--ink)}
.item{display:grid;grid-template-columns:1fr auto auto auto;gap:6px 18px;align-items:center;padding:14px 24px}
.item+.item{border-top:1px solid var(--line-2)}
.item .who{font-weight:500}
.item .what{color:var(--mute);font-size:13px}
.item .when{font-size:13px;text-align:right}
.item .amt{font-weight:600;min-width:84px;text-align:right}
.item .acts{display:flex;gap:6px}
.empty{padding:38px 22px;text-align:center;color:var(--mute)}
.empty b{display:block;color:var(--ink);font-weight:500;margin-bottom:2px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:9px;background:var(--ok);box-shadow:0 0 10px rgba(95,214,162,.55)}
.dot.late{background:var(--late);box-shadow:0 0 10px rgba(255,125,110,.6)}.dot.hoje{background:var(--soon);box-shadow:0 0 10px rgba(242,194,97,.55)}
.t-late{color:var(--late)}.t-hoje{color:var(--soon)}.t-ok{color:var(--mute)}

.chart{padding:18px 20px 12px}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text,.gc text{font:400 10.5px var(--mono);fill:var(--mute-2);letter-spacing:.04em}
.chart .gl,.gc .gl{stroke:rgba(255,255,255,.07);stroke-width:1;stroke-dasharray:3 5}
.chart-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--mute);font-size:13px;padding-top:10px}
.gc{position:relative}
.gc .ln{fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.gc .ln.a{stroke:var(--blue);filter:url(#glow)}
.gc .ln.b{stroke:rgba(246,243,236,.75);stroke-width:1.8;stroke-dasharray:1 0}
.gc .area{opacity:.9}
.gc .hv{stroke:rgba(255,255,255,.28);stroke-dasharray:3 4}
.gc .pt{r:4.5;stroke-width:2;fill:#0a0c10}
.gc .pt.a{stroke:var(--blue);filter:drop-shadow(0 0 6px var(--blue))}.gc .pt.b{stroke:var(--ink)}
.gc .tip{position:absolute;top:0;pointer-events:none;transform:translate(-50%,-6px);background:rgba(12,16,23,.92);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:12.5px;white-space:nowrap;box-shadow:0 14px 36px -10px rgba(0,0,0,.8);opacity:0;transition:opacity .15s;z-index:3}
.gc.on .tip{opacity:1}
.gc .tip b{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:400;margin-bottom:5px}
.gc .tip i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}
.gc .tip div{display:flex;justify-content:space-between;gap:18px}
@media (prefers-reduced-motion:no-preference){
  .gc .ln{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.5s var(--ease) .25s forwards}
  .gc .area{animation:show .9s ease .7s both}
  @keyframes draw{to{stroke-dashoffset:0}}
}
.logrow{display:flex;gap:10px;align-items:baseline;padding:12px 24px;font-size:13px}
.logrow+.logrow{border-top:1px solid var(--line-2)}
.logrow time{color:var(--mute);margin-left:auto;white-space:nowrap}
.stack{display:flex;flex-direction:column;gap:24px}
.note-box{padding:15px 20px;display:flex;gap:14px;align-items:center;justify-content:space-between}
.note-box p{color:var(--mute);font-size:13px}
.note-box strong{display:block;font-weight:600;color:var(--ink);font-size:14px}

/* ---------- tabelas ---------- */
.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.seg{display:inline-flex;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:999px;padding:3px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg button{white-space:nowrap;border:0;background:transparent;padding:6px 15px;border-radius:999px;color:var(--mute);font-weight:500;cursor:pointer;transition:color .2s,background .25s}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed=true]{background:linear-gradient(180deg,rgba(79,143,255,.36),rgba(79,143,255,.17));color:var(--ink);box-shadow:0 0 20px rgba(79,143,255,.22),inset 0 0 0 1px rgba(141,184,255,.34)}
.seg button i{font-style:normal;margin-left:6px;font-size:12px;color:var(--mute)}
.search,.f input[type=text],.f input[type=email],.f input[type=tel],.f input[type=number],.f input[type=date],.f input[type=password],.f input[type=time],.f select,.f textarea{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.045);border-radius:12px;padding:10px 14px;transition:border-color .2s,box-shadow .2s,background .2s}
.search{flex:1;min-width:180px;max-width:340px;border-radius:999px;padding:9px 18px;width:auto}
.search::placeholder,.f input::placeholder,.f textarea::placeholder{color:var(--mute-2)}
.search:focus,.f input:focus,.f select:focus,.f textarea:focus{outline:0;border-color:rgba(79,143,255,.7);box-shadow:0 0 0 4px rgba(79,143,255,.16);background:rgba(255,255,255,.07)}
.f select option{background:#10141b;color:var(--ink)}
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-family:var(--mono);font-weight:400;color:var(--mute);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap;background:rgba(255,255,255,.025)}
td{padding:14px 18px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tbody tr{transition:background .15s}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:rgba(255,255,255,.04)}
td.num,th.num{text-align:right}
td.num{font-weight:600}
td .sub{display:block;color:var(--mute);font-size:12.5px;line-height:1.35}
td.acts{text-align:right;white-space:nowrap}
td.acts .btn+.btn{margin-left:6px}
tr.arch td{color:var(--mute)}
.tag{white-space:nowrap;display:inline-block;font-size:12px;padding:2px 10px;border-radius:99px;background:rgba(255,255,255,.07);color:var(--mute);border:1px solid var(--line-2)}
.tag.warn{background:var(--soon-bg);color:var(--soon);border-color:rgba(242,194,97,.22)}
.tag.ok{background:var(--ok-bg);color:var(--ok);border-color:rgba(95,214,162,.22)}
.tag.bad{background:var(--late-bg);color:var(--late);border-color:rgba(255,125,110,.22)}
.tfoot{display:flex;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--line);font-weight:500;background:rgba(255,255,255,.025)}

/* ---------- relatório ---------- */
.matrix th,.matrix td{padding:11px 13px;text-align:right}
.matrix th:first-child,.matrix td:first-child{text-align:left;position:sticky;left:0;background:#0f131a;z-index:1;min-width:190px}
.matrix td{font-weight:400;border-right:1px solid var(--line-2)}
.matrix td.z{color:#3a4252}
.matrix td.tot,.matrix th.tot{font-weight:600;background:rgba(255,255,255,.035)}
.matrix tfoot td{font-weight:600;border-top:1px solid var(--line);background:rgba(255,255,255,.035)}

/* ---------- formulários, gaveta, modal ---------- */
.scrim{position:fixed;inset:0;background:rgba(3,5,8,.62);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:40;animation:fade .2s ease both}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(470px,100%);background:rgba(13,17,24,.94);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);border-left:1px solid var(--line);z-index:41;display:flex;flex-direction:column;box-shadow:-24px 0 70px rgba(0,0,0,.55);animation:slide .3s var(--ease) both}
@keyframes fade{from{opacity:0}}
@keyframes slide{from{transform:translateX(36px);opacity:0}}
@media (prefers-reduced-motion:reduce){.scrim,.drawer{animation:none}}
.drawer-h{padding:26px 28px 14px;display:flex;justify-content:space-between;align-items:flex-start}
.drawer-h h2{font-family:var(--serif);font-size:26px;font-weight:350;letter-spacing:-.02em}
.drawer-b{padding:4px 28px 22px;overflow:auto;flex:1}
.drawer-f{padding:16px 28px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.x{border:0;background:none;font-size:24px;line-height:1;color:var(--mute);cursor:pointer;padding:2px 9px;border-radius:99px}
.x:hover{background:rgba(255,255,255,.08);color:var(--ink)}
.f{margin-top:16px}
.f>label,.f>.lab{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:7px}
.f .hint{color:var(--mute);font-size:12.5px;margin-top:5px}
.f textarea{resize:vertical;min-height:96px;line-height:1.55}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.chk{display:flex;gap:11px;align-items:flex-start;margin-top:16px;cursor:pointer}
.chk input{margin-top:4px;accent-color:var(--blue);width:16px;height:16px;flex:none}
.chk span small{display:block;color:var(--mute);font-size:12.5px}
.err{color:var(--late);font-size:13px;margin-top:12px}
dialog{border:1px solid var(--line);border-radius:var(--r-xl);padding:0;width:min(460px,calc(100% - 32px));background:rgba(16,20,28,.96);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);box-shadow:0 40px 90px rgba(0,0,0,.7);color:var(--ink)}
dialog::backdrop{background:rgba(3,5,8,.66);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
dialog[open]{animation:pop .3s var(--ease) both}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.97)}}
dialog .m-b{padding:28px 30px 6px}
dialog h2{font-family:var(--serif);font-size:26px;font-weight:350;letter-spacing:-.02em}
dialog .m-f{padding:18px 30px 26px;display:flex;gap:10px;justify-content:flex-end}

#toasts{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:10px;align-items:center}
.toast{background:rgba(22,28,38,.95);border:1px solid var(--line);color:var(--ink);padding:12px 20px;border-radius:999px;display:flex;gap:18px;align-items:center;box-shadow:0 18px 44px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:pop .3s var(--ease) both}
.toast button{background:none;border:0;color:var(--blue-2);font-weight:600;cursor:pointer;padding:0}
.toast.bad{background:rgba(70,22,20,.95);border-color:rgba(255,125,110,.4)}

/* ---------- cobranças ---------- */
.banner{border-radius:var(--r-md);padding:14px 20px;margin-bottom:22px;background:var(--soon-bg);border:1px solid rgba(242,194,97,.24);color:#f3dca9;display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.banner>span:first-child{flex:1 1 440px}.banner .row{flex:none}
.banner.live{background:var(--ok-bg);border-color:rgba(95,214,162,.26);color:#b4efd4}
.banner code{background:rgba(255,255,255,.09);padding:1px 7px;border-radius:6px;font-size:12.5px;font-family:var(--mono)}
.msg{white-space:pre-wrap;background:rgba(255,255,255,.04);border:1px solid var(--line-2);border-radius:12px;padding:13px 16px;font-size:13px;line-height:1.6;margin-top:6px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.panel{padding:6px 26px 26px;margin-bottom:24px}
.panel h3{font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:-.01em;margin-top:22px}
.panel .intro{color:var(--mute);font-size:13px}
.chan{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line-2)}
.chan:last-of-type{border-bottom:0}
.counter{color:var(--mute);font-size:12.5px;text-align:right;margin-top:3px}
.counter.over{color:var(--late)}
.vars{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.vars code{font-size:12px;font-family:var(--mono);background:rgba(255,255,255,.07);padding:2px 10px;border-radius:99px;cursor:pointer;border:0;color:var(--blue-2)}
.vars code:hover{background:rgba(79,143,255,.22)}

/* ---------- gastos ---------- */
.monthnav{display:flex;align-items:center;gap:12px;margin-left:auto}
.monthnav b{min-width:170px;text-align:center;font-family:var(--serif);font-weight:400;font-size:19px}
.fin{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:26px;border-radius:var(--r-xl)}
.fin>div{padding:22px 26px;display:flex;flex-direction:column;gap:3px}
.fin>div+div{border-left:1px solid var(--line-2)}
.fin .lbl{color:var(--mute)}
.fin b{font-family:var(--serif);font-weight:350;font-size:32px;letter-spacing:-.025em;line-height:1.15}
.fin b.pos{color:var(--ok)}
.fin small{color:var(--mute);font-size:12.5px}
.catrow{position:relative;padding:12px 0 13px}
.catrow+.catrow{border-top:1px solid var(--line-2)}
.catrow>div{display:flex;justify-content:space-between;gap:12px}
.catrow b{font-weight:600}
.catrow i{display:block;height:4px;border-radius:9px;background:linear-gradient(90deg,var(--blue),var(--blue-2));margin-top:8px;box-shadow:0 0 12px rgba(79,143,255,.55)}
.catrow small{color:var(--mute);font-size:12px}
.sw{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}
.cmpbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cmp table{min-width:760px}
.cmp th,.cmp td{padding:12px 13px;white-space:nowrap}
.cmp th:first-child,.cmp td:first-child{position:sticky;left:0;background:#0f131a;z-index:1}
.cmp tfoot td{border-top:1px solid var(--line);font-weight:500}
.cmp tfoot tr.soft td{font-weight:400;color:var(--mute)}
.cmp .cur-col{background:rgba(79,143,255,.07)}
.cmp .dim{color:#3d4554}
.cmp .dcell small{display:block;color:var(--mute);font-size:11.5px}
.cmp .dl.up{color:var(--soon)}.cmp .dl.down{color:var(--ok)}
.note{font-size:13px;color:var(--mute);margin:14px 2px 0;max-width:760px}
.cmp th .sub{display:block;font-size:10px;font-weight:400;color:var(--blue-2)}

/* ---------- entrada (esfera) ---------- */
.gate{position:fixed;inset:0;z-index:50;background:#05070a;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gate:before{content:"";position:absolute;inset:0;background:radial-gradient(60vmin 60vmin at 50% 50%,rgba(39,56,76,.55),transparent 70%)}
.gate canvas{position:absolute;left:50%;top:50%;width:min(112vmin,1100px);height:min(112vmin,1100px);transform:translate(-50%,-50%)}
.gate-logo{position:absolute;top:32px;left:0;right:0;display:flex;justify-content:center}
.gate-logo img{height:30px;opacity:.95}
.gate-core{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;width:min(440px,calc(100% - 40px))}
.gate-core h1{font-family:var(--serif);font-weight:300;font-size:clamp(46px,7.4vmin,76px);letter-spacing:-.035em;line-height:1;font-variation-settings:"opsz" 144;text-shadow:0 0 50px rgba(5,7,10,.9)}
.gate-core h1 i{font-style:italic;color:var(--blue-2)}
.gate-form{width:100%}
.gate-pill{position:relative;display:flex;align-items:center;gap:4px;padding:6px 6px 6px 24px;border-radius:999px;background:rgba(14,18,26,.72);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 20px 60px -20px rgba(0,0,0,.9);transition:border-color .25s,box-shadow .35s}
.gate-pill:focus-within{border-color:rgba(79,143,255,.8);box-shadow:0 0 0 5px rgba(79,143,255,.16),0 0 60px rgba(79,143,255,.32),0 20px 60px -20px rgba(0,0,0,.9)}
.gate-pill input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:16px;padding:12px 0;color:var(--ink);letter-spacing:.06em}
.gate-pill input::placeholder{letter-spacing:0;color:var(--mute)}
.gate-go{flex:none;width:46px;height:46px;border-radius:50%;border:0;background:var(--blue);color:#06101f;cursor:pointer;display:grid;place-items:center;transition:transform .2s,box-shadow .25s,opacity .2s}
.gate-go:hover{box-shadow:0 0 30px rgba(79,143,255,.7);transform:scale(1.06)}
.gate-go:disabled{opacity:.5}
.gate-go svg{width:20px;height:20px}
.gate .err{min-height:20px;margin-top:2px}
.gate-foot{position:absolute;bottom:28px;left:0;right:0;text-align:center;color:var(--mute-2)}
.gate.shake .gate-pill{animation:nope .45s}
@keyframes nope{20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
.gate.out{animation:gateout .8s ease forwards}
@keyframes gateout{0%{opacity:1}60%{opacity:1}100%{opacity:0}}
.gate.out .gate-core{animation:coreout .5s ease forwards}
@keyframes coreout{to{opacity:0;transform:scale(.94)}}

@media (max-width:1180px){.item{grid-template-columns:1fr auto auto}.item .acts{grid-column:1/-1}}
@media (max-width:1100px){
  .hero2,.ring-card,.chart-card,.side-card,.half{grid-column:span 12}
  .kpi{grid-column:span 6}
  .grid,.cols{grid-template-columns:1fr}
  .fin{grid-template-columns:1fr 1fr}.fin>div:nth-child(3){border-left:0}.fin>div:nth-child(n+3){border-top:1px solid var(--line-2)}
}
@media (max-width:760px){
  .top{padding:10px 14px 4px}.top-in{flex-wrap:wrap;gap:10px 12px}.brand-sub{display:none}.top-r{margin-left:auto}.nav{order:3;flex:1 0 100%}
  main{padding:14px 16px 64px}
  .hero2{padding:26px 24px;min-height:0}.hero2 .orb{width:300px;height:300px;right:-110px;opacity:.55}
  .tl-card{padding:18px 20px 4px}
  .f2{grid-template-columns:1fr}
  .item{grid-template-columns:1fr auto;padding:14px 18px}.item .when{grid-column:1;text-align:left}.item .acts{grid-column:1/-1}
  .kpi{padding:18px 18px}.kpi .v{font-size:28px}
  .gate-logo{top:22px}
}
@media (max-width:460px){.kpi{grid-column:span 6;padding:16px}.kpi .v{font-size:24px}.kpi .note{font-size:12px}.fin{grid-template-columns:1fr}.fin>div+div{border-left:0;border-top:1px solid var(--line-2)}}
