:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17283d;background:#f4f6fa;font-size:16px;--blue:#3156ed;--ink:#152337;--muted:#65768c;--line:#e3e9f2;--bad:#b42e43;--green:#16735b}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:var(--blue)}h1,h2,h3,p{margin:0}h1{font-size:1.8rem;letter-spacing:-.04em;font-weight:750}h2{font-size:1.12rem;font-weight:700;letter-spacing:-.02em}h3{font-size:1rem}small,.small{font-size:.8125rem;color:var(--muted)}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.negative{color:var(--bad)!important}.positive{color:var(--green)}.loading{padding:4rem;text-align:center}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--ink);color:#b4c0d2;position:fixed;inset:0 auto 0 0;width:232px;padding:28px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 25px;color:#fff}.brandmark{height:38px;width:38px;border-radius:11px;background:var(--blue);display:grid;place-items:center;font-weight:800;font-size:1.2rem}.brand strong{display:block;font-size:1rem}.brand small{color:#94a5be;font-size:.75rem}.nav{display:flex;flex-direction:column;gap:4px}.nav button{border:0;background:none;color:inherit;padding:12px;text-align:left;display:flex;gap:12px;align-items:center;border-radius:9px;font-size:.875rem}.nav button:hover{background:#22354e;color:white}.nav button.active{background:#3156ed;color:white}.icon{width:19px;height:19px;display:inline-flex;flex-shrink:0;vertical-align:middle}.sidebarfooter{margin-top:auto;border-top:1px solid #304058;padding:20px 10px 0;display:flex;align-items:center;gap:10px}.avatar{border-radius:50%;background:#2c3e57;width:34px;height:34px;display:grid;place-items:center;color:#dbe6fa}.workspace{grid-column:2;min-width:0}.topbar{height:72px;background:white;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar .tag{font-size:.8125rem}.topbar button{padding:8px 10px}.view{padding:28px 32px 48px;max-width:1700px;margin:auto}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.pagehead p{color:var(--muted);font-size:.875rem;margin-top:6px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button{border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.875rem;text-decoration:none;line-height:1.25;min-height:40px}.button:hover{background:#f4f7fc}.button.primary{background:var(--blue);border-color:var(--blue);color:white}.button.primary:hover{background:#2146d8}.button.danger{color:var(--bad);border-color:#ecd4da}.button.quiet{border:0;background:transparent}.select,input,select,textarea{border:1px solid #cbd6e4;border-radius:7px;background:white;padding:10px 12px;color:var(--ink);min-height:42px}input,select,textarea{max-width:100%}textarea{resize:vertical;min-height:110px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #a5b9ff;outline-offset:2px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:21px 24px;position:relative}.stat .label{font-size:.875rem;color:var(--muted);display:flex;align-items:center;gap:8px}.stat .value{font-size:1.9rem;letter-spacing:-.045em;font-weight:750;margin:10px 0 7px;font-variant-numeric:tabular-nums}.stat.emphasis{background:var(--blue);border-color:var(--blue);color:white}.stat.emphasis .label,.stat.emphasis small{color:#dde5ff}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:22px}.panelhead{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line)}.panelhead p{margin-top:5px;font-size:.875rem;color:var(--muted)}.panelbody{padding:22px 24px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th{color:var(--muted);font-size:.8125rem;font-weight:600;background:#f8fafd;padding:13px 20px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:15px 20px;border-bottom:1px solid #edf1f6;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcff}td.name{font-weight:600}.categorycell{display:flex;align-items:center;gap:12px}.categoryicon{height:34px;width:34px;border-radius:9px;display:grid;place-items:center;color:#3a60d8;background:#edf1fe;font-size:.875rem}.progress{height:5px;border-radius:5px;background:#edf1f7;width:100%;overflow:hidden;margin-top:6px}.progress i{display:block;height:100%;background:var(--blue);border-radius:5px}.progress i.over{background:var(--bad)}.progresscell{min-width:110px}.subrow td{font-size:.8125rem;background:#f8faff;color:#63768b;padding-top:10px;padding-bottom:10px}.subrow td:first-child{padding-left:65px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.badge{display:inline-block;border-radius:5px;background:#edf1ff;padding:4px 7px;color:#3d5bbb;font-size:.75rem;line-height:1.25}.badge.pending{background:#fff0d7;color:#8c5a07}.badge.posted{background:#e8f5f0;color:#16735b}.badge.estimated{background:#edf0f5;color:#5c6b80}.notice{padding:12px 16px;background:#fff4dd;border:1px solid #f2dfb5;border-radius:9px;color:#855513;font-size:.875rem;line-height:1.55;margin-bottom:20px;display:flex;align-items:center;gap:12px}.notice.error{background:#fff0f2;border-color:#f4d4da;color:var(--bad)}.notice.info{background:#eaf0ff;border-color:#d5defd;color:#3454a2}.notice button{margin-left:auto;flex-shrink:0}.empty{padding:40px 24px;text-align:center;color:var(--muted);line-height:1.7}.splitline{display:flex;justify-content:space-between;gap:16px;margin:12px 0;font-size:.875rem}.chart{height:148px;display:flex;align-items:end;gap:18px;padding:10px 24px 0}.chartbar{flex:1;max-width:110px;min-width:35px;text-align:center;font-size:.8125rem;color:var(--muted)}.chartbar i{display:block;background:var(--blue);border-radius:4px 4px 0 0;width:70%;margin:0 auto 8px}.chartbar small{display:block;font-size:.75rem}.flowtable{width:max-content;min-width:100%;font-size:.8125rem}.flowtable th,.flowtable td{padding:11px 13px;min-width:112px}.flowtable th:first-child,.flowtable td:first-child{position:sticky;left:0;z-index:2;background:white;min-width:230px;border-right:1px solid var(--line)}.flowtable thead th:first-child{background:#f8fafd}.flowtable tr.total td{background:#edf2ff;font-weight:700;border-top:1px solid #cad7ff}.flowtable tr.total td:first-child{background:#edf2ff}.flowtable th.current{color:var(--blue);background:#edf2ff}.flowtable .forecast{color:#6a7d97}.notegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.note{padding:20px;border:1px solid var(--line);border-radius:12px;background:white}.note p{white-space:pre-wrap;line-height:1.65;font-size:.875rem;margin:12px 0;color:#52657a}.note footer{display:flex;justify-content:space-between;align-items:center}.filterrow{display:flex;gap:10px;flex-wrap:wrap;padding:16px 24px;border-bottom:1px solid var(--line)}.filterrow input{flex:1;min-width:150px}.accountcard{padding:22px 24px}.accountcard .value{font-size:1.6rem;font-weight:750;letter-spacing:-.03em;margin:10px 0}.cardvisual{padding:22px;background:linear-gradient(130deg,#152337,#2b4166);border-radius:12px;color:white;margin-bottom:18px}.cardvisual .value{font-size:1.75rem;font-weight:700;margin:18px 0 12px}.cardvisual .limit{color:#b8c8e2;font-size:.8125rem}.cardvisual .cardtop{display:flex;justify-content:space-between}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:.875rem}.field.full{grid-column:1/-1}.field label{font-weight:550}.field small{line-height:1.5}.check{display:flex;align-items:center;gap:8px;font-size:.875rem}.check input{min-height:auto}.formactions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.authaside{padding:10vw 6vw;background:var(--ink);color:white;display:flex;flex-direction:column;justify-content:center}.authaside h1{font-size:3rem;max-width:440px;line-height:1.15;margin:25px 0 20px}.authaside p{color:#aebfd6;max-width:370px;line-height:1.7}.authmain{display:flex;align-items:center;justify-content:center;padding:40px}.authbox{width:100%;max-width:390px}.authbox h2{font-size:1.7rem;margin-bottom:10px}.authbox>p{color:var(--muted);line-height:1.6;margin-bottom:24px;font-size:.875rem}.authbox form{display:flex;flex-direction:column;gap:18px}.authbox .button{width:100%}.authdivider{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.authfoot{margin-top:18px;font-size:.8125rem;color:var(--muted);line-height:1.6}.mobileonly,.bottomnav{display:none}dialog{border:0;border-radius:14px;box-shadow:0 25px 100px #13223e35;max-width:min(650px,calc(100vw - 28px));width:650px;padding:0;color:var(--ink)}dialog::backdrop{background:#15233770;backdrop-filter:blur(3px)}.modalhead{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modalbody{padding:24px;max-height:78vh;overflow:auto}#toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:white;padding:14px 20px;border-radius:9px;font-size:.875rem;box-shadow:0 8px 30px #15233725;z-index:100;display:none;max-width:90vw}#toast.error{background:#9f2439}.inlinescroll{overflow:auto}.inlinealert{color:var(--bad);margin:12px 0;font-size:.875rem}.hide{display:none!important}.historical td,.historical th{font-size:.8125rem}.rowbutton{padding:4px 7px;min-height:30px}.trendline{height:200px;width:100%;display:block}.legend{display:flex;gap:20px;padding:12px 24px;color:var(--muted);font-size:.8125rem}.legend b{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;background:var(--blue)}.toggle{border:0;background:none;color:var(--blue);padding:3px 7px;font-size:.8rem}.overdue{color:var(--bad)}
@media(min-width:1500px){.view{padding-left:44px;padding-right:44px}}
@media(max-width:1100px){.sidebar{width:202px}.shell{grid-template-columns:202px minmax(0,1fr)}.view{padding:24px 20px}.topbar{padding:0 20px}.stat{padding:18px}.stat .value{font-size:1.5rem}.notegrid{grid-template-columns:1fr 1fr}td,th{padding-left:14px;padding-right:14px}}
@media(max-width:760px){.shell{display:block}.sidebar{display:none}.sidebar.open{display:flex;width:250px;box-shadow:0 0 0 100vmax #15233780}.workspace{width:100%}.topbar{height:59px;padding:0 16px}.topbar .brandmark{width:30px;height:30px;font-size:.9rem}.topbar .tag{font-size:.75rem}.view{padding:20px 14px 95px}.pagehead{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:18px}h1{font-size:1.55rem}.pagehead .actions{width:100%;justify-content:space-between}.stats{gap:8px;margin-bottom:16px}.stat{padding:14px 10px;border-radius:9px}.stat .label{font-size:.75rem;gap:3px}.stat .value{font-size:clamp(.95rem,3.4vw,1.35rem);margin:10px 0 6px;white-space:nowrap}.stat small{font-size:.6875rem}.panelhead{padding:16px}.panelbody{padding:16px}.panel{margin-bottom:16px}.panelhead h2{font-size:1rem}.categoryicon{display:none}.categorycell{gap:5px}.summarytable th,.summarytable td{padding:13px 10px;font-size:.8125rem}.summarytable .progresscell{display:none}.summarytable .refundcol{display:none}.summarytable td:first-child{max-width:125px;width:37%;white-space:normal}.summarytable .num{font-size:.8rem;letter-spacing:-.025em}.summarytable .subrow td:first-child{padding-left:20px}.desktoponly{display:none!important}.mobileonly{display:block}.grid2,.notegrid{grid-template-columns:1fr}.notice{font-size:.8125rem;padding:11px 12px;align-items:flex-start}.notice button{padding:5px;min-height:28px}.bottomnav{position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:7px 5px max(7px,env(safe-area-inset-bottom));z-index:15}.bottomnav button{border:0;background:none;color:var(--muted);display:flex;align-items:center;flex-direction:column;gap:3px;padding:5px 12px;font-size:.6875rem}.bottomnav button.active{color:var(--blue)}.auth{display:block}.authaside{padding:28px 24px}.authaside h1{font-size:1.75rem;margin:20px 0 10px}.authaside p{font-size:.875rem}.authmain{padding:28px 22px}.formgrid{gap:14px;grid-template-columns:1fr}.field.full{grid-column:auto}.modalbody{padding:20px}.modalhead{padding:16px 20px}.filterrow{padding:14px;gap:8px}.filterrow input{min-width:100%;width:100%}#toast{bottom:85px;left:15px;right:15px}.chart{gap:8px;padding:10px 8px 0}table{font-size:.8125rem}.pagehead .actions .button{padding:10px 11px}.subrow .num{font-size:.75rem}.cardvisual{margin-bottom:12px}.rowbutton{font-size:.75rem}.daycard{padding:16px}.daycard .balance{font-size:1.7rem;font-weight:750;margin:12px 0}.daycard .splitline{font-size:.8125rem}.authaside .brand{padding:0}.authaside .brand small{font-size:.75rem}}
@media(prefers-reduced-motion:no-preference){.progress i{transition:width .25s}button{transition:background .15s}}
@media(max-width:760px){.summaryextras{display:none}.summarytable th,.summarytable td{padding:13px 5px;font-size:.875rem}.summarytable td:first-child{width:26%;max-width:100px}.summarytable .num{font-size:.875rem}.stat small{font-size:.75rem}.stat .label{font-size:.875rem}.subrow .num{font-size:.875rem}}
