@font-face{font-family:"Cinzel";src:url(/fonts/cinzel-b.woff) format("woff");font-weight:700;font-display:swap}
@font-face{font-family:"Montserrat";src:url(/fonts/montserrat-r.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat";src:url(/fonts/montserrat-b.woff) format("woff");font-weight:700;font-display:swap}
:root{--bk:#0B0B0C;--c1:#121011;--c2:#1A1714;--c3:#231E19;--c4:#30281F;--off:#F4F1EC;--mut:#B3A99E;--g1:#F6DFA6;--g2:#EBC77F;--g3:#D9AE5F;--g4:#C9944A;--cu:#B87333;--ok:#7CC48B;--err:#EF7B6C;--warn:#F2B35B;
--line:rgba(217,174,95,.26);--line2:rgba(217,174,95,.14);--gold:linear-gradient(135deg,#F6DFA6 0%,#D9AE5F 28%,#B87333 58%,#EBC77F 82%,#C9944A 100%);
--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html{background:var(--bk);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;color:var(--off);font-family:Montserrat,system-ui,sans-serif;font-size:15px;line-height:1.45;padding-bottom:calc(92px + var(--sab));
background:radial-gradient(900px 520px at 50% -140px,rgba(184,115,51,.22),transparent 70%),radial-gradient(600px 400px at 110% 40%,rgba(217,174,95,.06),transparent 70%),var(--bk);background-attachment:fixed}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;touch-action:manipulation;padding:0}
svg{width:22px;height:22px;fill:none;stroke:url(#gd);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
h2,h3{font-family:Cinzel,serif;font-weight:700;letter-spacing:.05em;margin:0}
.gold-t{background:var(--gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(var(--sat) + 10px) 16px 10px;background:rgba(11,11,12,.84);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid var(--line2)}
.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand img{width:40px;height:40px}
.brand b{display:block;font-family:Cinzel,serif;font-size:17px;letter-spacing:.1em;background:var(--gold);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.brand small{display:block;font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--mut);margin-top:1px}
.pill{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-radius:99px;border:1px solid var(--line);background:rgba(217,174,95,.07);font-size:13px;font-weight:700;color:var(--g2);white-space:nowrap}
.pill svg{width:17px;height:17px}
main{max-width:720px;margin:0 auto;padding:0 16px}
.tab{animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sec{font-family:Cinzel,serif;font-size:12.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--g3);margin:24px 2px 12px;display:flex;align-items:center;gap:10px}
.sec:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.sec .more{font-family:Montserrat,sans-serif;letter-spacing:.02em;text-transform:none;font-size:12.5px;color:var(--g2);font-weight:700;order:2;padding:6px 0}
.box{position:relative;border-radius:22px;background:linear-gradient(160deg,var(--c3),var(--c1) 72%);border:1px solid var(--line2);box-shadow:0 10px 26px rgba(0,0,0,.35),inset 0 1px 0 rgba(246,223,166,.06);padding:16px}
.box.glow:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(246,223,166,.55),transparent 40%,transparent 70%,rgba(184,115,51,.45));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.mut{color:var(--mut)}.ok{color:var(--ok)}.err{color:var(--err)}.warn{color:var(--warn)}.g2{color:var(--g2)}
.money{font-variant-numeric:tabular-nums;white-space:nowrap}
/* saldo */
.saldo{margin-top:16px;display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:end}
.saldo .lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.saldo .big{font-size:30px;font-weight:700;letter-spacing:-.01em;line-height:1.1}
.saldo .mark{grid-row:1/3;grid-column:2;width:64px;opacity:.95;height:auto;align-self:center;filter:drop-shadow(0 6px 16px rgba(184,115,51,.35))}
.io{grid-column:1/-1;display:flex;gap:6px 14px;flex-wrap:wrap;font-size:13px;margin-top:8px}.io b{font-weight:700}
.io span{display:inline-flex;align-items:center;gap:5px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
/* assistente */
.asst{margin-top:14px;padding:0;overflow:hidden}
.asst-h{display:flex;align-items:center;gap:12px;padding:14px 16px 10px}
.asst-h img{width:48px;height:48px;border-radius:50%;padding:5px;border:1px solid var(--line);background:#14110e}
.asst-h b{font-family:Cinzel,serif;font-size:16px;letter-spacing:.08em;display:block}
.asst-h small{display:block;font-size:12px;color:var(--mut)}
.asst-h .badge{margin-left:auto}
.badge{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:99px;border:1px solid var(--line);color:var(--g2);background:rgba(217,174,95,.08);white-space:nowrap}
.badge.red{color:#ffb4a8;border-color:rgba(239,123,108,.5);background:rgba(239,123,108,.12)}
.badge.green{color:#a9e2b4;border-color:rgba(124,196,139,.45);background:rgba(124,196,139,.1)}
.chat{max-height:46vh;min-height:120px;overflow-y:auto;padding:4px 14px 10px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;overscroll-behavior:contain}
.msg{max-width:88%;padding:10px 13px;border-radius:18px;font-size:14.5px;line-height:1.45;animation:fade .25s;word-wrap:break-word}
.msg.me{align-self:flex-end;background:linear-gradient(135deg,#C9944A,#B87333);color:#1b130b;font-weight:700;border-bottom-right-radius:6px}
.msg.bot{align-self:flex-start;background:#2a231c;border:1px solid var(--line2);border-bottom-left-radius:6px}
.msg.bot b{color:var(--g1)}
.msg ul{margin:6px 0 0;padding-left:18px}.msg li{margin:3px 0}
.typing span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--g3);margin:0 2px;animation:bl 1s infinite}
.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}
@keyframes bl{0%,100%{opacity:.25}50%{opacity:1}}
.ccard{align-self:stretch;border-radius:18px;background:linear-gradient(160deg,#2c241b,#1a1612);border:1px solid var(--line);padding:14px;animation:fade .25s}
.ccard .q{font-size:15.5px;line-height:1.4;margin:0 0 10px}
.ccard .q b{color:var(--g1)}
.ccard .row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ccard .row select,.ccard .row input{height:40px;border-radius:12px;border:1px solid var(--line);background:#14110e;padding:0 10px;font-size:14px;max-width:100%}
.ccard .row select{flex:1;min-width:150px}
.ccard .row input[type=date]{flex:1;min-width:140px}
.ccard .acts{display:flex;gap:8px}
.ccard .acts .btn{flex:1;height:46px}
.ccard.done{opacity:.6}.ccard.done .acts,.ccard.done .row{display:none}
.ccard .note{font-size:12.5px;color:var(--mut);margin:-4px 0 10px}
.ccard .note.w{color:var(--warn)}
.composer{display:flex;gap:8px;align-items:flex-end;padding:10px 12px 12px;border-top:1px solid var(--line2);background:rgba(0,0,0,.18)}
.composer textarea{flex:1;min-width:0;min-height:50px;max-height:120px;resize:none;border-radius:16px;border:1px solid var(--line);background:#14110e;padding:13px 14px;font-size:16px;line-height:1.35;outline:none;white-space:nowrap;overflow-x:hidden}
.composer textarea:not(:placeholder-shown){white-space:pre-wrap}
.composer textarea::placeholder{color:#8b8177;text-overflow:ellipsis}
.composer textarea:focus{border-color:var(--g3);box-shadow:0 0 0 3px rgba(217,174,95,.15)}
.rbtn{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:rgba(217,174,95,.08);flex:none}
.rbtn.send{background:var(--gold);border:0}.rbtn.send svg{stroke:#1b130b;stroke-width:2.2}
.rbtn.rec{background:rgba(239,123,108,.2);border-color:var(--err);animation:pulse 1.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(239,123,108,.5)}100%{box-shadow:0 0 0 14px rgba(239,123,108,0)}}
.chips{display:flex;gap:8px;overflow-x:auto;padding:0 14px 12px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;height:36px;padding:0 13px;border-radius:99px;border:1px solid var(--line);background:rgba(217,174,95,.06);font-size:13px;color:#e9dfd2;white-space:nowrap}
.chip.on{background:var(--gold);color:#1b130b;font-weight:700;border-color:transparent}
/* ações rápidas */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.qbtn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:18px;background:linear-gradient(160deg,var(--c3),var(--c1));border:1px solid var(--line2);font-size:12px;font-weight:700;color:#e9dfd2;min-height:78px;justify-content:center}
.qbtn .ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--line);background:rgba(217,174,95,.08);font-size:18px}
.qbtn:active,.btn:active,.item:active{transform:scale(.97)}
/* listas */
.list{display:flex;flex-direction:column;gap:8px}
.item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(160deg,#1f1a15,#141110);border:1px solid var(--line2);min-height:64px;width:100%;text-align:left;transition:transform .12s}
.item .em{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:19px;flex:none;background:rgba(255,255,255,.04);border:1px solid var(--line2)}
.item .tx{flex:1;min-width:0}
.item .tx b{display:block;font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .tx small{display:block;font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .v{font-weight:700;font-size:15px;text-align:right}
.item .v small{display:block;font-size:11px;font-weight:400;color:var(--mut)}
.item.over{border-color:rgba(239,123,108,.55);background:linear-gradient(160deg,#2a1714,#160f0e)}
.item.soon{border-color:rgba(242,179,91,.5)}
.item.paid{opacity:.62}.item.paid .tx b{text-decoration:line-through;text-decoration-color:rgba(244,241,236,.4)}
.check{width:34px;height:34px;border-radius:50%;border:2px solid var(--g3);display:grid;place-items:center;flex:none;background:transparent}
.check.on{background:var(--gold);border-color:transparent}
.check.on:after{content:"";width:12px;height:7px;border-left:2.5px solid #1b130b;border-bottom:2.5px solid #1b130b;transform:rotate(-45deg) translate(1px,-2px)}
.dayh{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.06em;color:var(--mut);margin:16px 4px 6px;text-transform:uppercase}
.empty{text-align:center;color:var(--mut);font-size:14px;padding:22px 10px;border:1px dashed var(--line2);border-radius:16px}
/* mês */
.monthbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0 4px}
.monthbar button.arr{width:46px;height:46px;border-radius:14px;border:1px solid var(--line);display:grid;place-items:center;background:rgba(217,174,95,.06)}
.monthbar .mname{font-family:Cinzel,serif;font-size:18px;letter-spacing:.08em;text-align:center;flex:1}
.monthbar .mname small{display:block;font-family:Montserrat,sans-serif;font-size:11px;letter-spacing:.2em;color:var(--mut);text-transform:uppercase}
.seg{display:flex;padding:4px;border-radius:16px;background:#14110e;border:1px solid var(--line2);margin-top:16px}
.seg button{flex:1;height:44px;border-radius:12px;font-size:14px;font-weight:700;color:var(--mut)}
.seg button.on{background:var(--gold);color:#1b130b}
.filters{display:flex;gap:8px;margin:12px 0 4px;overflow-x:auto;scrollbar-width:none}
/* resumo */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.kpi{padding:14px;border-radius:18px;background:linear-gradient(160deg,var(--c3),var(--c1));border:1px solid var(--line2)}
.kpi.wide{grid-column:span 2}
.kpi small{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.kpi b{display:block;font-size:21px;margin-top:3px}
.kpi .cmp{font-size:12px;margin-top:3px;color:var(--mut)}
.prog{height:10px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:8px}
.prog i{display:block;height:100%;border-radius:inherit;background:var(--gold);transition:width .5s}
.prog.red i{background:linear-gradient(90deg,#f0907f,#d9534f)}.prog.yel i{background:linear-gradient(90deg,#f6c87a,#e59a3a)}.prog.grn i{background:linear-gradient(90deg,#9ad7a7,#5fae72)}
.donut-wrap{display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:center}
.donut{width:180px;height:180px;flex:none}
.donut svg{width:180px;height:180px;stroke:none}
.legend{flex:1;min-width:170px;display:flex;flex-direction:column;gap:7px;font-size:13.5px}
.legend div{display:flex;align-items:center;gap:8px}.legend span.n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend .p{color:var(--mut);font-size:12px;width:38px;text-align:right}
.bars{display:flex;flex-direction:column;gap:10px}
.bar .l{display:flex;justify-content:space-between;font-size:13.5px;gap:8px}.bar .l span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tip{display:flex;gap:12px;align-items:flex-start;margin-top:14px}
.tip img{width:54px;height:auto;flex:none}
.tip p{margin:0;font-size:14px;line-height:1.5}
/* forms */
label.f{display:block;margin-top:12px;font-size:12.5px;color:var(--mut);letter-spacing:.04em}
.in,select.in,textarea.in{display:block;width:100%;height:50px;margin-top:6px;border-radius:14px;border:1px solid var(--line);background:#14110e;padding:0 14px;font-size:16px;outline:none;-webkit-appearance:none;appearance:none}
textarea.in{height:auto;min-height:80px;padding:12px 14px}
select.in{background-image:linear-gradient(45deg,transparent 50%,var(--g3) 50%),linear-gradient(135deg,var(--g3) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px;background-repeat:no-repeat;padding-right:36px}
.in:focus{border-color:var(--g3);box-shadow:0 0 0 3px rgba(217,174,95,.15)}
.in.money-in{font-size:24px;font-weight:700;height:60px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sw{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:14.5px;min-height:44px}
.sw input{appearance:none;-webkit-appearance:none;width:52px;height:30px;border-radius:99px;background:#3a3129;position:relative;flex:none;transition:.2s;margin:0}
.sw input:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#cfc6bb;transition:.2s}
.sw input:checked{background:var(--g4)}.sw input:checked:after{left:25px;background:#fff7e6}
.typesel{display:flex;gap:8px;margin-top:4px}
.typesel button{flex:1;height:46px;border-radius:14px;border:1px solid var(--line);font-weight:700;font-size:14px;color:var(--mut)}
.typesel button.on.in{background:rgba(124,196,139,.18);color:#bfe8c8;border-color:rgba(124,196,139,.6)}
.typesel button.on.out{background:rgba(239,123,108,.16);color:#ffc2b8;border-color:rgba(239,123,108,.6)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 18px;border-radius:16px;font-weight:700;font-size:15px;transition:transform .12s}
.btn.gold{background:var(--gold);color:#1b130b;box-shadow:0 8px 20px rgba(184,115,51,.25)}
.btn.gold svg{stroke:#1b130b}
.btn.ghost{border:1px solid var(--line);color:var(--g2);background:rgba(217,174,95,.05)}
.btn.danger{border:1px solid rgba(239,123,108,.55);color:#ffb4a8;background:rgba(239,123,108,.08)}
.btn.full{width:100%;margin-top:12px}
.btn.sm{height:40px;font-size:13.5px;padding:0 14px;border-radius:12px}
.link-btn{color:var(--g2);font-weight:700;font-size:13.5px;padding:10px 4px;text-decoration:underline;text-underline-offset:3px}
.link-btn.danger{color:#ffb4a8}
.row-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.row-btns .btn{flex:1;min-width:140px}
.set-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:linear-gradient(160deg,#1f1a15,#141110);border:1px solid var(--line2);width:100%;text-align:left;margin-bottom:8px;min-height:60px}
.set-item .em{font-size:20px;width:30px;text-align:center}
.set-item .tx{flex:1}.set-item b{display:block;font-size:14.5px}.set-item small{display:block;font-size:12px;color:var(--mut)}
.note-box{font-size:13.5px;line-height:1.55;color:#d8d0c6;border-radius:16px;padding:14px;border:1px solid var(--line2);background:rgba(217,174,95,.05);margin-top:12px}
.note-box b{color:var(--g1)}
.catrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line2)}
.catrow .n{flex:1}
.catrow button{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--line2)}
.catrow button svg{width:18px;height:18px}
.limrow{padding:10px 0;border-bottom:1px solid var(--line2)}
.limrow .h{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}
.limrow input{width:120px;height:42px;border-radius:12px;border:1px solid var(--line);background:#14110e;padding:0 10px;font-size:15px;text-align:right}
.parc{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line2);font-size:14px}
.parc .tx{flex:1}.parc small{display:block;color:var(--mut);font-size:12px}
.parc.over small{color:var(--err)}.parc.paid{opacity:.6}
/* fab */
.fab{position:fixed;right:18px;bottom:calc(96px + var(--sab));z-index:35;width:60px;height:60px;border-radius:50%;background:var(--gold);display:grid;place-items:center;box-shadow:0 10px 26px rgba(184,115,51,.45)}
.fab svg{stroke:#1b130b;width:28px;height:28px;stroke-width:2.3}
/* tabbar */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:space-around;padding:8px 6px calc(8px + var(--sab));background:rgba(14,12,12,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line2)}
.tabbar button{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;border-radius:14px;font-size:11px;letter-spacing:.03em;color:var(--mut);min-height:54px}
.tabbar svg{width:24px;height:24px;opacity:.55;transition:.2s}
.tabbar button.on{color:var(--g2)}.tabbar button.on svg{opacity:1;transform:translateY(-1px)}
.tabbar button.on:after{content:"";width:18px;height:2px;border-radius:2px;background:var(--gold);margin-top:1px}
/* sheet & toast */
.sheet{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.62);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}
.sheet-in{width:100%;max-width:560px;max-height:92vh;max-height:92dvh;overflow-y:auto;background:var(--c2);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;padding:20px 18px calc(18px + var(--sab));overscroll-behavior:contain}
.sheet-in:before{content:"";display:block;width:44px;height:4px;border-radius:4px;background:rgba(255,255,255,.18);margin:-8px auto 14px}
.sheet-in h3{font-size:18px;color:var(--g2);margin-bottom:6px}
.sheet-in p{color:#d8d0c6;font-size:14px}
.sheet-act{display:flex;gap:10px;margin-top:18px}.sheet-act .btn{flex:1}
.toast{position:fixed;left:50%;bottom:calc(100px + var(--sab));transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:70;background:#2a231c;border:1px solid var(--line);color:var(--off);padding:11px 16px;border-radius:12px;font-size:14px;transition:.25s;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
/* lock */
.lock{position:fixed;inset:0;z-index:80;background:radial-gradient(700px 400px at 50% 0,rgba(184,115,51,.25),transparent 70%),var(--bk);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.lock img{width:110px;margin-bottom:10px}
.lock h2{font-size:20px;margin-bottom:6px}
.lock input{width:220px;text-align:center;font-size:26px;letter-spacing:.4em;height:60px;margin:16px auto 0}
.lock .btn{width:220px;margin-top:12px}
.lock p.msg{color:var(--err);min-height:20px;font-size:14px}
.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-8px)}50%{transform:translateX(8px)}75%{transform:translateX(-4px)}}
.foot{text-align:center;color:var(--mut);font-size:12px;margin:26px 0 10px;line-height:1.6}
@media (max-width:360px){.saldo .big{font-size:26px}.quick{gap:7px}.qbtn{font-size:11px}.kpi b{font-size:18px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
