*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}:root{--font-display:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-text:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-data:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif}body{font-family:var(--font-text);background:#0b1c27;overflow-x:hidden}body.theme-light{background:#f4f7fa}#root{max-width:1400px;min-height:100vh;margin:0 auto;padding:20px}@media (width<=640px){#root{padding:12px}}.cf-root{--bg:#0b1c27;--bg-panel:#102636;--bg-elevated:#14303f;--bg-subtle:#132c3b;--bg-subtle-2:#183647;--bg-input:#0d2231;--bg-subrow:#0e2230;--border:#1f3d50;--border-gold-muted:#23506a;--border-strong:#2d5770;--text-primary:#eaf2f7;--text-muted:#8da6b6;--text-secondary:#c2d3de;--text-faint:#5f7c8e;--accent:#2fb7d9;--accent-hover:#55c8e5;--accent-rgb:47, 183, 217;--primary:#2fb7d9;--primary-ink:#06202d;--positive:#3dd68c;--collected:#6fb4e8;--positive-rgb:61, 214, 140;--negative:#f07167;--negative-rgb:240, 113, 103;--warning:#f5a623;--warning-rgb:245, 166, 35;--muted-rgb:141, 166, 182;--shadow:0 1px 2px #00000040}.cf-root.theme-light{--bg:#f4f7fa;--bg-panel:#fff;--bg-elevated:#f7f9fc;--bg-subtle:#f1f4f8;--bg-subtle-2:#e9eef4;--bg-input:#fff;--bg-subrow:#fafbfd;--border:#e3e8ee;--border-gold-muted:#cfe0ec;--border-strong:#c9d3dd;--text-primary:#1d2b36;--text-muted:#667685;--text-secondary:#3b4b58;--text-faint:#98a6b3;--accent:#2d5c7a;--accent-hover:#234b65;--accent-rgb:45, 92, 122;--primary:#2d5c7a;--primary-ink:#fff;--positive:#1e9e4a;--collected:#2f6fb5;--positive-rgb:30, 158, 74;--negative:#d64545;--negative-rgb:214, 69, 69;--warning:#e07b1a;--warning-rgb:224, 123, 26;--muted-rgb:102, 118, 133;--shadow:0 1px 2px #10283c0d, 0 1px 1px #10283c08}.cf-root{background:var(--bg);color:var(--text-primary);font-family:var(--font-text);box-sizing:border-box;border-radius:8px;max-width:100%;padding:28px;transition:background .2s,color .2s;position:relative}.cf-root *{box-sizing:border-box}.cf-loading{justify-content:center;align-items:center;min-height:200px;display:flex}.loading-text{color:var(--text-muted);font-family:var(--font-data);font-size:13px}.cf-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.cf-brand{align-items:center;gap:12px;display:flex}.cf-brand-mark{border:1px solid var(--accent);width:40px;height:40px;color:var(--accent);font-family:var(--font-display);border-radius:4px;justify-content:center;align-items:center;font-size:15px;display:flex}.cf-brand-name{font-family:var(--font-display);font-size:19px;font-weight:500}.cf-brand-sub{font-family:var(--font-data);color:var(--text-muted);letter-spacing:.02em;margin-top:2px;font-size:11px}.cf-month-switch{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.month-pill{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-data);cursor:pointer;background:0 0;border-radius:5px;padding:7px 12px;font-size:12px;transition:border-color .15s,color .15s}.month-pill:hover{border-color:var(--accent);color:var(--text-primary)}.month-pill.active{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent)}.month-pill.fy{color:var(--accent);border-color:var(--border-gold-muted)}.btn-primary{background:var(--accent);color:var(--bg);font-family:var(--font-text);cursor:pointer;border:none;border-radius:5px;padding:8px 16px;font-size:13px;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);font-family:var(--font-text);cursor:pointer;background:0 0;border-radius:5px;padding:8px 16px;font-size:13px}.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-strong)}.cf-hero{grid-template-columns:2fr 1fr 1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.hero-block.main{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:20px 22px}.hero-label{font-family:var(--font-data);color:var(--text-muted);letter-spacing:.02em;margin-bottom:8px;font-size:11px}.hero-number{font-family:var(--font-display);font-size:38px;font-weight:500;line-height:1.1}.hero-number.neg-number{color:var(--negative)}.hero-delta{font-family:var(--font-data);margin-top:10px;font-size:13px}.hero-delta.pos{color:var(--positive)}.hero-delta.neg{color:var(--negative)}.hero-stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;justify-content:center;padding:20px 18px;display:flex}.hero-stat-label{font-family:var(--font-data);color:var(--text-muted);margin-bottom:8px;font-size:11px}.hero-stat-value{font-family:var(--font-display);font-size:22px}.hero-stat-value.pos{color:var(--positive)}.hero-stat-value.neg{color:var(--negative)}.cf-grid{grid-template-columns:1.6fr 1fr;gap:16px;margin-bottom:16px;display:grid}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:20px 22px}.panel-full{margin-bottom:16px}.panel-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:12px;font-size:15px}.panel-title-spaced{margin-top:22px}.cat-list{flex-direction:column;gap:12px;display:flex}.cat-row-top{justify-content:space-between;margin-bottom:5px;font-size:12.5px;display:flex}.cat-name{color:var(--text-secondary)}.cat-value{font-family:var(--font-data)}.cat-value.pos{color:var(--positive)}.cat-value.neg{color:var(--negative)}.sparkbar-track{background:var(--bg-subtle-2);border-radius:3px;height:5px;overflow:hidden}.sparkbar-fill{border-radius:3px;height:100%}.chart-tooltip{background:var(--bg-elevated);border:1px solid var(--border);font-family:var(--font-data);border-radius:5px;padding:8px 12px;font-size:12px}.chart-tooltip-label{color:var(--text-muted);margin-bottom:4px}.chart-tooltip-row{color:var(--text-primary);justify-content:space-between;gap:16px;display:flex}.login-gate{text-align:center;max-width:460px;margin:70px auto}.cf-brand-mark.large{width:56px;height:56px;margin:0 auto 18px;font-size:22px}.login-title{font-family:var(--font-display);margin-bottom:12px;font-size:22px}.login-copy{color:var(--text-muted);margin-bottom:22px;font-size:13.5px;line-height:1.6}.login-form input{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-text);border-radius:5px;width:100%;padding:11px 14px;font-size:14px}.login-form input:focus{border-color:var(--accent);outline:none}.login-form .btn-primary{margin-top:4px;padding:11px 16px}.login-error{color:var(--negative);font-size:12.5px;font-family:var(--font-data);margin-top:14px}.btn-upload{border:1px solid var(--accent);color:var(--accent);font-family:var(--font-data);cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;padding:7px 14px;font-size:12px}.btn-upload:hover{background:rgba(var(--accent-rgb), .1)}.btn-upload:disabled{opacity:.6;cursor:default}.upload-banner{font-size:13px;font-family:var(--font-data);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:10px 16px;display:flex}.upload-banner.ok{background:rgba(var(--positive-rgb), .1);border:1px solid rgba(var(--positive-rgb), .3);color:var(--positive)}.upload-banner.err{background:rgba(var(--negative-rgb), .1);border:1px solid rgba(var(--negative-rgb), .3);color:var(--negative)}.upload-banner-close{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:16px;line-height:1}.cf-header-right{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.theme-toggle{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:14px;display:flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle-floating{position:absolute;top:28px;right:28px}.cf-user-badge{font-family:var(--font-data);align-items:center;gap:10px;font-size:12px;display:flex}.cf-user-name{color:var(--accent)}.empty-state{text-align:center;padding:60px 20px}.empty-state-title{font-family:var(--font-display);margin-bottom:12px;font-size:24px}.empty-state-copy{color:var(--text-muted);max-width:460px;margin:0 auto 22px;font-size:14px;line-height:1.6}.summary-panel .matrix-scroll{margin-bottom:24px}.summary-table{border-collapse:collapse;width:100%;font-family:var(--font-data)}.summary-table th{text-align:right;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:13px;font-weight:500}.summary-table th.matrix-row-label{text-align:left}.summary-table td.matrix-row-label{text-align:left;font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;padding:14px 16px;font-size:15px}.summary-cell{text-align:right;white-space:nowrap;border-bottom:1px solid var(--bg-subtle);padding:14px 16px;font-size:18px;font-weight:500}.summary-cell.pos{color:var(--positive)}.summary-cell.neg{color:var(--negative)}.summary-row-collections td,.summary-row-expenses td{border-bottom:1px solid var(--bg-subtle)}.summary-row-net td{border-top:2px solid var(--border);font-weight:600}.summary-row-balance td{color:var(--text-muted);font-size:15px}.summary-row-balance .summary-cell{color:var(--accent);font-size:15px}.matrix-panel{overflow:visible}.matrix-scroll{margin-bottom:8px;overflow-x:auto}.matrix-table{border-collapse:collapse;width:100%;font-family:var(--font-data);font-size:12.5px}.matrix-table th{text-align:right;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px;font-size:11px;font-weight:500}.matrix-table th.matrix-row-label,.matrix-table td.matrix-row-label{text-align:left;min-width:190px;color:var(--text-secondary);font-family:var(--font-text);font-size:12.5px}.matrix-dot{border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.matrix-table td{text-align:right;border-bottom:1px solid var(--bg-subtle);white-space:nowrap;padding:7px 10px}.matrix-cell.pos{color:var(--positive)}.matrix-cell.neg{color:var(--negative)}.matrix-total-col{border-left:1px solid var(--border);font-weight:600}.matrix-total-row td,.matrix-net-row td{border-top:1px solid var(--border);border-bottom:none;font-weight:600}.matrix-total-row .matrix-row-label,.matrix-net-row .matrix-row-label{color:var(--text-primary)}.matrix-net-row td{padding-top:9px}.panel-title-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-title-row .panel-title{margin-bottom:0}.trend-badge{font-family:var(--font-data);white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11.5px}.trend-badge.pos{color:var(--positive);background:rgba(var(--positive-rgb), .12)}.trend-badge.neg{color:var(--negative);background:rgba(var(--negative-rgb), .12)}.trend-badge.flat{color:var(--text-muted);background:rgba(var(--muted-rgb), .1)}.matrix-trend-col{border-left:1px solid var(--border);min-width:80px;text-align:center!important}.trend-chip-row{flex-wrap:wrap;gap:10px;display:flex}.trend-chip{background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;display:flex}.trend-chip.flat{color:var(--text-muted);font-family:var(--font-data);font-size:12px}.matrix-footnote{font-family:var(--font-text);color:var(--text-faint);margin-top:10px;font-size:11.5px;line-height:1.5}.matrix-row-clickable{cursor:pointer}.matrix-row-clickable:hover td{background:var(--bg-subtle)}.matrix-chevron{color:var(--text-muted);margin-right:6px;font-size:9px;transition:transform .15s;display:inline-block}.matrix-chevron.open{transform:rotate(90deg)}.mis-section-label{font-family:var(--font-text);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:600;background:var(--bg-subtle)!important}.mis-row-manual .matrix-row-label{font-style:italic}.mis-input{text-align:right;width:72px;font-family:var(--font-data);background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:3px 6px;font-size:12.5px}.mis-input:focus{border-color:var(--accent);outline:none}.mis-est-tag{color:var(--text-faint);margin-left:4px;font-size:10px}.mis-save-status{font-family:var(--font-text);color:var(--text-faint);margin-bottom:8px;font-size:11.5px}.mis-save-status.error{color:var(--negative)}.matrix-subrow td{background:var(--bg-subrow)}.matrix-sub-label{font-size:12px;color:var(--text-muted)!important;padding-left:32px!important}.matrix-sub-cell{font-size:12px;color:var(--text-muted)!important}.cf-footer{font-family:var(--font-data);color:var(--text-faint);border-top:1px solid var(--bg-subtle-2);justify-content:space-between;align-items:center;padding-top:8px;font-size:11.5px;display:flex}.link-btn{color:var(--text-faint);cursor:pointer;font-family:var(--font-data);background:0 0;border:none;padding:0;font-size:11.5px;text-decoration:underline}.panel-title-hint{font-family:var(--font-text);color:var(--text-faint);font-size:11px;font-weight:400}.cat-row-wrap{flex-direction:column;gap:0;display:flex}.cat-row-clickable{cursor:pointer}.cat-subrow-list{border-left:1px solid var(--border);flex-direction:column;gap:6px;margin:6px 0 4px 4px;padding-left:12px;display:flex}.cat-subrow{cursor:pointer;color:var(--text-muted);justify-content:space-between;align-items:center;padding:3px 0;font-size:12px;display:flex}.cat-subrow:hover{color:var(--text-primary)}.cat-subrow-name{align-items:center;display:flex}.cat-subrow-value.neg{color:var(--negative);font-family:var(--font-data)}.drilldown-picker-cell{background:var(--bg-subrow);padding:8px 16px!important}.drilldown-picker-label{color:var(--text-muted);font-size:11.5px;font-family:var(--font-data);margin-right:10px}.drilldown-month-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;font-size:11.5px;font-family:var(--font-data);border-radius:4px;margin-right:6px;padding:3px 9px}.drilldown-month-btn:hover{border-color:var(--accent);color:var(--accent)}.drilldown-cell{background:var(--bg-subrow);padding:10px 16px!important}.drilldown-panel{padding:6px 2px}.drilldown-panel-title{font-family:var(--font-data);color:var(--text-muted);margin-bottom:8px;font-size:11px}.drilldown-empty{color:var(--text-faint);padding:8px 0;font-size:12.5px}.drilldown-table{border-collapse:collapse;width:100%;font-family:var(--font-data);font-size:12px}.drilldown-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:5px 8px;font-weight:500}.drilldown-table td{border-bottom:1px solid var(--bg-subtle);vertical-align:top;padding:5px 8px}.drilldown-date{white-space:nowrap;color:var(--text-muted)}.drilldown-narration{color:var(--text-secondary);word-break:break-word}.drilldown-amt-col{text-align:right;white-space:nowrap}.drilldown-amt-col.pos{color:var(--positive)}.drilldown-amt-col.neg{color:var(--negative)}.drilldown-cat{color:var(--text-faint);white-space:nowrap}.subs-panel .matrix-table th,.subs-panel .matrix-table td{white-space:normal}.subs-anomaly-banner{background:rgba(var(--negative-rgb), .1);border:1px solid rgba(var(--negative-rgb), .3);color:var(--negative);border-radius:6px;margin-bottom:14px;padding:10px 14px;font-size:12.5px}.subs-row-anomaly td{background:rgba(var(--negative-rgb), .06)}.subs-status{font-family:var(--font-data);white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11px}.subs-status-active{color:var(--positive);background:rgba(var(--positive-rgb), .12)}.subs-status-cancelled{color:var(--negative);background:rgba(var(--negative-rgb), .12)}.subs-status-unknown{color:var(--text-muted);background:rgba(var(--muted-rgb), .1)}.subs-legend{flex-direction:column;gap:8px;margin-top:16px;display:flex}.subs-flag{border-radius:6px;padding:8px 12px;font-size:12px;line-height:1.5}.subs-flag-warn{color:var(--negative);background:rgba(var(--negative-rgb), .08);border:1px solid rgba(var(--negative-rgb), .25)}.subs-flag-info{color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border)}.uploads-layout{grid-template-columns:1fr 260px;align-items:start;gap:20px;display:grid}.uploads-main{min-width:0}.uploads-selected-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:14px;display:flex}.uploads-selected-filename{font-family:var(--font-display);color:var(--text-primary);font-size:16px}.uploads-selected-meta{font-family:var(--font-data);color:var(--text-muted);margin-top:4px;font-size:11.5px}.uploads-list{border-left:1px solid var(--border);flex-direction:column;gap:8px;padding-left:16px;display:flex}.uploads-list-empty{color:var(--text-faint);font-size:12.5px}.uploads-list-item{cursor:pointer;border:1px solid var(--border);background:var(--bg-subtle);border-radius:6px;padding:9px 11px;transition:border-color .15s}.uploads-list-item:hover{border-color:var(--border-strong)}.uploads-list-item.active{border-color:var(--accent);background:rgba(var(--accent-rgb), .08)}.uploads-list-filename{color:var(--text-primary);word-break:break-word;font-size:12.5px}.uploads-list-meta{font-family:var(--font-data);color:var(--text-muted);margin-top:3px;font-size:10.5px}.zoho-stats{flex-wrap:wrap;align-items:flex-end;gap:28px;display:flex}.zoho-synced-at{font-family:var(--font-data);color:var(--text-faint);align-self:center;margin-left:auto;font-size:11px}@media (width<=860px){.cf-hero{grid-template-columns:1fr 1fr}.cf-grid,.uploads-layout{grid-template-columns:1fr}.uploads-list{border-left:none;border-top:1px solid var(--border);padding-top:12px;padding-left:0}}.banner-retry{text-decoration:underline;font-size:12px!important}.mis-override-label{justify-content:flex-end;align-items:center;gap:4px;font-size:12px;font-weight:400;display:flex}button.uploads-list-item{text-align:left;width:100%;font:inherit;color:inherit;display:block}.btn-primary:disabled{opacity:.6;cursor:default}.cf-loading .link-btn{margin-left:8px}.mis-section-label td{text-align:left!important}.zoho-steps-copy{color:var(--text-secondary);max-width:760px;margin:0 0 12px;font-size:13px;line-height:1.6}.zoho-steps{color:var(--text-secondary);max-width:900px;margin:0;padding-left:20px;font-size:13px;line-height:1.8}.zoho-steps a{color:var(--accent)}.zoho-steps code,.zoho-uri{font-family:var(--font-data);background:var(--bg-subtle-2);color:var(--accent);word-break:break-all;border-radius:3px;padding:1px 6px;font-size:12px}.zoho-connected{color:var(--text-secondary);font-size:13px;line-height:1.6}.zoho-panel .btn-primary{margin-bottom:4px}.kpi-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.kpi-strip .hero-stat{padding:14px 16px}.kpi-strip .hero-stat-value{font-size:20px}.kpi-sub{font-family:var(--font-data);color:var(--text-faint);margin-top:6px;font-size:10.5px}.source-tag{font-family:var(--font-data);color:var(--text-faint);border:1px solid var(--border);vertical-align:middle;white-space:nowrap;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px}.ageing-bar{background:var(--bg-subtle);border-radius:5px;height:10px;margin:6px 0 10px;display:flex;overflow:hidden}.ageing-bar>div{height:100%}.ageing-legend{font-family:var(--font-data);color:var(--text-muted);flex-wrap:wrap;gap:14px;font-size:11px;display:flex}.ageing-legend span.dot{border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}.health-badge,.invoice-state{font-family:var(--font-data);white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11px}.health-healthy,.invoice-paid{color:var(--positive);background:rgba(var(--positive-rgb), .12)}.health-watch,.invoice-open,.invoice-part-paid{color:var(--warning);background:rgba(var(--warning-rgb), .12)}.health-risk,.invoice-overdue{color:var(--negative);background:rgba(var(--negative-rgb), .12)}.health-churned{color:var(--text-muted);background:rgba(var(--negative-rgb), .08);text-decoration:line-through}.health-inactive,.invoice-credited{color:var(--text-muted);background:rgba(var(--muted-rgb), .1)}.customer-search{font-family:var(--font-text);background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;width:200px;padding:5px 9px;font-size:12.5px}.customer-search:focus{border-color:var(--accent);outline:none}.matrix-names{min-width:180px;max-width:320px;color:var(--text-muted)!important;white-space:normal!important;font-size:11.5px!important}.customer-drilldown{box-sizing:border-box;width:min(1260px,100vw - 150px);padding:14px 4px;position:sticky;left:0}.customer-drilldown .drilldown-table th,.customer-drilldown .drilldown-table td{text-align:left}.customer-drilldown .drilldown-table .drilldown-amt-col{text-align:right}.customer-drilldown .drilldown-panel-title{text-align:left}.customer-drill-head{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:12.5px;display:flex}.customer-drill-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:14px;display:grid}.customer-drilldown,.customer-drilldown .hero-stat{text-align:left}.customer-drilldown .drilldown-table{width:100%}.customer-drilldown .drilldown-panel-title{margin-top:12px}@media (width<=860px){.customer-drill-split{grid-template-columns:1fr}.customer-search{width:100%}}.customer-drilldown .matrix-footnote,.customer-drill-head{white-space:normal}.drillable{cursor:pointer}.drillable:hover{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;background:rgba(var(--accent-rgb), .1)!important}.drillable-block{cursor:pointer}.drillable-block:hover .hero-stat,.drillable-block:hover.cat-row,.drillable-block.hero-stat:hover{border-color:var(--accent)}.drill-overlay{z-index:50;background:#0000008c;justify-content:flex-end;display:flex;position:fixed;inset:0}.drill-panel{background:var(--bg-panel);border-left:1px solid var(--border);box-sizing:border-box;width:min(980px,100vw);height:100%;padding:20px 22px 40px;overflow-y:auto}.drill-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.drill-title{font-family:var(--font-display);font-size:19px}.drill-shown{font-family:var(--font-data);color:var(--accent);margin-top:4px;font-size:15px}.drill-actions{align-items:center;gap:12px;display:flex}.drill-formula{color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px;margin-bottom:10px;padding:10px 12px;font-size:12.5px;line-height:1.55}.drill-check{font-family:var(--font-data);color:var(--text-muted);margin-bottom:10px;font-size:12px}.drill-check.ok{color:var(--positive)}.drill-check.off{color:var(--negative)}.drill-table-wrap{overflow-x:auto}.drill-table{width:100%}.drill-table th,.drill-table td{text-align:left;white-space:nowrap}.drill-table td:nth-child(2),.drill-table td:nth-child(3){white-space:normal}.drill-table .drilldown-amt-col{text-align:right}.drill-table tfoot td{border-top:1px solid var(--border-strong);font-weight:600}.drill-hint{font-family:var(--font-data);color:var(--text-faint);font-size:10.5px}.cf-logo{box-shadow:0 0 0 1px var(--border);background:#fff;border-radius:8px;align-items:center;padding:6px 10px;display:flex}.cf-logo img{width:auto;height:26px;display:block}.login-logo{box-shadow:0 0 0 1px var(--border);background:#fff;border-radius:10px;margin:0 auto 18px;padding:12px 18px;display:inline-flex}.login-logo img{width:auto;height:44px;display:block}.cf-menu-wrap{position:relative}.cf-menu{z-index:40;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:8px;min-width:260px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #00000059}.cf-menu button{text-align:left;width:100%;color:var(--text-primary);font:13px var(--font-text);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:space-between;align-items:center;padding:9px 10px;display:flex}.cf-menu button:hover{background:var(--bg-subtle)}.cf-menu-key{font-family:var(--font-data);color:var(--text-faint);font-size:10.5px}.cf-menu-sep{background:var(--border);height:1px;margin:6px 4px}.cf-menu-who{font-family:var(--font-data);color:var(--text-faint);padding:4px 10px 6px;font-size:11px}.console-who{color:var(--text-muted);margin-bottom:6px;font-size:13px}.console-form,.console-add{flex-direction:column;gap:8px;max-width:420px;display:flex}.console-form input,.console-add input,.console-inline,.console-select{font:13px var(--font-text);background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:5px;padding:7px 9px}.console-inline{width:170px;margin-right:6px}.console-email{color:var(--text-faint);white-space:normal;margin-top:2px;font-size:11px}.console-actions{white-space:nowrap}.console-actions .link-btn{margin-left:10px}.statement-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.statement-chip{cursor:pointer;font:inherit;font-size:12px}.statement-chip.active{border-color:var(--accent);background:rgba(var(--accent-rgb), .12)}.statement-table{width:100%}.statement-table th,.statement-table td{text-align:left;vertical-align:top}.statement-table .drilldown-amt-col{text-align:right;white-space:nowrap}.statement-table .drilldown-narration{white-space:normal;word-break:break-word;max-width:460px}.statement-review td{background:rgba(var(--accent-rgb), .05)}.statement-select{max-width:210px;padding:4px 6px!important;font-size:12px!important}.statement-editor{flex-wrap:wrap;align-items:center;gap:12px;padding:8px 2px;font-size:12.5px;display:flex}.statement-editor label{align-items:center;gap:6px;display:flex}.source-learned{color:var(--accent);background:rgba(var(--accent-rgb), .14)}.customer-code{font-family:var(--font-data);white-space:nowrap;color:var(--text-muted);font-size:11.5px}.cf-root{--radius:10px;--radius-sm:6px;--fs-meta:11px;--fs-small:12px;--fs-body:13px;--control-h:32px;font-family:var(--font-text);font-size:var(--fs-body)}.panel-title,.cf-brand-name,.drawer-title,.login-title,.empty-state-title,.uploads-selected-filename,.drill-title{font-family:var(--font-display);letter-spacing:0;font-weight:500}.panel-title{font-size:15px}.hero-number,.hero-stat-value{font-family:var(--font-display);font-variant-numeric:tabular-nums}.month-pill,.btn-upload,.btn-primary,.btn-ghost,.link-btn,.theme-toggle,.cf-menu button,.drilldown-month-btn,.trend-chip,.statement-chip{font-family:var(--font-text)}.month-pill,.btn-upload,.btn-primary,.btn-ghost{font-size:var(--fs-small);min-height:var(--control-h);border-radius:var(--radius);align-items:center;gap:6px;padding:6px 12px;line-height:1.2;display:inline-flex}.btn-primary,.month-pill.active{font-weight:600}.theme-toggle{width:var(--control-h);height:var(--control-h);border-radius:var(--radius)}.link-btn{font-size:var(--fs-small);color:var(--text-muted);text-underline-offset:2px}.link-btn:hover{color:var(--accent)}.cf-user-badge{font-family:var(--font-text);font-size:var(--fs-small)}.cf-header-right{gap:12px}.cf-month-switch{gap:6px}.cf-root input:not([type=checkbox]):not([type=radio]):not([type=file]),.cf-root select,.cf-root textarea{font-family:var(--font-text);font-size:var(--fs-body);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);min-height:var(--control-h);outline:none;padding:6px 10px}.cf-root input:disabled,.cf-root select:disabled,.cf-root textarea:disabled{opacity:.6}.login-form input{min-height:42px;font-size:14px}.cf-root .mis-input{font-family:var(--font-data);font-size:var(--fs-small);text-align:right;width:84px;min-height:26px;padding:2px 6px}.cf-root .statement-select{min-height:28px;padding:3px 6px;font-size:var(--fs-small)!important}.cf-root input[type=checkbox]{accent-color:var(--accent)}.upload-banner,.login-error,.loading-text{font-family:var(--font-text)}.upload-banner{font-size:var(--fs-body);border-radius:var(--radius)}.matrix-table,.summary-table,.drilldown-table{border-collapse:collapse;width:100%;font-family:var(--font-data);font-variant-numeric:tabular-nums;font-size:12.5px}.matrix-table th,.summary-table th,.drilldown-table th{font-family:var(--font-text);font-size:var(--fs-meta);letter-spacing:.02em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 10px;font-weight:600}.matrix-table td,.summary-table td,.drilldown-table td{border-bottom:1px solid var(--bg-subtle);padding:7px 10px}.summary-table td.matrix-row-label,.matrix-table td.matrix-row-label,.matrix-table th.matrix-row-label,.summary-table th.matrix-row-label{font-family:var(--font-text);color:var(--text-secondary);font-size:12.5px}.summary-row-balance td,.summary-row-balance .summary-cell{font-size:13px}.drilldown-table td{font-family:var(--font-text);font-size:12.5px}.drilldown-table td.drilldown-amt-col,.drilldown-table td.drilldown-date,.drilldown-table .drilldown-amt-col{font-family:var(--font-data)}.drilldown-table th.drilldown-amt-col{text-align:right}.customer-code,.console-email{font-family:var(--font-data)}.console-email{font-family:var(--font-text)}.hero-label,.hero-stat-label,.drilldown-panel-title,.kpi-sub,.cf-brand-sub,.drill-hint,.cf-menu-who,.cf-menu-key{font-family:var(--font-data)}.hero-stat-label,.hero-label{font-size:var(--fs-meta);letter-spacing:.02em}.drilldown-panel-title{font-size:var(--fs-meta);text-transform:none}.matrix-footnote,.panel-title-hint,.drill-formula{font-family:var(--font-text)}.drill-hint{color:var(--text-faint);margin:-10px 0 12px;font-size:10.5px}.subs-status,.health-badge,.invoice-state,.trend-badge{font-family:var(--font-data);font-size:var(--fs-meta);border-radius:var(--radius-sm);padding:2px 7px;line-height:1.5;display:inline-block}.panel,.hero-block.main,.hero-stat{border-radius:var(--radius)}.kpi-strip .hero-stat,.hero-stat{padding:14px 16px}.hero-block.main{padding:18px 20px}.drawer-overlay{z-index:50;background:#00000080;position:fixed;inset:0}.drawer{z-index:51;width:min(var(--drawer-w,560px), 100vw);background:var(--bg-panel);border-left:1px solid var(--border-strong);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-18px 0 48px #00000059}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.drawer-title{font-size:18px;line-height:1.3}.drawer-sub{font-family:var(--font-text);font-size:var(--fs-small);color:var(--text-muted);margin-top:3px}.drawer-figure{font-family:var(--font-data);color:var(--accent);margin-top:4px;font-size:15px}.drawer-actions{white-space:nowrap;align-items:center;gap:12px;display:flex}.drawer-close{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;display:flex}.drawer-close:hover{border-color:var(--accent);color:var(--accent)}.drawer-body{flex-direction:column;flex:1;gap:12px;padding:16px 20px 28px;display:flex;overflow-y:auto}.drawer-foot{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 20px 16px;display:flex}@media (width<=640px){.drawer{width:100vw}.drawer-head,.drawer-body,.drawer-foot{padding-left:16px;padding-right:16px}}.drill-panel{width:min(980px,100vw);padding:0}.drill-overlay{background:#00000080}.summary-table td{text-align:right}.summary-table td.matrix-row-label{text-align:left;min-width:190px}.summary-cell{padding:7px 10px;font-size:12.5px;font-weight:500}.summary-row-net td,.summary-row-net .summary-cell{font-weight:600}.summary-row-balance .summary-cell{font-size:12.5px}.summary-table td.matrix-row-label{color:var(--text-secondary);padding:7px 10px;font-size:12.5px}.summary-row-net td.matrix-row-label{color:var(--text-primary)}.cf-logo img,.login-logo img{object-fit:contain}.cf-topbar{border-bottom:1px solid var(--border);align-items:center;gap:16px;min-height:44px;margin:-8px 0 0;padding-bottom:0;display:flex}.cf-topbar .cf-brand{flex-shrink:0;align-self:center;gap:8px;padding-bottom:6px}.cf-topbar .cf-logo img{display:block}.cf-topbar .cf-brand-sub{font-size:var(--fs-meta);white-space:nowrap;margin:0}.cf-tabs{scrollbar-width:none;flex:1;align-self:stretch;gap:2px;min-width:0;display:flex;overflow-x:auto}.cf-tabs::-webkit-scrollbar{display:none}.cf-tab{color:var(--text-muted);font-family:var(--font-text);font-size:var(--fs-body);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 10px 9px;font-weight:500}.cf-tab:hover{color:var(--text-primary)}.cf-tab.active{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.cf-subtabs{scrollbar-width:none;gap:4px;margin-bottom:2px;padding:8px 0 2px;display:flex;overflow-x:auto}.cf-subtabs::-webkit-scrollbar{display:none}.cf-subtab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:12.5px}.cf-subtab:hover{color:var(--text-primary);border-color:var(--border)}.cf-subtab.active{color:var(--text-primary);border-color:var(--accent);background:rgba(var(--accent-rgb), .1);font-weight:600}.cf-topbar .cf-user-badge{flex-shrink:0;gap:6px;padding-bottom:6px}.cf-topbar .btn-upload{min-height:30px;padding:4px 10px}.kbd{font-family:var(--font-data);color:var(--text-faint);border:1px solid var(--border);border-radius:3px;margin-left:2px;padding:0 4px;font-size:10px}.avatar-btn{gap:6px;padding-left:4px!important}.avatar{background:var(--bg-elevated);border:1px solid var(--accent);width:22px;height:22px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:inline-flex}.period-bar{border-bottom:1px solid var(--border);font-size:var(--fs-small);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:8px 0;display:flex}.period-label{color:var(--text-faint);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.seg{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.seg-btn{border:none;border-right:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-family:var(--font-text);font-size:var(--fs-small);white-space:nowrap;background:0 0;height:28px;padding:4px 10px}.seg-btn:last-child{border-right:none}.seg-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.seg-btn.active{background:var(--bg-elevated);color:var(--accent);font-weight:600}.period-range{align-items:center;gap:4px;display:inline-flex}.period-select{background:var(--bg);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-text);font-size:var(--fs-small);cursor:pointer;height:28px;padding:0 6px}.period-select:focus{border-color:var(--accent);outline:none}.period-dash,.period-meta{color:var(--text-faint)}.period-spacer{flex:1}@media (width<=900px){.cf-topbar{flex-wrap:wrap}.cf-tabs{flex-basis:100%;order:3}.period-spacer{display:none}}.cf-topbar .cf-logo{border-radius:6px;padding:3px 8px}.cf-topbar .cf-logo img{height:20px}.chart-hint{font-family:var(--font-text);font-size:var(--fs-meta);color:var(--text-faint);margin-left:8px;font-weight:400}.chart-pair{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:24px;display:grid}.recharts-bar-rectangle{cursor:pointer}.view-switch{margin-bottom:14px}.segment-cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.segment-card{text-align:left;background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;color:var(--text-primary);font-family:var(--font-text);border-radius:8px;padding:14px 16px}.segment-card:hover,.segment-card.active{border-color:var(--accent)}.segment-card-name{font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.segment-card-value{font-family:var(--font-display);margin:4px 0 6px;font-size:22px}.segment-card-value span{font-family:var(--font-text);font-size:var(--fs-small);color:var(--text-muted)}.segment-card-meta{font-size:var(--fs-small);color:var(--text-muted);line-height:1.6}.sheet-tools{align-items:center;gap:12px;display:flex}.sheet-filters{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 12px;display:flex}.sheet-check{font-size:var(--fs-small);color:var(--text-muted);align-items:center;gap:6px;display:inline-flex}.sheet-table td{vertical-align:top}.sheet-name{font-weight:500}.sheet-sub{font-size:var(--fs-meta);color:var(--text-faint);font-family:var(--font-text);margin-top:2px}.sheet-sub.neg{color:var(--negative)}.sheet-sub.pos{color:var(--positive)}.sheet-terms{text-align:right;width:64px!important}.row-saving{opacity:.55}@media (width<=800px){.segment-cards{grid-template-columns:1fr}}.cf-hero.kpi-row-6{grid-template-columns:repeat(5,minmax(0,1fr))}@media (width<=1000px){.cf-hero.kpi-row-6{grid-template-columns:repeat(2,minmax(0,1fr))}}.payout-detail{background:var(--bg-elevated);padding:14px 18px!important}.budget-editor{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.budget-amount{align-items:center;gap:4px;display:inline-flex}.sheet-dept{width:170px!important}.status-left{color:var(--negative)!important}.row-muted{opacity:.5}.mono-small{font-family:var(--font-data);font-size:var(--fs-meta)}.cell-over{font-weight:600}.deal-link{color:var(--text-primary);border-bottom:1px dotted var(--border-strong,var(--border));text-decoration:none}.deal-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.stage-tag{font-size:var(--fs-meta);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:10px;padding:2px 8px}.stage-tag.stage-open{color:var(--accent);border-color:var(--border-gold-muted,var(--accent))}.stage-tag.stage-won{color:var(--positive);border-color:var(--positive)}.stage-tag.stage-lost,.stage-tag.stage-disqualified{color:var(--negative);border-color:var(--negative)}.matrix-cell.warn{color:var(--accent)}.cat-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.sales-head{padding-bottom:14px}.chart-pair>.panel{margin-bottom:0}.sync-box{text-align:right;flex-direction:column;align-items:flex-end;gap:4px;max-width:360px;display:flex}.drillable-row:hover td{background:var(--surface-hover,#7f7f7f14)}.mrr-sheet td.matrix-row-label,.mrr-sheet th.matrix-row-label{z-index:1;background:var(--bg-panel);white-space:normal;max-width:240px;position:sticky;left:0}.mrr-sheet td{padding:4px}.mrr-sheet input.console-inline{padding:4px 6px}.fold-controls{justify-content:flex-end;gap:14px;margin:-6px 0 8px;font-size:12px;display:flex}.fold-head{cursor:pointer;-webkit-user-select:none;user-select:none;padding-left:18px;position:relative}.fold-head:before{content:"▾";color:var(--text-muted);font-size:11px;transition:transform .15s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.panel-title-row.fold-head:before{top:50%}section.panel[data-fold=closed]>.fold-head:before{transform:translateY(-50%)rotate(-90deg)}section.panel[data-fold=closed]>:not(.fold-head){display:none!important}section.panel[data-fold=closed]>.fold-head{margin-bottom:0}section.panel[data-fold=closed]{padding-top:14px;padding-bottom:14px}section.panel[data-fold=closed]>.fold-head:after{content:"click to open";font-family:var(--font-text,Inter, sans-serif);color:var(--text-faint,var(--text-muted));margin-left:10px;font-size:11px}.fold-head:hover{color:var(--accent)}.fold-head:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}tr.fold-row{cursor:pointer;-webkit-user-select:none;user-select:none}tr.fold-row>td:before{content:"▾ ";color:var(--text-muted);font-size:10px;transition:transform .15s;display:inline-block}tr.fold-row[data-fold=closed]>td:before{transform:rotate(-90deg)}tr.fold-row[data-fold=closed]>td:after{content:"  · click to open";text-transform:none;letter-spacing:0;color:var(--text-faint,var(--text-muted));font-size:10.5px}tr.fold-row:hover>td{color:var(--accent)}tr[data-folded="1"]{display:none}.matrix-scroll,.drill-table-wrap,.table-freeze{max-height:75vh;overflow:auto}.matrix-scroll>table>thead th,.drill-table-wrap>table>thead th,.table-freeze>table>thead th{z-index:2;background:var(--bg-panel);box-shadow:inset 0 -1px 0 var(--border);position:sticky;top:0}.mrr-sheet thead th.matrix-row-label{z-index:3}.golive-sheet{table-layout:fixed;min-width:1330px}.golive-sheet td{vertical-align:middle}.golive-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.golive-input{box-sizing:border-box;width:100%;height:28px}.golive-input.num{text-align:right}.golive-auto{color:var(--text-muted)}.mrr-sheet{table-layout:fixed}.mrr-sheet td,.mrr-sheet th{vertical-align:top;overflow:hidden}.mrr-sheet td.matrix-cell input.console-inline{box-sizing:border-box;font-variant-numeric:tabular-nums;width:100%;height:26px}.mrr-sheet td.matrix-cell select.console-inline{box-sizing:border-box;height:26px}.mrr-sheet .cell-sub{height:14px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;line-height:14px;overflow:hidden}.mrr-sheet tr.mrr-split-row td,.mrr-sheet tr.mrr-expected-row td{color:var(--text-muted)}.lifecycle{border:1px solid var(--border);white-space:nowrap;border-radius:10px;padding:1px 7px;font-size:11px;display:inline-block}.lifecycle-onboarding,.lifecycle-hypercare{color:var(--negative);border-color:color-mix(in srgb, var(--negative) 40%, transparent)}.lifecycle-scale{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.lifecycle-stable{color:var(--positive);border-color:color-mix(in srgb, var(--positive) 40%, transparent)}.load-bar{background:var(--bg-subtle);border-radius:2px;min-width:60px;height:4px;margin-top:3px}.load-bar span{background:var(--accent);border-radius:2px;height:100%;display:block}.cash-actions{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;display:grid}.cash-week{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;min-width:0;padding:10px 12px}.cash-week-head{margin-bottom:6px;font-size:13px}.cash-week ul{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.cash-act{color:var(--text-secondary);overflow-wrap:anywhere;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.4;display:flex}.cash-act-icon{text-align:center;flex:0 0 18px}.cash-act-chase,.cash-act-alert{color:var(--negative)}.cash-act-collect{color:var(--positive)}.cash-act-raise{color:var(--collected)}.cash-act-payroll,.cash-act-gst{color:var(--text-primary)}.cash-act-people{color:var(--accent)}@media (width<=600px){.cash-actions{grid-template-columns:1fr}}.finifi-source{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;margin-bottom:10px;padding:8px 12px}.finifi-source summary{cursor:pointer;font-size:13px}.compact-table td,.compact-table th{padding:4px 8px}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px;font-size:13px;display:flex}.filter-bar label{color:var(--text-muted);align-items:center;gap:6px;display:flex}.matrix-table th{white-space:normal;vertical-align:bottom;line-height:1.25}.matrix-table th:not(.matrix-row-label){min-width:56px;max-width:128px}.matrix-table td,.matrix-table th{padding:6px 8px}.matrix-table th.matrix-row-label,.matrix-table td.matrix-row-label{min-width:150px}.am-sheet td .sheet-sub{white-space:nowrap}.infra-badge{margin-left:auto;margin-right:10px;position:relative}.infra-pill{border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;display:inline-flex}.infra-dot{border-radius:50%;flex:0 0 8px;width:8px;height:8px;margin-top:4px;display:inline-block}.infra-pill .infra-dot{margin-top:0}.infra-pop{z-index:50;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:340px;max-width:calc(100vw - 32px);padding:10px 12px;font-size:12.5px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.infra-pop-title{margin-bottom:6px;font-weight:600}.infra-row{gap:8px;margin-bottom:6px;display:flex}@media (width<=700px){.infra-pill{padding:3px 8px;font-size:10.5px}}.matrix-table td.matrix-row-label{white-space:normal;max-width:280px}.matrix-table td.matrix-row-label .sheet-sub{white-space:normal}.mrr-sheet td.matrix-row-label{max-width:none}.mrr-sheet td.matrix-cell .console-inline{box-sizing:border-box;width:100%;height:26px;margin-right:0;padding:3px 6px;font-size:12px}.mrr-sheet td.matrix-cell select.console-inline{text-overflow:ellipsis;padding:3px 2px 3px 6px}.mrr-sheet .sheet-pair{gap:4px;display:flex}.mrr-sheet .sheet-pair>select:first-child{flex:auto;min-width:0}.mrr-sheet .sheet-pair>select+select{flex:0 0 82px}.mrr-sheet .sheet-line{white-space:nowrap;text-overflow:ellipsis;height:26px;line-height:26px;overflow:hidden}.mrr-sheet tr.mrr-row>td{box-sizing:border-box;height:50px}.mrr-sheet tr.mrr-row>td.matrix-row-label .cell-sub{margin-top:2px}.mrr-sheet .cell-sub{font-family:var(--font-text);letter-spacing:-.1px;text-align:right}.mrr-sheet td.matrix-row-label .cell-sub,.mrr-sheet td:nth-child(2) .cell-sub,.mrr-sheet td:nth-child(3) .cell-sub{text-align:left}.cfs-table td.matrix-row-label{z-index:1;background:var(--bg-panel);min-width:230px;position:sticky;left:0}.cfs-table tr.cfs-total td{border-top:1px solid var(--border);font-weight:600}.cfs-table tr.cfs-cash td{background:color-mix(in srgb, var(--accent) 6%, var(--bg-panel));font-weight:600}.cfs-table .cfs-split{border-left:2px solid var(--accent)}@media (width<=720px){#root{padding:0 10px calc(16px + env(safe-area-inset-bottom))}.cf-root{font-size:13px}.cf-topbar{z-index:30;padding:calc(8px + env(safe-area-inset-top)) 10px 0;background:var(--bg);grid-template-columns:auto 1fr;grid-template-areas:"brand actions""tabs tabs";align-items:center;gap:6px 8px;margin:0 -10px;display:grid;position:sticky;top:0}.cf-topbar .cf-brand{grid-area:brand;padding-bottom:0}.cf-topbar .cf-brand-sub,.cf-topbar .infra-pill,.kbd{display:none}.cf-topbar .cf-user-badge{grid-area:actions;justify-self:end;gap:6px;padding-bottom:0}.cf-topbar .btn-upload{min-height:34px;padding:4px 9px;font-size:12.5px}.cf-tabs{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;grid-area:tabs;margin:0 -10px;padding:0 6px}.cf-tab{white-space:nowrap;scroll-snap-align:start;flex-shrink:0;padding:10px 10px 9px;font-size:13.5px}.period-bar{gap:8px;margin-bottom:10px;padding:8px 0}.period-bar .period-label,.period-spacer{display:none}.period-bar .seg{scrollbar-width:none;max-width:100%;overflow-x:auto}.period-bar .seg::-webkit-scrollbar{display:none}.period-meta{flex-basis:100%;order:3;font-size:11.5px}.period-select{min-height:34px}.seg{scrollbar-width:none;max-width:100%;display:flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg-btn{flex-shrink:0;height:34px;padding:4px 12px}.filter-bar{gap:8px}.filter-bar .seg-btn{flex-shrink:0}.cf-root select,.cf-root input:not([type=checkbox]):not([type=radio]){max-width:100%}.sheet-check{white-space:normal;flex-wrap:wrap}.cf-hero,.cf-hero.kpi-row-6,.kpi-strip{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))!important}.hero-block.main{grid-column:1/-1}.hero-stat,.kpi-strip .hero-stat{min-width:0;padding:10px 12px}.hero-stat-label{margin-bottom:4px;font-size:10.5px}.hero-stat-value,.kpi-strip .hero-stat-value{overflow-wrap:anywhere;font-size:18px}.hero-number{font-size:30px}.kpi-sub,.hero-stat .kpi-sub{overflow-wrap:anywhere;font-size:10.5px}.panel{padding:12px;overflow-x:auto}.panel-full{margin-bottom:12px}.panel-title{font-size:15px;line-height:1.3}.chart-hint,.panel-title-hint{margin:2px 0 0;font-size:11px;display:block}.panel-title-row{flex-wrap:wrap;gap:8px}.cf-grid,.chart-pair,.uploads-layout,.customer-drill-split,.segment-cards,.cash-actions{grid-template-columns:minmax(0,1fr)!important}.recharts-responsive-container{max-width:100%}.matrix-scroll,.drill-table-wrap,.table-freeze{-webkit-overflow-scrolling:touch;max-height:none}.matrix-table,.summary-table,.drilldown-table{font-size:11.5px}.matrix-table td,.matrix-table th{padding:6px 7px}.matrix-table th.matrix-row-label,.matrix-table td.matrix-row-label{z-index:1;background:var(--bg-panel);min-width:128px;max-width:170px;position:sticky;left:0}.matrix-table thead th.matrix-row-label{z-index:3}.matrix-footnote{font-size:11px}.drawer{max-width:100vw;width:100vw!important}.cf-menu{max-width:calc(100vw - 20px);right:0}.upload-banner{font-size:12px}}.period-toggle{display:none}@media (width<=720px){.period-toggle{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:36px;color:var(--text-primary);font-family:var(--font-text);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:500;display:flex}.period-toggle-caret{color:var(--text-muted)}.period-bar:not(.period-open)>:not(.period-toggle){display:none!important}.period-bar{border-bottom:none}}.board-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:6px;display:grid}.board-tile{text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%}.board-tile:hover{border-color:var(--accent)}.board-group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:14px 0 8px;font-size:11px}.board-alerts{flex-wrap:wrap;gap:8px;margin:4px 0 6px;display:flex}.board-alert{font:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:8px;padding:6px 10px;font-size:12.5px}.board-alert-red{color:var(--negative);border:1px solid rgba(var(--negative-rgb), .35);background:rgba(var(--negative-rgb), .08)}.board-alert-amber{color:var(--warning);border:1px solid rgba(var(--warning-rgb), .35);background:rgba(var(--warning-rgb), .08)}@media (width<=1000px){.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.board-grid{gap:8px}.board-alert{width:100%}}#root{max-width:1480px}.cf-root{font-family:var(--font-text);-webkit-font-smoothing:antialiased;border-radius:0;padding:18px 26px 26px}.cf-root .hero-number,.cf-root .hero-stat-value,.cf-root .matrix-table,.cf-root .summary-table,.cf-root .drilldown-table{font-variant-numeric:tabular-nums}.cf-root .cf-topbar{border-bottom:1px solid var(--border);background:var(--bg-panel);min-height:56px;margin:-18px -26px 0;padding:6px 26px 0}.cf-root.theme-light .cf-logo{background:0 0;padding:0}.cf-root .cf-brand-sub{color:var(--text-faint);letter-spacing:.04em;font-size:11px;font-weight:600}.cf-root .cf-tab{color:var(--text-muted);border-bottom-width:2.5px;padding:14px 12px 13px;font-size:13.5px;font-weight:600}.cf-root .cf-tab:hover{color:var(--accent)}.cf-root .cf-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.cf-root .cf-subtabs{gap:6px;padding:12px 0 4px}.cf-root .cf-subtab{color:var(--text-secondary);border:1px solid #0000;padding:6px 14px;font-size:13px;font-weight:600}.cf-root .cf-subtab:hover{color:var(--accent);background:rgba(var(--accent-rgb), .06);border-color:#0000}.cf-root .cf-subtab.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.cf-root .seg{background:0 0;border:none;flex-wrap:wrap;gap:4px;overflow:visible}.cf-root .seg-btn{background:var(--bg-panel);color:var(--text-secondary);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;border:1px solid var(--border)!important}.cf-root .seg-btn:hover{color:var(--accent);background:rgba(var(--accent-rgb), .06)}.cf-root .seg-btn.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)!important}.cf-root .period-bar{border-bottom:1px solid var(--border);gap:10px;padding:10px 0}.cf-root .period-label{color:var(--accent);letter-spacing:.06em;font-size:11px;font-weight:700}.cf-root .period-meta{color:var(--text-muted)}.cf-root .btn-primary{background:var(--primary);color:var(--primary-ink);border:1px solid var(--primary);box-shadow:none;border-radius:8px;font-weight:700}.cf-root .btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.cf-root .btn-upload{border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text-primary);border-radius:999px;font-weight:600}.cf-root .btn-upload:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.cf-root .link-btn{color:var(--accent)}.cf-root .theme-toggle{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px}.cf-root .avatar{color:#fff;background:#1fae8c}.cf-root .panel{background:var(--bg-panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px}.cf-root .panel-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.005em;font-size:15px;font-weight:700}.cf-root .chart-hint,.cf-root .panel-title-hint{color:var(--text-faint);font-weight:500}.cf-root .hero-stat{background:var(--bg-panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:16px 18px}.cf-root .hero-stat-label{font-family:var(--font-text);color:var(--text-secondary);letter-spacing:0;text-transform:none;margin-bottom:10px;font-size:13px;font-weight:600}.cf-root .hero-stat-value{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text-primary);font-size:25px;font-weight:700}.cf-root .hero-stat-value.pos{color:var(--positive)}.cf-root .hero-stat-value.neg{color:var(--negative)}.cf-root .kpi-sub{font-family:var(--font-text);color:var(--text-muted);margin-top:8px;font-size:11.5px;line-height:1.45}.cf-root .board-tile:hover{border-color:var(--accent);box-shadow:0 2px 10px rgba(var(--accent-rgb), .1)}.cf-root .board-group-label{color:var(--accent);font-weight:700}.cf-root .matrix-table,.cf-root .summary-table,.cf-root .drilldown-table{font-family:var(--font-text);font-size:12.5px}.cf-root .matrix-table th,.cf-root .summary-table th,.cf-root .drilldown-table th{color:var(--text-primary);letter-spacing:0;background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:9px 10px;font-size:12px;font-weight:700}.cf-root .matrix-table td,.cf-root .summary-table td,.cf-root .drilldown-table td{border-bottom:1px solid var(--border);padding:8px 10px}.cf-root .matrix-table tbody tr:hover td{background:rgba(var(--accent-rgb), .03)}.cf-root .mis-section-label td{letter-spacing:.06em;font-size:11px;font-weight:700;color:var(--accent)!important;background:var(--bg-elevated)!important}.cf-root .matrix-total-row td{font-weight:700}.cf-root .matrix-cell.pos,.cf-root .pos{color:var(--positive)}.cf-root .matrix-cell.neg,.cf-root .neg{color:var(--negative)}.cf-root .drillable{cursor:pointer}.cf-root .drillable:hover{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.cf-root .matrix-footnote{color:var(--text-muted);line-height:1.55}.cf-root .health-badge,.cf-root .subs-status,.cf-root .invoice-state,.cf-root .trend-badge,.cf-root .lifecycle,.cf-root .source-tag{font-family:var(--font-text);border-radius:999px;padding:2px 9px;font-weight:600}.cf-root input:not([type=checkbox]):not([type=radio]):not([type=file]),.cf-root select,.cf-root textarea{border-color:var(--border);border-radius:8px}.cf-root input:focus,.cf-root select:focus,.cf-root textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .12)}.cf-root .cf-menu{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;box-shadow:0 12px 32px #10283c24}.cf-root .drawer{border-left:1px solid var(--border);box-shadow:-12px 0 40px #10283c24}.cf-root .drawer-title{font-weight:700}.cf-root .drawer-figure{color:var(--accent);font-weight:700}.cf-root.theme-light .drawer-overlay,.cf-root.theme-light .drill-overlay{background:#14233259}.sync-menu{min-width:330px;padding:6px!important}.sync-row{border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.sync-row+.sync-row{border-top:1px solid var(--border)}.sync-name{color:var(--text-primary);font-size:13px;font-weight:700}.sync-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px;line-height:1.4}.sync-menu .btn-primary{white-space:nowrap;min-height:30px;padding:4px 12px}.sync-spin{animation:1s linear infinite sync-spin;display:inline-block}@keyframes sync-spin{to{transform:rotate(360deg)}}.cf-root.cf-login{background:var(--bg-panel);min-height:100vh;padding:0}#root:has(.cf-login){max-width:none;padding:0}.login-split{grid-template-columns:1.15fr 1fr;min-height:100vh;display:grid}.login-hero{color:#eaf2f7;background:radial-gradient(1200px 700px at 85% 40%,#1fae8c33,#0000 60%),radial-gradient(900px 600px at 10% 100%,#2fb7d929,#0000 60%),linear-gradient(160deg,#0f3b4f 0%,#0b2533 55%,#0a1d2a 100%);flex-direction:column;justify-content:space-between;padding:44px 56px;display:flex;position:relative;overflow:hidden}.login-hero-brand{letter-spacing:-.02em;color:#fff;align-items:center;gap:8px;font-size:34px;font-weight:700;display:flex}.login-chip{letter-spacing:.22em;color:#d8e6ee;background:#ffffff0a;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:10px;padding:9px 18px;font-size:12px;font-weight:700;display:inline-flex}.login-chip-dot{background:#3dd68c;border-radius:50%;width:7px;height:7px}.login-hero-title{letter-spacing:-.035em;color:#fff;margin:26px 0 18px;font-size:clamp(36px,4.4vw,60px);font-weight:800;line-height:1.05}.login-hero-accent,.login-hero-dot{color:#3dd68c}.login-hero-copy{color:#b9ccd7;max-width:520px;margin:0;font-size:17px;line-height:1.6}.login-hero-foot{color:#8fa9b8;font-size:13px}.login-side{background:linear-gradient(#fbfcfe 0%,#f3f8f6 100%);justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-card{text-align:left;width:min(420px,100%)}.login-kicker{letter-spacing:.28em;color:#5b6b78;margin-bottom:12px;font-size:12px;font-weight:700}.cf-root .login-title{font-family:var(--font-display);letter-spacing:-.03em;color:#0f2230;margin-bottom:26px;font-size:32px;font-weight:800;line-height:1.15}.login-form{flex-direction:column;gap:16px;display:flex}.login-field{color:#3b4b58;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;display:flex}.cf-root.cf-login .login-form input:not([type=checkbox]){color:#0f2230;background:#eaf1fb;border:1px solid #d8e4f2;border-radius:12px;min-height:50px;padding:10px 16px;font-size:15px}.cf-root .login-submit{color:#fff;background:linear-gradient(90deg,#0f4c6e 0%,#1f8fb8 60%,#22b3d6 100%);border:none;border-radius:12px;justify-content:center;min-height:50px;margin-top:10px;font-size:15px;box-shadow:0 10px 24px #1f8fb840}.cf-root .login-submit:hover:not(:disabled){filter:brightness(1.06);background:linear-gradient(90deg,#0f4c6e 0%,#1f8fb8 60%,#22b3d6 100%)}.login-note{color:#7a8995;text-align:center;margin-top:18px;font-size:12.5px}.cf-root .login-error{color:#d64545;text-align:center;margin-top:14px}@media (width<=860px){.login-split{grid-template-columns:1fr}.login-hero{min-height:auto;padding:28px 22px}.login-hero-title{margin:18px 0 10px;font-size:34px}.login-hero-copy{font-size:15px}.login-hero-foot{display:none}.login-side{align-items:flex-start;padding:28px 18px 40px}}@media (width<=720px){.cf-root{padding:12px 14px 20px}.cf-root .cf-topbar{margin:-12px -14px 0;padding:4px 14px 0}}.cf-root select.vendor-fn{height:22px;min-height:22px;color:var(--accent);background-color:rgba(var(--accent-rgb), .06);border-color:rgba(var(--accent-rgb), .25);vertical-align:middle;border-radius:999px;margin-left:8px;padding:0 22px 0 8px;font-size:11px;font-weight:600}
