:root{--mono:"SFMono-Regular","Cascadia Code","Consolas","Liberation Mono",monospace;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}:root,[data-theme=dark]{color-scheme:dark;--ground:#11171a;--ground-2:#18211f;--ground-3:#212c29;--line:#2c3a36;--text:#eae6da;--muted:#93a29c;--faint:#5e6d67;--accent:#8cbeb4;--accent-dim:#5c8a82;--accent-hover:#a3cec5;--money:#e3d6ac;--money-dim:#b6a675;--btn-fg:#0e1614;--pos:#5fb892;--neg:#e0846f;--warn:#e0c684;--grid-opacity:0.06}[data-theme=light]{color-scheme:light;--ground:#ece4ce;--ground-2:#f7f1e0;--ground-3:#e2d8bc;--line:#d3c7a2;--text:#2c2a22;--muted:#6e6a56;--faint:#9a9374;--accent:#4f7e76;--accent-dim:#7ba39b;--accent-hover:#3c685f;--money:#8a7333;--money-dim:#bba86e;--btn-fg:#f7f1e0;--pos:#3e8a6e;--neg:#c2543f;--warn:#a9812f;--grid-opacity:0.05}@media (prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--ground:#ece4ce;--ground-2:#f7f1e0;--ground-3:#e2d8bc;--line:#d3c7a2;--text:#2c2a22;--muted:#6e6a56;--faint:#9a9374;--accent:#4f7e76;--accent-dim:#7ba39b;--accent-hover:#3c685f;--money:#8a7333;--money-dim:#bba86e;--btn-fg:#f7f1e0;--pos:#3e8a6e;--neg:#c2543f;--warn:#a9812f;--grid-opacity:0.05}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:padding-left .26s cubic-bezier(.4,0,.2,1)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;opacity:var(--grid-opacity);pointer-events:none;z-index:0}.wrap{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 24px 80px}header{justify-content:space-between;gap:16px;flex-wrap:wrap;padding:26px 0 18px;border-bottom:1px solid var(--line)}.brand,header{display:flex;align-items:baseline}.brand{gap:14px}.mark{font-family:var(--mono);font-weight:700;letter-spacing:.18em;font-size:20px;color:var(--text)}.mark b{color:var(--money)}.brand .sub{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--faint)}.period{font-family:var(--mono);font-size:12.5px;color:var(--muted);letter-spacing:.06em}.period .live{color:var(--pos)}.head-right{display:flex;align-items:center;gap:16px}.theme-toggle{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;width:34px;height:34px;cursor:pointer;font-size:15px;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:border-color .15s,color .15s;flex:none}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle .ico-sun{display:none}.theme-toggle .ico-moon,[data-theme=light] .theme-toggle .ico-sun{display:inline}[data-theme=light] .theme-toggle .ico-moon{display:none}.eyebrow{font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--faint);margin:0 0 14px;display:flex;align-items:center;gap:10px}.eyebrow:after{content:"";flex:1 1;height:1px;background:var(--line)}.tabs{display:flex;gap:26px;margin:22px 0 0;border-bottom:1px solid var(--line)}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:11px 2px;margin-bottom:-1px;cursor:pointer;transition:color .15s,border-color .15s}.tab.active,.tab:hover{color:var(--text)}.tab.active{border-bottom-color:var(--accent)}.tab .ct{font-family:var(--mono);color:var(--faint);margin-left:7px;letter-spacing:0}.tabpanel{display:none}.tabpanel.active{display:block;animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);margin:30px 0 8px}.kpi{background:var(--ground-2);padding:22px 22px 20px;min-width:0}.kpi .label{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.kpi .big{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:33px;font-weight:600;line-height:1.05;letter-spacing:-.01em}.kpi .ccy{font-size:12px;color:var(--faint);font-weight:500;letter-spacing:.06em;margin-right:6px}.kpi .big .amt{display:block;white-space:nowrap}.kpi .big .amt+.amt{font-size:17px;color:var(--muted);margin-top:4px}.kpi .second{font-size:14px;color:var(--muted);margin-top:6px;font-family:var(--mono)}.kpi.flag-money .big{color:var(--money)}.kpi.flag-neg .big{color:var(--neg)}.kpi.flag-pos .big{color:var(--pos)}.kpi .delta{font-size:11.5px;color:var(--faint);margin-top:10px;letter-spacing:.02em}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin-top:44px}.panel{background:var(--ground-2);border:1px solid var(--line);padding:22px}.aging-bar{display:flex;height:30px;border-radius:2px;overflow:hidden;margin:6px 0 18px}.aging-bar span{display:block;transition:width .6s cubic-bezier(.4,0,.2,1)}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;color:var(--muted)}.legend i{display:inline-block;width:9px;height:9px;border-radius:1px;margin-right:7px;vertical-align:middle}.legend .ct{font-family:var(--mono);color:var(--text);margin-left:4px}.rev-row{display:grid;grid-template-columns:96px 1fr auto;align-items:center;grid-gap:12px;gap:12px;margin-bottom:11px}.rev-row .name{font-size:13px;color:var(--text)}.rev-track{background:var(--ground-3);height:9px;border-radius:2px;overflow:hidden}.rev-fill{height:100%;background:linear-gradient(90deg,var(--money-dim),var(--money));width:0;transition:width .7s cubic-bezier(.4,0,.2,1)}.rev-val{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--muted)}.ledger{margin-top:28px}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-weight:600;padding:0 14px 12px;border-bottom:1px solid var(--line)}tbody td.r,thead th.r{text-align:right}tbody td{padding:13px 14px;border-bottom:1px solid var(--line);font-size:13.5px}tbody tr:hover{background:var(--ground-3)}td.mono{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pill{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:2px;border:1px solid}.pill.paid{color:var(--pos);border-color:color-mix(in srgb,var(--pos) 45%,transparent)}.pill.overdue{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 50%,transparent);background:color-mix(in srgb,var(--neg) 10%,transparent)}.pill.partial{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.pill.unknown,.pill.unpaid{color:var(--muted);border-color:var(--line)}.pill.cancelled{text-decoration:line-through}.pill.cancelled,.pill.credit_note{color:var(--faint);border-color:var(--line)}.paynote{font-size:13.5px;line-height:1.65;color:var(--muted)}.paynote .lead{color:var(--text);font-size:14.5px;margin-bottom:10px}.paynote .qbo{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:12px;color:var(--accent);border:1px solid var(--accent-dim);border-radius:2px;padding:6px 11px}.paynote b{color:var(--text);font-family:var(--mono)}tr.is-overdue td:first-child{box-shadow:inset 3px 0 0 var(--neg)}.chat-fab{position:fixed;left:26px;bottom:26px;z-index:50;width:58px;height:58px;border-radius:50%;border:none;background:var(--accent);color:var(--btn-fg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.32);transition:transform .15s,background .15s,opacity .2s}.chat-fab svg{width:26px;height:26px}.chat-fab:hover{background:var(--accent-hover);transform:translateY(-2px)}.chat-fab.hidden{opacity:0;pointer-events:none;transform:scale(.6)}.chat-backdrop{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .25s}.chat-backdrop.open{opacity:1;pointer-events:auto}.chat-dock{position:fixed;top:0;left:0;z-index:60;width:720px;max-width:100vw;height:100vh;background:var(--ground-2);border-right:1px solid var(--line);box-shadow:14px 0 44px rgba(0,0,0,.3);transform:translateX(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:row}.chat-dock.open{transform:translateX(0)}@media (min-width:900px){.chat-backdrop{display:none}body.chat-open{padding-left:720px}body.chat-open .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.convo-side{width:200px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--ground);min-height:0;overflow:hidden;transition:width .24s cubic-bezier(.4,0,.2,1),border-color .24s,opacity .18s}.chat-dock.convo-collapsed .convo-side{width:0;border-right-color:transparent;opacity:0;pointer-events:none}.convo-side .new-chat{margin:14px 14px 10px;padding:9px 12px;cursor:pointer;background:var(--accent);color:var(--btn-fg);border:none;border-radius:3px;font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;gap:7px}.convo-side .new-chat:hover{background:var(--accent-hover)}.convo-side .convo-eyebrow{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);padding:4px 16px 8px}.convo-list{flex:1 1;min-height:0;overflow-y:auto;padding:0 8px 14px}.convo-item{position:relative;padding:9px 26px 9px 12px;margin-bottom:2px;border-radius:3px;cursor:pointer;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s,color .12s}.convo-item.active,.convo-item:hover{background:var(--ground-3);color:var(--text)}.convo-item.active{box-shadow:inset 2px 0 0 var(--accent)}.convo-item .del{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--faint);cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;border-radius:3px;opacity:0;transition:opacity .12s,color .12s}.convo-item:hover .del{opacity:1}.convo-item .del:hover{color:var(--neg)}.convo-empty{font-size:12px;color:var(--faint);padding:8px 12px;font-style:italic}.chat-main{flex:1 1;min-width:0;display:flex;flex-direction:column}@media (max-width:720px){.convo-side{width:150px}}.chat{display:flex;flex-direction:column;height:100%;min-height:0}.chat-head{padding:18px 20px;border-bottom:1px solid var(--line);flex:none;justify-content:space-between}.chat-head,.chat-head .head-left{display:flex;align-items:flex-start;gap:12px}.chat-head .head-left{min-width:0}.chat-head .title{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text)}.chat-head .title b{color:var(--money)}.chat-head .hint{font-size:11.5px;color:var(--faint);font-family:var(--mono);margin-top:5px}.convo-toggle{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px;flex:none;margin-top:-3px;display:inline-flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.convo-toggle:hover{color:var(--accent);background:var(--ground-3)}.convo-toggle .bars{position:relative;display:block;width:20px;height:14px}.convo-toggle .bars span{position:absolute;left:0;height:2px;width:100%;border-radius:2px;background:currentColor;transition:transform .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),opacity .2s ease;transform-origin:left center}.convo-toggle .bars span:first-child{top:0}.convo-toggle .bars span:nth-child(2){top:6px}.convo-toggle .bars span:nth-child(3){top:12px}.convo-toggle[aria-expanded=true] .bars span:first-child{width:11px;transform:translateY(5px) rotate(-45deg)}.convo-toggle[aria-expanded=true] .bars span:nth-child(2){opacity:0;transform:scaleX(.3)}.convo-toggle[aria-expanded=true] .bars span:nth-child(3){width:11px;transform:translateY(-5px) rotate(45deg)}.chat-close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:4px 6px;border-radius:4px;flex:none}.chat-close:hover{color:var(--text);background:var(--ground-3)}.stream{padding:22px 20px;flex:1 1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.msg{max-width:88%;animation:msg-in .32s cubic-bezier(.4,0,.2,1) both}@keyframes msg-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.msg.bot{max-width:100%;width:100%}.msg .who{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.msg.user{align-self:flex-end;text-align:right}.msg.user .bubble{background:color-mix(in srgb,var(--accent) 16%,var(--ground-3));border:1px solid var(--accent-dim);color:var(--text)}.msg .bubble{background:var(--ground-3);border:1px solid var(--line);padding:13px 16px;border-radius:3px;font-size:14px}.msg.bot .bubble{line-height:1.6;overflow:hidden}.bubble p{margin:0 0 10px}.bubble p:last-child{margin-bottom:0}.bubble .md-h{font-family:var(--sans);font-weight:700;font-size:13.5px;color:var(--text);letter-spacing:.01em;margin:16px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--line)}.bubble .md-h:first-child{margin-top:0}.bubble hr{border:none;border-top:1px solid var(--line);margin:14px 0}.bubble ul{margin:8px 0;padding-left:20px}.bubble li{margin:4px 0}.bubble li::marker{color:var(--accent)}.bubble em{font-style:italic}.bubble code{font-family:var(--mono);font-size:12.5px;background:var(--ground);border:1px solid var(--line);border-radius:3px;padding:1px 5px}.bubble .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0}.bubble table{margin:0;width:max-content;min-width:100%;border-collapse:collapse}.bubble .tbl-wrap.revealed{animation:tbl-in .4s cubic-bezier(.4,0,.2,1) both}@keyframes tbl-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.bubble .tbl-wrap.revealed table tr{animation:row-in .3s ease both}@keyframes row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bubble td,.bubble th{border-bottom:1px solid var(--line);padding:5px 10px;font-size:12px;text-align:left;white-space:nowrap}.bubble td:not(:first-child),.bubble th:not(:first-child){text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bubble th{color:var(--muted);font-weight:600}.bubble strong,.bubble td.money{font-family:var(--mono)}.bubble .verified{color:var(--pos);border-top:1px dashed var(--line)}.bubble .verified,.bubble .vwarn{font-size:12.5px;margin-top:12px;padding-top:10px;display:block}.bubble .vwarn{color:var(--neg);border-top:1px dashed var(--neg)}.dots span{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:var(--accent);animation:blink 1.2s infinite both}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.status{font-family:var(--mono);font-size:12.5px;color:var(--accent);display:flex;align-items:center;gap:9px}.status .spin{width:11px;height:11px;border:2px solid var(--accent-dim);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.status .step{color:var(--faint)}.cursor:after{content:"▍";color:var(--accent);animation:blink 1s step-end infinite;margin-left:1px}.suggest{display:flex;flex-wrap:wrap;gap:6px;padding:0 22px 12px;max-height:200px;overflow:hidden;opacity:1;transform:translateY(0);transition:opacity .2s ease,transform .2s ease,max-height .2s ease,padding .2s ease}.suggest.hidden{opacity:0;transform:translateY(6px);max-height:0;padding-top:0;padding-bottom:0;pointer-events:none}.chip{font-size:11px;color:var(--faint);background:transparent;border:1px solid var(--line);border-radius:999px;padding:4px 10px;cursor:pointer;font-family:var(--sans);white-space:nowrap;transition:border-color .15s,color .15s,opacity .25s ease,transform .25s ease}.chip:hover{border-color:var(--accent-dim);color:var(--accent)}.suggest.hidden .chip{opacity:0;transform:translateY(5px);transition-delay:0s}.suggest:not(.hidden) .chip{transition-delay:calc(var(--i, 0) * 45ms)}.composer{display:flex;gap:10px;padding:16px 22px 22px;border-top:1px solid var(--line)}.composer input{flex:1 1;background:var(--ground);border:1px solid var(--line);color:var(--text);padding:13px 15px;border-radius:3px;font-size:14px;font-family:var(--sans)}.composer input:focus{outline:none;border-color:var(--accent)}.composer input::placeholder{color:var(--faint)}.composer button{background:var(--accent);color:var(--btn-fg);border:none;padding:0 22px;border-radius:3px;font-weight:600;font-size:14px;cursor:pointer;letter-spacing:.02em}.composer button:disabled{opacity:.4;cursor:default}.composer button:hover:not(:disabled){background:var(--accent-hover)}footer{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:11.5px;color:var(--faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.err{color:var(--neg);font-size:13px;padding:14px 22px}@media (max-width:820px){.kpis{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.wrap{padding:0 16px 60px}table{display:block;overflow-x:auto;white-space:nowrap}}@media (max-width:480px){.chat-dock{width:100vw}.chat-fab{left:18px;bottom:18px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.auth-body{min-height:100vh;display:grid;place-items:center}.card{width:min(380px,92vw);background:var(--ground-2);border:1px solid var(--line);border-radius:14px;padding:32px 28px}.card .brand-eyebrow{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}.card h1{font-size:21px;margin:0 0 22px;font-weight:600}.card .sub{font-size:13px;color:var(--muted);margin:0 0 14px}.card label{display:block;font-size:12px;color:var(--muted);margin:14px 0 6px}.card input{width:100%;padding:11px 12px;background:var(--ground);color:var(--text);border:1px solid var(--line);border-radius:9px;font-size:15px;font-family:inherit}.card input:focus{outline:none;border-color:var(--accent)}.card button{width:100%;margin-top:22px;padding:11px;background:var(--accent);color:var(--btn-fg);border:none;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}.card button:hover{background:var(--accent-hover)}.card button:disabled{opacity:.6;cursor:default}.form-msg{margin-top:16px;font-size:13px;min-height:18px}.form-msg.err{color:var(--neg)}.form-msg.ok{color:var(--pos)}