@font-face{font-family:Golos Text;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/c105b29dc4e1ee2d-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Golos Text;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/ffe0837c71e69159-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Golos Text;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/b07dd69d3f271780-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Golos Text;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/401f9db361b6e189-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Golos Text Fallback;src:local("Arial");ascent-override:90.27%;descent-override:20.26%;line-gap-override:0.00%;size-adjust:108.57%}.__className_f96d93{font-family:Golos Text,Golos Text Fallback;font-style:normal}.__variable_f96d93{--font-ui:"Golos Text","Golos Text Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_d39526{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_d39526{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#f6f5f1;--panel:#ffffff;--panel-2:#fbfaf7;--line:#e5e2da;--line-soft:#f1efe9;--border:var(--line);--text:#17191e;--text-2:#48505a;--muted:#5c6470;--faint:#9096a0;--primary:#0e5e63;--primary-ink:#ffffff;--primary-soft:#e7f0f0;--primary-line:#c9dad9;--sidebar:#181b21;--sidebar-text:#bfc4cc;--sidebar-strong:#f2f0eb;--sidebar-dim:#71777f;--sidebar-hover:#262a32;--gain:#0b6e4f;--gain-soft:#e2f2ea;--gain-line:#c7e4d5;--loss:#a32c22;--loss-ink:#8a2c22;--loss-soft:#fbe9e6;--loss-line:#e8cfcb;--warn:#9a6206;--warn-ink:#7a5a1e;--warn-soft:#fbf3e3;--warn-line:#efe3ce;--deduct:#c1694f;--deduct-ink:#9a4130;--info:#24417a;--info-soft:#e4eaf3;--purple:#5b3c8a;--purple-soft:#ede6f5;--neutral:#a8b0b8;--green:var(--gain-soft);--yellow:var(--warn-soft);--red:var(--loss-soft);--gray:#f1efe9;--button-radius:10px;--panel-radius:14px;--rail:244px;--rail-collapsed:76px;--tap:44px;--shadow-sm:0 1px 2px rgba(23,25,30,0.06);--shadow:0 6px 20px rgba(23,25,30,0.05);--shadow-lg:0 18px 44px rgba(23,25,30,0.16);--ui:var(--font-ui),system-ui,-apple-system,"Segoe UI",sans-serif;--mono:var(--font-mono),ui-monospace,"Cascadia Mono",Consolas,monospace}html[data-theme=dark]{--bg:#14161a;--panel:#1b1e24;--panel-2:#212530;--line:#2e333c;--line-soft:#262a32;--text:#f1efe9;--text-2:#c3c8d0;--muted:#969ca6;--faint:#767c86;--primary-soft:#143034;--primary-line:#1d454a;--gain:#4fbf90;--gain-soft:#10281f;--gain-line:#1c4636;--loss:#e8877a;--loss-ink:#e8877a;--loss-soft:#2e1815;--loss-line:#4a2a25;--warn:#e0b25f;--warn-ink:#e0b25f;--warn-soft:#2b2115;--warn-line:#473827;--deduct:#d98a6e;--deduct-ink:#e0a189;--info:#9db4e0;--info-soft:#17203a;--purple:#b79ae0;--purple-soft:#221b33;--gray:#262a32;--shadow-sm:0 1px 2px rgba(0,0,0,0.32);--shadow:0 6px 20px rgba(0,0,0,0.28);--shadow-lg:0 18px 44px rgba(0,0,0,0.5)}html[data-compact=true]{--panel-radius:11px}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--ui);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}body.body-scroll-locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}svg{flex-shrink:0}.card-value,.code,.expense-kpi-value,.money,.n,.nf-result b,.num,.planned-occurrence-amount,.secret-box{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}.app-shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s ease}.app-shell.nav-collapsed{grid-template-columns:var(--rail-collapsed) minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;background:var(--sidebar);color:var(--sidebar-text);padding:20px 14px;display:flex;flex-direction:column;gap:16px}.sidebar-head{padding-left:6px;min-height:36px}.logo,.sidebar-head{display:flex;align-items:center;gap:10px}.logo{min-width:0;flex-grow:1;font-size:15px;font-weight:700;line-height:1.2;color:var(--sidebar-strong)}.logo-mark{background:var(--primary);color:var(--primary-ink);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800}.logo-img,.logo-mark{width:34px;height:34px;flex-shrink:0;border-radius:9px}.logo-img{object-fit:contain;background:#ffffff}.logo-lines{min-width:0;overflow:hidden}.logo-lines b{font-size:15px;font-weight:700}.logo-lines b,.logo-lines span{display:block;white-space:nowrap}.logo-lines span{font-size:11px;font-weight:500;color:var(--sidebar-dim)}.rail-toggle{width:30px;height:30px;flex-shrink:0;border:0;border-radius:8px;background:var(--sidebar-hover);color:var(--sidebar-text);display:flex;align-items:center;justify-content:center;cursor:pointer}.rail-toggle:hover{color:var(--sidebar-strong)}.nav{display:flex;flex-direction:column;gap:3px}.nav-group{padding:12px 10px 4px;font-size:10px;font-weight:700;letter-spacing:.09em;color:var(--sidebar-dim);white-space:nowrap}.nav-group:first-child{padding-top:4px}.nav a,.nav button{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--tap);padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--sidebar-text);font-size:13.5px;font-weight:500;text-align:left;cursor:pointer}.nav a:hover,.nav button:hover{background:var(--sidebar-hover);color:var(--sidebar-strong);text-decoration:none}.nav a.active{background:var(--primary);color:var(--primary-ink);font-weight:600}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot{margin-top:auto;padding-top:8px}.nav-collapsed .sidebar{padding:20px 12px;align-items:center}.nav-collapsed .sidebar-head{flex-direction:column;gap:8px;padding-left:0}.nav-collapsed .logo-lines,.nav-collapsed .nav-group,.nav-collapsed .nav-label{display:none}.nav-collapsed .nav{width:100%;align-items:center}.nav-collapsed .nav a,.nav-collapsed .nav button{width:var(--tap);padding:0;justify-content:center}.main{min-width:0;padding:26px 30px 40px}.auth-loading{min-height:100vh;display:grid;place-items:center;color:var(--muted);background:var(--bg)}.mobile-nav,.mobile-sheet,.mobile-sheet-backdrop,.mobile-topbar{display:none}h1,h2,h3{margin:0;letter-spacing:-.02em}h1{font-size:28px}h1,h2{font-weight:700}h2{font-size:16px}h3{font-size:14px;font-weight:700}.page-title{align-items:center;gap:16px;margin-bottom:18px}.page-title,.section-head{display:flex;justify-content:space-between}.section-head{align-items:baseline;gap:12px;margin-bottom:12px}.card-title{color:var(--muted);font-size:12px;font-weight:600;margin-bottom:7px}.card-value{font-size:24px;font-weight:700;letter-spacing:-.02em}.muted{color:var(--muted)}.muted-amount{color:var(--muted)!important;font-weight:600}.faint{color:var(--faint)}.danger-text,.negative-money{color:var(--loss-ink)}.positive-money{color:var(--gain)}.form-hint,.help-list{color:var(--muted);font-size:12.5px;line-height:1.5}.help-list{margin:8px 0 0;padding-left:18px}.code{font-size:12px;background:var(--gray);border-radius:6px;padding:2px 6px}.secret-box{word-break:break-all;border:1px dashed var(--line);border-radius:var(--button-radius);padding:10px 12px;background:var(--panel-2);font-size:12px}.copy-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--panel-radius);padding:18px 20px;box-shadow:var(--shadow)}.panel.subtle{background:var(--panel-2);box-shadow:none}.grid{display:grid;grid-gap:14px;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.cash-flow-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:stretch}.report-columns{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);grid-gap:14px;gap:14px}.actions,.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.summary-row{margin-top:16px;display:flex;justify-content:flex-end;gap:16px;flex-wrap:wrap}.mini-row{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line)}.error,.success{padding:11px 14px;border-radius:var(--button-radius);font-size:13.5px;font-weight:500;margin-bottom:14px}.error{background:var(--loss-soft);border:1px solid var(--loss-line);color:var(--loss-ink)}.success{background:var(--gain-soft);border:1px solid var(--gain-line);color:var(--gain)}.security-reminder{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border:1px solid var(--warn-line);background:var(--warn-soft);color:var(--warn-ink);border-radius:var(--panel-radius);margin-bottom:16px}.login-page{position:fixed;inset:0;z-index:100;min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-card{width:min(420px,100%)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--panel)}table{width:100%;border-collapse:collapse}td,th{padding:11px 14px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line-soft)}th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--panel-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;white-space:nowrap;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--primary-soft)}.selected-row td{background:var(--warn-soft)!important}.sales-matrix{width:auto;min-width:100%}.sales-matrix td:first-child,.sales-matrix th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:1px 0 var(--line)}.sales-matrix thead th:first-child{z-index:3}.sales-matrix tbody tr.matrix-row:nth-child(2n) td:first-child{background:var(--panel-2)}html[data-compact=true] td,html[data-compact=true] th{padding:7px 10px}.form{display:grid;grid-gap:13px;gap:13px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.form-section{border:1px solid var(--line);border-radius:var(--panel-radius);padding:14px;background:var(--panel-2)}label{display:grid;grid-gap:6px;gap:6px;color:var(--text-2);font-size:12.5px;font-weight:600}input,select,textarea{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--button-radius);padding:10px 12px;background:var(--panel);color:var(--text);font-size:13.5px;font-weight:400}input:hover,select:hover,textarea:hover{border-color:var(--neutral)}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px var(--primary-soft)}input[inputmode=decimal],input[type=number]{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}input[type=checkbox],input[type=radio]{min-height:0;width:17px;height:17px;accent-color:var(--primary)}textarea{min-height:82px;resize:vertical}.table-wrap input,.table-wrap select,.table-wrap textarea{min-width:130px}.table-wrap textarea{min-height:64px}.filter-bar,.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));grid-gap:12px;gap:12px;align-items:end;margin-bottom:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 16px;border:1px solid transparent;border-radius:var(--button-radius);background:var(--primary);color:var(--primary-ink);font-size:13.5px;font-weight:600;cursor:pointer;transition:filter .16s ease,background-color .16s ease,border-color .16s ease}.btn:hover{filter:brightness(.93);text-decoration:none}.btn:active{filter:brightness(.86)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn.secondary{background:var(--panel);border-color:var(--line);color:var(--text)}.btn.secondary:hover{background:var(--panel-2);border-color:var(--neutral);filter:none}.btn.danger{background:var(--panel);border-color:var(--loss-line);color:var(--loss-ink)}.btn.danger:hover{background:var(--loss-soft);filter:none}.link-btn,.link-button{border:0;background:transparent;padding:0;font-weight:600;cursor:pointer;color:var(--primary)}.link-btn{color:var(--loss-ink)}.link-btn:hover,.link-button:hover{text-decoration:underline}.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line)}.tab{min-height:var(--tap);padding:0 15px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:13.5px;font-weight:500;cursor:pointer;margin-bottom:-1px}.tab.active,.tab:hover{color:var(--text)}.tab.active{font-weight:700;border-bottom-color:var(--primary)}.reference-tabs{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--bg);padding-top:4px}.month-chip-grid,.quick-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip,.month-chip{min-height:34px;padding:0 12px;border:1px solid var(--line);background:var(--panel);border-radius:999px;font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer}.chip:hover,.month-chip:hover{border-color:var(--primary);color:var(--primary)}.chip.active,.month-chip.active{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:700}.chip.tone-loss{border-color:var(--loss-line);background:var(--loss-soft);color:var(--loss-ink)}.chip.tone-loss.active{background:var(--loss);border-color:var(--loss);color:#fff}.estimate-status-filter{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.estimate-status-filter label{gap:6px;font-size:13px}.badge,.estimate-status-filter label{display:inline-flex;align-items:center;color:var(--text-2)}.badge{gap:5px;border-radius:999px;padding:4px 10px;background:var(--gray);font-size:11.5px;font-weight:700;white-space:nowrap}.badge.green,.finance-row.green td{background:var(--gain-soft);color:var(--gain)}.badge.yellow,.finance-row.yellow td{background:var(--warn-soft);color:var(--warn-ink)}.badge.red,.finance-row.red td{background:var(--loss-soft);color:var(--loss-ink)}.badge.purple,.finance-row.purple td{background:var(--purple-soft);color:var(--purple)}.badge.gray,.finance-row.gray td{background:var(--gray);color:var(--text-2)}.payment-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;white-space:nowrap}.payment-status.paid{background:var(--gain-soft);color:var(--gain)}.payment-status.partially-paid{background:var(--warn-soft);color:var(--warn-ink)}.payment-status.unpaid{background:var(--gray);color:var(--text-2)}.payment-status.overdue{background:var(--loss-soft);color:var(--loss-ink)}.payment-status.overpaid{background:var(--purple-soft);color:var(--purple)}.efficiency-dot,.payment-dot{display:inline-block;width:9px;height:9px;border-radius:999px;vertical-align:middle}.efficiency-dot.green,.payment-dot.paid{background:var(--gain)}.payment-dot.unpaid{background:transparent;border:1.5px solid var(--neutral)}.payment-dot.partial{background:var(--warn)}.payment-dot.overdue{background:var(--loss)}.cell-status{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:10.5px;color:var(--text-2)}.cell-status.overdue{color:var(--loss-ink);font-weight:600}.cell.empty{cursor:default;border-left:1px dashed var(--line);border:1px dashed var(--line);background:transparent;color:var(--faint);font-size:12px}.efficiency-dot{margin-left:8px}.efficiency-dot.yellow{background:var(--warn)}.efficiency-dot.red{background:var(--loss)}.sync-icon{margin-left:6px;font-size:13px;color:var(--muted)}.cell{cursor:pointer;border-radius:9px;padding:8px 10px;min-width:118px;border:1px solid rgba(23,25,30,.05);border-left:3px solid transparent;box-shadow:0 1px 2px rgba(23,25,30,.04)}.cell.green{background:var(--green);border-left-color:var(--gain)}.cell.yellow{background:var(--yellow);border-left-color:var(--warn)}.cell.red{background:var(--red);border-left-color:var(--loss)}.cell.gray{background:var(--gray);border-left-color:var(--neutral)}.cell:hover{filter:brightness(.97);box-shadow:0 2px 6px rgba(23,25,30,.1)}.sales-matrix tbody tr.matrix-row:nth-child(2n){background:var(--panel-2)}.dash-hero{display:flex;gap:28px;flex-wrap:wrap}.dash-hero-summary{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:16px;border-right:1px solid var(--line-soft);padding-right:24px}.dash-hero-chart{flex-grow:1;min-width:320px}.dash-waterfall-desktop{display:flex;flex-direction:column;gap:12px}.dash-waterfall-mobile{display:none}.dash-waterfall-row{display:flex;align-items:center;gap:10px}.dash-waterfall-row-label{width:92px;flex-shrink:0;font-size:11.5px;color:var(--muted)}.dash-waterfall-row-track{flex-grow:1;background:var(--line-soft);overflow:hidden}.dash-waterfall-row-fill,.dash-waterfall-row-track{height:8px;border-radius:999px;display:block}.dash-waterfall-row-value{width:84px;flex-shrink:0;text-align:right;font-size:11.5px;font-weight:700}.dash-lower-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);grid-gap:14px;gap:14px;align-items:stretch}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-gap:14px;gap:14px}.project-header-actions{display:flex;gap:9px;flex-wrap:wrap;flex-shrink:0}.hint{position:relative;display:inline-block;vertical-align:middle;margin-left:4px}.hint-trigger{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;min-height:0;padding:0;border:0;border-radius:999px;background:var(--line-soft);color:var(--muted);font-size:9.5px;font-weight:700;font-style:italic;font-family:Georgia,serif;cursor:pointer;line-height:1}.hint-trigger:hover,.hint-trigger[aria-expanded=true]{background:var(--primary-soft);color:var(--primary)}.hint-bubble{position:absolute;bottom:calc(100% + 7px);left:0;width:max-content;max-width:min(280px,85vw);padding:10px 12px;background:var(--text);color:var(--bg);font-size:11.5px;font-weight:500;font-style:normal;line-height:1.4;border-radius:8px;box-shadow:var(--shadow-lg);z-index:5;text-transform:none;white-space:normal;letter-spacing:normal}.hint-bubble-fixed{position:fixed;bottom:auto;transform:translateY(-100%);z-index:50}.project-months-mobile{padding:0 18px 16px;display:flex;flex-direction:column;gap:8px}.mobile-matrix-only{display:none}.mobile-month-picker{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 12px}.mobile-month-picker .chip{flex-shrink:0}.trend{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;line-height:1}.trend-up{color:var(--gain);background:var(--gain-soft)}.trend-flat{color:var(--warn-ink);background:var(--warn-soft)}.trend-down{color:var(--loss-ink);background:var(--loss-soft)}.metric-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.drawer-backdrop{position:fixed;inset:0;z-index:26;background:rgba(17,19,24,.3);animation:drawerFadeIn .18s ease-out}.component-backdrop,.drawer-backdrop.stacked{z-index:30;background:rgba(17,19,24,.38)}.drawer{position:fixed;top:0;right:0;z-index:26;width:min(720px,96vw);height:100vh;height:100dvh;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:22px 24px;background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);animation:drawerSlideIn .22s ease-out}.component-drawer,.drawer.stacked{z-index:40}.drawer .panel{box-shadow:none}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.drawer.wide,.wide-drawer{width:min(1180px,92vw);max-width:92vw}.expense-detail-drawer{width:min(1180px,88vw);max-width:88vw}.payment-drawer{width:min(620px,96vw)}.component-drawer,.service-drawer-90{width:min(1500px,90vw);max-width:96vw}.component-drawer{top:18px;height:calc(100vh - 36px);border-radius:18px 0 0 18px}.drawer-title-actions{position:fixed;right:24px;z-index:1004;display:flex;align-items:center;gap:10px}.service-title-actions{top:32px}.component-title-actions{top:46px}.component-drawer>.page-title>.actions,.service-drawer-90>.page-title>.actions{visibility:hidden}@keyframes drawerSlideIn{0%{transform:translateX(28px);opacity:.7}to{transform:translateX(0);opacity:1}}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.app-shell,.btn,.drawer,.drawer-backdrop{animation:none;transition:none}}.calendar-chart-wrap,.chart-scroll{overflow-x:auto;padding:8px 0}.line-chart{min-width:760px;width:100%;height:auto;color:var(--primary);background:var(--panel);border:1px solid var(--line);border-radius:var(--panel-radius)}.line-chart text{font-size:11px;fill:var(--muted)}.line-chart circle{fill:currentColor}.line-chart polyline{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-grid,.chart-grid-line{stroke:var(--line);stroke-width:1}.chart-grid{stroke-dasharray:3 5}.chart-zero-line{stroke:var(--text);stroke-width:1.5;opacity:.5}.chart-data-label,.chart-legend{font-size:10px!important;font-weight:600;fill:var(--muted)}.calendar-chart-panel{padding:18px 20px}.calendar-chart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.calendar-chart-header h2{margin:0 0 4px}.calendar-chart-header p{margin:0;color:var(--muted);font-size:12.5px}.calendar-chart-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:16px 0 10px;color:var(--muted);font-size:11.5px;font-weight:600}.calendar-chart-legend span{display:inline-flex;align-items:center;gap:7px}.chart-swatch{width:11px;height:11px;border-radius:3px;display:inline-block}.chart-line-swatch{width:18px;height:3px;border-radius:999px;background:var(--text);display:inline-block}.chart-bar.income,.chart-swatch.income{fill:var(--gain);background:var(--gain)}.chart-bar.expenses,.chart-swatch.expenses{fill:var(--deduct);background:var(--deduct)}.chart-bar.remaining,.chart-swatch.remaining{fill:var(--warn);background:var(--warn)}.financial-calendar-chart{min-width:900px;width:100%;height:auto}.financial-calendar-chart text{fill:var(--muted);font-size:11px}.chart-bar{opacity:.88}.chart-bar:hover{opacity:1}.chart-balance-line{fill:none;stroke:var(--text);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-balance-point{fill:var(--text);stroke:var(--panel);stroke-width:2}.sales-summary-row td{font-weight:700;border-top:1px solid var(--line)}.sales-plan-row td,.sales-total-row td{background:var(--panel-2)}.sales-plan-row td{color:var(--muted)}.sales-paid-row td{background:var(--gain-soft)}.sales-margin-row td{background:var(--warn-soft)}.sales-estimates-row td{background:var(--panel)!important;color:var(--muted)}.sales-estimates-row b{color:var(--muted)}.sales-efficiency-row td:first-child,.sales-execution-row td:first-child{background:var(--panel)}.sales-dynamic-cell.efficiency-low,.sales-dynamic-cell.plan-execution-low{background:var(--loss-soft);color:var(--loss-ink)}.sales-dynamic-cell.efficiency-mid,.sales-dynamic-cell.plan-execution-mid{background:var(--warn-soft);color:var(--warn-ink)}.sales-dynamic-cell.efficiency-good,.sales-dynamic-cell.plan-execution-high{background:var(--gain-soft);color:var(--gain)}.sales-dynamic-cell.efficiency-neutral{background:var(--panel)}.summary-separator td{height:10px;background:transparent!important;border:0}td.month-past,th.month-past{opacity:.62}th.current-month-soft,th.month-current{background:var(--primary-soft)!important}td.current-month-soft,td.month-current{background:var(--bg)!important}td.current-month-soft,td.month-current,th.current-month-soft,th.month-current{box-shadow:inset 3px 0 var(--primary),inset -3px 0 var(--primary)}td.current-month-soft,th.current-month-soft{box-shadow:inset 0 0 0 1px var(--primary-line)}td.current-month-soft.remaining-due-soft,td.remaining-due-soft{background:var(--loss-soft)!important}.expense-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));grid-gap:12px;gap:12px;margin:12px 0 16px}.expense-kpi{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;padding:11px 15px;border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--panel)}.expense-kpi-label{color:var(--muted);font-size:12.5px;line-height:1.25}.expense-kpi-value{white-space:nowrap;font-weight:700;text-align:right}.expense-kpi.income .expense-kpi-value{color:var(--gain)}.expense-kpi.danger .expense-kpi-value,.expense-kpi.expenses .expense-kpi-value{color:var(--loss-ink)}.expense-kpi.remaining .expense-kpi-value{color:var(--warn-ink)}.calendar-total-row td{border-top:2px solid var(--line);background:var(--panel-2);font-weight:600}.calendar-balance-row td{border-top:2px solid var(--neutral);background:var(--primary-soft);font-size:15px;font-weight:700}.planned-series-list{display:grid;grid-gap:14px;gap:14px}.planned-series-card{border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--panel);overflow:hidden}.planned-series-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid var(--line);background:var(--panel-2)}.planned-series-header p{margin:5px 0 0;color:var(--muted);font-size:12.5px}.planned-series-title{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.planned-series-title h3{margin:0;font-size:16px}.planned-occurrence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));grid-gap:12px;gap:12px;padding:14px}.planned-occurrence{display:grid;grid-gap:10px;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.planned-occurrence.paid{border-color:var(--gain-line);background:var(--gain-soft)}.planned-occurrence-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:600;font-size:13px}.planned-occurrence-amount{font-size:21px;font-weight:700;letter-spacing:-.02em}.planned-occurrence dl{display:grid;grid-gap:6px;gap:6px;margin:0}.planned-occurrence dl div{display:flex;align-items:center;justify-content:space-between;gap:12px}.planned-occurrence dt{color:var(--muted);font-size:12px}.planned-occurrence dd{margin:0;font-size:13px;font-weight:600;text-align:right}.planned-occurrence-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto}.planned-occurrence-actions .btn{flex:1 1 120px;padding:0 10px}.planned-empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--panel-radius)}.nf-calculator{max-width:920px}.nf-actions{display:flex;align-items:center;gap:10px;margin:14px 0 22px}.nf-result{display:flex;flex-direction:column;justify-content:center;min-height:76px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--panel-2)}.nf-result b{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--primary)}.nf-formula-box{margin-top:0}.proposal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.proposal-summary>div{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--panel)}.proposal-summary span{display:block;color:var(--muted);font-size:12px}.proposal-summary b{display:block;margin-top:4px;font-size:16px}.service-reference-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);align-items:start}@media (max-width:1200px){.expense-kpi-row{grid-template-columns:repeat(2,minmax(190px,1fr))}}@media (max-width:1100px){.service-reference-layout{grid-template-columns:minmax(0,1fr)}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}.cash-flow-columns,.report-columns{grid-template-columns:minmax(0,1fr)}}@media (max-width:900px){.filter-bar,.filters-grid,.form-row,.grid-2,.grid-3,.grid-4,.grid-5,.proposal-summary{grid-template-columns:minmax(0,1fr)}.component-drawer,.drawer,.drawer.wide,.expense-detail-drawer,.service-drawer-90,.wide-drawer{width:100vw;max-width:100vw}.component-drawer{top:0;height:100vh;border-radius:0}.calendar-chart-header,.planned-series-header,.security-reminder{flex-direction:column;align-items:stretch}}@media (max-width:860px){.app-shell,.app-shell.nav-collapsed{display:block}.drawer-title-actions{display:none}.component-drawer>.page-title>.actions,.service-drawer-90>.page-title>.actions{visibility:visible}.sidebar{display:none}.mobile-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--line)}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line)}.mobile-nav a,.mobile-nav button{flex-grow:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-size:10.5px;font-weight:500;cursor:pointer}.mobile-nav a.active{color:var(--primary);font-weight:700;text-decoration:none}.mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:30;background:rgba(17,19,24,.35)}.mobile-sheet{display:flex;flex-direction:column;gap:4px;position:fixed;left:0;right:0;bottom:0;z-index:31;max-height:78vh;overflow:auto;padding:10px 12px calc(18px + env(safe-area-inset-bottom));background:var(--panel);border-radius:18px 18px 0 0;box-shadow:var(--shadow-lg)}.mobile-sheet a,.mobile-sheet button{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font-size:14px;font-weight:500;text-align:left;cursor:pointer}.mobile-sheet a.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.mobile-sheet-handle{width:40px;height:4px;border-radius:999px;background:var(--line);margin:2px auto 8px}.main{padding:14px 16px calc(74px + env(safe-area-inset-bottom))}.page-title{align-items:flex-start;flex-direction:column;gap:10px}h1{font-size:22px}.panel{padding:14px 16px}.card-value{font-size:20px}.actions{width:100%}.actions .btn,.actions a.btn{flex:1 1 auto}.tabs{flex-wrap:nowrap;overflow-x:auto}.tab{white-space:nowrap;flex:0 0 auto}.dash-hero-summary{width:100%;border-right:0;padding-right:0;border-bottom:1px solid var(--line-soft);padding-bottom:16px}.dash-hero-chart{min-width:0;width:100%}.dash-waterfall-desktop{display:none}.dash-waterfall-mobile{display:flex;flex-direction:column;gap:10px}.dash-lower-grid,.project-detail-grid{grid-template-columns:minmax(0,1fr)}.project-header-actions{width:100%}.project-header-actions .btn{flex:1 1 auto}.desktop-matrix-only{display:none}.mobile-matrix-only{display:block}.mobile-matrix-only.mobile-stack{display:flex}.table-wrap.stack-on-mobile tbody,.table-wrap.stack-on-mobile td,.table-wrap.stack-on-mobile th,.table-wrap.stack-on-mobile thead,.table-wrap.stack-on-mobile tr{display:block;width:auto}.table-wrap.stack-on-mobile table{display:block;width:100%;min-width:0;table-layout:fixed}.table-wrap.stack-on-mobile{overflow:visible}.table-wrap.stack-on-mobile thead{display:none}.table-wrap.stack-on-mobile tr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}.table-wrap.stack-on-mobile td{border:none;padding:6px 0;white-space:normal;text-align:left}.table-wrap.stack-on-mobile td[data-label]:before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:3px}input,select,textarea{width:100%;font-size:16px}table{min-width:680px}td,th{padding:9px 11px}.expense-kpi-row{grid-template-columns:minmax(0,1fr)}.expense-kpi{align-items:flex-start;flex-direction:column;gap:4px}.expense-kpi-value{text-align:left}.planned-occurrence-grid{grid-template-columns:minmax(0,1fr);padding:10px}.nf-actions{flex-direction:column;align-items:stretch}.summary-row{justify-content:flex-start}}@media (max-width:420px){.main{padding:12px 12px calc(74px + env(safe-area-inset-bottom))}.panel{padding:12px 13px}}@media print{.actions,.mobile-nav,.mobile-topbar,.sidebar,.tabs{display:none!important}.app-shell{display:block}.main{padding:0}.panel,.table-wrap{box-shadow:none;border-color:#cccccc;page-break-inside:avoid;break-inside:avoid}}.exp-top{justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.exp-month-nav,.exp-top{display:flex;align-items:center}.exp-month-nav{gap:10px}.exp-month-nav h2{margin:0;min-width:170px;text-align:center}.exp-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:14px}.exp-card{background:var(--panel-2);border-radius:10px;padding:12px 14px;min-width:0}.exp-card-label{font-size:12px;color:var(--muted);font-weight:600}.exp-card-value{font-size:22px;font-weight:700;margin-top:4px}.exp-card-sub{font-size:11.5px;color:var(--muted);margin-top:2px}.exp-filters{display:flex;gap:10px;margin-bottom:12px}.exp-filters input{flex:1 1;min-width:0}.exp-group{border:1px solid var(--line);border-radius:var(--panel-radius);margin-bottom:10px;overflow:hidden;background:var(--panel)}.exp-group-head,.exp-sub-head{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 14px;background:transparent;border:0;border-radius:0;cursor:pointer;text-align:left;min-height:0;color:inherit;font:inherit;box-shadow:none}.exp-group-head{background:var(--panel-2)}.exp-group-title{font-weight:700;font-size:14px}.exp-group-note{display:block;font-weight:400;font-size:11.5px;color:var(--muted);margin-top:1px}.exp-sub{border-top:1px solid var(--line-soft)}.exp-sub-head .exp-group-title{font-weight:600;font-size:13.5px}.exp-group-meta{font-size:12px;color:var(--muted);white-space:nowrap}.exp-group-sum{font-weight:700;font-size:14px;min-width:100px;text-align:right;white-space:nowrap}.exp-row{grid-template-columns:minmax(0,1fr) 230px;border-top:1px solid var(--line-soft)}.exp-row,.exp-row-main{display:grid;align-items:center}.exp-row-main{grid-template-columns:52px minmax(0,1fr) 110px;grid-gap:10px;gap:10px;padding:9px 14px;background:transparent;border:0;border-radius:0;text-align:left;cursor:pointer;color:inherit;font:inherit;min-height:0;box-shadow:none}.exp-row-main:hover{background:var(--panel-2)}.exp-date{font-family:var(--mono);font-size:12.5px;color:var(--muted)}.exp-name{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.exp-title{font-size:13.5px;overflow-wrap:anywhere}.exp-badge{font-size:10.5px;padding:1px 6px}.exp-amount{text-align:right;font-weight:600;font-size:13.5px;white-space:nowrap}.exp-action{padding-right:14px;text-align:right}.exp-pay{padding:5px 10px;font-size:12px;min-height:0}.exp-done{font-size:12px;color:var(--gain)}.exp-over{background:var(--loss-soft)}.exp-over .exp-amount{color:var(--loss-ink)}.exp-over-text{color:var(--loss-ink);font-weight:600;line-height:1.3}.exp-over-text,.exp-partial{font-size:12px;text-align:right}.exp-paid .exp-amount,.exp-paid .exp-title,.exp-partial{color:var(--muted)}.exp-details{grid-column:1/-1;padding:4px 14px 12px 76px}.exp-details-grid{display:grid;grid-template-columns:repeat(4,auto);grid-gap:4px 14px;gap:4px 14px;font-size:12.5px;justify-content:start}@media (max-width:760px){.exp-top{flex-direction:column;align-items:stretch}.exp-month-nav{justify-content:space-between}.exp-month-nav h2{min-width:0;font-size:17px}.exp-cards{grid-template-columns:1fr;gap:8px}.exp-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;grid-gap:0 10px;gap:0 10px;padding:8px 12px}.exp-card-value{font-size:17px;margin-top:0;text-align:right}.exp-card-sub{font-size:11px;grid-column:1/-1}.exp-filters .btn{white-space:nowrap;padding-left:12px;padding-right:12px}.exp-group-head,.exp-sub-head{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:11px 12px}.exp-group-meta{grid-column:1;grid-row:2}.exp-group-sum{grid-column:2;grid-row:1/span 2;min-width:0}.exp-row{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto}.exp-row-main{grid-column:1/-1;grid-row:1/span 2;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name amount" "date date";gap:4px 10px;padding:10px 12px;min-height:64px;align-content:start}.exp-name{grid-area:name}.exp-amount{grid-area:amount}.exp-date{grid-area:date}.exp-action{grid-column:2;grid-row:2;align-self:end;padding:0 12px 8px;position:relative;z-index:1}.exp-details{grid-row:3;padding:4px 12px 12px}.exp-details-grid{grid-template-columns:auto 1fr}}.bell,.bell-btn{position:relative}.bell-btn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;border-radius:var(--button-radius);text-align:left}.bell-btn:hover{background:rgba(255,255,255,.08)}.bell-compact{margin-left:auto}.bell-compact .bell-btn{width:auto;padding:8px}.bell-count{position:absolute;top:2px;left:22px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--loss);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}.bell-panel{position:fixed;z-index:10000;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--panel-radius);box-shadow:0 18px 50px rgba(15,23,42,.22);overflow:hidden}.bell-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.bell-list{overflow-y:auto}.bell-item{display:grid;grid-gap:4px;gap:4px;width:100%;text-align:left;padding:10px 14px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:inherit;font:inherit;font-size:13.5px;cursor:pointer}.bell-item:hover{background:var(--panel-2)}.bell-item.unread{background:var(--primary-soft)}.bell-item.unread .bell-text{font-weight:600}.bell-time{font-size:12px;color:var(--muted)}.component-drawer .form-row>*,.component-drawer .grid>*,.service-drawer-90 .form-row>*,.service-drawer-90 .grid>*{min-width:0}.component-drawer .form-row input,.component-drawer .form-row select,.service-drawer-90 .form-row input{width:100%;min-width:0}.merge-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.merge-row select{flex:1 1 260px;min-width:0;width:100%;max-width:100%}.drawer>:is(.panel,.grid,.form)+:is(.panel,.grid),.main>:is(.panel,.grid,.table-wrap,.tabs)+:is(.panel,.grid){margin-top:16px}.form-row>*{min-width:0}.form-row input,.form-row select,.form-row textarea{width:100%;min-width:0;max-width:100%}.drawer .actions{row-gap:10px}.kp-show-grid{display:grid;grid-gap:8px;gap:8px;margin-top:8px}.check-row{display:grid!important;grid-template-columns:18px 1fr;grid-gap:10px;gap:10px;align-items:start;font-weight:400;cursor:pointer}.check-row input[type=checkbox]{width:16px!important;height:16px;margin:3px 0 0}.kp-visits{display:grid;grid-gap:6px;gap:6px;margin-top:4px}.kp-visits h3{margin:0 0 4px}.kp-visit{border:1px solid var(--line);border-radius:10px;background:var(--panel)}.kp-visit summary,.kp-visit.plain{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;font-size:13.5px}.kp-visit summary{cursor:pointer;list-style:none}.kp-visit summary::-webkit-details-marker{display:none}.kp-visit summary>span:last-child:after{content:" ▸";color:var(--muted)}.kp-visit[open] summary>span:last-child:after{content:" ▾"}.kp-visit ul{list-style:none;margin:0;padding:0 12px 10px;display:grid;grid-gap:4px;gap:4px;font-size:13px}.kp-visit li{display:grid;grid-template-columns:52px 1fr;grid-gap:8px;gap:8px}.kp-card{display:flex;flex-direction:column;gap:14px}.kp-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:14px}.kp-steps-bar{display:flex;gap:4px;flex-wrap:wrap}.kp-step{flex:1 1 110px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:6px 8px;font-size:12.5px;cursor:pointer;text-align:center}.kp-step.done{background:var(--gain-soft);border-color:var(--gain-line);color:var(--gain)}.kp-step.current{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:700}.kp-card-tabs{margin-bottom:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-shrink:0}.kp-card-tabs .tab{white-space:nowrap}.kp-tab{display:grid;grid-gap:12px;gap:12px}.kp-acc{border:1px solid var(--line);border-radius:12px;background:var(--panel)}.kp-acc>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;cursor:pointer;list-style:none}.kp-acc>summary::-webkit-details-marker{display:none}.kp-acc>summary b:before{content:"▸ ";color:var(--muted)}.kp-acc[open]>summary b:before{content:"▾ "}.kp-acc-sum{color:var(--muted);font-size:13px;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-acc-body{padding:0 16px 16px}.kp-acc-body>.panel{border:0;padding:0;box-shadow:none;background:transparent}.kp-acc-body>.panel>.page-title:first-child,.kp-acc-body>.panel>h2:first-child{display:none}.kp-vlist{display:grid;grid-gap:8px;gap:8px}.kp-vrow{border:1px solid var(--line);border-radius:12px;background:var(--panel)}.kp-vrow.rec{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.kp-vrow-main{display:flex;gap:12px;align-items:center;padding:12px 14px;flex-wrap:wrap}.kp-vrow-edit{border-top:1px dashed var(--line);padding:12px 14px 14px}.kp-star{border:0;background:transparent;font-size:22px;line-height:1;color:var(--faint);cursor:pointer;padding:0 2px}.kp-star.on{color:#e0a800}.kp-more{position:relative}.kp-more>summary{list-style:none}.kp-more>summary::-webkit-details-marker{display:none}.kp-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:5;background:var(--panel);border:1px solid var(--line);padding:8px;white-space:nowrap}.kp-more-menu,.kp-toast{border-radius:10px;box-shadow:var(--shadow-lg)}.kp-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;background:var(--text);color:#fff;padding:10px 18px;font-size:14px;max-width:min(560px,92vw)}.kp-toast.error{background:var(--loss)}@media (max-width:720px){.kp-acc-sum{display:none}.kp-vrow-main>b{margin-left:auto}}.kp-card .kp-card-tabs{position:-webkit-sticky;position:sticky;top:-22px;z-index:4;background:var(--panel);padding-top:4px}.kp-ic-preview{display:inline-flex;vertical-align:-3px;color:var(--primary)}.est-filters{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.est-search{flex:1 1 260px;max-width:420px}.est-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.est-menu{display:grid;grid-gap:6px;gap:6px}.est-review{border-color:var(--warn-line);background:var(--warn-soft);margin-bottom:16px}.est-review-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start}.est-head{display:flex;gap:16px 24px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.est-title{font-size:26px;font-weight:800;border:1px solid transparent!important;background:transparent!important;padding:2px 6px!important;margin:2px 0 2px -6px;width:100%;border-radius:8px}.est-title:focus,.est-title:hover{border-color:var(--line)!important;background:var(--panel)!important}.est-head-nums{display:flex;gap:22px}.est-head-nums>div{display:grid}.est-head-nums span{font-size:12px;color:var(--muted)}.est-head-nums b{font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.est-head-nums small{font-size:12px;color:var(--muted)}.est-fin-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.est-fin-strip>div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:grid;grid-gap:2px;gap:2px}.est-fin-strip span{font-size:12px;color:var(--muted)}.est-group{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px 12px;margin-bottom:12px}.est-group-head{display:flex;gap:10px;align-items:center;padding:2px 2px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}.est-group-name{flex:1 1;font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:13px;border:1px solid transparent!important;background:transparent!important;color:var(--primary)}.est-group-name:focus,.est-group-name:hover{border-color:var(--line)!important;background:var(--bg)!important}.est-move{display:grid;grid-gap:2px;gap:2px}.est-move button{border:1px solid var(--line);background:var(--panel);border-radius:6px;width:24px;height:20px;font-size:11px;line-height:1;cursor:pointer;color:var(--muted);padding:0}.est-move button:disabled{opacity:.3;cursor:default}.est-move button:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}.est-row{border-bottom:1px dashed var(--line);padding:8px 0}.est-row:last-of-type{border-bottom:0}.est-row.est-fin.red{box-shadow:inset 3px 0 0 var(--loss)}.est-row.est-fin.yellow{box-shadow:inset 3px 0 0 var(--warn)}.est-row-main{display:grid;grid-template-columns:28px minmax(220px,1fr) 76px 92px 92px 110px 130px 40px;grid-gap:8px;gap:8px;align-items:start}.est-work{display:grid;grid-gap:4px;gap:4px;min-width:0}.est-work-name{font-weight:600}.est-work textarea{min-height:0;font-size:12.5px;color:var(--muted);resize:vertical}.est-cell{display:grid;grid-gap:2px;gap:2px;min-width:0;font-weight:400}.est-cell>span{font-size:11px;color:var(--muted);white-space:nowrap}.est-cell input,.est-cell select{width:100%;min-width:0}.est-static{padding:8px 4px;font-size:13px}.est-total{text-align:right}.est-total b{font-size:15px;padding-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.est-more{padding:0!important;min-height:32px;margin-top:14px}.est-row-extra{margin:8px 0 4px 36px;padding:10px 12px;background:var(--bg);border-radius:10px;display:grid;grid-gap:10px;gap:10px}.est-metrics{display:flex;gap:8px 20px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.est-metrics b{color:var(--text)}.est-add-link{color:var(--primary)!important;font-weight:600;margin:6px 0 0 36px}.est-add{margin-top:8px}.est-add-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px}.est-nums{display:contents}@media (max-width:1100px){.est-row-main{grid-template-columns:28px minmax(0,1fr) 40px}.est-nums{display:grid;grid-column:2/3;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));grid-gap:8px;gap:8px}.est-total{text-align:left}.est-row-main>.est-more{grid-column:3;grid-row:1}.est-fin-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.est-head-nums{gap:14px}.est-add-link,.est-row-extra{margin-left:0}.est-review-head{flex-direction:column}}.efficiency-dot.gray{background:var(--neutral)}.est-head-nums b .badge{font-size:12px;vertical-align:3px;margin-left:4px}.est-fin-strip small{font-size:12px;color:var(--warn-ink);line-height:1.35}.est-fin-strip>div.est-warn{border-color:var(--warn-line);background:var(--warn-soft)}.est-fin-strip>div.est-eff.green{border-color:var(--gain-line);background:var(--gain-soft)}.est-fin-strip>div.est-eff.yellow{border-color:var(--warn-line);background:var(--warn-soft)}.est-fin-strip>div.est-eff.red{border-color:var(--loss-line);background:var(--loss-soft)}.est-fin-strip>div.est-eff.green b{color:var(--gain)}.est-fin-strip>div.est-eff.red b{color:var(--loss)}.kp-reset{border-color:var(--loss-line);background:var(--loss-soft);margin-bottom:12px}.pm-panel{border-color:var(--primary-line)}.pm-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pm-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 14px;gap:10px 14px;margin-top:12px}.pm-fields label{display:grid;grid-gap:4px;gap:4px;font-size:12.5px;color:var(--muted)}.pm-fields .pm-active{grid-column:1/-1;display:grid;grid-template-columns:18px 1fr;color:var(--text-2)}@media (max-width:720px){.pm-fields{grid-template-columns:1fr}}.bal-chart{position:relative}.chart-line-swatch.dashed{background:repeating-linear-gradient(90deg,var(--text) 0 5px,transparent 5px 9px);border-radius:0}.bal-tip{position:absolute;top:8px;z-index:5;pointer-events:none;width:290px;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);padding:9px 11px;font-size:12.5px;display:grid;grid-gap:3px;gap:3px}.bal-tip-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.bal-tip-row>:last-child{white-space:nowrap;flex-shrink:0;text-align:right}.bal-tip-name{min-width:0;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}.bal-tip-items{display:grid;grid-gap:2px;gap:2px}.bal-tip-items,.bal-tip-total{border-top:1px solid var(--line-soft);margin-top:3px;padding-top:4px}.wf-col{position:relative;cursor:default}.wf-val{font-size:11.5px;font-weight:700;text-align:center;white-space:nowrap;margin-bottom:3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wf-val span{font-weight:400;color:var(--muted)}.wf-tip{position:absolute;top:0;left:0;z-index:6;width:320px;max-width:calc(100vw - 32px);box-sizing:border-box;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);padding:9px 11px;font-size:12.5px;display:grid;grid-gap:2px;gap:2px}.wf-tip.right{left:auto;right:0}.wf-tip-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.wf-tip-row span:first-child{min-width:0;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}.wf-tip-row span:last-child{white-space:nowrap;flex-shrink:0}.pm-deal{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);display:grid;grid-gap:2px;gap:2px;font-size:12px}.pm-deal a{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.pm-deal-dot{width:7px;height:7px;border-radius:999px;background:var(--gain);display:inline-block}.spc{--chart-sales:#9cc3e8}.spc-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:8px;gap:8px;margin:4px 0 10px}.spc-summary>div{background:var(--panel-2,var(--bg));border:1px solid var(--line-soft);border-radius:10px;padding:8px 12px;display:grid;grid-gap:2px;gap:2px}.spc-summary>div.warn{background:var(--loss-soft);border-color:var(--loss-line)}.spc-summary span{font-size:12px;color:var(--muted)}.spc-summary b{font-size:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.spc-summary em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--muted);margin-left:4px}.spc-summary>div.warn b{color:var(--loss)}.spc-legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.spc-legend button{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--text);display:inline-flex;align-items:center;gap:6px}.spc-legend button.off{opacity:.45;text-decoration:line-through}.spc-legend i{display:inline-block;width:14px;border-radius:2px}.spc-wrap{position:relative}.kp-ai-field{display:grid;grid-gap:6px;gap:6px}.kp-ai-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--text-2)}.kp-ai-btn{padding:5px 10px!important;min-height:0!important;font-size:12.5px!important}.kp-ai-suggest{border:1px solid var(--primary-line);background:var(--primary-soft);border-radius:10px;padding:10px;display:grid;grid-gap:8px;gap:8px}.kp-ai-suggest-head{font-size:12.5px;font-weight:700;color:var(--primary)}.kp-ai-suggest textarea{background:var(--panel)}.est-head-main{flex:1 1 360px;min-width:0}@media (max-width:720px){.est-head{flex-direction:column;align-items:stretch;gap:12px}.est-head-main{flex-basis:auto}.est-title{font-size:22px}.est-head-nums{flex-wrap:wrap;gap:10px 18px}.est-head>.actions{display:grid;grid-template-columns:1fr 1fr auto}}textarea.est-title{resize:none;overflow:hidden;min-height:0;line-height:1.2;display:block;font-family:inherit}.exp-fact-cell{display:inline-grid;justify-items:end;gap:1px;font-size:12px;line-height:1.3}.exp-fact-cell>span:first-child{font-size:13.5px}.exp-fact-box{display:grid;grid-gap:10px;gap:10px;margin-bottom:16px}.exp-autoclose{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;border-top:1px solid var(--line-soft);padding-top:10px}.exp-autoclose input{width:64px!important;min-height:30px;padding:4px 6px}.exp-autoclose .btn{padding:4px 10px;min-height:30px}.est-b24-warn{font-size:12px;font-weight:600;color:var(--loss-ink);border:1px solid var(--loss-line);border-radius:6px;padding:2px 8px;justify-self:start;cursor:help}.est-b24-warn,.kp-b24-warn{background:var(--loss-soft)}.kp-b24-warn{border:1px solid var(--loss-line);border-radius:12px;padding:12px 14px;display:grid;grid-gap:6px;gap:6px;font-size:13.5px}.kp-b24-warn ul{margin:0;padding-left:18px}