:root{--night: #120e1c;--night-2: #1a1430;--surface: #1e1836;--surface-2: #262046;--line: rgba(217, 180, 91, .16);--line-strong: rgba(217, 180, 91, .34);--gold: #d9b45b;--gold-bright: #f0d391;--moon: #f3ecdf;--jade: #5fbf9b;--amber: #e2a04a;--rose: #d96a7f;--plum: #a07fd4;--text: #f3ecdf;--text-dim: #b6abc9;--text-faint: #7d739a;--radius: 18px;--radius-sm: 12px;--shadow: 0 18px 40px -22px rgba(0, 0, 0, .9);--font-display: "Cormorant Garamond", "Times New Roman", serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%}body{background:var(--night);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(900px 520px at 78% -8%,rgba(160,127,212,.22),transparent 65%),radial-gradient(700px 460px at 8% 4%,rgba(217,180,91,.12),transparent 62%),radial-gradient(1000px 700px at 50% 108%,rgba(95,191,155,.09),transparent 70%)}input,select,textarea,button{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}.app{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:0 16px calc(164px + env(safe-area-inset-bottom));min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(18px + env(safe-area-inset-top)) 0 14px}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand-title{font-family:var(--font-display);font-size:27px;font-weight:700;letter-spacing:.01em;color:var(--moon);line-height:1.1}.brand-sub{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);opacity:.75}.sigil{flex:none;width:42px;height:42px;filter:drop-shadow(0 0 12px rgba(217,180,91,.35))}.icon-btn{flex:none;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:#ffffff08;color:var(--text-dim)}.icon-btn:hover{color:var(--gold-bright);border-color:var(--line-strong)}.rule{display:flex;align-items:center;gap:10px;margin:4px 0 18px}.rule:before,.rule:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}.rule span{width:6px;height:6px;transform:rotate(45deg);background:var(--gold);opacity:.6}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:26px 0 12px}.section-title{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--moon)}.section-note{font-size:13px;color:var(--text-faint)}.page-title{font-family:var(--font-display);font-size:32px;font-weight:700;color:var(--moon);margin-bottom:2px}.page-sub{font-size:14px;color:var(--text-faint);margin-bottom:18px}.card{position:relative;background:linear-gradient(160deg,var(--surface),var(--night-2));border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card+.card{margin-top:12px}.altar{position:relative;overflow:hidden;text-align:center;padding:26px 18px 22px;border-color:var(--line-strong)}.altar:before{content:"";position:absolute;top:-120px;left:50%;width:320px;height:320px;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,rgba(217,180,91,.16),transparent 62%);pointer-events:none}.altar-label{position:relative;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}.altar-sum{position:relative;font-size:44px;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--moon);text-shadow:0 0 32px rgba(217,180,91,.28)}.altar-sum small{font-size:24px;font-weight:600;color:var(--gold);margin-left:4px}.altar-caption{position:relative;margin-top:8px;font-size:14px;color:var(--text-dim)}.altar-split{position:relative;display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.altar-split div{flex:1}.altar-split dt{font-size:12px;color:var(--text-faint);margin-bottom:4px}.altar-split dd{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.tile{display:block;width:100%;text-align:left;background:linear-gradient(160deg,var(--surface),var(--night-2));border:1px solid var(--line);border-radius:var(--radius);padding:16px}.tile:hover{border-color:var(--line-strong)}.tile-label{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-dim);margin-bottom:8px}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot.jade{background:var(--jade);box-shadow:0 0 10px var(--jade)}.dot.amber{background:var(--amber);box-shadow:0 0 10px var(--amber)}.dot.rose{background:var(--rose);box-shadow:0 0 10px var(--rose)}.dot.plum{background:var(--plum);box-shadow:0 0 10px var(--plum)}.tile-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.15}.tile-value.amber{color:var(--amber)}.tile-value.rose{color:var(--rose)}.tile-value.plum{color:var(--plum)}.tile-value.jade{color:var(--jade)}.tile-hint{margin-top:4px;font-size:12px;color:var(--text-faint)}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;padding:9px 15px;border-radius:999px;border:1px solid var(--line);background:#ffffff05;color:var(--text-dim);font-size:14px;font-weight:500;white-space:nowrap}.chip[aria-pressed=true]{background:linear-gradient(180deg,#d9b45b38,#d9b45b1a);border-color:var(--line-strong);color:var(--gold-bright)}.row{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;background:linear-gradient(160deg,var(--surface),var(--night-2));border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius-sm);padding:14px 15px}.row+.row{margin-top:10px}.row:hover{border-color:var(--line-strong)}.row.is-paid{border-left-color:var(--jade)}.row.is-pending{border-left-color:var(--amber)}.row.is-overdue{border-left-color:var(--rose)}.row.is-deposit{border-left-color:var(--plum)}.row.is-cancelled{opacity:.5}.row-main{flex:1;min-width:0}.row-client{font-size:17px;font-weight:600;color:var(--moon);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-title{font-size:14px;color:var(--text-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;font-size:12px;color:var(--text-faint)}.badge{padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.03em;border:1px solid currentColor}.badge.jade{color:var(--jade)}.badge.amber{color:var(--amber)}.badge.rose{color:var(--rose)}.badge.plum{color:var(--plum)}.row-amount{flex:none;text-align:right;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.row-amount small{display:block;font-size:11px;font-weight:500;color:var(--text-faint);margin-top:3px;letter-spacing:.04em}.deposit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.deposit-client{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--moon)}.deposit-rest{text-align:right;flex:none}.deposit-rest b{display:block;font-size:27px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--plum);line-height:1.1}.deposit-rest span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.balance-bar{position:relative;height:8px;border-radius:999px;background:#ffffff12;overflow:hidden;margin:14px 0 10px}.balance-bar i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--plum))}.deposit-legend{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-dim);font-variant-numeric:tabular-nums}.deposit-legend b{color:var(--moon);font-weight:600}.ledger{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.ledger-item{display:flex;align-items:baseline;gap:10px;padding:9px 0;font-size:14px;border-bottom:1px dashed rgba(255,255,255,.06)}.ledger-item:last-child{border-bottom:none}.ledger-date{flex:none;width:88px;color:var(--text-faint);font-size:13px;font-variant-numeric:tabular-nums}.ledger-what{flex:1;min-width:0;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis}.ledger-sum{flex:none;font-weight:700;font-variant-numeric:tabular-nums}.ledger-sum.in{color:var(--jade)}.ledger-sum.out{color:var(--gold)}.ledger-actions{display:flex;gap:8px;margin-top:14px}.month-card{padding:16px 18px}.month-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-name{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--moon);text-transform:capitalize}.month-total{font-size:27px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--jade);white-space:nowrap}.month-bars{display:flex;height:7px;border-radius:999px;overflow:hidden;background:#ffffff0f;margin:13px 0 11px}.month-bars i{display:block;height:100%}.month-bars i.paid{background:var(--jade)}.month-bars i.overdue{background:var(--rose)}.month-bars i.waiting{background:var(--amber)}.month-card.has-overdue{border-color:#d96a7f8c;box-shadow:var(--shadow),inset 3px 0 0 var(--rose)}.overdue-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#d96a7f1f;border:1px solid rgba(217,106,127,.3);color:#f5c3cd;font-size:13px;line-height:1.4}.month-split{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.month-split b{color:var(--moon);font-weight:600}.legend-key{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px}.legend-key.paid{background:var(--jade)}.legend-key.waiting{background:var(--amber)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:12px;font-size:15px;font-weight:600;border:1px solid var(--line-strong);background:#ffffff0a;color:var(--text);transition:transform .08s ease}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(180deg,var(--gold-bright),var(--gold));border-color:transparent;color:#2a1f0a;box-shadow:0 12px 28px -14px #d9b45bd9}.btn.ghost{background:transparent;border-color:var(--line);color:var(--text-dim)}.btn.danger{color:var(--rose);border-color:#d96a7f66;background:transparent}.btn.block{width:100%}.btn.sm{padding:9px 14px;font-size:14px;border-radius:10px}.btn:disabled{opacity:.5;cursor:not-allowed}.fab{position:fixed;right:max(16px,calc(50% - 264px));bottom:calc(88px + env(safe-area-inset-bottom));z-index:30;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#2a1f0a;box-shadow:0 16px 34px -12px #d9b45bb3}.fab:active{transform:scale(.94)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#120e1ce6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.tab{flex:1;text-decoration:none;max-width:130px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border-radius:12px;color:var(--text-faint);font-size:11px;font-weight:500}.tab[aria-current=page]{color:var(--gold-bright);background:#d9b45b17}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:#08060ebf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;animation:fade .16s ease}.sheet{width:100%;max-width:560px;max-height:92vh;overflow-y:auto;background:linear-gradient(170deg,var(--surface-2),var(--night-2) 60%);border:1px solid var(--line-strong);border-bottom:none;border-radius:24px 24px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));animation:rise .22s cubic-bezier(.2,.9,.3,1)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(28px)}}.sheet-grip{width:42px;height:4px;border-radius:999px;background:var(--line-strong);margin:0 auto 14px}.sheet-title{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--moon);margin-bottom:16px;text-align:center}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);opacity:.85;margin-bottom:6px}.input{width:100%;padding:14px 15px;border-radius:12px;border:1px solid var(--line);background:#00000047;color:var(--text);font-size:17px;outline:none}.input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d9b45b24}.input.is-broken{border-color:var(--rose)}.field-error{margin-top:6px;font-size:13px;color:var(--rose)}.input.money{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.input::placeholder{color:var(--text-faint)}textarea.input{min-height:72px;resize:vertical}.field-row{display:flex;gap:12px}.field-row>*{flex:1;min-width:0}.seg{display:flex;gap:6px;padding:5px;border-radius:14px;border:1px solid var(--line);background:#00000040}.seg button{flex:1;padding:12px 8px;border-radius:10px;font-size:15px;font-weight:600;color:var(--text-faint);text-align:center}.seg button[aria-pressed=true]{background:linear-gradient(180deg,#d9b45b3d,#d9b45b1a);color:var(--gold-bright);box-shadow:inset 0 0 0 1px var(--line-strong)}.seg button[aria-pressed=true].plum{background:linear-gradient(180deg,#a07fd44d,#a07fd41f);color:#d8c6f5;box-shadow:inset 0 0 0 1px #a07fd473}.hint{font-size:13px;line-height:1.4;color:var(--text-faint);margin-top:-6px;margin-bottom:14px}.sheet-actions{display:flex;gap:10px;margin-top:20px}.sheet-actions .btn{flex:1}.demo-flag{margin-top:12px;padding:11px 14px;border-radius:12px;border:1px dashed var(--line-strong);background:#d9b45b14;color:var(--gold-bright);font-size:13px;line-height:1.45;text-align:center}.demo-flag a{color:var(--moon);font-weight:600;white-space:nowrap}.empty{text-align:center;padding:44px 20px;color:var(--text-faint)}.empty svg{opacity:.4;margin-bottom:12px}.empty p{font-size:15px}.error{border:1px solid rgba(217,106,127,.45);background:#d96a7f1a;color:#f5c3cd;border-radius:12px;padding:12px 14px;font-size:14px;margin-bottom:14px}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;z-index:1}.auth-card{width:100%;max-width:400px;text-align:center}.auth-card .sigil{width:70px;height:70px;margin:0 auto 14px}.auth-card .brand-title{font-size:34px;margin-bottom:4px}.auth-card .brand-sub{margin-bottom:24px}.auth-card .field{text-align:left}.muted{color:var(--text-faint);font-size:13px}.spin{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--gold);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
