:root{--bg:#f5f5f3;--stage:#e9e9e6;--surface:#fff;--surface2:#f3f3f1;--ink:#111113;--muted:#6e6e73;--line:#ececea;--accent:#4453d6;--accent-soft:#edeffc;--on-accent:#fff;--good:#1e8e5a;--warn:#b9730f;--warn-soft:#fbf1e1;--bad:#cc3d3d;--bad-soft:#fbe9e9;--c1:#4453d6;--c2:#2b8fb3;--c3:#d9822b;--c4:#8a63d2;--c5:#25a096;--c6:#d45d87;--c7:#7e9a3a;--c8:#8d8d93;--shadow:0 1px 2px #1111130a, 0 4px 16px -8px #11111314;--display:"Geist", "Inter", system-ui, sans-serif;--body:"Geist", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--r:20px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c0c0d;--stage:#000;--surface:#161618;--surface2:#1f1f22;--ink:#f2f2f3;--muted:#9a9aa1;--line:#26262a;--accent:#8e98ff;--accent-soft:#22254a;--on-accent:#0c0c0d;--good:#4fcb8d;--warn:#e6a94a;--warn-soft:#342812;--bad:#f07474;--bad-soft:#3a1a1a;--c1:#8e98ff;--c2:#5db8da;--c3:#eba35e;--c4:#b496f0;--c5:#4fc9be;--c6:#ec8dae;--c7:#a9c266;--c8:#a5a5ac;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0c0c0d;--stage:#000;--surface:#161618;--surface2:#1f1f22;--ink:#f2f2f3;--muted:#9a9aa1;--line:#26262a;--accent:#8e98ff;--accent-soft:#22254a;--on-accent:#0c0c0d;--good:#4fcb8d;--warn:#e6a94a;--warn-soft:#342812;--bad:#f07474;--bad-soft:#3a1a1a;--c1:#8e98ff;--c2:#5db8da;--c3:#eba35e;--c4:#b496f0;--c5:#4fc9be;--c6:#ec8dae;--c7:#a9c266;--c8:#a5a5ac;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--stage);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}*{box-sizing:border-box}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.stage{justify-content:center;align-items:center;height:100%;display:flex}.phone{background:var(--bg);flex-direction:column;width:100%;max-width:430px;height:100%;display:flex;position:relative;overflow:hidden}@media (width>=640px){.stage{padding-block:24px}.phone{border:1px solid var(--line);border-radius:38px;height:min(880px,100%);box-shadow:0 30px 80px -30px #00000059}}.topbar{padding-block:14px 8px;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar h1{font-family:var(--display);letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:28px;font-weight:600}.topbar .sub{color:var(--muted);font-size:13px}.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.iconbtn svg{width:20px;height:20px}.avatar{background:var(--ink);width:40px;height:40px;color:var(--surface);border:none;border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}main{min-height:0;padding-block:4px 24px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));scroll-behavior:smooth;flex-direction:column;flex:1;gap:14px;display:flex;overflow:hidden auto}.view{flex-direction:column;gap:14px;display:flex}.tabbar{background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-block:6px 8px;padding-left:max(4px,env(safe-area-inset-left,0px));padding-right:max(4px,env(safe-area-inset-right,0px));flex:none;grid-template-columns:repeat(5,1fr);display:grid}.tabbar a{color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding-block:6px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.tabbar a svg{width:22px;height:22px}.tabbar a[aria-current=page]{color:var(--ink);font-weight:600}.tabbar a[aria-current=page] .pill{background:var(--surface2)}.tabbar .pill{border-radius:999px;place-items:center;padding:3px 16px;display:grid}.card{background:var(--surface);border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--shadow);padding:18px}.card h2,.sec-title{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:16px;font-weight:600}.sec-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sec-head a,.link{color:var(--accent);background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:none}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:500}.muted{color:var(--muted)}.small{font-size:13px}.hero{padding:20px 20px 16px}.hero .label{color:var(--muted)}.hero .big{font-family:var(--display);letter-spacing:-.045em;margin-top:4px;font-size:44px;font-weight:600;line-height:1.05}.hero .big small{color:var(--muted);letter-spacing:-.02em;font-size:22px}.hero .meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:6px;font-size:12.5px;display:flex}.forecast{border-top:1px solid var(--line);color:var(--accent);margin-top:16px;padding-top:14px}.forecast svg text{fill:var(--muted)}.forecast .fhead{color:var(--muted)}.forecast .fhead b{color:var(--ink)}.forecast svg{width:100%;height:auto;display:block}.forecast .fhead{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:12.5px;display:flex}.forecast .fhead b{font-weight:600}.kpis{grid-template-columns:1fr 1fr;gap:10px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:14px 16px}.kpi.tap{color:inherit;text-decoration:none;transition:border-color .15s;display:block}.kpi.tap:hover,.kpi.tap:active{border-color:var(--accent)}.chev{float:right;color:var(--accent);font-size:15px;line-height:1}.period{background:var(--accent-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.period select{background:0 0;border:none;min-width:0;padding:0;font-weight:600}.kpi .v{font-family:var(--display);letter-spacing:-.03em;margin-top:2px;font-size:22px;font-weight:600}.kpi .v small{color:var(--muted);font-size:13px;font-weight:500;font-family:var(--body)}.bar{background:var(--surface2);border-radius:99px;height:6px;position:relative;overflow:hidden}.bar i{background:var(--accent);border-radius:99px;height:100%;display:block}.bar i.warn{background:var(--warn)}.bar i.bad{background:var(--bad)}.bar .mark{background:var(--muted);opacity:.6;width:2px;position:absolute;top:-1px;bottom:-1px}.alert{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:10px;padding:12px 0;display:grid}.alert:first-of-type{border-top:none}.sev{border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.sev svg{width:17px;height:17px}.sev.warn{background:var(--warn-soft);color:var(--warn)}.sev.bad{background:var(--bad-soft);color:var(--bad)}.sev.info{background:var(--accent-soft);color:var(--accent)}.alert b{font-weight:600}.alert .acts{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.btn{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}.btn.block{width:100%;padding:12px;font-size:15px}.goalmini{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 0;display:grid}.goalmini:first-of-type{border-top:none}.prob{border-radius:99px;padding:2px 8px;font-size:13px;font-weight:600}.prob.good{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good)}.prob.warn{background:var(--warn-soft);color:var(--warn)}.prob.bad{background:var(--bad-soft);color:var(--bad)}.search{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.search svg{width:18px;height:18px;color:var(--muted);flex:none}.search input{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:11px 0}.chips{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;flex:none;padding:6px 12px;font-size:13px;font-weight:500}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.daygroup .label{margin:6px 2px}.txlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.tx{border-top:1px solid var(--line);grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:11px 14px;display:grid}.tx:first-child{border-top:none}.tx .ic{width:36px;height:36px;color:var(--cc);background:color-mix(in srgb,var(--cc) 13%,transparent);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.tx .desc{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.tx .amt{text-align:right;font-weight:600}.tx .amt.in{color:var(--good)}.catbtn{border:1px dashed var(--line);background:var(--surface2);color:var(--muted);border-radius:99px;align-items:center;gap:5px;max-width:100%;margin-top:3px;padding:1px 8px 1px 6px;font-size:12px;display:inline-flex}.catbtn .dot{border-radius:50%;width:8px;height:8px}.catbtn .ai{letter-spacing:.04em;color:var(--accent);font-size:10px;font-weight:700}.catbtn .fixed{letter-spacing:.04em;color:var(--good);font-size:10px;font-weight:700}.flag{color:var(--bad);margin-left:6px;font-size:11px;font-weight:600}.empty{text-align:center;color:var(--muted);padding:24px}.brow{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:6px 10px;padding:11px 0;display:grid}.brow:first-of-type{border-top:none}.brow .n{align-items:center;gap:8px;font-weight:500;display:flex}.brow .n .dot{border-radius:3px;width:10px;height:10px}.brow .bar{grid-column:1/-1}.brow .st{grid-column:1/-1;justify-content:space-between;font-size:12px;display:flex}.badge{border-radius:99px;padding:1px 7px;font-size:11px;font-weight:600}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.cal{flex-direction:column;display:flex}.cal .ev{border-top:1px solid var(--line);grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.cal .ev:first-child{border-top:none}.cal .date{text-align:center;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:4px 0;line-height:1.1}.cal .date b{font-family:var(--display);font-size:18px;font-weight:600;display:block}.cal .date span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px}.cal .ev.soon .date{background:var(--accent-soft);border-color:#0000}.monthstrip{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px;display:grid}.monthstrip div{aspect-ratio:1;max-width:100%;color:var(--muted);border-radius:8px;place-items:center;font-size:12px;display:grid;position:relative}.monthstrip .h{aspect-ratio:auto;font-size:10.5px;font-weight:600}.monthstrip .today{outline:2px solid var(--accent);color:var(--ink);font-weight:600}.monthstrip .has{background:var(--accent-soft);color:var(--ink);font-weight:600}.monthstrip .has:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px}.monthstrip .pay{background:var(--ink);color:var(--surface)}.monthstrip .pay:after{background:var(--surface)}.goal{flex-direction:column;gap:12px;display:flex}.goal .top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.goal .top h3{font-family:var(--display);letter-spacing:-.025em;margin:0;font-size:19px;font-weight:600}.goal .amounts{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.goal .amounts .v{font-family:var(--display);letter-spacing:-.035em;font-size:26px;font-weight:600}.goal .grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.goal .grid3>div{background:var(--surface2);border-radius:12px;min-width:0;padding:8px 10px}.goal .grid3 .v{font-size:15px;font-weight:600}.mc{grid-template-columns:72px 1fr;align-items:center;gap:14px;display:grid}.ring{width:72px;height:72px;position:relative}.ring svg{width:72px;height:72px;transform:rotate(-90deg)}.ring b{font-family:var(--display);place-items:center;font-size:18px;display:grid;position:absolute;inset:0}.hist{align-items:flex-end;gap:3px;height:46px;display:flex;position:relative}.hist i{background:var(--accent);opacity:.22;border-radius:3px 3px 0 0;flex:1;min-height:2px}.hist i.ok{opacity:.9}.hist .dl{border-left:2px dashed var(--muted);position:absolute;top:-4px;bottom:0}.histlab{color:var(--muted);justify-content:space-between;margin-top:3px;font-size:10.5px;display:flex}.seg{background:var(--surface2);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(3,1fr);padding:3px;display:grid}.seg button{color:var(--muted);background:0 0;border:none;border-radius:9px;padding:8px;font-size:13.5px;font-weight:600}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.chart svg{width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-size:10px;font-family:var(--body)}.rep{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:12px 0;display:grid}.rep:first-of-type{border-top:none}.rep .t{font-weight:600}.chans{gap:6px;display:flex}.chans span{border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:1px 6px;font-size:10.5px;font-weight:600}.mail{background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px}.mail p{margin:0 0 8px}.mail ul{margin:0 0 4px;padding-left:18px}.irs{grid-template-columns:1fr 1fr;gap:10px;display:grid}.irs>div{background:var(--surface2);border-radius:12px;padding:10px 12px}.irs .v{font-family:var(--display);letter-spacing:-.03em;font-size:21px;font-weight:600}table.mini{border-collapse:collapse;width:100%;font-size:13.5px}table.mini td{border-top:1px solid var(--line);padding:7px 0}table.mini td:last-child{text-align:right}.setlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.setrow{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;display:flex}.setrow:first-child{border-top:none}.setrow .d{min-width:0}.switch{appearance:none;background:var(--line);cursor:pointer;border-radius:99px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.back{color:var(--accent);background:0 0;border:none;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.scrim{z-index:20;background:#050c0a73;position:absolute;inset:0}.sheet{z-index:21;background:var(--surface);max-height:85%;padding-block:10px calc(18px + env(safe-area-inset-bottom,0px));padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));border-radius:22px 22px 0 0;flex-direction:column;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}.sheet .grab{background:var(--line);border-radius:4px;width:40px;height:4px;margin:0 auto 4px}.sheet h3{font-family:var(--display);margin:0;font-size:20px}.catgrid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.catgrid button{border:1px solid var(--line);background:var(--surface2);text-align:left;border-radius:12px;align-items:center;gap:8px;padding:10px;font-weight:500;display:flex}.catgrid button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.catgrid .dot{border-radius:3px;flex:none;width:10px;height:10px}.field{flex-direction:column;gap:5px;display:flex}.field label{font-size:13px;font-weight:600}.field input,.field select{border:1px solid var(--line);background:var(--surface2);border-radius:10px;width:100%;padding:10px 12px}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.check{align-items:flex-start;gap:8px;font-size:13.5px;display:flex}.check input{accent-color:var(--accent);margin-top:3px}.toast{background:var(--ink);color:var(--bg);z-index:30;text-align:center;border-radius:12px;width:max-content;max-width:calc(100% - 32px);padding:10px 16px;font-size:13.5px;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.demo{text-align:center;color:var(--muted);padding-top:4px;font-size:11px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}html,body,#root{height:100%;margin:0}.empty{text-align:center;color:var(--muted);padding:22px 14px;font-size:14px}.emptycard{text-align:center;padding:28px 20px}.emptycard h2{font-size:17px}.emptycard p{color:var(--muted);margin:6px 0 0;font-size:14px}.login{flex-direction:column;flex:1;justify-content:center;gap:14px;padding:24px 22px;display:flex}.login h1{font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:32px;font-weight:600}.login form{flex-direction:column;gap:12px;display:flex}.note{background:var(--surface2);border-radius:10px;padding:8px 10px;font-size:13px}.note.bad{background:var(--bad-soft);color:var(--bad)}.note.good{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good)}.btn:disabled{opacity:.55;cursor:default}.catbtn{white-space:nowrap;max-width:100%}.tx .flag{margin:2px 0 0;display:block}
