@import url(https://api.fontshare.com/v2/css?f[]=general-sans@400,500,600,700&display=swap);:root{--color-page-bg:#F4FAFC;--color-surface:#FFFFFF;--color-surface-soft:#FAFBFC;--color-border:#E3ECF3;--color-border-soft:#D1DEE6;--color-text:#060F2B;--color-text-secondary:#5F657A;--color-text-muted:#8B93A3;--color-primary:#1686a7;--color-primary-hover:#0f6f8d;--color-primary-dark:#154887;--color-on-primary:#FFFFFF;--color-secondary-bg:#e7f6f9;--color-secondary-border:#c7e7ef;--color-secondary-text:#060F2B;--color-light-blue:#D1EAF2;--color-outline-bg:#FFFFFF;--color-outline-border:#E3ECF3;--color-outline-text:#060F2B;--color-focus:#41A2C2;--color-nav-bg:#FFFFFF;--color-nav-text:#5F657A;--color-nav-active-bg:#E6F3F8;--color-nav-active-text:#154887;--color-nav-active-icon:#41A2C2;--color-nav-danger-bg:#FFF3F3;--color-nav-danger-border:#FFD6D6;--color-nav-danger-text:#B43A3A;--color-table-bg:#FAFBFC;--color-table-row-bg:#FAFBFC;--color-table-row-alt-bg:#FAFBFC;--color-table-header-bg:#D1DEE6;--color-table-header-text:#060F2B;--color-table-border:#FFFFFF;--color-table-outline:transparent;--color-table-divider:transparent;--color-table-group-bg:#FAFBFC;--color-table-detail-bg:#FAFBFC;--color-success:#4E9F96;--color-success-strong:#2F8179;--color-success-soft:#C8ECDD;--color-warning:#B8752E;--color-warning-text:#A66722;--color-warning-strong:#8F5A1F;--color-warning-soft:#FDE9D2;--color-orange:#FACDA6;--color-danger:#B43A3A;--color-danger-hover:#8F2424;--color-danger-soft:#FFF3F3;--color-danger-border:#FFD6D6;--color-danger-strong:#7f1d1d;--color-chart-blue:#42A0C5;--color-chart-teal:#3699BB;--color-chart-mint:#65B6AE;--color-chart-mint-soft:#C8ECDD;--color-chart-orange:#FACDA6;--color-chart-purple:#7F86CA;--color-chart-lavender:#D0CFF0;--color-chart-track:#E3ECF3;--color-chart-axis:#D1DEE6;--color-white:#FFFFFF;--color-black:#000000;--color-transparent:transparent;--color-tooltip-bg:#060F2B;--color-disabled-bg:#E9EEF2;--color-disabled-border:#D1DEE6;--color-disabled-text:#8B93A3;--rgb-text:6,15,43;--rgb-primary:22,134,167;--rgb-primary-dark:21,72,135;--rgb-focus:65,162,194;--rgb-success:78,159,150;--rgb-chart-mint:101,182,174;--rgb-danger:180,58,58;--rgb-border:227,236,243;--rgb-border-soft:209,222,230;--rgb-surface:255,255,255;--rgb-page-bg:244,250,252;--rgb-black:0,0,0;--rgb-shadow:25,40,72;--bg:var(--color-page-bg);--panel:var(--color-surface);--ink:var(--color-text);--muted:var(--color-text-secondary);--line:var(--color-border);--line2:var(--color-table-border);--nav:var(--color-nav-bg);--blue:var(--color-primary);--blue-soft:var(--color-secondary-bg);--blue-soft-border:var(--color-secondary-border);--green:var(--color-success);--orange:var(--color-warning);--red:var(--color-danger);--violet:var(--color-chart-purple);--danger-soft:var(--color-danger-soft);--danger-border:var(--color-danger-border);--shadow:0 16px 42px rgba(var(--rgb-text), .08);--shadow-primary:0 10px 18px rgba(var(--rgb-primary), .18);--radius:22px;--font-size-table:13px;--font-size-table-header:12px;--font-size-table-cell:13px;--font-size-table-badge:13px;--font-size-table-group:13px;--font-size-table-emphasis:15px;--font-size-table-inline:13px;--font-size-table-delta:13px;--font-size-table-sort-icon:13px;--line-height-table:1.4;--line-height-table-header:1.35;--line-height-table-compact:1.25;--font-weight-table:400;--font-weight-table-header:700}*{box-sizing:border-box}body{margin:0;font-family:"General Sans",Inter,"Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,var(--color-page-bg),var(--color-nav-active-bg));color:var(--ink)}.app{display:grid;grid-template-columns:270px 1fr;min-height:100vh}aside{background:var(--color-nav-bg);color:var(--color-text);padding:24px 18px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.logo{width:42px;height:42px;display:grid;place-items:center;background:linear-gradient(135deg,var(--color-nav-active-icon),var(--color-chart-mint));font-weight:800;box-shadow:0 12px 24px rgba(var(--rgb-black),.25)}.brand h1{margin:0}.brand span{display:block;color:var(--color-text-muted);margin-top:4px}.nav a,.nav button{width:100%;border:0;background:var(--color-transparent);color:var(--color-light-blue);text-align:left;padding:12px;font-family:inherit;cursor:pointer;margin-bottom:4px;text-decoration:none;display:block}.nav a.active,.nav a:focus-visible,.nav a:hover,.nav button.active,.nav button:hover{background:rgba(var(--rgb-surface),.11);color:var(--color-white);text-decoration:none}.logoutNavForm{margin:0}.sideStatus{margin-top:26px;padding:13px;background:rgba(var(--rgb-surface),.07);border:1px solid rgba(var(--rgb-surface),.12);color:var(--color-text-muted);line-height:1.35;word-break:break-word}.sideStatus strong{color:var(--color-white)}main{padding:26px 30px 42px;overflow:hidden}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.title h2{font-size:28px;margin:0 0 4px}.title p{margin:0;color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center}button.danger,button.ghost,button.primary,button.secondary{border:0;padding:10px 14px;font-family:inherit;cursor:pointer;white-space:nowrap}button.primary{background:var(--blue);color:var(--color-white);box-shadow:0 10px 18px rgba(var(--rgb-primary),.18)}button.secondary{background:var(--color-secondary-bg);color:var(--color-text)}button.ghost{background:var(--color-white);color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger-border)}button.small{padding:6px 8px;border:1px solid var(--line);background:var(--color-white);color:var(--ink);cursor:pointer;font-family:inherit}button.small.danger{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger-border)}button.small.secondary{background:var(--color-secondary-bg);color:var(--color-text);border-color:var(--color-secondary-border)}button:disabled{opacity:.48}input[type=file]{display:none}.fieldInvalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(var(--rgb-danger),.1)}.fieldErrorMessage{margin-top:5px;color:var(--red);line-height:1.3}.fileStatus{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--color-white);padding:7px 11px;color:var(--muted)}.dot{width:9px;height:9px;border-radius:50%;background:var(--color-border-soft)}.dot.ok{background:var(--green)}.dot.warn{background:var(--orange)}.dot.bad{background:var(--red)}.grid{display:grid;gap:18px}.sectionStack{margin-top:18px}.tableStack{margin-top:14px}.formGap{height:12px}.loginBrand{color:var(--ink);margin-bottom:18px}.loginBrandSubtitle{color:var(--muted)}.cards{grid-template-columns:repeat(5,minmax(170px,1fr))}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card{padding:16px}.card .label{color:var(--muted);margin-bottom:8px}.card .value{font-weight:700;letter-spacing:-.02em}.card .sub{color:var(--muted);margin-top:6px}.kpiMain{min-height:128px}.kpiHighlightForecast{background:linear-gradient(180deg,var(--color-page-bg),var(--color-white));border-color:var(--color-secondary-border);box-shadow:0 18px 44px rgba(var(--rgb-primary),.13)}.kpiHighlightOpen{background:linear-gradient(180deg,var(--color-warning-soft),var(--color-white));border-color:var(--color-orange);box-shadow:var(--shadow)}.kpiLines{display:grid;gap:5px;margin-top:6px;font-size:13px;color:var(--muted)}.kpiLine{display:flex;justify-content:space-between;gap:10px}.kpiLine strong{color:var(--ink);font-weight:700}.miniProgress{height:9px;border-radius:999px;background:var(--color-border);overflow:hidden;margin-top:10px}.miniProgressFill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--color-chart-blue),var(--color-chart-mint));width:0%}.miniProgressFill.open{background:linear-gradient(90deg,var(--color-warning-strong),var(--color-orange))}.panel{padding:18px}.panel.editing{border-color:var(--color-secondary-border);box-shadow:0 18px 44px rgba(var(--rgb-primary),.13)}.panel h3{margin:0 0 14px}.two{grid-template-columns:1.15fr .85fr}.formgrid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:13px}label{display:block;color:var(--muted);margin-bottom:5px}input,select,textarea{width:100%;border:1px solid var(--color-border-soft);padding:10px;font-family:inherit;background:var(--color-white);color:var(--ink)}.moneyInput{text-align:right;font-variant-numeric:tabular-nums}.span2{grid-column:span 2}.span3{grid-column:span 3}.span4{grid-column:span 4}.formactions{display:flex;gap:10px;margin-top:16px;align-items:center;flex-wrap:wrap}.helper{color:var(--muted)}.hidden{display:none!important}.fileLink{display:inline-flex;align-items:center;max-width:none;overflow:visible;text-overflow:clip;white-space:normal;vertical-align:middle;word-break:break-word;overflow-wrap:anywhere}.tablewrap{overflow:auto;border:1px solid var(--line);background:var(--color-white)}table{width:100%;border-spacing:0}th{position:sticky;top:0;z-index:1;background:var(--color-table-header-bg);color:var(--color-table-header-text);text-align:left;padding:10px;white-space:nowrap}td{padding:9px 10px;border-bottom:1px solid var(--line2);vertical-align:top;white-space:nowrap;background:var(--color-table-row-bg);color:var(--color-text)}tr:nth-child(2n):not(.groupRow):not(.detailRow):not(.offerPaymentsRow):not(.tenantProjectTools) td{background:var(--color-table-row-bg);color:var(--color-text)}.num{text-align:right;font-variant-numeric:tabular-nums}.rowActions{display:inline-flex;align-items:center;flex-wrap:nowrap}.rowActions>*{flex:0 0 auto}.iconBtn{border:1px solid var(--line);background:var(--color-white);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-family:inherit}.iconBtn:hover{background:var(--color-surface-soft)}.iconBtn.dangerIcon{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger-border)}.switchBtn{width:43px;height:24px;border:0;background:var(--color-transparent);padding:0;display:inline-flex;align-items:center;justify-content:center}.switchTrack{width:39px;height:22px;border-radius:999px;background:var(--color-border-soft);position:relative;display:inline-block;box-shadow:inset 0 0 0 1px rgba(var(--rgb-primary-dark),.08)}.switchKnob{position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:var(--color-white);box-shadow:0 1px 4px rgba(var(--rgb-black),.22);transition:.16s}.switchBtn.on .switchTrack{background:var(--color-success)}.switchBtn.on .switchKnob{transform:translateX(17px)}.groupRow td{background:var(--color-secondary-bg);font-size:var(--font-size-table-emphasis);font-weight:var(--font-weight-table);border-top:1px solid var(--color-border-soft)}.toggle{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;background:var(--color-light-blue);color:var(--color-text);margin-right:8px;font-weight:700}.searchbar{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap;align-items:center}.searchbar input,.searchbar select{max-width:370px}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:var(--color-border);color:var(--color-text-secondary)}.badge.ok{background:var(--color-chart-mint-soft);color:var(--color-success)}.badge.warn{background:var(--color-warning-soft);color:var(--color-warning-text)}.badge.bad{background:var(--color-danger-soft);color:var(--color-danger)}.badge.off{background:var(--color-border);color:var(--color-text-muted)}.barlist{display:grid;gap:10px}.barrow{display:grid;grid-template-columns:155px 1fr 115px;gap:10px;align-items:center;font-size:13px}.barbg{height:12px;border-radius:999px;background:var(--color-border);overflow:hidden}.barfill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--color-chart-blue),var(--color-chart-mint))}.barfill.open{background:linear-gradient(90deg,var(--color-warning),var(--color-orange))}.barfill.neg{background:linear-gradient(90deg,var(--color-success),var(--color-chart-mint))}.barbg.splitBar{display:flex}.barbg.splitBar .barfill{flex:0 0 auto;min-width:0;border-radius:0}.barbg.splitBar .paidSplit{background:linear-gradient(90deg,var(--color-chart-blue),var(--color-chart-mint));border-radius:999px 0 0 999px}.barbg.splitBar .openSplit{background:linear-gradient(90deg,var(--color-warning),var(--color-orange));border-radius:0 999px 999px 0}.barrow.clickable{cursor:pointer}.barrow.sub{padding-left:22px}.barrow.position{padding-left:44px;color:var(--muted)}.barrow.position .barfill{opacity:.55}.barlabel{display:flex;align-items:center;gap:6px;min-width:0}.barlabel span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detailRow td{background:var(--color-surface-soft);color:var(--muted)}.detailRow,tr[data-row-edit]{cursor:pointer}.subToggle{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;background:var(--color-light-blue);color:var(--color-text);margin-right:8px;cursor:pointer;font-weight:700}.donutbox{display:grid;grid-template-columns:185px 1fr;gap:16px;align-items:center}.donut{width:168px;height:168px;border-radius:50%;background:conic-gradient(var(--color-border) 0 100%);position:relative;margin:auto}.donut:after{content:"";position:absolute;inset:36px;border-radius:50%;background:var(--color-white);box-shadow:inset 0 0 0 1px var(--line)}.legend{display:grid;gap:8px}.legendItem{display:flex;align-items:center;gap:8px;font-size:13px}.swatch{width:12px;height:12px;border-radius:4px}.empty{padding:28px;text-align:center;border:1px dashed var(--color-border-soft);background:var(--color-surface-soft);color:var(--muted)}.mono{font-family:Consolas,SFMono-Regular,monospace;font-size:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tabs button{border:1px solid var(--line);background:var(--color-white);color:var(--ink);padding:8px 11px;font-family:inherit;cursor:pointer}.tabs button.active{background:var(--color-secondary-bg);color:var(--color-text);border-color:var(--color-secondary-border)}.autoHint{color:var(--muted);margin-top:5px}.autoHint.ok{color:var(--green)}.autoHint.warn{color:var(--orange)}.toast{position:fixed;right:22px;bottom:22px;background:var(--color-primary-dark);color:var(--color-white);padding:12px 14px;box-shadow:0 18px 38px rgba(var(--rgb-black),.24);opacity:0;transform:translateY(10px);transition:.2s;z-index:1000;max-width:520px}.toast.show{opacity:1;transform:translateY(0)}a{color:var(--color-text);text-decoration:none}a:hover{text-decoration:underline}.barCell{display:grid;gap:4px;min-width:0}.barPct{color:var(--muted);line-height:1.15}.cashflowChart{height:278px;display:grid;grid-template-rows:226px auto;gap:8px;padding:4px 4px 0;overflow:hidden}.cashflowPlot{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(68px,1fr);align-items:stretch;gap:12px;height:226px;border-left:1px solid var(--line);padding:8px 8px 0;overflow:hidden}.cashflowZeroLine{position:absolute;left:8px;right:0;height:1px;background:var(--color-border-soft);pointer-events:none}.cashflowCol{min-width:0;display:grid;grid-template-rows:178px 34px;justify-items:center;height:100%;overflow:visible}.cashflowTrack{position:relative;width:100%;height:178px;overflow:visible}.cashflowBar{position:absolute;left:50%;transform:translateX(-50%);width:22px;min-height:2px;background:linear-gradient(180deg,var(--color-chart-blue),var(--color-chart-teal))}.cashflowBar.pos{border-radius:8px 8px 0 0}.cashflowBar.neg{border-radius:0 0 8px 8px;background:linear-gradient(180deg,var(--color-chart-blue),var(--color-chart-teal))}.cashflowMeta{display:grid;gap:2px;align-content:start;justify-items:center;min-width:0;padding-top:5px}.cashflowLabel,.cashflowValue{font-size:11px;color:var(--muted);white-space:nowrap;line-height:1.1}.cashflowAxis{color:var(--muted);text-align:right}.descCell{white-space:normal;min-width:220px;max-width:420px;line-height:1.25;word-break:normal;overflow-wrap:anywhere}#estimateListTable td:not(.descCell),#estimateListTable th,#offerListTable td:not(.descCell),#offerListTable th,#paymentListTable td:not(.descCell),#paymentListTable th{white-space:nowrap}@media (max-width:1280px){.cards{grid-template-columns:repeat(4,1fr)}.two{grid-template-columns:1fr}}@media (max-width:900px){.app{grid-template-columns:1fr}aside{position:relative;height:auto}.formgrid{grid-template-columns:repeat(2,1fr)}.span4{grid-column:span 2}}@media (max-width:700px){main{padding:18px}.topbar{flex-direction:column}.cards,.formgrid{grid-template-columns:1fr}.span2,.span3,.span4{grid-column:span 1}.barrow,.donutbox{grid-template-columns:1fr}}.topUser{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;color:var(--muted)}.projectSelect{min-width:260px;max-width:360px}.flash{margin-bottom:18px;padding:12px 14px;border:1px solid var(--line);background:var(--color-surface-soft);color:var(--ink)}.flash.ok{border-color:var(--color-chart-mint-soft);background:var(--color-chart-mint-soft);color:var(--color-success-strong)}.flash.bad{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.flash.warn{border-color:var(--color-orange);background:var(--color-warning-soft);color:var(--color-warning-text)}.loginShell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,var(--color-page-bg),var(--color-nav-active-bg))}.loginCard{width:min(460px,100%);background:var(--color-white);border:1px solid var(--line);box-shadow:var(--shadow);padding:26px}.loginCard h1{margin:0 0 6px;font-size:24px}.loginCard p{margin:0 0 18px;color:var(--muted)}.inlineForm{display:inline}.muted{color:var(--muted)}.right{text-align:right}.sectionActions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.fileInput{padding:8px;background:var(--color-surface-soft)}.docList{display:grid;gap:6px}.docItem{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:6px 8px;border:1px solid var(--line);background:var(--color-surface-soft)}.empty.smallEmpty{padding:14px}.required:after{content:' *';color:var(--color-danger)}.badge.admin{background:var(--color-chart-lavender);color:var(--color-chart-purple)}.badge.external{background:var(--color-warning-soft);color:var(--color-warning-text)}@media (max-width:900px){.topUser{justify-content:flex-start}.projectSelect{max-width:100%;min-width:0}.app{grid-template-columns:1fr}aside{position:relative;height:auto}.topbar{flex-direction:column}.actions{justify-content:flex-start}.cards{grid-template-columns:1fr 1fr}.formgrid{grid-template-columns:1fr}.span2,.span3,.span4{grid-column:span 1}}@media (max-width:600px){.cards{grid-template-columns:1fr}}.fileInput{display:block}.fileStatus.sessionExpired{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.srOnly,.visuallyHiddenInput{position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;max-width:1px!important;max-height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}aside{display:flex;flex-direction:column}.nav{display:grid;gap:4px}.navBottom{margin-top:auto;padding-top:18px}.navBottomActions{display:flex;align-items:stretch;gap:8px;margin-top:4px}.navBottomActions .logoutNavForm{flex:1 1 0;min-width:0}.navBottomActions .logoutNav.navItem{min-height:40px;padding:9px 10px;justify-content:center}.navBottomActions .sidebarCollapseToggle{flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:0;justify-content:center}.navBottomActions .sidebarCollapseToggle .iconSvg{width:17px;height:17px}.app.sidebarCollapsed .sidebarCollapseToggle .sidebarIconCollapse,.sidebarCollapseToggle .sidebarIconExpand{display:none}.app.sidebarCollapsed .sidebarCollapseToggle .sidebarIconExpand{display:block}.app.sidebarCollapsed .navBottomActions{gap:6px}.app.sidebarCollapsed .navBottomActions .sidebarCollapseToggle{flex-basis:34px;width:34px;height:34px;min-height:34px}.app.sidebarCollapsed .navBottomActions .logoutNav.navItem{min-height:34px;padding-left:0;padding-right:0}.nav .logoutNav{background:rgba(var(--rgb-danger),.18);color:var(--color-white);border:1px solid rgba(var(--rgb-danger),.34);font-weight:700;text-align:center}.nav .logoutNav:hover{background:rgba(var(--rgb-danger),.28);color:var(--color-white);text-decoration:none}.ajaxBusy main{cursor:progress}.ajaxSubmitting{position:relative;opacity:.72}.ajaxSubmitting:after{content:"";position:absolute;inset:0;border-radius:var(--radius);background:rgba(var(--rgb-surface),.28);pointer-events:none}.actionDisabled,.ajaxSubmitting .actionDisabled{pointer-events:none;opacity:.48;cursor:not-allowed}.buttonBusy{position:relative}.buttonBusy::before{content:"";display:inline-block;width:1em;height:1em;flex:0 0 1em;border:2px solid currentColor;border-right-color:var(--color-transparent);border-radius:999px;animation:.75s linear infinite appSpin}.iconBtn.buttonBusy .iconSvg{display:none}.fileSelectedStatus{margin-top:8px;font-size:13px;color:var(--muted);word-break:break-word}.uploadPending{border-style:dashed}.uploadStatus{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;white-space:nowrap}.uploadSpinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:var(--color-transparent);border-radius:999px;animation:.75s linear infinite appSpin}@keyframes appSpin{to{transform:rotate(360deg)}}.toast.ok{background:var(--green)}.toast.bad{background:var(--red)}.toast.warn{background:var(--orange)}.switchBtn:disabled{opacity:.7}.treeList{gap:12px}.treeList .barrow{grid-template-columns:minmax(150px,165px) minmax(220px,1fr) 110px}.treeList .barrow.sub{padding-left:22px}.treeList .barrow.position{grid-template-columns:minmax(210px,260px) minmax(120px,1fr) 110px;padding-left:48px;color:var(--muted)}.treeList .barrow.position .num{color:var(--color-text-secondary)}.ghostToggle{visibility:hidden;pointer-events:none}[data-tree-key]{cursor:pointer}#overviewTable .detailRow td{color:var(--muted);background:var(--color-surface-soft)}#overviewTable td:first-child{min-width:145px}#overviewTable td:nth-child(2){min-width:230px}@media (max-width:900px){.treeList .barrow,.treeList .barrow.position{grid-template-columns:1fr;padding-left:0}.cashflowPlot{grid-auto-columns:minmax(54px,1fr);gap:8px}}.dashboardVisualGrid{grid-template-columns:minmax(520px,1.15fr) minmax(360px,.85fr);align-items:stretch}.combinedBudgetPanel{grid-row:span 2;min-height:574px}.combinedBudgetList{gap:13px}.combinedBudgetList .barrow{grid-template-columns:minmax(170px,210px) minmax(260px,1fr) minmax(118px,145px);align-items:start}.combinedBudgetList .barrow.sub{padding-left:26px}.combinedBudgetList .barrow.position{grid-template-columns:minmax(230px,290px) minmax(120px,1fr) minmax(118px,145px);padding-left:54px}.combinedBudgetList .barbg{height:14px}.combinedBudgetList .barbg.splitBar .paidSplit{background:linear-gradient(90deg,var(--color-success),var(--color-chart-mint))}.combinedBudgetList .barbg.splitBar .openSplit{background:linear-gradient(90deg,var(--color-warning),var(--color-orange))}.combinedBudgetList .num{font-weight:700;color:var(--ink);white-space:nowrap}.budgetSplitMeta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.budgetSplitMeta span:first-child{color:var(--color-success)}.budgetSplitMeta span:last-child{color:var(--color-warning-text)}@media (max-width:1280px){.dashboardVisualGrid{grid-template-columns:1fr}.combinedBudgetPanel{grid-row:auto;min-height:0}}@media (max-width:900px){.combinedBudgetList .barrow,.combinedBudgetList .barrow.position{grid-template-columns:1fr;padding-left:0}.budgetSplitMeta{justify-content:flex-start}}.docItem .fileLink{flex:1;background:var(--color-transparent);border:0;box-shadow:none;color:var(--color-text);padding:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docItem .inlineForm{flex:0 0 auto}#paymentFormPanel .assignmentChoice,#paymentFormPanel .assignmentSection{grid-column:1/-1}.editDocuments{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.editDocuments h4{margin:0 0 10px;font-size:14px;color:var(--ink)}.docNameList{display:grid;gap:3px;min-width:180px;max-width:360px}.docNameLink{display:block;white-space:normal;word-break:break-word;overflow-wrap:anywhere;color:var(--color-text);text-decoration:none;line-height:1.25}.docNameLink:hover{text-decoration:underline}.mobileHeader,.mobileMenuBackdrop{display:none}.mobileMenuToggle{font-family:inherit}.burgerIcon{position:relative;display:inline-block;width:18px;height:12px;flex:0 0 auto}.burgerIcon,.burgerIcon::after,.burgerIcon::before{border-top:2px solid currentColor}.burgerIcon::after,.burgerIcon::before{content:"";position:absolute;left:0;width:18px}.burgerIcon::before{top:4px}.burgerIcon::after{top:10px}@media (max-width:900px){.app{display:block;min-height:100vh}main{padding:0 14px 30px;overflow:visible}.mobileHeader{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:800;margin:0 -14px 16px;padding:10px 14px;background:rgba(var(--rgb-page-bg),.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);box-shadow:0 8px 22px rgba(var(--rgb-text),.07)}.mobileMenuToggle{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:13px;background:var(--color-white);color:var(--ink);padding:10px 12px;font-size:14px;font-weight:700;box-shadow:0 8px 18px rgba(var(--rgb-text),.08);cursor:pointer}.mobileHeaderTitle{display:grid;gap:1px;min-width:0;line-height:1.15}.mobileHeaderTitle strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobileHeaderTitle span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}aside{position:fixed;top:0;left:0;bottom:0;width:min(84vw,310px);height:100dvh;padding:20px 16px;z-index:1100;transform:translateX(-105%);transition:transform .22s;box-shadow:24px 0 60px rgba(var(--rgb-primary-dark),.28);overflow:auto}body.mobileMenuOpen aside{transform:translateX(0)}body.mobileMenuOpen{overflow:hidden}.mobileMenuBackdrop{display:block;position:fixed;inset:0;z-index:1000;background:rgba(var(--rgb-text),.42);opacity:0;pointer-events:none;transition:opacity .18s}body.mobileMenuOpen .mobileMenuBackdrop{opacity:1;pointer-events:auto}.brand{margin-bottom:18px}.sideStatus{margin-top:18px}.navBottom{margin-top:22px;padding-top:14px}.topbar{margin:0 0 16px;align-items:stretch}.topbar .title{display:none}.actions,.topUser{width:100%;justify-content:flex-start}.projectSelect{flex:1;min-width:0;max-width:none}}.deltaBadge{display:inline-flex;align-items:center;justify-content:flex-end;min-width:88px;padding:2px 7px;border-radius:999px;border:1px solid var(--color-transparent);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.deltaBadge.neutral{color:var(--ink);background:var(--color-transparent);border-color:var(--color-transparent)}.deltaBadge.good{color:var(--color-success-strong);background:var(--color-transparent);border-color:var(--color-transparent)}.deltaBadge.bad{color:var(--color-danger);background:var(--color-transparent);border-color:var(--color-transparent)}.deltaBadge.deltaHighlight.good{background:var(--color-chart-mint-soft);border-color:var(--color-chart-mint-soft);font-weight:700}.deltaBadge.deltaHighlight.bad{background:var(--color-danger-soft);border-color:var(--color-danger-border);font-weight:700}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--color-secondary-bg)}.tablewrap td,.tablewrap th{font-weight:var(--font-weight-table)}.sortHead{cursor:pointer;user-select:none;position:sticky}.sortHead[aria-sort=ascending]:after{content:" ↑";opacity:.95;font-size:12px}.sortHead[aria-sort=descending]:after{content:" ↓";opacity:.95;font-size:12px}.sortHead:not([aria-sort]):after{content:" ↕";opacity:.55;font-size:12px}#statusTable td{vertical-align:middle}#statusTable input,#statusTable select{min-width:150px}.disabledButtonTooltipWrap{display:inline-flex;align-items:center;justify-content:center;line-height:1}.disabledButtonTooltipWrap>button:disabled{pointer-events:none}.appTooltip{position:fixed;z-index:3000;max-width:min(360px,calc(100vw - 24px));padding:8px 10px;border-radius:8px;background:var(--color-text);color:var(--color-white);line-height:1.35;box-shadow:0 12px 32px rgba(var(--rgb-text),.24);opacity:0;transform:translateY(3px);pointer-events:none;transition:opacity .12s,transform .12s;text-align:left}.appTooltip.show{opacity:1;transform:translateY(0)}.appTooltip::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);border-width:5px 5px 0;border-style:solid;border-color:var(--color-text) var(--color-transparent) var(--color-transparent) var(--color-transparent)}.appTooltip.bottom::after{top:-5px;bottom:auto;border-width:0 5px 5px;border-color:var(--color-transparent) var(--color-transparent) var(--color-text) var(--color-transparent)}.assignmentChoice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}.assignmentChoiceTitle{grid-column:1/-1;font-weight:700;color:var(--ink);font-size:14px}.radioCard{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:var(--color-surface-soft);padding:10px 12px;cursor:pointer;min-height:68px}.radioCard input{width:auto;margin-top:3px;flex:0 0 auto}.radioCard strong{display:block;font-size:14px;color:var(--ink)}.radioCard small{display:block;margin-top:3px;color:var(--muted);line-height:1.35}.assignmentSection{border:1px solid var(--line);background:var(--color-white);padding:12px}.assignmentSection.disabledSection{display:none}.compactFormgrid{margin:0}.center{text-align:center}@media (max-width:720px){.assignmentChoice{grid-template-columns:1fr}.assignmentSection{padding:10px}}.offerCombobox{position:relative}.offerCombobox input[data-offer-picker]{width:100%;padding-right:36px}.offerResultList{display:none;position:absolute;z-index:1200;left:0;right:0;top:calc(100% + 6px);max-height:320px;overflow:auto;background:var(--color-white);border:1px solid var(--line);box-shadow:0 18px 45px rgba(var(--rgb-text),.16);padding:6px}.offerCombobox.open .offerResultList{display:block}.offerResultList.empty::after{content:"Keine passenden Angebote gefunden";display:block;padding:12px;color:var(--muted);font-size:14px}.offerResult{display:block;width:100%;border:0;background:var(--color-white);text-align:left;padding:10px 11px;cursor:pointer;color:var(--ink)}.offerResult.selected,.offerResult:focus,.offerResult:hover{background:var(--color-surface-soft)}.offerResultTop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;line-height:1.25}.offerResultTop strong{font-weight:700}.offerResultMeta{display:block;margin-top:4px;color:var(--muted);line-height:1.3;white-space:normal;overflow-wrap:anywhere}.offerResultState{padding:12px;color:var(--muted);line-height:1.35}.offerResultState.bad{color:var(--bad)}.offerStatusHint{margin-top:8px;line-height:1.35;color:var(--muted)}.offerStatusHint.ok{color:var(--color-success-strong)}.offerStatusHint.warn{color:var(--color-warning-text);background:var(--color-warning-soft);border:1px solid var(--color-orange);border-radius:10px;padding:8px 10px}.assignmentCell{min-width:180px}.assignmentLink{display:inline-flex;align-items:center;gap:7px;max-width:100%;border:0;background:var(--color-transparent);color:var(--color-text);padding:0;font:inherit;text-align:left;cursor:pointer;line-height:1.35}.assignmentLink .badge{flex:0 0 auto;text-decoration:none}.assignmentLink span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignmentText{display:inline-block;margin-left:6px;color:var(--muted);max-width:210px;vertical-align:bottom}body.modalOpen{overflow:hidden}.appModal[hidden]{display:none!important}.appModal{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .14s}.appModal.show{opacity:1;pointer-events:auto}.appModal:focus{outline:2px solid rgba(var(--rgb-focus),.35);outline-offset:-2px}.appModalDialog:focus{outline:2px solid rgba(var(--rgb-focus),.45);outline-offset:3px}.appModalBackdrop{position:absolute;inset:0;background:rgba(var(--rgb-text),.48)}.appModalDialog{position:relative;z-index:1;width:min(680px,100%);max-height:min(82vh,760px);overflow:auto;background:var(--color-white);box-shadow:0 26px 80px rgba(var(--rgb-text),.32);border:1px solid rgba(var(--rgb-border-soft),.55);transform:translateY(8px) scale(.985);transition:transform .14s}.appModal.show .appModalDialog{transform:translateY(0) scale(1)}.appModalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.appModalHeader h2,.appModalHeader h3{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.modalClose{width:34px;height:34px;border:1px solid var(--line);background:var(--color-white);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.modalClose:focus,.modalClose:hover{background:var(--color-surface-soft)}.appModalBody{padding:18px 20px 20px}.detailList{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:0 0 18px}.detailList div{border:1px solid var(--line);border-radius:12px;background:var(--color-surface-soft);padding:10px 12px;min-width:0}.detailList dt{color:var(--muted);font-weight:700;margin:0 0 4px;text-transform:uppercase;letter-spacing:.02em}.detailList dd{margin:0;color:var(--ink);overflow-wrap:anywhere}.modalDocList{display:flex;flex-direction:column;gap:8px;align-items:flex-start}@media (max-width:720px){.appModal{padding:12px;align-items:flex-end}.appModalDialog{max-height:90vh;border-radius:16px 16px 0 0}.detailList{grid-template-columns:1fr}.assignmentText{max-width:150px}}.iconSvg{width:1em;height:1em;display:block;fill:currentColor;flex:0 0 auto}.iconBtn .iconSvg{width:16px;height:16px}.modalClose .iconSvg{width:15px;height:15px}button.ghost .iconSvg,button.primary .iconSvg,button.secondary .iconSvg{width:15px;height:15px;display:inline-block;margin-right:6px;vertical-align:-2px}.offerResult[hidden]{display:none!important}.assignmentLink,.assignmentLink span:last-child{font-weight:400}.iconBtn.dangerIcon{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger-border);font-weight:400}.iconBtn.dangerIcon .iconSvg{width:15px;height:15px;opacity:.9}#overviewTable .deltaBadge,#overviewTable [data-tree-key],#overviewTable td,#overviewTable th[data-tooltip],#overviewTable th[title],[data-tooltip]{cursor:default}#overviewTable .subToggle,#overviewTable .toggle{cursor:pointer}.assignmentLink:focus,.assignmentLink:hover{text-decoration:none}.assignmentLink:focus .assignmentLinkText,.assignmentLink:hover .assignmentLinkText{text-decoration:underline;text-underline-offset:2px}.modalActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}a.ghost.actionLink,a.primary.actionLink,a.secondary.actionLink{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;text-decoration:none;white-space:nowrap}a.primary.actionLink{background:var(--blue);color:var(--color-white);box-shadow:0 10px 18px rgba(var(--rgb-primary),.18)}a.secondary.actionLink{background:var(--color-secondary-bg);color:var(--color-text)}a.ghost.actionLink{background:var(--color-white);color:var(--ink);border:1px solid var(--line)}.confirmModalText{margin:0;color:var(--ink);line-height:1.45}.confirmModal .appModalDialog{width:min(520px,100%)}.confirmModal .modalActions{justify-content:flex-end}.offerPaymentsRow td{background:var(--color-surface-soft);white-space:normal}.nestedPayments{display:grid;gap:10px;padding:6px 4px}.nestedPaymentsTitle{font-weight:700;color:var(--ink)}.nestedPaymentList{display:grid;gap:7px}.paymentDetailLink{width:100%;display:grid;grid-template-columns:110px minmax(160px,1fr) 130px auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--color-white);padding:9px 10px;color:var(--ink);cursor:pointer;font:inherit;text-align:left}.paymentDetailLink:focus,.paymentDetailLink:hover{background:var(--color-surface-soft)}.paymentDetailLink .badge{justify-self:start}@media (max-width:720px){.paymentDetailLink{grid-template-columns:1fr;gap:5px}.modalActions{justify-content:stretch}.modalActions>*{width:100%}}.adminApp .brand .logo{background:linear-gradient(135deg,var(--color-text),var(--color-nav-active-icon))}.adminCards{grid-template-columns:repeat(5,minmax(160px,1fr))}.adminLinkGrid{display:flex;gap:10px;flex-wrap:wrap}.adminPanelHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}.adminDetailPanel h4{margin:18px 0 10px;font-size:15px;color:var(--ink)}.adminMessageCell{white-space:normal;min-width:260px;max-width:620px;overflow-wrap:anywhere}.adminContextNotice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--color-secondary-border);border-radius:15px;background:linear-gradient(180deg,var(--color-page-bg),var(--color-white));box-shadow:0 12px 30px rgba(var(--rgb-primary),.08)}.adminContextNotice>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px}.adminContextNotice strong{color:var(--ink);font-size:14px}.adminContextNotice span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;background:var(--color-white);padding:4px 8px}.adminContextNotice form{margin:0}.adminDangerBox{display:grid;gap:6px;margin-top:12px;padding:12px 14px;border:1px solid var(--color-danger-border);border-radius:14px;background:var(--color-danger-soft);color:var(--color-danger-hover)}.adminDangerBox span{color:var(--color-danger-hover);font-size:13px}a.ghost.actionLink{border:1px solid var(--line)}.inlineForm{display:inline-flex;margin:0}@media (max-width:1100px){.adminCards{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (max-width:720px){.adminCards{grid-template-columns:1fr}.adminContextNotice{align-items:stretch;flex-direction:column}.adminContextNotice button,.adminContextNotice form{width:100%}.adminPanelHeader{align-items:stretch}.adminPanelHeader button,.adminPanelHeader form{width:100%}}.tenantApp .brand .logo{background:linear-gradient(135deg,var(--color-success),var(--color-nav-active-icon))}.tenantCards{grid-template-columns:repeat(5,minmax(160px,1fr))}.tenantToolLinks{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tenantProjectTools td{background:var(--color-surface-soft);white-space:normal}.tenantMembershipCell{white-space:normal;min-width:260px;max-width:520px}.tenantMembershipCell .badge{margin:2px 4px 2px 0}@media (max-width:1100px){.tenantCards{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (max-width:720px){.tenantCards{grid-template-columns:1fr}.tenantToolLinks{align-items:stretch}.tenantToolLinks button,.tenantToolLinks form{width:100%}}a.primary.actionLink,button.primary{background:var(--blue);color:var(--color-white);border:1px solid var(--blue);box-shadow:0 10px 18px rgba(var(--rgb-primary),.18)}a.secondary.actionLink,button.secondary{background:var(--color-secondary-bg);color:var(--color-text);border:1px solid var(--color-secondary-border)}a.ghost.actionLink,a.outline.actionLink,button.ghost,button.outline{background:var(--color-white);color:var(--ink);border:1px solid var(--line)}a.ghost.actionLink:hover,a.outline.actionLink:hover,a.primary.actionLink:hover,a.secondary.actionLink:hover,button.ghost:hover,button.outline:hover,button.primary:hover,button.secondary:hover{filter:brightness(.98);text-decoration:none}.adminCards .card,.tenantCards .card{display:grid;align-content:start;gap:4px;min-height:98px}.adminCards .card .label,.tenantCards .card .label{display:block;margin:0;color:var(--muted)}.adminCards .card .value,.tenantCards .card .value{display:block;margin:2px 0 0}.adminCards .card .sub,.tenantCards .card .sub{display:block;margin-top:4px;white-space:normal;line-height:1.35}.adminContextMenu{border-color:rgba(var(--rgb-focus),.45);background:rgba(var(--rgb-focus),.11)}.adminContextMenu form{margin:10px 0 0}.adminContextMenu button{width:100%;border:1px solid rgba(var(--rgb-surface),.22);background:rgba(var(--rgb-surface),.1);color:var(--color-white);padding:8px 10px;font:inherit;cursor:pointer;text-align:center}.adminContextMenu button:focus,.adminContextMenu button:hover{background:rgba(var(--rgb-surface),.16)}.tenantProjectUserForms{align-items:start}.assignmentSection h4{margin:0 0 10px;font-size:15px;color:var(--ink)}.switchBtn{border-radius:999px}.switchBtn:focus-visible{outline:2px solid var(--color-chart-blue);outline-offset:2px}button.outline{padding:10px 14px;font-family:inherit;font-size:14px;cursor:pointer;white-space:nowrap}a.outline.actionLink{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;text-decoration:none;white-space:nowrap}.onboardingPanelAfterResult{margin-top:18px}.onboardingResultActions form{margin:0}.projectReadOnlyDetails{margin-bottom:0}.ajaxDataTable{display:grid;gap:12px}.ajaxDataTableToolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}.ajaxDataTableToolbar input{min-width:min(320px,100%);flex:1}.ajaxTableFooter{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;color:var(--muted)}.ajaxTableMeta{white-space:nowrap;justify-self:start}.ajaxTablePager{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;justify-self:center;min-width:0}.ajaxTablePager button{height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;line-height:1;flex:0 0 auto}.ajaxTablePager button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.ajaxTablePageControl{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--muted);line-height:1;white-space:nowrap;flex:0 0 auto}.ajaxTablePageControl span{display:inline-flex;align-items:center;line-height:1;white-space:nowrap}.ajaxTablePageTotal{margin-left:2px}.ajaxTablePageInput{width:38px;min-width:38px;max-width:38px;height:34px;box-sizing:border-box;padding:0 4px;text-align:center;font-variant-numeric:tabular-nums;line-height:1;-moz-appearance:textfield}.ajaxTablePageInput::-webkit-inner-spin-button,.ajaxTablePageInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ajaxTablePageSize{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;justify-self:end;margin:0;color:var(--muted);line-height:1;white-space:nowrap;flex-wrap:nowrap}.ajaxTablePageSize span{display:inline-flex;align-items:center;line-height:1;white-space:nowrap}.ajaxTablePageSize select{width:auto;min-width:72px;height:34px;box-sizing:border-box;padding:0 28px 0 9px;line-height:1}.ajaxTableLoading{padding:16px;color:var(--muted);text-align:center}.ajaxDataTable.loading table{opacity:.72}table th[data-sort]{cursor:pointer;user-select:none;white-space:nowrap}table th[data-sort]::after{content:'↕';display:inline-block;margin-left:6px;color:var(--muted);font-size:11px;opacity:.6}table th[data-sort].sortedAsc::after{content:'↑';opacity:1;color:var(--blue)}table th[data-sort].sortedDesc::after{content:'↓';opacity:1;color:var(--blue)}.empty.bad{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger-hover)}@media (max-width:720px){.ajaxDataTableToolbar{align-items:stretch}.ajaxDataTableToolbar input{width:100%;min-width:0}.ajaxTableFooter{grid-template-columns:1fr;align-items:center;gap:10px}.ajaxTableMeta{justify-self:start}.ajaxTablePager{justify-self:center;max-width:100%}.ajaxTablePageSize{justify-self:end}.ajaxTablePageSize select{min-width:72px}}@media (max-width:520px){.ajaxTablePageControl{display:none}.ajaxTablePager{gap:8px}.ajaxTablePager button{min-width:96px}.ajaxTableFooter{gap:8px}}@media (max-width:360px){.ajaxTablePager button{min-width:0;width:auto;padding:0 10px}.ajaxTablePageSize span{display:none}}a.ghost.actionLink,a.outline.actionLink,a.primary.actionLink,a.secondary.actionLink,button.danger,button.ghost,button.outline,button.primary,button.secondary{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.15}a.primary.actionLink,button.primary{background:var(--blue);color:var(--color-white);border:1px solid var(--blue)}a.secondary.actionLink,button.secondary{background:var(--blue-soft);color:var(--color-text);border:1px solid var(--blue-soft-border)}a.ghost.actionLink,a.outline.actionLink,button.ghost,button.outline{background:var(--color-white);color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--danger-soft);color:var(--color-danger);border:1px solid var(--danger-border)}button.danger:focus,button.danger:hover{background:var(--color-danger-soft);color:var(--color-danger-hover)}.iconBtn{width:32px;height:32px;min-width:32px;min-height:32px;flex:0 0 32px;padding:0}.iconBtn.dangerIcon:focus,.iconBtn.dangerIcon:focus-visible,.iconBtn.dangerIcon:hover{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger-border)}.iconBtn:disabled,.switchBtn:disabled{opacity:.42;cursor:not-allowed;filter:none}.switchBtn{min-height:24px;flex:0 0 43px}input,select,textarea{min-height:38px;line-height:1.2}textarea{resize:vertical;min-height:72px}.numberCompact{max-width:82px;text-align:right;font-variant-numeric:tabular-nums}table th{letter-spacing:.01em}table td .badge:first-child{margin-left:0}.tablewrap table{min-width:720px}.rowActions{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:6px;white-space:nowrap}.rowActions a,.rowActions button,.rowActions form{flex:0 0 auto}.badge.role{background:var(--color-secondary-bg);color:var(--color-text)}.badge.status{background:var(--color-border);color:var(--color-text-secondary)}.badge.deleted{background:var(--color-danger-soft);color:var(--color-danger)}.badge.archived{background:var(--color-border);color:var(--color-text-muted)}.badge.dummy{background:var(--color-chart-lavender);color:var(--color-chart-purple)}.badge.category{background:var(--color-chart-mint-soft);color:var(--color-success-strong)}.adminLinkGrid a.primary.actionLink,.adminLinkGrid a.secondary.actionLink{min-height:40px}.adminCards .card .sub,.tenantCards .card .sub{color:var(--muted)}.roleInfoCard{margin-top:0;padding:0;overflow:hidden}.roleInfoCard summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer;list-style:none;font-weight:700}.roleInfoCard summary::-webkit-details-marker{display:none}.roleInfoCard summary .muted{display:block;font-weight:400;font-size:13px;text-align:left;margin-top:3px}.roleInfoSummaryText{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.roleInfoSummaryTitle{display:block}.roleInfoSummaryText .muted{display:block;width:100%;margin-top:0}.roleMatrixWrap{overflow:auto;border-top:1px solid var(--line)}.roleMatrix{min-width:560px}.roleMatrix th{background:var(--color-surface-soft);color:var(--ink);position:static;border-bottom:1px solid var(--line)}.roleMatrix td{white-space:normal;vertical-align:middle}.costStructureIntro{margin-bottom:14px}.costStructureTree{display:grid;gap:14px}.costTreeAddGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.costTreeAddCard{box-shadow:none}.costTreeAddCard h3{margin-bottom:12px}.compactFormgrid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.costTreeList{display:grid;gap:12px}.costTreeCategory{border:1px solid var(--line);background:var(--color-white);box-shadow:0 10px 28px rgba(var(--rgb-text),.05);overflow:hidden}.costTreeCategory.isInactive,.costTreeSubItem.isInactive{opacity:.72}.costTreeSummary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 15px;list-style:none;cursor:pointer;background:var(--color-surface-soft);border-bottom:1px solid var(--line)}.costTreeSummary::-webkit-details-marker{display:none}.costTreeSummary:before{content:'▾';font-size:12px;color:var(--muted);grid-row:1;align-self:center;margin-right:6px;display:none}.costTreeCategory:not([open]) .costTreeSummary{border-bottom:0}.costTreeTitle{display:flex;gap:8px;align-items:center;min-width:0;flex-wrap:wrap}.costTreeTitle strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.costTreeMeta{font-size:12px;color:var(--muted);white-space:nowrap}.costTreeEditor{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line2)}.costTreeInlineForm{display:grid;grid-template-columns:minmax(180px,1fr) 82px minmax(110px,150px) 32px;gap:8px;align-items:center;margin:0}.costTreeSubEditor .costTreeInlineForm{grid-template-columns:minmax(150px,220px) minmax(180px,1fr) 82px minmax(110px,150px) 32px}.costTreeActions{justify-self:end}.costTreeSubList{display:grid;gap:8px;padding:12px 15px 15px}.costTreeSubItem{border:1px solid var(--line2);background:var(--color-surface-soft);padding:10px 12px}.costTreeSubHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:8px}.costTreeSubHeader>span:first-child{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.costTreeSubHeader strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.costTreeSubItem .costTreeEditor{padding:0;border-bottom:0;background:var(--color-transparent)}.costTreeInlineForm input,.costTreeInlineForm select,.costTreeSubItem .costTreeInlineForm input,.costTreeSubItem .costTreeInlineForm select{height:34px;min-height:34px;padding:6px 8px}.costTreeCategoryNameInput{font-weight:700}.costTreeEditor .switchBtn,.costTreeSubItem .switchBtn{height:24px;min-height:24px}@media (max-width:980px){.costTreeAddGrid{grid-template-columns:1fr}.costTreeEditor{grid-template-columns:1fr;align-items:stretch}.costTreeActions{justify-self:start}.costTreeInlineForm,.costTreeSubEditor .costTreeInlineForm{grid-template-columns:1fr 82px minmax(105px,140px) 32px}.costTreeSubEditor .costTreeInlineForm select[name=category_id]{grid-column:1/-1}}@media (max-width:720px){.roleInfoCard summary{display:grid;gap:4px}.roleInfoCard summary .muted{text-align:left}.costTreeSubHeader,.costTreeSummary{grid-template-columns:1fr;align-items:start}.costTreeMeta{white-space:normal}.costTreeInlineForm,.costTreeSubEditor .costTreeInlineForm{grid-template-columns:1fr 74px 1fr 32px}.compactFormgrid{grid-template-columns:1fr}.numberCompact{max-width:74px}}@media (max-width:520px){.costTreeInlineForm,.costTreeSubEditor .costTreeInlineForm{grid-template-columns:1fr 68px 32px}.costTreeInlineForm select[name=offer_comparison_mode],.costTreeSubEditor .costTreeInlineForm select[name=category_id]{grid-column:1/-1}.costTreeEditor,.costTreeSubList{padding:10px}}.confirmTokenWrap{display:grid;gap:6px;margin-top:14px;font-size:13px;color:var(--muted)}.confirmTokenWrap[hidden]{display:none!important}.confirmTokenInput{max-width:220px;font-weight:700;letter-spacing:.04em}.confirmTokenInput.bad{border-color:var(--color-danger);background:var(--color-danger-soft)}input[type=checkbox],input[type=radio]{width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;padding:0;margin:0;flex:0 0 16px;vertical-align:-2px;accent-color:var(--blue)}.treeExpandable{cursor:pointer}tr[data-tree-key]:not(.treeExpandable){cursor:default}body.ajaxBusy:before{content:"";position:fixed;top:14px;right:14px;z-index:1300;width:18px;height:18px;border:2px solid rgba(var(--rgb-focus),.25);border-top-color:var(--blue);border-radius:999px;animation:.8s linear infinite bktSpin}@keyframes bktSpin{to{transform:rotate(360deg)}}.projectRoleMatrixWrap{margin-top:16px}.projectRoleMatrix td:first-child{min-width:220px;vertical-align:middle;font-weight:600;color:var(--ink)}.projectRoleMatrix select{min-width:190px;max-width:240px;vertical-align:middle}@media (max-width:640px){.projectRoleMatrix select{min-width:0;width:100%}}.checkboxField{display:grid;gap:6px;align-self:start;justify-self:start;max-width:100%}.checkboxField.span2{grid-column:span 2}.checkboxField.span3{grid-column:span 3}.checkboxField .fieldLabel{display:block;margin:0;color:var(--muted);font-weight:500}.checkField{display:inline-flex;align-items:center;justify-content:flex-start;width:fit-content;max-width:100%;min-height:38px;box-sizing:border-box;padding:0 12px;gap:8px;border:1px solid var(--line);background:var(--color-white);color:var(--ink);cursor:pointer}.checkField input[type=checkbox],.tablewrap input[type=checkbox]{width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;max-height:16px;padding:0;margin:0;flex:0 0 16px;align-self:center;accent-color:var(--blue)}.checkField label,.checkFieldText{margin:0;color:var(--ink);font-size:14px;line-height:1.25;font-weight:600}.checkboxField>.helper{margin:0;font-size:12px;line-height:1.3;color:var(--muted)}.projectRoleMatrix td{vertical-align:middle}.actionLink,.iconBtn,.switchBtn,.toggle,[data-toggle-panel],[role=button],button:not(:disabled),input[type=button]:not(:disabled),input[type=submit]:not(:disabled){cursor:pointer}button:disabled,input[type=button]:disabled,input[type=submit]:disabled{cursor:not-allowed}.disabledButtonTooltipWrap{cursor:default}.searchSelect{position:relative}.searchSelect input[data-search-select-input]{width:100%}.searchSelect .nativeSearchSelect{position:absolute;width:1px;height:1px;min-height:1px;padding:0;margin:0;border:0;opacity:0;pointer-events:none}.searchSelectOption{text-align:left}.adminContextMenu button:focus-visible,.assignmentLink:focus-visible,.iconBtn:focus-visible,.modalClose:focus-visible,.offerResult:focus-visible,.paymentDetailLink:focus-visible,.searchSelectInput:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid rgba(var(--rgb-focus),.55);outline-offset:2px}body{min-height:100vh;font-size:14px;line-height:1.35;background:radial-gradient(circle at 8% -8%,rgba(var(--rgb-primary),.13) 0,rgba(var(--rgb-primary),0) 34%),radial-gradient(circle at 92% 2%,rgba(var(--rgb-chart-mint),.12) 0,rgba(var(--rgb-chart-mint),0) 32%),linear-gradient(180deg,var(--color-page-bg) 0,var(--color-nav-active-bg) 100%)}.loginShell{background:radial-gradient(circle at 8% -8%,rgba(var(--rgb-primary),.13) 0,rgba(var(--rgb-primary),0) 34%),radial-gradient(circle at 92% 2%,rgba(var(--rgb-chart-mint),.12) 0,rgba(var(--rgb-chart-mint),0) 32%),linear-gradient(180deg,var(--color-page-bg) 0,var(--color-nav-active-bg) 100%)}button,input,select,textarea{font-size:14px;line-height:1.35}.iconBtn,.switchBtn,a.ghost.actionLink,a.outline.actionLink,a.primary.actionLink,a.secondary.actionLink,button.danger,button.ghost,button.primary,button.secondary,button.small{font-size:14px;line-height:1.2}.brand h1{font-size:17px;line-height:1.1}.brand span{font-size:12px;color:var(--muted)}.adminContextMenu button,.nav .logoutNav,.nav a,.nav button{font-size:14px;line-height:1.2}.title h2{font-size:clamp(26px,2.2vw,34px);line-height:1.08}.ajaxTableFooter,.ajaxTableMeta,.ajaxTablePageControl,.ajaxTablePageSize,.autoHint,.barPct,.cashflowAxis,.cashflowLabel,.cashflowValue,.fileStatus,.helper,.muted,.title p,.topUser{font-size:13px}.adminCards .card .label,.card .label,.tenantCards .card .label{font-size:11px}.adminCards .card .value,.card .value,.tenantCards .card .value{font-size:23px;line-height:1.08}.adminCards .card .sub,.autoHint,.card .sub,.fieldErrorMessage,.offerStatusHint,.radioCard small,.sideStatus,.tenantCards .card .sub{font-size:12px}.adminPanelHeader h3,.appModalHeader h2,.appModalHeader h3,.costTreeAddCard h3,.panel h3,.roleInfoSummaryTitle{font-size:18px;line-height:1.25}.checkboxField .fieldLabel,.detailList dt,.projectReadOnlyDetails dt,label{font-size:12px;line-height:1.25}.tablewrap table,table{font-size:13px;line-height:1.35}.roleMatrix th,.tablewrap th,th{font-size:11px;line-height:1.25}#overviewTable .detailRow td,.detailRow td,.roleMatrix td,.tablewrap td,td{font-size:13px;line-height:1.35}.badge,.deltaBadge,.tablewrap .badge{font-size:11px;line-height:1.25}.appTooltip,.offerResultMeta,.offerResultState{font-size:13px}.app>aside,aside,aside#appSidebar{background:rgba(var(--rgb-surface),.86);color:var(--ink);border-right:1px solid rgba(var(--rgb-border),.86);box-shadow:18px 0 48px rgba(var(--rgb-text),.06);backdrop-filter:blur(16px)}.adminContextMenu button,.nav a,.nav button{color:var(--muted);background:var(--color-transparent);border:1px solid var(--color-transparent)}.adminContextMenu button:focus,.adminContextMenu button:hover,.nav a.active,.nav a:focus-visible,.nav a:hover,.nav button.active,.nav button:hover{background:linear-gradient(135deg,rgba(var(--rgb-focus),.11),rgba(var(--rgb-chart-mint),.09));border-color:rgba(var(--rgb-focus),.14);color:var(--blue);box-shadow:0 10px 24px rgba(var(--rgb-text),.06);text-decoration:none}.nav a.active,.nav button.active{color:var(--blue);color:var(--color-text)}.nav .logoutNav{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger-border)}.nav .logoutNav:focus-visible,.nav .logoutNav:hover{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger-border)}.adminContextMenu,.sideStatus{background:rgba(var(--rgb-surface),.72);border:1px solid var(--line);color:var(--muted);box-shadow:0 12px 30px rgba(var(--rgb-text),.05)}.adminContextMenu strong,.sideStatus strong{color:var(--ink)}.mobileHeader{background:rgba(var(--rgb-surface),.86);border-bottom:1px solid rgba(var(--rgb-border),.86);backdrop-filter:blur(14px)}.mobileMenuBackdrop{background:rgba(var(--rgb-primary-dark),.32);backdrop-filter:blur(3px)}.adminApp .brand .logo,.logo,.tenantApp .brand .logo{border-radius:16px;color:var(--color-white)}.adminContextMenu button,.nav .logoutNav,.nav a,.nav button{border-radius:15px}.adminContextMenu,.assignmentSection,.costTreeSubItem,.docItem,.empty,.flash,.radioCard,.sideStatus,.toast{border-radius:16px}.tabs,.tabs button,a.ghost.actionLink,a.outline.actionLink,a.primary.actionLink,a.secondary.actionLink,button.danger,button.ghost,button.outline,button.primary,button.secondary{border-radius:999px}.ajaxTablePageInput,.ajaxTablePageSize select,.ajaxTablePager button,.iconBtn,.modalClose,.subToggle,.toggle,button.small{border-radius:12px}.checkField,.fileStatus,.offerResult,.offerResultList,.searchSelectOption,input,select,textarea{border-radius:14px}.card,.costTreeAddCard,.costTreeCategory,.loginCard,.panel,.roleInfoCard{border-radius:24px}.tablewrap{border-radius:20px}.appModalDialog{border-radius:26px}.confirmModal .appModalDialog{border-radius:24px}@media (max-width:900px){.app>aside,aside,aside#appSidebar{background:rgba(var(--rgb-surface),.96);box-shadow:24px 0 60px rgba(var(--rgb-text),.16)}}@media (max-width:720px){.checkboxField.span2,.checkboxField.span3{grid-column:1/-1}.checkField{width:100%}.card,.costTreeAddCard,.costTreeCategory,.costTreeSubItem,.loginCard,.panel,.roleInfoCard{border-radius:20px}.appModalDialog{border-radius:18px 18px 0 0}}body,button,input,select,textarea{font-family:"General Sans",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a.primary.actionLink,button.primary{background:var(--blue);border-color:var(--blue);box-shadow:0 10px 18px rgba(var(--rgb-primary),.17)}.tabs button.active,a.secondary.actionLink,button.secondary,button.small.secondary{background:var(--blue-soft);color:var(--color-text);border-color:var(--blue-soft-border)}.adminContextMenu button:focus,.adminContextMenu button:hover,.nav a.active,.nav a:focus-visible,.nav a:hover,.nav button.active,.nav button:hover{background:linear-gradient(135deg,rgba(var(--rgb-focus),.11),rgba(var(--rgb-chart-mint),.09));border-color:rgba(var(--rgb-focus),.16);color:var(--color-text)}.brand span{color:var(--muted)}.adminContextMenu button:focus-visible,.assignmentLink:focus-visible,.iconBtn:focus-visible,.modalClose:focus-visible,.offerResult:focus-visible,.paymentDetailLink:focus-visible,.searchSelectInput:focus-visible,.switchBtn:focus-visible,a:focus-visible,button:focus-visible{outline-color:rgba(var(--rgb-primary),.52)}.loginShell,body{background:radial-gradient(circle at 8% -8%,rgba(var(--rgb-primary),.13) 0,rgba(var(--rgb-primary),0) 34%),radial-gradient(circle at 92% 2%,rgba(var(--rgb-chart-mint),.12) 0,rgba(var(--rgb-chart-mint),0) 32%),linear-gradient(180deg,var(--color-page-bg) 0,var(--color-nav-active-bg) 100%)}.adminContextNotice{border-color:var(--color-secondary-border);background:linear-gradient(180deg,var(--color-page-bg),var(--color-white));box-shadow:0 12px 30px rgba(var(--rgb-primary),.08)}.kpiHighlightForecast,.panel.editing{border-color:var(--color-secondary-border);box-shadow:0 18px 44px rgba(var(--rgb-primary),.12)}.primary.actionLink,a.primary,a.primary.actionLink,button.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-primary)}.primary.actionLink:hover,a.primary.actionLink:hover,a.primary:hover,button.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-on-primary)}.secondary.actionLink,.tabs button.active,a.secondary,a.secondary.actionLink,button.secondary,button.small.secondary{background:var(--color-secondary-bg);border-color:var(--color-secondary-border);color:var(--color-secondary-text);box-shadow:none}.ghost.actionLink,.outline.actionLink,a.ghost,a.ghost.actionLink,a.outline,a.outline.actionLink,button.ghost,button.outline{background:var(--color-outline-bg);border-color:var(--color-outline-border);color:var(--color-outline-text);box-shadow:none}button.danger{background:var(--color-danger-soft);border-color:var(--color-danger-border);color:var(--color-danger)}button.danger:focus,button.danger:hover{background:var(--color-danger-soft);border-color:var(--color-danger-border);color:var(--color-danger-hover)}input:disabled,input[readonly],select:disabled,textarea:disabled,textarea[readonly]{background:var(--color-disabled-bg);border-color:var(--color-disabled-border);color:var(--color-disabled-text);opacity:1;cursor:not-allowed}input:disabled::placeholder,input[readonly]::placeholder,textarea:disabled::placeholder,textarea[readonly]::placeholder{color:var(--color-disabled-text)}.checkField:has(input:disabled),.radioCard:has(input:disabled){background:var(--color-disabled-bg);border-color:var(--color-disabled-border);color:var(--color-disabled-text);cursor:not-allowed}.tablewrap{background:var(--color-table-bg);border:0;box-shadow:none}.tablewrap table,table{background:var(--color-table-bg);border:0;border-collapse:separate;border-spacing:0;color:var(--color-text);font-size:var(--font-size-table);line-height:var(--line-height-table)}#estimateListTable th,#offerListTable th,#overviewTable th,#paymentListTable th,.projectRoleMatrix th,.roleMatrix th,.tablewrap table th[data-sort],.tablewrap th,table th,table th[data-sort],th{background:var(--color-table-header-bg);border:0;border-right:1px solid var(--color-table-border);border-bottom:1px solid var(--color-table-border);color:var(--color-table-header-text);font-size:var(--font-size-table-header);font-weight:var(--font-weight-table-header);line-height:var(--line-height-table-header);outline:0}.projectRoleMatrix th *,.roleMatrix th *,.tablewrap th *,table th *,th *{color:var(--color-table-header-text);font-size:inherit;font-weight:var(--font-weight-table-header)}.tablewrap tbody tr td,.tablewrap td,table tbody tr td,table td,tbody tr td,td,tr:nth-child(2n):not(.groupRow):not(.detailRow):not(.offerPaymentsRow):not(.tenantProjectTools) td{background:var(--color-table-row-bg);border:0;border-right:1px solid var(--color-table-border);border-bottom:1px solid var(--color-table-border);color:var(--color-text);font-size:var(--font-size-table-cell);font-weight:var(--font-weight-table);line-height:var(--line-height-table);outline:0}.tablewrap td:last-child,.tablewrap th:last-child,table td:last-child,table th:last-child,td:last-child,th:last-child{border-right:0}.tablewrap tbody tr:last-child td,table tbody tr:last-child td,tbody tr:last-child td{border-bottom:0}#overviewTable .detailRow td,.detailRow td,.offerPaymentsRow td,.tenantProjectTools td{background:var(--color-table-detail-bg);color:var(--color-text-secondary);font-size:var(--font-size-table-cell);font-weight:var(--font-weight-table)}.projectRoleMatrix td *,.roleMatrix td *,.tablewrap td *,table td *{font-weight:var(--font-weight-table)}.projectRoleMatrix td:first-child,.roleMatrix td:first-child,.tablewrap .nestedPaymentsTitle,.tablewrap td b,.tablewrap td strong,table .nestedPaymentsTitle,table td b,table td strong{font-size:var(--font-size-table-emphasis);font-weight:var(--font-weight-table)}.num,.tablewrap .num,table .num{font-size:var(--font-size-table-cell);font-weight:var(--font-weight-table)}.badge,.tablewrap .badge,table .badge{font-size:var(--font-size-table-badge);font-weight:var(--font-weight-table);line-height:var(--line-height-table-compact)}.deltaBadge,.deltaBadge.bad,.deltaBadge.deltaHighlight.bad,.deltaBadge.deltaHighlight.good,.deltaBadge.good,.deltaBadge.neutral,.tablewrap .deltaBadge,.tablewrap .deltaBadge.bad,.tablewrap .deltaBadge.deltaHighlight.bad,.tablewrap .deltaBadge.deltaHighlight.good,.tablewrap .deltaBadge.good,.tablewrap .deltaBadge.neutral,table .deltaBadge,table .deltaBadge.bad,table .deltaBadge.deltaHighlight.bad,table .deltaBadge.deltaHighlight.good,table .deltaBadge.good,table .deltaBadge.neutral{font-size:var(--font-size-table-delta);font-weight:var(--font-weight-table);line-height:var(--line-height-table-compact)}.tablewrap th .num,.tablewrap th.num,table th .num,table th.num,th .num,th.num{color:var(--color-table-header-text);font-size:var(--font-size-table-header);font-weight:var(--font-weight-table-header)}.groupRow td,.tablewrap .groupRow td,table .groupRow td{background:var(--color-table-group-bg);color:var(--color-table-header-text);font-size:var(--font-size-table-group);font-weight:var(--font-weight-table);line-height:var(--line-height-table-compact)}.groupRow .badge,.groupRow .deltaBadge,.groupRow .deltaBadge.deltaHighlight.good,.groupRow .deltaBadge.good,.groupRow .deltaBadge.neutral,.groupRow .num,.groupRow td *,.tablewrap .groupRow .badge,.tablewrap .groupRow .deltaBadge,.tablewrap .groupRow .deltaBadge.deltaHighlight.good,.tablewrap .groupRow .deltaBadge.good,.tablewrap .groupRow .deltaBadge.neutral,.tablewrap .groupRow .num,.tablewrap .groupRow td *,table .groupRow .badge,table .groupRow .deltaBadge,table .groupRow .deltaBadge.deltaHighlight.good,table .groupRow .deltaBadge.good,table .groupRow .deltaBadge.neutral,table .groupRow .num,table .groupRow td *{font-size:var(--font-size-table-group);font-weight:var(--font-weight-table);line-height:var(--line-height-table-compact)}.sortHead:not([aria-sort])::after,.sortHead[aria-sort=ascending]::after,.sortHead[aria-sort=descending]::after,table th[data-sort].sortedAsc::after,table th[data-sort].sortedDesc::after,table th[data-sort]::after{color:var(--color-table-header-text);font-size:var(--font-size-table-sort-icon);font-weight:var(--font-weight-table-header)}.assignmentLink,.badge.role,.docNameLink,.tablewrap th[data-sort].sortedAsc::after,.tablewrap th[data-sort].sortedDesc::after,a,table th[data-sort].sortedAsc::after,table th[data-sort].sortedDesc::after{color:var(--color-text)}.barfill,.miniProgressFill{background:linear-gradient(90deg,var(--color-chart-blue),var(--color-chart-mint))}.cashflowBar,.cashflowBar.neg{background:linear-gradient(180deg,var(--color-chart-blue),var(--color-chart-mint))}.barbg.splitBar .paidSplit{background:linear-gradient(90deg,var(--color-chart-blue),var(--color-chart-mint))}.barbg.splitBar .openSplit,.barfill.open,.miniProgressFill.open{background:linear-gradient(90deg,var(--color-warning),var(--color-chart-orange))}.barfill.neg{background:linear-gradient(90deg,var(--color-success-strong),var(--color-chart-mint))}.donut{background:conic-gradient(var(--color-chart-track) 0 100%)}.adminContextMenu button:focus-visible,.assignmentLink:focus-visible,.iconBtn:focus-visible,.modalClose:focus-visible,.offerResult:focus-visible,.paymentDetailLink:focus-visible,.searchSelectInput:focus-visible,.switchBtn:focus-visible,a:focus-visible,button:focus-visible{outline-color:rgba(var(--rgb-focus),.52)}.tablewrap,.tablewrap table,table{background:var(--color-table-bg)}#overviewTable .detailRow td,.detailRow td,.groupRow td,.offerPaymentsRow td,.tablewrap .groupRow td,.tablewrap tbody tr td,.tenantProjectTools td,table .groupRow td,table tbody tr td,tbody tr td,tr:nth-child(2n):not(.groupRow):not(.detailRow):not(.offerPaymentsRow):not(.tenantProjectTools) td{background:var(--color-table-row-bg)}:root{--sidebar-width:270px;--sidebar-collapsed-width:96px;--font-size-table:13px;--font-size-table-cell:13px}.app{grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100dvh;width:100%}.app.sidebarCollapsed{grid-template-columns:var(--sidebar-collapsed-width) minmax(0,1fr)}#appSidebar{min-width:0;transition:width .18s,padding .18s}.nav .logoutNav.navItem,.nav a.navItem,.nav button.navItem,.navItem,.sidebarCollapseToggle{display:flex;align-items:center;gap:10px;min-height:42px;width:100%;text-align:left}.sidebarCollapseToggle{border:1px solid var(--line);border-radius:14px;background:rgba(var(--rgb-surface),.72);color:var(--muted);font-family:inherit;font-size:13px;padding:9px 11px;margin:0;cursor:pointer}.sidebarCollapseToggle:focus-visible,.sidebarCollapseToggle:hover{background:linear-gradient(135deg,rgba(var(--rgb-focus),.11),rgba(var(--rgb-chart-mint),.09));color:var(--blue)}.navIcon{width:17px;height:17px;flex:0 0 17px}.brandText,.navLabel,.sidebarContextBox{transition:opacity .14s,visibility .14s}.app.sidebarCollapsed #appSidebar{padding-left:10px;padding-right:10px}.app.sidebarCollapsed .brand{justify-content:center}.app.sidebarCollapsed .brandText,.app.sidebarCollapsed .navLabel,.app.sidebarCollapsed .sidebarContextBox{opacity:0;visibility:hidden;width:0;height:0;overflow:hidden}.app.sidebarCollapsed .navItem,.app.sidebarCollapsed .sidebarCollapseToggle{justify-content:center;padding-left:0;padding-right:0}.app.sidebarCollapsed .logo{width:40px;height:40px}.sidebarContextBox{display:grid;gap:8px}.sidebarContextList{display:grid;gap:6px;margin:0}.sidebarContextList div{display:grid;gap:1px}.sidebarContextList dt{color:var(--color-text-muted);font-size:11px;line-height:1.2}.sidebarContextList dd{margin:0;color:var(--ink);font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.sidebarContextDivider{height:1px;background:var(--line);margin:1px 0}.sidebarContextSubTitle{font-size:12px}select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%235F657A' d='M4.2 6.2a.7.7 0 0 1 1 0L8 9l2.8-2.8a.7.7 0 1 1 1 1l-3.3 3.3a.7.7 0 0 1-1 0L4.2 7.2a.7.7 0 0 1 0-1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;background-size:15px 15px}.ajaxTablePageSize select{padding-right:34px;background-position:right 13px center}.card .value,.cashflowValue,.kpiLine strong,.kpiMain .value,.num{white-space:nowrap}.expandCell,.expandHead{width:38px;min-width:38px;max-width:38px;text-align:center}.expandCell{padding-left:8px;padding-right:6px}.expandToggle.toggle{margin:0;border:0;padding:0;font-family:inherit;line-height:1}.expandableRow{cursor:pointer}.detailRow,.expandableDetailRow{cursor:default}.detailPanel{padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(var(--rgb-surface),.72)}.detailGrid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.detailSection{display:grid;align-content:start;gap:8px;min-width:0}.detailSectionTitle{margin:0;color:var(--muted);font-size:12px;line-height:1.25}.detailSectionBody{min-width:0}.detailBadgeRow,.detailValue{min-height:31px;display:flex;align-items:center}.compactDocList,.detailDocList,.detailNestedList,.modalDocList{gap:6px}.compactDocList .docItem,.detailDocList .docItem,.modalDocList .docItem{background:var(--color-white);border-color:var(--line)}.paymentDetailLink{min-width:0}.assignmentLinkText,.assignmentText,.paymentDetailLink>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.costTreeAddGridCombined{grid-template-columns:1fr}.costTreeAddCombined{display:grid;gap:14px}.costTreeAddHeader{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.costTreeAddHeader h3{margin:0}.segmentedControl{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--color-surface-soft)}.segmentedControl button{border:0;border-radius:999px;background:0 0;color:var(--muted);padding:7px 12px;font-family:inherit;font-size:13px;cursor:pointer}.segmentedControl button.active{background:var(--color-white);color:var(--blue);box-shadow:0 8px 18px rgba(var(--rgb-text),.07)}.costTreeAddForm{margin:0}.costTreeInlineForm{grid-template-columns:minmax(180px,1fr) 82px 32px}.costTreeSubEditor .costTreeInlineForm{grid-template-columns:minmax(150px,220px) minmax(180px,1fr) 82px 32px}#overviewTable .barrow.position [data-tooltip],.combinedBudgetList .barrow.position [data-tooltip],[data-tooltip]{cursor:default}.navItem[data-tooltip],.sidebarCollapseToggle[data-tooltip],a.iconBtn[data-tooltip],a[data-action][data-tooltip],button.iconBtn[data-tooltip]:not(:disabled),button[data-action][data-tooltip]:not(:disabled){cursor:pointer}@media (max-width:1100px){.detailGrid{grid-template-columns:1fr}}@media (max-width:980px){.app,.app.sidebarCollapsed{display:block}.sidebarCollapseToggle{display:none}.app.sidebarCollapsed .brandText,.app.sidebarCollapsed .navLabel,.app.sidebarCollapsed .sidebarContextBox{opacity:1;visibility:visible;width:auto;height:auto;overflow:visible}}@media (min-width:981px){main{min-width:0;max-width:none}.app.sidebarCollapsed #appSidebar{overflow:visible;z-index:20}.app.sidebarCollapsed .brand{display:flex;justify-content:center;align-items:center;width:100%;padding-left:0;padding-right:0}.app.sidebarCollapsed .brand .logo{margin-left:auto;margin-right:auto}.app.sidebarCollapsed .nav .logoutNav.navItem,.app.sidebarCollapsed .nav a.navItem,.app.sidebarCollapsed .nav button.navItem,.app.sidebarCollapsed .navItem,.app.sidebarCollapsed .sidebarCollapseToggle{position:relative;justify-content:center;align-items:center;gap:0;text-align:center}.app.sidebarCollapsed .navItem .iconSvg,.app.sidebarCollapsed .sidebarCollapseToggle .iconSvg{margin:0}.app.sidebarCollapsed .navBottomActions .logoutNav.navItem,.app.sidebarCollapsed .navBottomActions .sidebarCollapseToggle{display:flex;justify-content:center;align-items:center}}