
:root{
  --bg:#edf1f6; --sidebar:#e5eaf1; --panel:#f8fafc; --panel2:#eef2f7; --text:#17202d; --muted:#687387; --border:#d5dce6;
  --accent:#3b6eea; --accentSoft:rgba(59,110,234,.12); --success:#188654; --warning:#b77800; --danger:#c43e4b; --shadow:0 8px 28px rgba(34,48,73,.08);
  --input:#fff; --chip:#e9eef5; --top:#f6f8fb;
}
html[data-theme="light"]{
  --bg:#f4f6f9; --sidebar:#fff; --panel:#fff; --panel2:#f7f8fa; --text:#18202b; --muted:#6a7380; --border:#dfe4ea;
  --accent:#315fd6; --accentSoft:rgba(49,95,214,.10); --success:#178451; --warning:#a66d00; --danger:#c93b49; --shadow:0 8px 26px rgba(30,40,60,.07);
  --input:#fff; --chip:#f0f3f7; --top:#fff;
}
html[data-theme="dark"]{
  --bg:#0f141d; --sidebar:#121925; --panel:#171f2c; --panel2:#1b2534; --text:#ecf1f7; --muted:#93a0b3; --border:#29364a;
  --accent:#6c94ff; --accentSoft:rgba(108,148,255,.14); --success:#42b77b; --warning:#e4aa38; --danger:#ed6b76; --shadow:0 10px 34px rgba(0,0,0,.22);
  --input:#121925; --chip:#202b3b; --top:#151d29;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}
button,input,select,textarea{font:inherit} button{cursor:pointer;color:inherit}.app{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column;gap:18px}
.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.logo{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--accent),#30a66f)}
.brand strong{display:block;font-size:15px}.brand small{color:var(--muted);font-size:11px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:10px;color:var(--muted);display:flex;gap:10px;align-items:center}.nav button:hover{background:var(--panel2);color:var(--text)}.nav button.active{background:var(--accentSoft);color:var(--accent);font-weight:700}.nav .ico{width:20px;text-align:center}
.side-foot{margin-top:auto;padding:10px 9px;color:var(--muted);font-size:11px;line-height:1.45;border-top:1px solid var(--border)}
.main{min-width:0}.topbar{height:68px;background:var(--top);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.topbar h1{margin:0;font-size:18px}.top-actions{display:flex;align-items:center;gap:9px}.user{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.user-menu-wrap{position:relative}.user{cursor:pointer;user-select:none}.user:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.user-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:150px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.user-menu .btn{width:100%;justify-content:flex-start}.avatar{width:28px;height:28px;border-radius:8px;background:var(--accentSoft);color:var(--accent);display:grid;place-items:center;font-weight:800}.user small{display:block;color:var(--muted);font-size:10px}
.content{padding:22px 24px 36px;max-width:1480px;margin:0 auto}.view{display:none}.view.active{display:block}.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:var(--panel);border:1px solid var(--border);border-radius:15px;padding:15px;box-shadow:var(--shadow)}.card.flat{box-shadow:none}.card h3{margin:0 0 8px;font-size:14px}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.section-title h2,.section-title h3{margin:0}.section-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{font-size:24px;font-weight:800;margin-top:6px;letter-spacing:-.3px}.kpi .sub{font-size:11px;color:var(--muted);margin-top:6px}.kpi .trend{color:var(--success);font-weight:700}.danger-txt{color:var(--danger)}.warning-txt{color:var(--warning)}.success-txt{color:var(--success)}
.btn{border:1px solid var(--border);background:var(--panel);padding:8px 11px;border-radius:9px}.btn:hover{background:var(--panel2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:transparent}.btn.small{padding:5px 8px;font-size:11px}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger),transparent 70%)}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:700;background:var(--chip);color:var(--muted);white-space:nowrap}.badge.ok{color:var(--success);background:color-mix(in srgb,var(--success),transparent 88%)}.badge.warn{color:var(--warning);background:color-mix(in srgb,var(--warning),transparent 87%)}.badge.err{color:var(--danger);background:color-mix(in srgb,var(--danger),transparent 88%)}.badge.accent{color:var(--accent);background:var(--accentSoft)}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:760px;background:var(--panel)}.table th,.table td{padding:10px 11px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--panel2)}.table tr:last-child td{border-bottom:0}.table tr.clickable:hover td{background:var(--accentSoft)}.num{text-align:right!important;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:11px}.mono{font-variant-numeric:tabular-nums}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.filters{display:flex;gap:8px;flex-wrap:wrap}.input{border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:9px;padding:8px 10px;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accentSoft)}.search{min-width:250px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:var(--muted);font-weight:700}.field textarea{min-height:80px;resize:vertical}
.notice{border-left:3px solid var(--accent);background:var(--accentSoft);padding:10px 11px;border-radius:8px;font-size:12px}.notice.warn{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning),transparent 90%)}.notice.danger{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger),transparent 90%)}
.attention-list{display:flex;flex-direction:column;gap:8px}.attention{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.attention:last-child{border-bottom:0}.attention .dot{width:28px;height:28px;border-radius:8px;background:var(--panel2);display:grid;place-items:center}.attention strong{font-size:12px}.attention span{font-size:11px;color:var(--muted)}
.progress{height:8px;border-radius:999px;background:var(--panel2);overflow:hidden}.progress>i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.pipeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lane{background:var(--panel2);border:1px solid var(--border);border-radius:14px;padding:11px}.lane-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.lane-head strong{font-size:12px}.deal{background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:11px;margin-bottom:8px}.deal:last-child{margin-bottom:0}.deal-title{font-weight:700;font-size:12px}.deal-meta{display:flex;justify-content:space-between;gap:10px;margin-top:7px;font-size:11px;color:var(--muted)}
.split-main{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(520px,1.55fr);gap:14px}.project-row{padding:11px;border:1px solid var(--border);border-radius:11px;margin-bottom:8px;background:var(--panel);cursor:pointer}.project-row:hover,.project-row.active{border-color:var(--accent);background:var(--accentSoft)}.project-row .top{display:flex;justify-content:space-between;gap:9px}.project-row .name{font-weight:750}.project-row .meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:10px;margin-top:6px}.project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.project-head h2{margin:0;font-size:18px}.project-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.project-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.mini-kpi{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:9px}.mini-kpi span{display:block;color:var(--muted);font-size:10px}.mini-kpi strong{display:block;margin-top:4px;font-size:14px}
.tabs{display:flex;gap:5px;border-bottom:1px solid var(--border);margin:15px -15px 0;padding:0 15px;overflow:auto}.tabs button{border:0;background:transparent;padding:10px 9px;color:var(--muted);white-space:nowrap}.tabs button.active{color:var(--accent);font-weight:700;border-bottom:2px solid var(--accent)}.tab-panel{display:none;padding-top:14px}.tab-panel.active{display:block}.kv{display:grid;grid-template-columns:190px minmax(0,1fr);gap:8px 12px;font-size:12px}.kv>div:nth-child(odd){color:var(--muted)}
.fin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fin-table{width:100%;border-collapse:collapse}.fin-table td{padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}.fin-table tr:last-child td{border-bottom:0}.fin-table td:last-child{text-align:right;font-weight:700}.source{font-size:10px;color:var(--muted);font-weight:400!important}.task{display:grid;grid-template-columns:minmax(0,1fr) 110px 100px 95px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.task:last-child{border-bottom:0}.task strong{font-size:12px}.task small{color:var(--muted)}
.doc-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.doc-row:last-child{border-bottom:0}.doc-ico{width:28px;height:28px;border-radius:8px;background:var(--panel2);display:grid;place-items:center}.folder-box{padding:12px;border:1px dashed var(--border);border-radius:10px;background:var(--panel2);display:flex;justify-content:space-between;gap:12px;align-items:center}
.cf-chart{display:flex;align-items:flex-end;gap:8px;height:145px;padding-top:10px}.barcol{flex:1;min-width:35px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.bar{width:70%;min-height:4px;border-radius:6px 6px 2px 2px;background:var(--accent)}.bar.neg{background:var(--danger)}.barlabel{font-size:9px;color:var(--muted);margin-top:5px}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.theme-card{border:2px solid var(--border);border-radius:13px;padding:10px;cursor:pointer;background:var(--panel)}.theme-card.active{border-color:var(--accent)}.theme-preview{height:85px;border-radius:9px;border:1px solid var(--border);padding:7px;display:grid;grid-template-columns:22px 1fr;gap:6px}.pv-side{border-radius:5px}.pv-main{display:flex;flex-direction:column;gap:5px}.pv-top{height:13px;border-radius:4px}.pv-row{display:grid;grid-template-columns:1fr 1fr;gap:5px}.pv-box{height:45px;border-radius:5px}.theme-name{font-weight:700;margin-top:7px}.theme-desc{font-size:10px;color:var(--muted)}
.modal-wrap{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;display:none;align-items:flex-start;justify-content:center;padding:9vh 16px 20px;overflow:auto}.modal-wrap.open{display:flex}.modal{width:min(640px,96vw);background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 70px rgba(0,0,0,.28);padding:17px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-head h3{margin:0}.modal-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.modal-form .full{grid-column:1/-1}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}
.toast{position:fixed;right:20px;bottom:20px;background:var(--text);color:var(--panel);padding:9px 12px;border-radius:10px;box-shadow:var(--shadow);font-size:12px;z-index:200;display:none}.toast.show{display:block}
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.split-main{grid-template-columns:1fr}.project-kpis{grid-template-columns:repeat(2,1fr)}.pipeline{grid-template-columns:1fr}.fin-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--border)}.nav{display:grid;grid-template-columns:repeat(3,1fr)}.side-foot{display:none}.topbar{position:relative;padding:0 14px}.content{padding:14px}.g4,.g3,.g2,.theme-grid{grid-template-columns:1fr}.project-kpis{grid-template-columns:1fr 1fr}.task{grid-template-columns:1fr}.split-main{display:block}.search{min-width:0;width:100%}.modal-form{grid-template-columns:1fr}.modal-form .full{grid-column:auto}}

.text-link{color:var(--accent);font-weight:650;text-decoration:none}.text-link:hover{text-decoration:underline}.itemline .inline-actions{justify-content:flex-end;flex-wrap:wrap}.card .kv .small{margin-top:3px}

/* v0.7 — lekka warstwa pracy / interakcji w lewym panelu */
.work-side{margin-top:2px;padding:12px 7px 10px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px}
.work-side-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;padding:0 5px 5px}
.work-side-head button{border:0;background:var(--accentSoft);color:var(--accent);width:24px;height:24px;border-radius:7px;font-weight:800;line-height:1}
.work-side>button{border:0;background:transparent;color:var(--muted);padding:8px 7px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;text-align:left;font-size:11px}
.work-side>button:hover,.work-side>button.active{background:var(--panel2);color:var(--text)}
.work-side>button.active{box-shadow:inset 2px 0 0 var(--accent);color:var(--accent);font-weight:700}
.work-side>button b{min-width:22px;padding:2px 6px;border-radius:999px;background:var(--chip);font-size:10px;text-align:center;color:var(--muted)}
.work-side>button[data-work-filter="overdue"] b:not(:empty){color:var(--danger)}
.work-board{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}
.work-list{display:flex;flex-direction:column;gap:8px}
.work-card{border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:12px;cursor:pointer}
.work-card:hover,.work-card.active{border-color:var(--accent);background:var(--accentSoft)}
.work-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.work-card-title{font-weight:750;font-size:13px}.work-card-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:10px}
.work-detail{position:sticky;top:88px}.work-comments{display:flex;flex-direction:column;gap:8px;margin-top:10px}.work-comment{padding:8px 9px;background:var(--panel2);border-radius:9px;font-size:11px}.work-comment small{display:block;color:var(--muted);margin-bottom:3px}.priority-urgent{color:var(--danger)}.priority-high{color:var(--warning)}
@media(max-width:1050px){.work-board{grid-template-columns:1fr}.work-detail{position:static}}
@media(max-width:720px){.work-side{display:none}}

/* v0.10.1 — miesięczny grafik czasu pracy */
.time-matrix-wrap{margin-top:12px;max-height:520px}
.time-matrix{min-width:1280px;font-size:10px}
.time-matrix th,.time-matrix td{padding:6px 5px;white-space:nowrap}
.time-matrix .sticky-col{position:sticky;left:0;z-index:2;background:var(--panel);min-width:150px;text-align:left}
.time-matrix thead .sticky-col{z-index:4}
.time-matrix thead th{position:sticky;top:0;z-index:3;background:var(--panel)}
.matrix-cell{cursor:pointer;min-width:38px;vertical-align:middle}
.matrix-cell:hover{background:var(--accentSoft)}
.matrix-cell b{display:block;font-size:11px}
.matrix-cell span{display:block;max-width:42px;overflow:hidden;text-overflow:ellipsis;font-size:8px;color:var(--muted)}
.matrix-cell.ok{background:color-mix(in srgb,var(--success),transparent 92%)}
.matrix-cell.warn{background:color-mix(in srgb,var(--warning),transparent 90%)}
.matrix-cell.err{background:color-mix(in srgb,var(--danger),transparent 90%)}

/* v0.11 Pilot Ready — tablet/mobile + administracja */
.audit-list{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:10px}.audit-row{padding:8px 9px;border-bottom:1px solid var(--border);font-size:11px}.audit-row:last-child{border-bottom:0}.audit-row:hover{background:var(--panel2)}
@media(max-width:900px){
 .app{display:block}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--border);padding:10px 12px;gap:10px}.brand{padding:0 4px}.nav{display:flex;flex-direction:row;overflow-x:auto;gap:5px;padding-bottom:3px}.nav button{flex:0 0 auto;min-height:42px;white-space:nowrap;padding:9px 10px}.work-side{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));overflow-x:auto;border-bottom:0;padding:8px 0}.work-side-head{grid-column:1/-1}.side-foot{display:none}.topbar{top:0;height:auto;min-height:62px;padding:8px 14px;gap:8px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.content{padding:14px}.split-main{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.pipeline{grid-template-columns:1fr}.table th,.table td{padding:9px}.modal-wrap{padding:4vh 10px 14px}.modal{width:min(720px,98vw)}
}
@media(max-width:620px){
 .sidebar{padding:8px}.brand .logo{width:32px;height:32px}.nav button{font-size:11px;min-height:40px}.work-side{display:none}.topbar{align-items:flex-start}.topbar h1{font-size:16px;padding-top:6px}.top-actions{gap:5px}.top-actions>.btn{padding:7px 8px}.context-switch select{min-width:110px;max-width:145px}.content{padding:10px}.g4,.g3,.g2,.theme-grid,.metric-grid,.project-kpis{grid-template-columns:1fr}.card{padding:12px;border-radius:12px}.project-head{flex-direction:column}.folder-box{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch}.filters{width:100%}.filters .input{flex:1 1 140px}.modal-form,.form-grid{grid-template-columns:1fr}.modal-form .full,.form-grid .full{grid-column:auto}.toast{left:10px;right:10px;bottom:10px}.time-matrix-wrap{max-height:65vh}
}


/* v0.12 — Dashboard Zarządzającego 2.0 */
.exec-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.exec-kpi-grid .kpi .value{font-size:21px}.exec-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:14px}.exec-attention-card{min-height:330px}.attention-btn{width:100%;border:0;background:transparent;color:inherit;text-align:left;font:inherit}.attention-btn:hover{background:var(--panel2);border-radius:9px}.executive-table{min-width:1080px}.exec-progress{display:grid;grid-template-columns:42px minmax(80px,1fr);gap:6px;align-items:center}.exec-progress span{font-size:10px;color:var(--muted)}.cash-horizon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cash-horizon{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);display:flex;flex-direction:column;gap:4px}.cash-horizon>span{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase}.cash-horizon>strong{font-size:16px}.cash-horizon>small{font-size:9px;color:var(--muted)}.compact-grid{gap:8px}
@media(max-width:1280px){.exec-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.exec-layout{grid-template-columns:1fr}.exec-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.exec-kpi-grid,.cash-horizon-grid{grid-template-columns:1fr}.exec-kpi-grid .kpi .value{font-size:20px}}

/* v0.12.1 — controlling / layout fix */
.finance-kpi-edit .kpi{min-width:0}.finance-kpi-edit .kpi .value{min-width:0}.finance-kpi-edit .kpi .value .input{display:block;width:100%;max-width:100%;min-width:0;font-size:18px;font-weight:750}
.finance-cost-table{min-width:980px}.finance-cost-table th,.finance-cost-table td{vertical-align:top}.finance-cost-table .input{width:100%;max-width:150px;min-width:92px}
.project-state-badges{flex-wrap:wrap}
@media(max-width:760px){.finance-cost-table{min-width:900px}.finance-kpi-edit .kpi .value .input{font-size:16px}}

/* v0.14.0 — Pipeline: umowy ramowe + Karty/Kompakt/Tabela */
.pipeline-toolbar-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.view-switch{display:flex;gap:4px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.view-switch .btn{border:0;background:transparent}.view-switch .btn.primary{background:var(--accent);color:#fff}
.framework-section{background:var(--panel2);border:1px solid var(--border);border-radius:15px;padding:12px}.framework-section>.section-title{margin-bottom:10px}.framework-card{background:var(--panel);border:1px solid var(--border);border-radius:11px;overflow:hidden;margin-bottom:8px}.framework-card:last-child{margin-bottom:0}.framework-card.expanded{border-color:color-mix(in srgb,var(--accent),var(--border) 55%)}
.framework-head{width:100%;border:0;background:transparent;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;text-align:left}.framework-head:hover{background:var(--accentSoft)}.framework-main{display:flex;align-items:center;gap:8px;min-width:0}.framework-main>div{min-width:0}.framework-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.framework-caret{width:16px;color:var(--accent);font-weight:800}.framework-stats{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);white-space:nowrap}.framework-stats b{color:var(--text)}
.framework-body{border-top:1px solid var(--border);padding:10px;background:var(--panel2)}.framework-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.mini-pipeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mini-lane{border:1px solid var(--border);border-radius:10px;padding:8px;background:var(--panel2)}.framework-closed{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.deal.compact{padding:0;overflow:hidden}.compact-head{width:100%;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:16px minmax(0,1fr) auto 44px 86px;gap:7px;align-items:center;padding:9px 9px;text-align:left}.compact-head:hover{background:var(--accentSoft)}.compact-caret{color:var(--accent);font-weight:800}.compact-title{display:flex;flex-direction:column;min-width:0}.compact-title b,.compact-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-title b{font-size:11px}.compact-title small{font-size:9px;color:var(--muted);margin-top:2px}.compact-value{font-weight:750;font-size:11px;white-space:nowrap}.compact-prob,.compact-next{font-size:10px;color:var(--muted);white-space:nowrap;text-align:right}.compact-body{border-top:1px solid var(--border);padding:9px;background:var(--panel)}.pipeline-actions{margin-top:8px;flex-wrap:wrap}
.pipe-table-row{cursor:pointer}.pipe-table-row:hover td{background:var(--accentSoft)}.pipeline-table-details td{background:var(--panel2);padding:0!important}.pipeline-table-details .compact-body{border-top:0;padding:10px 12px}.pipeline-table{min-width:980px}
@media(max-width:1100px){.mini-pipeline{grid-template-columns:1fr}.framework-head{align-items:flex-start}.framework-stats{max-width:46%}}
@media(max-width:700px){.pipeline-toolbar-right{width:100%;justify-content:space-between}.view-switch{order:2}.framework-head{flex-direction:column}.framework-stats{max-width:none;justify-content:flex-start}.compact-head{grid-template-columns:16px minmax(0,1fr) auto 40px}.compact-next{display:none}.framework-actions{align-items:flex-start;flex-direction:column}}

/* v0.14.1 — UX / kontrahenci / Pipeline archive */
.modal.wide{width:min(980px,96vw)}.modal.xwide{width:min(1180px,98vw)}
.contractor-detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:14px}
.contractor-detail-kv{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 14px;font-size:12px;align-items:start}
.contractor-detail-kv>div:nth-child(odd){color:var(--muted)}
.contractor-detail-kv>div:nth-child(even){min-width:0;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:760px){.modal.wide,.modal.xwide{width:min(98vw,720px)}.contractor-detail-grid{grid-template-columns:1fr}.contractor-detail-kv{grid-template-columns:120px minmax(0,1fr)}}

/* v0.14.2 — Cashflow UX / Help Hotfix */
.cf-chart-wrap{width:100%;overflow-x:auto}.cf-chart{display:block;width:100%;height:auto;min-height:220px;padding:0;overflow:visible}.cf-line{fill:none;stroke-width:2.4;vector-effect:non-scaling-stroke}.cf-line.cash{stroke:var(--accent)}.cf-line.funding{stroke:var(--success);stroke-dasharray:7 5}.cf-buffer-line{stroke:var(--warning);stroke-width:1.5;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.cf-zero-line{stroke:color-mix(in srgb,var(--text),transparent 66%);stroke-width:1.25;vector-effect:non-scaling-stroke}.cf-gridline{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.cf-axis{stroke:color-mix(in srgb,var(--muted),transparent 30%);stroke-width:1;vector-effect:non-scaling-stroke}.cf-axis-label,.cf-axis-title{fill:var(--muted);font-size:11px}.cf-axis-title{font-weight:700}.cf-hit{fill:transparent;stroke:transparent;stroke-width:10;cursor:crosshair}.cf-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:10px}.cf-legend span{display:flex;align-items:center;gap:5px}.cf-legend .lg{width:18px;height:3px;border-radius:99px;display:inline-block}.cf-legend .lg.cash{background:var(--accent)}.cf-legend .lg.funding{background:var(--success)}.cf-legend .lg.buffer{background:var(--warning)}
.cf-tabs{display:flex;gap:5px;border-bottom:1px solid var(--border);margin-bottom:14px;overflow:auto}.cf-tabs button{border:0;background:transparent;padding:10px 9px;color:var(--muted);white-space:nowrap}.cf-tabs button.active{color:var(--accent);font-weight:700;border-bottom:2px solid var(--accent)}.cf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.cf-scope{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 14px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);font-size:11px;color:var(--muted)}.cf-scope b{color:var(--text)}
.cf-list-filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.cf-list-filters .input{padding:6px 8px;font-size:11px}.cf-min-custom{width:130px}.cf-aging-summary{display:flex;flex-direction:column;gap:10px}.cf-aging-table{min-width:620px}.cf-source-details{border-top:1px solid var(--border);padding-top:9px}.cf-source-details summary{cursor:pointer;color:var(--accent);font-size:11px;font-weight:700;margin-bottom:9px}
.cf-help{display:flex;flex-direction:column;gap:9px;margin-top:12px}.cf-help details{border:1px solid var(--border);border-radius:10px;background:var(--panel2);overflow:hidden}.cf-help summary{cursor:pointer;padding:10px 12px;font-weight:750;font-size:12px}.cf-help-body{padding:0 12px 10px;color:var(--text);font-size:12px;line-height:1.55}.cf-help-body p{margin:7px 0}.cf-help-body b{font-weight:750}
@media(max-width:700px){.cf-chart{min-width:720px;min-height:220px}.cf-scope{align-items:flex-start;flex-direction:column}.cf-list-filters{align-items:stretch}.cf-list-filters .input{flex:1 1 160px}.cf-min-custom{width:auto}}

/* v0.15.0 — e-Doręczenia / Sprawy formalne */
.formal-channel-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}
.formal-channel-strip.muted-strip{opacity:.72}.formal-channel-value{font-size:18px!important}.formal-locked{display:flex;gap:11px;align-items:flex-start;margin-top:14px;padding:13px;border:1px dashed var(--warning);border-radius:11px;background:color-mix(in srgb,var(--warning),transparent 94%)}.formal-lock-icon{font-size:22px;line-height:1}
.formal-deadline-row{align-items:center}.checkline{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.45}.checkline input{margin-top:2px}
@media(max-width:760px){.formal-channel-strip{align-items:flex-start;flex-direction:column}.formal-deadline-row{align-items:flex-start;flex-direction:column}.formal-deadline-row .inline-actions{justify-content:flex-start}}

/* v0.19.0 — attention filters / outbound M365 */
.kpi-button{display:block;width:100%;border:1px solid var(--border);color:inherit;text-align:left;cursor:pointer;font:inherit}.kpi-button:hover{background:var(--panel2)}
.attention-filter-grid{display:flex;flex-wrap:wrap;gap:8px 16px;padding:9px 0}.attention-filter-grid .checkline{min-width:190px}

/* v0.24.1 — CashFlow Today integrated forecast */
.cf-today-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.cf-today-toolbar label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;font-weight:700}.cf-today-toolbar .input{width:auto;min-width:105px;padding:6px 8px}
.cf-today-triad{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.35fr);gap:14px}.cf-today-panel{min-width:0}.cf-today-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.cf-today-head h3{margin:0;font-size:16px}.cf-today-head h3 small{font-size:.76em;font-weight:600;color:var(--muted)}.cf-today-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.cf-today-step{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.13em;margin-bottom:2px}
.cf-today-metric,.cf-today-cash,.cf-today-mini-grid button,.cf-today-directions button,.cf-today-group{width:100%;border:1px solid var(--border);background:var(--panel);border-radius:10px;color:var(--text);text-align:left;cursor:pointer;transition:.12s ease}.cf-today-metric:hover,.cf-today-cash:hover,.cf-today-mini-grid button:hover,.cf-today-directions button:hover,.cf-today-group:hover{border-color:color-mix(in srgb,var(--accent),var(--border) 55%);background:var(--panel2)}.cf-today-metric{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:12px;margin-top:8px}.cf-today-metric b{font-size:18px}.cf-today-metric small{grid-column:1/-1;color:var(--muted)}.cf-today-switch{display:flex;align-items:flex-start;gap:7px;margin:7px 2px 12px;color:var(--muted);font-size:11px;line-height:1.35}.cf-today-switch input{margin-top:2px;accent-color:var(--accent)}
.cf-today-cash{padding:15px;background:var(--panel2)}.cf-today-cash>span{display:block;color:var(--muted);font-size:11px}.cf-today-cash>b{display:block;font-size:28px;letter-spacing:-.03em;margin:3px 0}.cf-today-cash>small{display:block;color:var(--muted);margin-top:2px}.cf-today-cash-actions{margin-top:8px}.cf-today-today{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.cf-today-today>p{margin:3px 0 8px;color:var(--muted);font-size:11px;line-height:1.35}.cf-today-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cf-today-mini-grid button{padding:9px;color:var(--muted);font-size:11px}.cf-today-mini-grid button b{display:block;color:var(--text);font-size:14px;margin-top:2px}.cf-today-opening{border-top:1px solid var(--border);margin-top:11px;padding-top:11px}.cf-today-opening span,.cf-today-opening small{display:block;color:var(--muted);font-size:11px}.cf-today-opening>b{display:block;font-size:21px;margin:2px 0}
.cf-today-directions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cf-today-directions button{padding:11px}.cf-today-directions span{display:block;color:var(--muted);font-size:11px}.cf-today-directions b{display:block;font-size:18px;margin:3px 0}.cf-today-directions small{color:var(--muted)}.cf-today-forecast .cf-today-directions .in b,.cf-today-forecast .cf-today-group.in b{color:#2f7a55}.cf-today-forecast .cf-today-directions .out b,.cf-today-forecast .cf-today-group.out b{color:#326da8}.cf-today-forecast .cf-today-group.in{border-left:3px solid rgba(47,122,85,.35)}.cf-today-forecast .cf-today-group.out{border-left:3px solid rgba(50,109,168,.35)}.cf-today-groups{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.cf-today-group{padding:9px}.cf-today-group span,.cf-today-group small{display:block;color:var(--muted);font-size:10px}.cf-today-group b{display:block;font-size:14px;margin:2px 0}
.cf-today-chart-card{margin-top:14px}.cf-today-chart-kpis{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px}.cf-today-chart-kpis b{color:var(--text)}.cf-today-chart-scroll{width:100%;overflow-x:auto}.cf-today-chart{display:block;width:100%;min-width:var(--cf-chart-min);height:270px}.cf-today-axis{stroke:color-mix(in srgb,var(--muted),transparent 30%);stroke-width:1}.cf-today-gridline{stroke:var(--border);stroke-width:1}.cf-today-zero{stroke:color-mix(in srgb,var(--danger),transparent 35%);stroke-dasharray:5 5}.cf-today-line{fill:none;stroke:var(--accent);stroke-width:2.4;vector-effect:non-scaling-stroke}.cf-today-area{fill:color-mix(in srgb,var(--accent),transparent 93%)}.cf-today-point{fill:var(--panel);stroke:var(--accent);stroke-width:1.6}.cf-today-tick{fill:var(--muted);font-size:10px}.cf-today-tick.month{font-weight:800;fill:var(--text)}
.cf-today-detail-layout{margin-top:14px;grid-template-columns:minmax(0,2fr) minmax(260px,.72fr)}.cf-today-detail-table{min-width:720px}.cf-today-rules{display:grid;gap:12px;margin-top:10px}.cf-today-rules div{display:flex;flex-direction:column;gap:2px}.cf-today-rules span{color:var(--muted);font-size:11px;line-height:1.4}
.cf-trust{margin-bottom:14px;border-color:#d9b35d;background:linear-gradient(135deg,color-mix(in srgb,var(--warning),transparent 90%),var(--panel) 62%)}.cf-trust.confirmed{border-color:#8cc7ab;background:linear-gradient(135deg,color-mix(in srgb,var(--success),transparent 91%),var(--panel) 62%)}.cf-trust-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cf-trust-head h3{margin:0 0 4px}.cf-trust-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45;max-width:850px}.cf-trust-state{flex:0 0 auto;border:1px solid #d9b35d;background:#fff3ce;color:#765413;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;letter-spacing:.06em}.cf-trust.confirmed .cf-trust-state{border-color:#8cc7ab;background:#e9f7ef;color:#276046}.cf-trust-summary{margin:12px 0 9px;font-size:12px;font-weight:700;color:color-mix(in srgb,var(--warning),var(--text) 35%)}.cf-trust.confirmed .cf-trust-summary{color:color-mix(in srgb,var(--success),var(--text) 35%)}.cf-trust-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.cf-trust-check{display:grid;grid-template-columns:auto 1fr;gap:8px;padding:9px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--panel),transparent 8%);min-width:0}.cf-trust-check>span{height:max-content;padding:3px 5px;border-radius:5px;border:1px solid var(--border);color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.05em}.cf-trust-check.review>span{border-color:#d9b35d;color:#765413;background:#fff8e4}.cf-trust-check.warning>span{border-color:#d89280;color:#8b3f2e;background:#fff0ec}.cf-trust-check.ok>span{border-color:#8cc7ab;color:#276046;background:#edf8f2}.cf-trust-check b{display:block;font-size:11px}.cf-trust-check p{margin:2px 0 0;color:var(--muted);font-size:10px;line-height:1.35}.cf-trust-attestation{display:flex;align-items:flex-start;gap:9px;margin-top:11px;padding:10px;border:1px solid color-mix(in srgb,var(--warning),var(--border) 45%);border-radius:9px;background:color-mix(in srgb,var(--warning),transparent 94%);font-size:11px;line-height:1.4}.cf-trust-attestation input{width:17px;height:17px;margin-top:1px;accent-color:var(--warning)}.cf-trust.confirmed .cf-trust-attestation{border-color:color-mix(in srgb,var(--success),var(--border) 45%);background:color-mix(in srgb,var(--success),transparent 95%)}.cf-trust-actions{margin-top:8px}.cf-classic-fallback{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
@media(max-width:1080px){.cf-today-triad{grid-template-columns:1fr 1fr}.cf-today-forecast{grid-column:1/-1}.cf-today-detail-layout{grid-template-columns:1fr}.cf-trust-checks{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.cf-today-triad{grid-template-columns:1fr}.cf-today-forecast{grid-column:auto}.cf-today-directions,.cf-today-mini-grid,.cf-today-groups{grid-template-columns:1fr}.cf-today-toolbar{align-items:stretch}.cf-today-toolbar label{justify-content:space-between}.cf-today-toolbar .input{flex:1}.cf-trust-head{display:block}.cf-trust-state{display:inline-block;margin-top:8px}.cf-trust-checks{grid-template-columns:1fr}.cf-classic-fallback{align-items:flex-start;flex-direction:column}}

/* v0.26.0 Dashboard Builder */
.dashboard-builder-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin-top:14px;align-items:start}.dashboard-widget-shell{min-width:0}.dashboard-width-third{grid-column:span 4}.dashboard-width-half{grid-column:span 6}.dashboard-width-two_thirds{grid-column:span 8}.dashboard-width-full{grid-column:span 12}.dashboard-widget-shell>.grid,.dashboard-widget-shell>.exec-layout{margin-top:0!important}.dashboard-builder-list{display:flex;flex-direction:column;gap:8px}.dashboard-builder-row{display:grid;grid-template-columns:30px minmax(220px,1fr) 120px 150px auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.dashboard-builder-row.dragging{opacity:.55}.drag-handle{cursor:grab;color:var(--muted);font-size:18px;letter-spacing:-3px}.dash-limit{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.dash-limit input{width:70px}.input.compact{padding:7px 9px;min-height:34px}.dashboard-title{gap:12px}
@media(max-width:1100px){.dashboard-width-third,.dashboard-width-half,.dashboard-width-two_thirds,.dashboard-width-full{grid-column:span 12}.dashboard-builder-row{grid-template-columns:24px 1fr 100px}.dashboard-builder-row>.dash-limit,.dashboard-builder-row>.inline-actions{grid-column:2 / -1}}

/* v0.29 — Realizacje / Ekonomia / Dziennik */
.realization-type{display:inline-flex;vertical-align:middle;margin-right:3px}
.journal-filters{margin-bottom:12px}
.journal-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:12px;background:var(--panel);overflow:hidden}
.journal-entry{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;padding:12px;border-bottom:1px solid var(--border)}
.journal-entry:last-child{border-bottom:0}
.journal-dot{width:9px;height:9px;border-radius:999px;background:var(--muted);margin-top:5px;box-shadow:0 0 0 3px var(--panel2)}
.journal-dot.ok{background:var(--success)}.journal-dot.warn{background:var(--warning)}.journal-dot.err{background:var(--danger)}.journal-dot.accent{background:var(--accent)}
.journal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.journal-text{margin:6px 0 5px;line-height:1.5;white-space:pre-wrap}
@media(max-width:720px){.journal-head{display:block}.journal-head>.source{margin-top:4px}}

/* v0.29.1 — Core visual language / Economy polish */
.ui-icon{width:18px;height:18px;display:block;flex:0 0 auto}
.nav .ico{width:20px;height:20px;display:grid;place-items:center}.nav .ico .ui-icon{width:17px;height:17px}
.ui-icon-badge{width:34px;height:34px;border-radius:10px;display:inline-grid;place-items:center;flex:0 0 auto;background:var(--accentSoft);color:var(--accent)}
.ui-icon-badge .ui-icon{width:18px;height:18px}
.ui-icon-badge.info{background:var(--accentSoft);color:var(--accent)}
.ui-icon-badge.success{background:color-mix(in srgb,var(--success),transparent 88%);color:var(--success)}
.ui-icon-badge.warning{background:color-mix(in srgb,var(--warning),transparent 88%);color:var(--warning)}
.ui-icon-badge.danger{background:color-mix(in srgb,var(--danger),transparent 88%);color:var(--danger)}
.ui-icon-badge.muted{background:var(--panel2);color:var(--muted)}
.section-title-with-icon{display:flex;align-items:flex-start;gap:10px;min-width:0}.section-title-with-icon h3{margin:1px 0 0}.section-title-with-icon p{margin-top:4px}
.btn .ui-icon{width:14px;height:14px;display:inline-block;vertical-align:-2px;margin-right:4px}
.icon-mini-kpi{display:flex;align-items:center;gap:10px}.icon-mini-kpi>div{min-width:0}.icon-mini-kpi .ui-icon-badge{width:32px;height:32px;border-radius:9px}.icon-mini-kpi span{margin:0}.icon-mini-kpi strong{margin-top:3px}
.project-kpi{background:linear-gradient(180deg,var(--panel),var(--panel2));padding:10px 11px}
.economy-title{align-items:center;margin-bottom:14px}.economy-title .inline-actions{align-items:center}
.economy-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.economy-kpi{box-shadow:none;min-width:0;padding:13px}.economy-kpi-head{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;font-weight:700}.economy-kpi-head .ui-icon-badge{width:30px;height:30px;border-radius:9px}.economy-kpi-head .ui-icon{width:16px;height:16px}.economy-kpi>strong{display:block;margin-top:10px;font-size:22px;letter-spacing:-.45px;white-space:nowrap}.economy-kpi>small{display:block;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.35}.economy-kpi-pct{font-size:15px;font-weight:800}
.economy-section{margin-top:14px;box-shadow:none}.economy-section>.section-title-with-icon{margin-bottom:12px}.economy-table-wrap{overflow-x:auto}.finance-cost-table{min-width:820px}.finance-cost-table th,.finance-cost-table td{padding:9px 8px}.finance-cost-table th{font-size:9px}.finance-cost-table .input{width:100%;max-width:118px;min-width:76px;padding:6px 7px;font-size:11px}.finance-category{display:flex;align-items:flex-start;gap:8px;min-width:125px}.finance-category .ui-icon-badge{width:28px;height:28px;border-radius:8px}.finance-category .ui-icon{width:15px;height:15px}.finance-total-row td{background:color-mix(in srgb,var(--panel2),transparent 15%);font-weight:700}
.economy-lower-grid{margin-top:14px}.economy-kv{margin-top:12px}.economy-kv .economy-separator{padding-top:8px;border-top:1px solid var(--border);color:var(--text)}
.economy-variance-list{display:flex;flex-direction:column;gap:2px;margin-top:12px}.economy-variance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.economy-variance-row:last-child{border-bottom:0}.economy-empty{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);text-align:center}.economy-empty .ui-icon-badge{width:54px;height:54px;border-radius:50%}.economy-empty .ui-icon{width:24px;height:24px}
.economy-cash-grid .mini-kpi{background:var(--panel);padding:11px}.economy-cash-grid .ui-icon-badge{width:36px;height:36px}
@media(max-width:1220px){.economy-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.economy-kpi-grid .economy-kpi:last-child{grid-column:span 1}}
@media(max-width:880px){.economy-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.economy-lower-grid{grid-template-columns:1fr}.finance-cost-table{min-width:780px}}
@media(max-width:560px){.economy-kpi-grid{grid-template-columns:1fr}.economy-kpi>strong{font-size:20px}.economy-title{align-items:flex-start}.economy-title,.economy-title .inline-actions{flex-direction:column}.economy-title .inline-actions{width:100%}.economy-title .inline-actions .btn{width:100%}}

/* v0.29.2 — navigation history, privacy mode and Economy hierarchy */
.view-nav-tools{display:flex;align-items:center;gap:5px;padding-right:2px}
.icon-only{width:31px;height:31px;padding:0!important;display:inline-flex;align-items:center;justify-content:center}
.icon-only .ui-icon{width:15px;height:15px;margin:0}
.icon-only:disabled{opacity:.32;cursor:default;background:transparent}
#privacyToggle.privacy-active{color:var(--accent);border-color:color-mix(in srgb,var(--accent),transparent 55%);background:var(--accentSoft)}
.privacy-mode .content{filter:blur(11px);opacity:.42;pointer-events:none;user-select:none;transition:filter .12s ease,opacity .12s ease}
.privacy-mode .sidebar .work-side,.privacy-mode .sidebar .side-foot{filter:blur(6px);opacity:.55;pointer-events:none;user-select:none}

/* Optical centering: the badge is the geometry authority, individual SVGs only get tiny optical correction. */
.ui-icon-badge{display:inline-flex;align-items:center;justify-content:center;line-height:0}
.ui-icon-badge .ui-icon{margin:auto}
.ui-icon-coins{transform:translateY(1.5px)}
.ui-icon-trend{transform:translateY(.75px)}
.ui-icon-empty{transform:translateY(.5px)}
.section-title-with-icon{align-items:center}
.finance-category{align-items:center}

/* Project tabs are a navigation layer, not another line of content. */
.project-tabs{position:sticky;top:68px;z-index:12;margin:18px -15px 20px;padding:5px 15px 0;background:color-mix(in srgb,var(--panel),var(--bg) 8%);border-top:1px solid color-mix(in srgb,var(--border),transparent 20%);border-bottom:1px solid var(--border);box-shadow:0 8px 16px rgba(34,48,73,.035);scrollbar-width:thin}
.project-tabs button{padding:11px 10px 10px}
.project-tabs button.active{background:color-mix(in srgb,var(--accentSoft),transparent 30%);border-radius:8px 8px 0 0}

/* Economy gets clearer layers and lighter aggregates. */
.economy-overview{padding:13px 14px 14px;border:1px solid color-mix(in srgb,var(--border),transparent 5%);border-radius:14px;background:color-mix(in srgb,var(--panel2),var(--panel) 58%);box-shadow:0 4px 14px rgba(34,48,73,.035)}
.economy-overview .economy-title{margin-bottom:12px}
.economy-kpi-grid{gap:8px}
.economy-kpi{padding:10px 11px;border-radius:11px;background:var(--panel)}
.economy-kpi-head{gap:7px;font-size:10px}
.economy-kpi-head .ui-icon-badge{width:28px;height:28px;border-radius:8px}
.economy-kpi-head .ui-icon{width:15px;height:15px}
.economy-kpi>strong{margin-top:7px;font-size:19px;letter-spacing:-.3px}
.economy-kpi>small{margin-top:5px;font-size:9.5px}
.economy-kpi-pct{font-size:13px}
.economy-section{margin-top:18px;padding:14px;box-shadow:0 5px 17px rgba(34,48,73,.035);border-color:color-mix(in srgb,var(--border),transparent 3%)}
.economy-section>.section-title,.economy-section>.section-title-with-icon{margin-bottom:14px}
.finance-cost-table th,.finance-cost-table td{padding:10px 9px;border-bottom-color:color-mix(in srgb,var(--border),transparent 28%)}
.finance-cost-table th{background:color-mix(in srgb,var(--panel2),var(--panel) 26%);font-size:8.5px;letter-spacing:.045em}
.finance-total-row td{border-top:1px solid var(--border);background:color-mix(in srgb,var(--accentSoft),var(--panel) 80%)}
.economy-lower-grid{margin-top:18px;gap:16px}
.economy-cash-grid{gap:10px}
.economy-cash-grid .mini-kpi{border-color:color-mix(in srgb,var(--border),transparent 12%)}

.cf-realization-filter{display:flex;align-items:center;gap:7px;margin-left:6px;color:var(--muted);font-size:10px;font-weight:700}
.cf-realization-filter .input{min-width:245px;max-width:360px;padding:6px 9px;font-size:11px}
.cf-timeline-toolbar>.filters{align-items:center}

@media(max-width:900px){.project-tabs{top:68px}.cf-realization-filter{width:100%;margin-left:0}.cf-realization-filter .input{min-width:0;max-width:none;flex:1}}
@media(max-width:720px){.view-nav-tools{gap:3px}.top-actions{gap:6px}.project-tabs{position:static;margin-top:16px}.privacy-mode .sidebar{filter:blur(6px);opacity:.55;pointer-events:none}.economy-overview{padding:11px}}

/* v0.29.3 — compact, explainable Economy KPIs */
.economy-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px}
.economy-kpi{padding:8px 9px;border-radius:10px;min-height:82px}
.economy-kpi-button{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border:1px solid var(--border);box-shadow:none}
.economy-kpi-button:hover,.economy-kpi-button:focus-visible{border-color:color-mix(in srgb,var(--accent),transparent 38%);background:color-mix(in srgb,var(--accentSoft),var(--panel) 82%);outline:none}
.economy-kpi-head{gap:6px;font-size:9.5px}
.economy-kpi-head .ui-icon-badge{width:26px;height:26px;border-radius:8px}
.economy-kpi-head .ui-icon{width:14px;height:14px}
.economy-kpi>strong{margin-top:5px;font-size:17px;line-height:1.12;letter-spacing:-.22px}
.economy-kpi>small{margin-top:4px;font-size:9px;line-height:1.25}
.economy-kpi-pct{font-size:12px}
.economy-drilldown{margin-top:9px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:0 6px 18px rgba(34,48,73,.04)}
.economy-drill-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.economy-drill-title>b{font-size:12px}.economy-drill-title>span{color:var(--muted);font-size:9.5px;text-align:right}
.economy-drill-equation{padding:7px 0;border-top:1px solid color-mix(in srgb,var(--border),transparent 35%);font-size:10.5px;color:var(--muted)}
.economy-margin-equation{display:flex;gap:14px;flex-wrap:wrap;color:var(--text)}
.economy-source-list{display:flex;flex-direction:column;margin-top:5px;border-top:1px solid color-mix(in srgb,var(--border),transparent 35%)}
.economy-source-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid color-mix(in srgb,var(--border),transparent 45%);font-size:10.5px}
.economy-source-row:last-child{border-bottom:0}.economy-source-row>div{min-width:0}.economy-source-row>b{white-space:nowrap}
.economy-drill-note{margin:7px 0;padding:8px 9px;font-size:9.5px}
.economy-cost-table{min-width:980px}
@media(max-width:760px){.economy-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.economy-drill-title{flex-direction:column}.economy-drill-title>span{text-align:left}}
@media(max-width:460px){.economy-kpi-grid{grid-template-columns:1fr}.economy-kpi{min-height:0}}

/* v0.29.4 — Formal Cases: one queue + master/detail */
.formal-main-title{align-items:flex-end}.formal-main-title .formal-search{width:min(290px,34vw)}
.formal-channel-compact{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px;padding:8px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);font-size:12px}.formal-channel-compact.error{border-color:#fecaca;background:#fef2f2}.formal-channel-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 3px}.formal-channel-dot.ok{background:#16a34a}.formal-channel-dot.bad{background:#dc2626}.formal-channel-dot.off{background:#94a3b8}
.formal-workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.formal-filter-bar{display:flex;gap:6px;flex-wrap:wrap}.formal-filter{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;padding:7px 10px;font-size:12px;font-weight:650;cursor:pointer}.formal-filter span{margin-left:5px;color:var(--muted);font-variant-numeric:tabular-nums}.formal-filter:hover{border-color:#94a3b8}.formal-filter.active{background:#eef2ff;border-color:#818cf8;color:#3730a3}.formal-filter.active span{color:#6366f1}
.formal-view-switch{display:flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--panel)}.formal-view-switch button{border:0;background:transparent;padding:7px 11px;font-size:12px;cursor:pointer;color:var(--muted)}.formal-view-switch button+button{border-left:1px solid var(--border)}.formal-view-switch button.active{background:#f1f5f9;color:var(--text);font-weight:750}
.formal-master-detail{display:grid;grid-template-columns:minmax(310px,.82fr) minmax(520px,1.55fr);gap:14px;align-items:start}.formal-queue{padding:0;overflow:hidden;max-height:calc(100vh - 300px);overflow-y:auto}.formal-queue-row{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;padding:12px 13px;cursor:pointer;color:inherit}.formal-queue-row:last-child{border-bottom:0}.formal-queue-row:hover{background:var(--panel2)}.formal-queue-row.active{background:#f8fafc;box-shadow:inset 3px 0 #4f46e5}.formal-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.formal-row-title{font-size:13px;font-weight:760;line-height:1.3}.formal-row-meta{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}.formal-row-due{margin-top:5px;font-size:11px;font-weight:650}.formal-detail{min-width:0}.formal-key-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.formal-key-grid>div{padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);min-width:0}.formal-key-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.035em;margin-bottom:4px}.formal-key-grid b{display:block;font-size:13px;line-height:1.35;word-break:break-word}.formal-key-grid .formal-key-action{grid-column:span 3;background:#f8fafc}.formal-key-grid .formal-key-action b{font-size:14px}.formal-case-actions{margin:10px 0 2px}.formal-detail-section{margin-top:18px;padding-top:15px;border-top:1px solid var(--border)}.formal-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px}.formal-section-heading h3{margin:0}.formal-data-details,.formal-form-more{margin-top:16px;border-top:1px solid var(--border);padding-top:11px}.formal-data-details summary,.formal-form-more summary{cursor:pointer;font-weight:700;font-size:12px;color:var(--muted)}.formal-data-details[open] summary,.formal-form-more[open] summary{color:var(--text);margin-bottom:10px}.formal-triage-actions{margin-top:12px;flex-wrap:wrap}.formal-deadline-button{width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;color:inherit;cursor:pointer}.formal-deadline-button:hover{background:var(--panel2)}
@media(max-width:1100px){.formal-master-detail{grid-template-columns:1fr}.formal-queue{max-height:380px}.formal-workspace-toolbar{align-items:flex-start;flex-direction:column}.formal-key-grid{grid-template-columns:1fr 1fr}.formal-key-grid .formal-key-action{grid-column:span 2}}
@media(max-width:700px){.formal-main-title{align-items:flex-start}.formal-main-title .inline-actions{width:100%;flex-wrap:wrap}.formal-main-title .formal-search{width:100%;max-width:none}.formal-key-grid{grid-template-columns:1fr}.formal-key-grid .formal-key-action{grid-column:span 1}.formal-channel-compact{align-items:flex-start;flex-direction:column}.formal-filter-bar{width:100%}.formal-filter{flex:1 1 auto}}
