:root{--ink:#16212e;--muted:#5d6b7a;--line:#dfe4ea;--bg:#f5f7f9;--panel:#fff;--brand:#0f766e;--brand-soft:#e6f4f2;--crit:#c2410c;--sel:#fff5d6;--done:#64748b;--wbs:#e9eef3;--subtle:#f8fafb;--soft:#e5e9ee;--chrome:#16212e;--cum:#1e3a8a;--subtle-a:#f8fafbf0;--line-strong:#c9d3dc;--wk:#fde68a;--input:#fff;--wbsbar:#334155;--wbs-l0:#d5e3ef;--wbs-l1:#e0eaf3;--wbs-l2:#e9f0f6;--wbs-l3:#f0f4f8;--wbs-l4:#f5f7fa;--zebra:#f7f9fb;--pv:#d97706;--ac:#be123c;--fc:#2563eb;--dd:#7c3aed;--itc:#db2777;--bac:#475569;--selc:#0284c7;--loe-f:#bfdbfe;--loe-s:#3b82f6;--link:#9aa8b6;--linkd:#475569;--done-f:#a3adba;--done-s:#64748b;--axis:#94a3b8;--pq:#c2410c;--bar-f:#5eead4;--bar-s:#0f766e;--bin-f:#99f6e4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-family:Segoe UI,system-ui,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line);background:var(--input);border-radius:4px;min-width:0;padding:3px 6px}button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:4px;padding:3px 10px}button:hover:not(:disabled){border-color:var(--brand)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.danger{color:var(--crit)}button.warn{color:var(--crit);border-color:#f3c3a5}button.x{color:var(--muted);background:0 0;border:none;padding:0 4px}button.lnk{color:var(--brand);background:0 0;border:none;padding:0;text-decoration:underline}.app{flex-direction:column;height:100vh;display:flex}.brand{background:var(--chrome);color:#fff;align-items:center;gap:10px;padding:7px 14px;display:flex}.brand .logo{color:#2dd4bf;font-size:16px}.brand .name{letter-spacing:.03em;white-space:nowrap;font-weight:700}.brand .proj{color:#b8c4d0}.brand .right{color:#b8c4d0;margin-left:auto}.brand b{color:#fff}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:6px 14px;display:flex}.toolbar .grp{align-items:center;gap:4px;display:flex}.toolbar .right{margin-left:auto}.toolbar .search{width:180px}label.chk{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.main{flex:1;min-height:0;display:flex}.center{flex-direction:column;flex:1;min-width:0;display:flex}footer{color:var(--muted);background:var(--panel);border-top:1px solid var(--line);gap:12px;padding:4px 14px;font-size:12px;display:flex}footer .right{margin-left:auto}.chart{background:var(--panel);flex:1;min-height:0;position:relative;overflow:auto}.chart .hdr{z-index:3;background:var(--panel);border-bottom:1px solid var(--line);height:36px;display:flex;position:sticky;top:0}.chart .lh{z-index:4;background:var(--subtle);border-right:1px solid var(--line);display:flex;position:sticky;left:0}.chart .hc{color:var(--muted);border-right:1px solid var(--soft);padding:10px 6px 0;font-size:11px;font-weight:600}.chart .hc.dur,.chart .hc.tf{text-align:right}.chart .hc{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chart .hc:hover{color:var(--brand)}.chart .hc.n{text-align:right}.gantt .blbar{fill:var(--wk);stroke:var(--pv);stroke-width:.6px}.gantt .blms{fill:var(--pv)}.drawer .cols{flex-direction:column;padding:6px 12px;display:flex}.drawer .colrow{border-bottom:1px solid var(--soft);align-items:center;gap:4px;padding:2px 0;display:flex}.drawer .colrow>:first-child{flex:1}.drawer .colgrp{flex-wrap:wrap;align-items:center;gap:2px 10px;display:flex}.drawer .colgrp b{color:var(--muted);flex-basis:100%;font-size:11px}.drawer .row2{gap:4px;display:flex}.drawer .row2 input{flex:1}.chart .ts .mo{fill:var(--subtle);stroke:var(--soft)}.chart .ts text{fill:var(--muted);font-size:10px}.chart .ts .tk{stroke:var(--soft)}.chart .body{display:flex}.chart .lcol{z-index:2;background:var(--panel);border-right:1px solid var(--line);position:sticky;left:0}.chart .row{height:var(--rh,24px);border-bottom:1px solid var(--soft);cursor:default;display:flex}.chart .row.sel .c{background:var(--sel)}.chart .row.wbs .c{background:var(--wbs);font-weight:600}.chart .row.wbs.sel .c{background:#ffeeb3}.chart .row.wbs .n{color:var(--muted);font-weight:400}.chart .c{white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--soft);padding:4px 6px;overflow:hidden}.chart .c.n{text-align:right;font-variant-numeric:tabular-nums}.chart .c.d{font-variant-numeric:tabular-nums}.chart .c.neg{color:var(--crit);font-weight:600}.chart .row.crit .code{box-shadow:inset 3px 0 0 var(--crit)}.chart .row.done .c{color:var(--done)}.chart .c input{width:100%;height:18px;padding:0 3px}.chart .tw{color:var(--muted);background:0 0;border:none;padding:0 4px 0 0}.gantt .grid{stroke:var(--soft)}.gantt .plan{fill:#2dd4bf;stroke:#0f766e}.gantt .crit .plan{fill:#fb923c;stroke:var(--crit)}.gantt .done{fill:var(--done-f);stroke:var(--done-s)}.gantt .loe .plan{fill:var(--loe-f);stroke:var(--loe-s)}.gantt .wbsbar{fill:var(--wbsbar)}.gantt .ms{fill:#0f766e}.gantt .crit .ms{fill:var(--crit)}.gantt .msdone{fill:var(--done-s)}.gantt .selring{fill:none;stroke:var(--selc);stroke-width:1.5px}.gantt .link{fill:none;stroke:var(--link);stroke-width:1px}.gantt .link.drv{stroke:var(--linkd)}.gantt .link.hl{stroke:var(--selc);stroke-width:1.6px}.gantt .arrow{fill:var(--linkd)}.gantt .dd{stroke:var(--dd);stroke-width:1.5px;stroke-dasharray:4 3}.gantt .bar{cursor:pointer}.chart .empty{color:var(--muted);position:absolute;top:80px;left:40px}.detail{border-top:2px solid var(--brand);background:var(--panel);height:250px;overflow:auto}.detail.empty{color:var(--muted);height:60px;padding:14px}.detail .tabs{border-bottom:1px solid var(--line);background:var(--panel);align-items:flex-end;gap:2px;padding:6px 10px 0;display:flex;position:sticky;top:0}.detail .tabs button{background:var(--subtle);border-bottom:none;border-radius:4px 4px 0 0}.detail .tabs button.on{background:var(--panel);border-color:var(--brand);font-weight:600}.detail .title{color:var(--muted);margin-left:12px;padding-bottom:4px;font-weight:600}.form{flex-wrap:wrap;align-items:flex-end;gap:8px 14px;padding:10px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.form label input,.form label select{color:var(--ink);font-size:13px}.form label.w{flex:1;min-width:260px}.form .facts{color:var(--muted);flex-basis:100%;font-size:12px}.form .facts b{color:var(--ink)}span.crit,b.crit,.form .facts b.crit{color:var(--crit);font-weight:600}.warn{color:var(--crit)}.form.v{flex-direction:column;align-items:stretch}.form.v label.chk{flex-direction:row}.notes{width:calc(100% - 20px);min-height:160px;margin:10px}.relpanel{padding:8px 10px}.addrel{gap:6px;margin-bottom:6px;display:flex}.relpanel .two{grid-template-columns:1fr 1fr;gap:12px;display:grid}table.rels{border-collapse:collapse;width:100%}.rels th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:2px 4px;font-size:11px}.rels td{border-bottom:1px solid var(--soft);padding:2px 4px}.rels .w{width:100%}.rels input.s{width:60px}.rels td.n{text-align:right}.drawer{border-left:1px solid var(--line);background:var(--panel);width:340px;padding-bottom:20px;overflow:auto}.drawer.wide{width:380px}.drawer .dh{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 12px;display:flex}.drawer h4{color:var(--brand);text-transform:uppercase;letter-spacing:.06em;margin:10px 12px 0;font-size:12px}.drawer .days{flex-wrap:wrap;gap:4px 10px;display:flex}.drawer .hol{flex-direction:column;gap:4px;display:flex}.drawer .hol .row{gap:4px;display:flex}.drawer .ig{border-bottom:1px solid var(--soft);padding:8px 12px}.chip{background:var(--brand-soft);cursor:pointer;border:1px solid #cdeae6;border-radius:10px;align-items:center;gap:2px;margin:2px 4px 2px 0;padding:0 8px;font-size:11px;display:inline-flex}.hint{color:var(--muted);font-size:12px}.chart .histo{z-index:3;background:var(--panel);border-top:2px solid var(--line);height:112px;display:flex;position:sticky;bottom:0}.chart .histo .hl{z-index:4;background:var(--subtle);border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:6px 8px;display:flex;position:sticky;left:0}.chart .histo .hl select{max-width:240px}.hg .load{fill:var(--bar-f);stroke:var(--bar-s);stroke-width:.6px}.hg .over{fill:#fb923c;stroke:var(--crit);stroke-width:.6px}.hg .limit{stroke:var(--crit);stroke-width:1.2px;stroke-dasharray:5 3}.hg .hgrid{stroke:var(--soft)}.hg .base{stroke:var(--axis)}.hg .hlab{fill:var(--muted);font-size:9px}table.rtab{border-collapse:collapse;width:calc(100% - 24px);margin:0 12px}.rtab th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:2px 3px;font-size:11px}.rtab td{padding:2px 3px}.rtab input{width:100%}.rtab input.s{width:60px}.rtab select{width:100%}.hint.pad{padding:0 12px}label.inl{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}label.inl input.s,.addrel input.s{width:60px}.incoming{background:var(--brand-soft);border-bottom:1px solid #cdeae6;align-items:center;gap:10px;padding:7px 14px;display:flex}.incoming .x{margin-left:auto}.exps{margin-top:8px}.exps b.sub{color:var(--brand);align-self:center;font-size:12px}.exps .addrel input:not(.s){flex:1}.rels input.m{width:90px}.rels td.w input{width:100%}.gantt .lvl{stroke:#64748b;stroke-width:1px;stroke-dasharray:2 2}.brand .pjbtn{color:#b8c4d0;background:0 0;border-color:#3b4855;padding:1px 8px;font-size:12px}.brand .pjbtn:hover{color:#fff}table.ptab{border-collapse:collapse;font-variant-numeric:tabular-nums;width:calc(100% - 24px);margin:6px 12px}.ptab th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:3px 4px;font-size:11px}.ptab td{border-bottom:1px solid var(--soft);white-space:nowrap;padding:3px 4px}.ptab td.n{text-align:right}.ptab .neg{color:var(--crit);font-weight:600}.ptab tr.on td{background:var(--sel)}.ptab tfoot td{border-top:1px solid var(--line);font-weight:600}.ptab td .hint{text-overflow:ellipsis;vertical-align:bottom;max-width:150px;display:inline-block;overflow:hidden}.ptab .acts{gap:2px;display:flex}.tag{background:var(--wbs);color:var(--muted);border-radius:6px;margin-left:4px;padding:0 5px;font-size:10px}dl.kpi{grid-template-columns:repeat(5,1fr);gap:8px;margin:4px 12px 8px;display:grid}dl.kpi>div{background:var(--subtle);border-radius:6px;padding:6px 8px}dl.kpi dt{color:var(--muted);font-size:11px}dl.kpi dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:16px;font-weight:600}dl.kpi dd.neg{color:var(--crit)}dl.kpi small{color:var(--muted);font-size:11px}svg.scurve{margin:0 12px}.scurve .gl{stroke:var(--soft)}.scurve .ax{stroke:var(--axis)}.scurve text{fill:var(--muted);font-size:10px}.scurve .yl{text-anchor:end}.scurve .pv{fill:none;stroke:var(--pv);stroke-width:2px;stroke-dasharray:6 3}.scurve .fc{fill:none;stroke:var(--fc);stroke-width:2px}.scurve .ev{fill:none;stroke:var(--ink);stroke-width:2.4px}.scurve .evp{fill:var(--ink)}.scurve .dd{stroke:var(--dd);stroke-width:1.2px;stroke-dasharray:4 3}.lg.pad{color:var(--muted);padding:4px 12px;font-size:11px}.lg i{vertical-align:middle;border-top:2px solid;width:18px;height:0;margin:0 4px 2px 10px;display:inline-block}.lg i:first-child{margin-left:0}.lg i.pv{border-color:var(--pv);border-top-style:dashed}.lg i.fc{border-color:var(--fc)}.lg i.ev{border-color:var(--ink);border-top-width:3px}.lg i.dd{border-color:var(--dd);border-top-style:dashed}.bottom{background:var(--panel);border-top:2px solid var(--brand);flex-direction:column;flex:none;display:flex;position:relative}.bottom .grip{cursor:ns-resize;z-index:5;height:8px;position:absolute;top:-5px;left:0;right:0}.bottom.closed .grip{display:none}.bottom .btabs{background:var(--subtle);border-bottom:1px solid var(--line);gap:2px;padding:3px 10px 0;display:flex}.bottom .btabs button{color:var(--muted);background:0 0;border-color:#0000;border-bottom-style:none;border-bottom-width:medium;border-radius:4px 4px 0 0;font-size:12px}.bottom .btabs button.on{background:var(--panel);border-color:var(--line);color:var(--ink);font-weight:600}.bottom .btabs .hide{margin-left:auto;font-size:14px}.bottom .bbody{overflow:hidden}.bottom .detail{border-top:none;height:100%}.bottom .detail.empty{height:100%}.tpane{scrollbar-width:none;height:100%;overflow:auto hidden}.tpane::-webkit-scrollbar{display:none}.tpane .tin{height:100%;display:flex}.tpane .tl{z-index:2;background:var(--subtle);border-right:1px solid var(--line);flex-direction:column;flex:none;gap:4px;padding:6px 54px 6px 8px;display:flex;position:sticky;left:0;overflow:hidden}.tpane .tl select{max-width:240px}.tpane .tl .yax{color:var(--muted);font-size:10px;position:absolute;right:6px}.tpane .tl .yax.lim{color:var(--crit)}.tpane .tl .kpis{color:var(--muted);font-size:12px}.tpane .tl .kpis b{color:var(--ink)}.tpane .tl .lg{color:var(--muted);font-size:11px}.tpane .tl .row2{gap:4px;display:flex}.tpane .tl .lg i{vertical-align:middle;border-top:2px solid;width:16px;height:0;margin:0 4px 2px 8px;display:inline-block}.tpane .tl .lg i:first-child{margin-left:0}.tpane .tl .lg i.pv{border-color:var(--pv);border-top-style:dashed}.tpane .tl .lg i.fc{border-color:var(--fc)}.tpane .tl .lg i.ev{border-color:var(--ink);border-top-width:3px}.hg .cum{fill:none;stroke:var(--cum);stroke-width:1.8px}.hg .ddl{stroke:var(--dd);stroke-width:1.2px;stroke-dasharray:4 3}.tpane svg.scurve,.tpane svg.hg{flex:none;margin:0}.rail{scrollbar-width:thin;background:#1d2a38;flex-direction:column;flex:none;gap:2px;width:66px;padding:6px 4px;display:flex;overflow-y:auto}.main.rail-left .rail{order:-2}.main.rail-left .drawer{order:-1}.main.rail-left .center{order:0}.rail .rg{border-bottom:1px solid #2c3b4c;flex-direction:column;gap:1px;margin-bottom:4px;padding-bottom:6px;display:flex}.rail .rg.end{border-bottom:none;margin-top:auto}.rail .rgl{text-transform:uppercase;letter-spacing:.08em;color:#7d8b9a;text-align:center;padding:2px 0;font-size:9px}.rail .rb{color:#c9d3dc;cursor:pointer;text-align:center;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:5px 2px 4px;font-size:10px;line-height:12px;display:flex}.rail .rb:hover:not(:disabled){color:#fff;background:#2a3a4c}.rail .rb.on{color:#fff;background:#0f766e}.rail .rb:disabled{opacity:.35;cursor:default}.rail .rb.warn span{color:#fdba74}.rail .rb.warn.on span{color:#fff}.rail label.rb input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.rail label.rb{position:relative}.rail .rb:focus-visible,.rail label.rb:focus-within{outline-offset:-2px;outline:2px solid #2dd4bf}.rail .ri{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.brand .search{color:#fff;background:#24323f;border-color:#3b4855;width:200px;margin-left:12px}.brand .search::placeholder{color:#8796a5}table.evt{border-collapse:collapse;font-variant-numeric:tabular-nums;width:calc(100% - 24px);margin:4px 12px}.evt th{text-align:left;color:var(--brand);text-transform:uppercase;letter-spacing:.05em;vertical-align:top;width:90px;padding:2px 4px;font-size:11px}.evt td{border-bottom:1px solid var(--soft);padding:2px 4px}.evt td[title]{cursor:help}.evt td.n{text-align:right;font-weight:600}.evt td.neg{color:var(--crit)}.evt tr.gs td,.evt tr.gs th{border-top:1px solid var(--line);padding-top:5px}.evwrap{overflow-x:auto}p.warn.pad{margin:4px 0;padding:0 12px;font-size:12px}.tag.bad{color:var(--crit);background:#ffedd5}.form .hint.w{flex-basis:100%}.scurve .acl{fill:none;stroke:var(--ac);stroke-width:2px}.scurve .acp{fill:var(--ac)}.scurve .bacl{stroke:var(--bac);stroke-width:1px;stroke-dasharray:2 3}.scurve .eacl{stroke:var(--ac);stroke-width:1.2px;stroke-dasharray:6 3}.tpane .tl .lg i.ac{border-color:var(--ac)}.tpane .tl .lg i.bac{border-color:var(--bac);border-top-style:dotted}.rail{gap:0;padding:4px 3px}.rail .rb{padding:3px 2px 2px;font-size:9.5px;line-height:11px}.rail .ri{width:18px;height:18px}.rail .rg{margin-bottom:2px;padding-bottom:3px}.rail .rgl{padding:1px 0}.cmenu{z-index:50;background:var(--panel);border:1px solid var(--line-strong);border-radius:6px;outline:none;flex-direction:column;min-width:230px;padding:4px;display:flex;position:fixed;box-shadow:0 6px 20px #16212e2e}.cmenu button{text-align:left;cursor:default;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:4px 8px 4px 2px;font-size:12.5px;display:flex}.cmenu button.cur:not(:disabled){background:var(--brand-soft)}.cmenu button:disabled{opacity:.4}.cmenu button.danger .ml{color:var(--crit)}.cmenu .mc{text-align:center;width:14px;color:var(--brand)}.cmenu .ml{flex:1}.cmenu .mh{color:var(--muted);margin-left:16px;font-size:11px}.cmenu .msep{background:var(--line);height:1px;margin:3px 4px}.scurve .wkb{fill:var(--wk);opacity:.55}.tpane .tl .lg .wk{background:var(--wk);vertical-align:middle;width:10px;height:8px;margin:0 4px 0 8px;display:inline-block}.chart .hdr{height:auto}.chart .lh{align-items:flex-end}.chart .hc{align-self:flex-end;padding-top:0;padding-bottom:6px}.chart .ts{cursor:ew-resize;-webkit-user-select:none;user-select:none}.chart .ts .mi{fill:var(--panel);stroke:var(--soft)}body.ew,body.ew *{-webkit-user-select:none;user-select:none;cursor:ew-resize!important}.tpane .tr{flex-direction:column;display:flex}.tpane svg.pts{border-bottom:1px solid var(--line);flex:none}svg.ts .mo{fill:var(--subtle);stroke:var(--soft)}svg.ts .mi{fill:var(--panel);stroke:var(--soft)}svg.ts text{fill:var(--muted);font-size:10px}svg.ts .tk{stroke:var(--soft)}.sky .blk{cursor:pointer}.sky .blk rect{stroke-width:.7px}.sky .blk text{fill:var(--ink);pointer-events:none;font-size:9.5px}.sky .done rect{fill:var(--done-f);stroke:var(--done-s)}.sky .prog rect{fill:var(--bar-f);stroke:var(--bar-s)}.sky .todo rect{fill:var(--panel);stroke:var(--done-s)}.sky .ms.todo rect,.sky .ms.prog rect{fill:#e0e7ff;stroke:#4338ca}.sky .crit rect{stroke:var(--crit);stroke-width:1.6px}.sky .sel rect{stroke:var(--selc);stroke-width:2px}.sky .ol{fill:none;stroke:var(--pv);stroke-width:2px;stroke-dasharray:5 3}.sky .dd{stroke:var(--dd);stroke-width:1.2px;stroke-dasharray:4 3}.sky .ax{stroke:var(--axis)}.tpane .tl .lg.sky i.b{border:1px solid;width:12px;height:9px;margin:0 3px 0 8px}.tpane .tl .lg.sky i.b:first-child{margin-left:0}.tpane .tl .lg.sky i.done{background:var(--done-f);border-color:var(--done-s)}.tpane .tl .lg.sky i.prog{background:var(--bar-f);border-color:var(--bar-s)}.tpane .tl .lg.sky i.todo{background:var(--panel);border-color:var(--done-s)}.tpane .tl .lg.sky i.ms{background:#e0e7ff;border-color:#4338ca}.tpane .tl .lg.sky i.crit{background:var(--panel);border:2px solid var(--crit)}.tpane .tl .lg.sky i.ol{border-top:2px dashed var(--pv)}.sky .pcol{fill:#0000}.sky .pcol:hover{fill:#0f766e0d}.hovercard{z-index:60;pointer-events:none;background:var(--panel);border:1px solid var(--line-strong);border-radius:6px;max-width:320px;padding:7px 9px;font-size:12px;position:fixed;box-shadow:0 6px 18px #16212e2e}.hovercard table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin-top:4px}.hovercard th{text-align:left;color:var(--muted);white-space:nowrap;padding:1px 10px 1px 0;font-weight:400}.hovercard td{padding:1px 0}.hovercard .neg{color:var(--crit);font-weight:600}.hovercard .hint{font-size:11px}.bottom .btabs .max{margin-left:auto;font-size:14px}.bottom .btabs .max+.hide{margin-left:0}.sky .blk text{font-size:10px}.skyfit{flex-direction:column;height:100%;display:flex;overflow:hidden}.skyfit svg{flex:none;display:block}.skyfit .skyctl{background:var(--subtle);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:2px 14px;height:52px;padding:5px 8px;font-size:12px;display:flex;overflow:hidden}.skyfit .skyctl .row2{gap:4px;display:flex}.skyfit .skyctl .kpis{color:var(--muted)}.skyfit .skyctl .kpis b{color:var(--ink)}.skyfit .skyctl .kpis br{display:none}.skyfit .skyctl .lg{color:var(--muted);font-size:11px}.skyfit .skyctl .lg.sky i.b{vertical-align:middle;border:1px solid;width:12px;height:9px;margin:0 3px 0 8px;display:inline-block}.skyfit .skyctl .lg.sky i.done{background:var(--done-f);border-color:var(--done-s)}.skyfit .skyctl .lg.sky i.prog{background:var(--bar-f);border-color:var(--bar-s)}.skyfit .skyctl .lg.sky i.todo{background:var(--panel);border-color:var(--done-s)}.skyfit .skyctl .lg.sky i.ms{background:#e0e7ff;border-color:#4338ca}.skyfit .skyctl .lg.sky i.crit{background:var(--panel);border:2px solid var(--crit)}.skyfit .skyctl .lg.sky i.ol{vertical-align:middle;border-top:2px dashed var(--pv);width:16px;margin:0 3px 2px 8px;display:inline-block}.tpane .tl .stk{flex-direction:column;gap:1px;min-height:0;padding-right:2px;font-size:11px;display:flex;overflow-y:auto}.tpane .tl .stk .sk{align-items:center;gap:5px;display:flex}.tpane .tl .stk i{border-radius:2px;flex:none;width:11px;height:11px}.tpane .tl .stk .sl{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tpane .tl .stk .sh{color:var(--muted);font-variant-numeric:tabular-nums}.hg .seg{stroke:var(--panel);stroke-width:.5px;cursor:default}.hg .seg:hover{opacity:.8}.hg .overline{fill:none;stroke:var(--crit);stroke-width:1.5px}.axcol{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:10px;position:relative}.axcol .axt{color:var(--muted);align-items:flex-end;padding:0 4px 2px;font-size:10px;font-weight:600;line-height:11px;display:flex}.axcol .axl{white-space:nowrap;position:absolute}.axcol.left .axl{right:4px}.axcol.right .axl{left:4px}.axcol.cum,.axcol.cum .axt{color:var(--cum)}.tpane .tl>.axcol.left{position:absolute;top:0;bottom:0;right:0}.tpane .tl .yax{display:none}.tpane .axcol.right{z-index:3;background:var(--subtle-a);border-left:1px solid var(--line);height:100%;position:sticky;right:0}.tpane .axcol.right .axt{justify-content:flex-start}.skyrow{flex:1;min-height:0;display:flex}.skyrow .skymid{flex-direction:column;flex:none;display:flex}.skyrow .axcol.right{border-left:1px solid var(--line);background:var(--subtle)}.skyrow .axcol.left{border-right:1px solid var(--line)}.sky .gl{stroke:var(--soft)}.sky .cumf{fill:none;stroke:var(--cum);stroke-width:2px}.sky .cumb{fill:none;stroke:var(--pv);stroke-width:1.5px;stroke-dasharray:2 3}.hg .cum,.hg .limit,.hg .ddl,.hg .overline,.sky .cumf,.sky .cumb,.sky .ol,.sky .dd,.sky .gl,.hg .hgrid{pointer-events:none}.rprog{background:var(--soft);border-radius:5px;align-self:center;width:220px;height:10px;overflow:hidden}.rprog div{background:var(--brand);height:100%;transition:width .2s}.tornado{flex-direction:column;gap:2px;padding:4px 12px;display:flex}.tornado .tr{cursor:pointer;grid-template-columns:1fr 160px 44px;align-items:center;gap:6px;font-size:12px;display:grid}.tornado .tr:hover{background:var(--brand-soft)}.tornado .tn{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tornado .tb{background:var(--subtle);border-radius:2px;height:11px}.tornado .tb i{background:#0f766e;border-radius:2px;height:100%;display:block}.tornado .tb i.neg{background:#94a3b8}.tornado .tv{text-align:right;font-variant-numeric:tabular-nums}.riskd .rbin{fill:var(--bin-f);stroke:var(--bar-s);stroke-width:.6px}.riskd .rcum{fill:none;stroke:var(--cum);stroke-width:2px;pointer-events:none}.riskd .gl{stroke:var(--soft)}.riskd .rmark line{stroke-width:1.4px;pointer-events:none}.riskd .rmark text{font-size:10px;font-weight:600}.riskd .rmark.det line{stroke:var(--ink);stroke-dasharray:2 2}.riskd .rmark.det text{fill:var(--ink)}.riskd .rmark.pq line{stroke:var(--pq);stroke-dasharray:5 3}.riskd .rmark.pq text{fill:var(--pq)}.riskd .dd{stroke:var(--dd);stroke-width:1.2px;stroke-dasharray:4 3}.riskd .ax{stroke:var(--axis)}.tpane .tl .lg .wk.rk{background:var(--bin-f);border:1px solid var(--bar-s)}.tpane .tl .lg i.cumr{border-color:var(--cum)}.tornado .tr.rev .tn{color:#9a3412}.tornado .tr.rev .tb i{background:#ea580c}.heat{grid-template-rows:auto 16px;grid-template-columns:20px auto;align-items:center;gap:2px 4px;padding:6px 12px;display:grid}.heat .hy{writing-mode:vertical-rl;color:var(--muted);text-align:center;font-size:10px;transform:rotate(180deg)}.heat .hx{color:var(--muted);grid-column:2;font-size:10px}.heat .hg5{grid-template-columns:repeat(5,46px);grid-auto-rows:26px;gap:2px;display:grid}.hc5{border-radius:3px;justify-content:center;align-items:center;font-size:12px;display:flex}.hc5.lo{background:#d1fae5}.hc5.md{background:#fef3c7}.hc5.hi{background:#fecaca}.hc5 b{color:var(--ink)}.rt{text-align:center;background:var(--subtle);border-radius:8px;min-width:26px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.rt.lo{color:#065f46;background:#d1fae5}.rt.md{color:#92400e;background:#fef3c7}.rt.hi{color:#991b1b;background:#fecaca}.rgt tr{cursor:pointer}.rged{border-top:2px solid var(--line);margin-top:6px}fieldset.assess{border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:4px;margin:6px 12px;padding:6px 8px;display:flex}fieldset.assess legend{color:var(--brand);font-size:11px;font-weight:600}.tri{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mxset .row2{flex-basis:100%;align-items:center;gap:4px;display:flex}.mxset .row2 .hint{width:170px}.brand .kpi-hd{cursor:pointer;border:1px solid #3b4855;border-radius:4px;margin-right:14px;padding:1px 8px}.brand .kpi-hd b{color:#5eead4;margin-right:4px}.brand .kpi-hd b.bad{color:#fdba74}.riskd .axin{fill:var(--muted);font-size:10px}.riskd .axin.r{text-anchor:end}.riskd .axin.c{text-anchor:middle}.jcl .jin{fill:#0f766e;opacity:.55}.jcl .jout{fill:#94a3b8;opacity:.45}.jcl .jq{fill:#d1fae5;opacity:.5}.riskd .band{fill:var(--bin-f);opacity:.55;stroke:none}.tpane .tl .lg .wk.band{background:var(--bin-f)}.form .row2.cu{flex-basis:100%;align-items:center;gap:10px;display:flex}.form .row2.cu label.chk{width:140px}.facts.corr{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.facts.corr .chip input{width:48px;padding:0 2px}.facts.struct{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.facts.struct .chip input{width:48px;padding:0 2px}.facts.struct .w{flex-basis:100%}.form.fw{align-items:center;gap:4px 8px;padding:3px 12px}.form.fw.sub{padding-left:28px}.form.fw input[type=date]{width:130px}.wxc{border-left:3px solid #bae6fd;margin:4px 12px}.lg .scl{margin-right:12px}.lg .scl i{vertical-align:middle;border-top:3px solid;width:16px;height:0;margin:0 4px 2px 0;display:inline-block}.riskd .p80l{stroke:var(--pq);stroke-dasharray:2 3}.qc tr.click{cursor:pointer}.qc tr.click:hover td{background:var(--brand-soft)}.qd{border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.qd.ok{background:#16a34a}.qd.bad{background:var(--crit)}.qd.na{background:#cbd5e1}.rels td.btns{white-space:nowrap}.rels td.btns button:disabled{opacity:.3}.rels td.btns button+button{margin-left:2px}.iterc{flex-direction:column;flex-basis:100%;gap:4px;display:flex}.iterbar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.iterbar button.on{background:var(--brand-soft);border-color:var(--brand)}.iterbar input[type=range]{width:180px}.it-moved .chip{margin-right:4px}.rmark.it line{stroke:var(--itc);stroke-width:2px}.rmark.it text{fill:var(--itc);font-weight:600}.gantt .itbar{fill:none;stroke:var(--itc);stroke-width:1.5px;stroke-dasharray:4 2;pointer-events:none}.gantt .itbar.itcrit{stroke:var(--crit)}.gantt .itgone{stroke:var(--itc);stroke-width:1px;pointer-events:none}.skyfit .skyctl.auto{height:auto;max-height:120px}.wtabs{border-bottom:1px solid var(--line);scrollbar-width:thin;background:#0e1720;flex:none;align-items:flex-end;gap:2px;padding:4px 10px 0;display:flex;overflow-x:auto}.wtab{color:#b8c4d0;cursor:pointer;white-space:nowrap;background:#1f2b37;border:1px solid #0000;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:6px;max-width:260px;padding:5px 6px 5px 12px;font-size:12px;display:flex}.wtab:hover{color:#fff;background:#2a3846}.wtab.on{background:var(--panel);color:var(--ink);border-color:var(--line);margin-bottom:-1px;padding-bottom:6px}.wtab .wt-code{font-weight:600}.wtab .wt-name{text-overflow:ellipsis;opacity:.75;overflow:hidden}.wtab .wt-x{color:inherit;opacity:.55;background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.wtab .wt-x:hover{opacity:1;background:#7f7f7f40}.wtabs .wt-add{color:#b8c4d0;background:0 0;border:none;align-self:center;margin-left:4px;padding:0 8px;font-size:16px}.wtabs .wt-add:hover{color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#e3e9ef;--muted:#98a6b4;--line:#2c3a47;--bg:#0d151c;--panel:#151f29;--brand:#2dd4bf;--brand-soft:#113a37;--crit:#fb923c;--sel:#3b3320;--done:#94a3b8;--wbs:#1b2632;--subtle:#111b24;--soft:#26323e;--chrome:#0a1117;--cum:#93c5fd;--subtle-a:#111b24f0;--line-strong:#3a4a59;--wk:#3d3416;--input:#0f1821;--wbsbar:#8fa1b3;--wbs-l0:#23384c;--wbs-l1:#1f3142;--wbs-l2:#1c2b39;--wbs-l3:#1a2633;--wbs-l4:#18222d;--zebra:#18232e;--pv:#f59e0b;--ac:#fb7185;--fc:#60a5fa;--dd:#c084fc;--itc:#f472b6;--bac:#94a3b8;--selc:#fde047;--loe-f:#1e3a8a;--loe-s:#93c5fd;--link:#5b6b7b;--linkd:#a3b1bf;--done-f:#5b6878;--done-s:#94a3b8;--axis:#4b5a69;--pq:#fdba74;--bar-f:#0f766e;--bar-s:#2dd4bf;--bin-f:#115e59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ink:#e3e9ef;--muted:#98a6b4;--line:#2c3a47;--bg:#0d151c;--panel:#151f29;--brand:#2dd4bf;--brand-soft:#113a37;--crit:#fb923c;--sel:#3b3320;--done:#94a3b8;--wbs:#1b2632;--subtle:#111b24;--soft:#26323e;--chrome:#0a1117;--cum:#93c5fd;--subtle-a:#111b24f0;--line-strong:#3a4a59;--wk:#3d3416;--input:#0f1821;--wbsbar:#8fa1b3;--wbs-l0:#23384c;--wbs-l1:#1f3142;--wbs-l2:#1c2b39;--wbs-l3:#1a2633;--wbs-l4:#18222d;--zebra:#18232e;--pv:#f59e0b;--ac:#fb7185;--fc:#60a5fa;--dd:#c084fc;--itc:#f472b6;--bac:#94a3b8;--selc:#fde047;--loe-f:#1e3a8a;--loe-s:#93c5fd;--link:#5b6b7b;--linkd:#a3b1bf;--done-f:#5b6878;--done-s:#94a3b8;--axis:#4b5a69;--pq:#fdba74;--bar-f:#0f766e;--bar-s:#2dd4bf;--bin-f:#115e59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg)}.theme-btn{color:#b8c4d0;background:0 0;border-color:#3b4855;padding:1px 8px;font-size:12px}.theme-btn:hover{color:#fff}.xlinks{margin-top:10px}.xlinks b.sub{color:var(--brand);align-self:center;font-size:12px}.chart .c{line-height:calc(var(--rh,24px) - 9px)}.chart.fs12{font-size:12px}.chart.fs13{font-size:13px}.chart.fs14{font-size:14px}.chart.wbsl .row.wbs.l0 .c{background:var(--wbs-l0)}.chart.wbsl .row.wbs.l1 .c{background:var(--wbs-l1)}.chart.wbsl .row.wbs.l2 .c{background:var(--wbs-l2)}.chart.wbsl .row.wbs.l3 .c{background:var(--wbs-l3)}.chart.wbsl .row.wbs.l4 .c,.chart.wbsl .row.wbs.l5 .c{background:var(--wbs-l4)}.chart.zebra .lcol .row.act:nth-child(2n) .c{background:var(--zebra)}.chart.zebra .row.act.sel .c{background:var(--sel)}.gantt .zebra{fill:var(--zebra);pointer-events:none}.chart.nocols .c{border-right-color:#0000}.gantt .rowline{stroke:var(--soft)}.chart .hc{position:relative}.chart .hc .rsz{cursor:col-resize;z-index:3;width:7px;height:100%;position:absolute;top:0;right:-3px}.chart .hc .rsz:hover{background:var(--brand);opacity:.35}.fcpane .seg{display:inline-flex}.fcpane .seg button{border-radius:0}.fcpane .seg button:first-child{border-radius:4px 0 0 4px}.fcpane .seg button:last-child{border-radius:0 4px 4px 0;margin-left:-1px}.fcpane .seg button.on{background:var(--brand-soft);border-color:var(--brand);position:relative}.fcsvg .fa{fill:var(--bar-s)}.fcsvg .fr{fill:var(--bin-f);stroke:var(--bar-s);stroke-width:.6px}.fcsvg .fbl{stroke:var(--pv);stroke-width:2px}.fcsvg .fcumbl{fill:none;stroke:var(--pv);stroke-width:1.6px;stroke-dasharray:5 3;pointer-events:none}.fcsvg .fhead{fill:none;stroke:var(--cum);stroke-width:2px;pointer-events:none}.fcsvg .pcol{fill:#0000}.fcsvg .pcol:hover{fill:var(--soft);opacity:.5}.fcsvg .axin.cumt{fill:var(--cum)}.fcsvg .axin.r{text-anchor:end}.fclg{color:var(--muted);padding:0 12px 4px 52px;font-size:11px}.fclg i.sw{vertical-align:middle;border-radius:2px;width:10px;height:9px;margin:0 4px 0 10px;display:inline-block}.fclg i.sw.fa{background:var(--bar-s)}.fclg i.sw.fr{background:var(--bin-f);border:1px solid var(--bar-s)}.fclg i.ln{vertical-align:middle;border-top:2px solid;width:16px;height:0;margin:0 4px 2px 10px;display:inline-block}.fclg i.ln.fbl{border-color:var(--pv)}.fclg i.ln.cumr{border-color:var(--cum)}.fclg i.ln.fcumbl{border-color:var(--pv);border-top-style:dashed}.fclg i.ln.fhead{border-color:var(--cum)}.fctable{flex:1;min-height:0;overflow:auto}.fctable table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:12px}.fctable th,.fctable td{border-bottom:1px solid var(--soft);white-space:nowrap;padding:3px 8px}.fctable th{background:var(--subtle);color:var(--muted);z-index:1;font-weight:600;position:sticky;top:0}.fctable td:first-child,.fctable th:first-child{background:var(--panel);text-align:left;z-index:2;border-right:1px solid var(--line);position:sticky;left:0}.fctable th:first-child{background:var(--subtle);z-index:3}.fctable td.n{text-align:right}.fctable .dd{box-shadow:inset 2px 0 0 var(--dd)}.fctable tr.sub td{color:var(--muted)}.fctable td.neg{color:var(--crit)}.fctable tr:hover td{background:var(--sel)}.dash{background:var(--bg);flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px 20px 28px;display:flex;overflow:auto}.dash .dhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.dash h2{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:20px}.dash .dhead .sub{color:var(--muted);font-size:12px}.dash .dhead b{color:var(--ink);font-weight:600}.dash .tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=1250px){.dash .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.dash .tiles{grid-template-columns:1fr}}.dash .tile{background:var(--panel);border:1px solid var(--line);box-shadow:inset 4px 0 0 var(--line-strong);border-radius:10px;justify-content:space-between;gap:8px;min-width:0;padding:12px 14px;display:flex}.dash .tile.good{box-shadow:inset 4px 0 #16a34a}.dash .tile.watch{box-shadow:inset 4px 0 #d97706}.dash .tile.bad{box-shadow:inset 4px 0 0 var(--crit)}.dash .tile .tl{flex-direction:column;gap:3px;min-width:0;display:flex}.dash .tile .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.dash .tile .val{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:24px;font-weight:700;line-height:1.15}.dash .tile .sub{color:var(--muted);font-size:11.5px;line-height:1.4}.dash .tile .sub b{color:var(--ink)}.dash .tile.bad .val{color:var(--crit)}.dash .tile .tv{flex:none;align-self:center}.dash .panels{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;display:grid}.dash .panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:0;padding:12px 14px 10px}.dash .panel.wide{grid-column:span 2}@media (width<=900px){.dash .panel.wide{grid-column:auto}}.dash .panel h3{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 8px;font-size:13px;font-weight:600;display:flex}.dash .panel h3 small{color:var(--muted);font-size:11px;font-weight:400}.dash .chartbox{width:100%;min-width:0}.dash .empty{color:var(--muted);padding:18px 4px;font-size:12px}.dsvg .gl{stroke:var(--soft)}.dsvg .one{stroke:var(--axis);stroke-dasharray:3 3}.dsvg .axin{fill:var(--muted);font-size:10px}.dsvg .axin.r{text-anchor:end}.dsvg .axin.c{text-anchor:middle}.dsvg .sarea{fill:var(--bar-s);opacity:.14}.dsvg .sact{fill:none;stroke:var(--bar-s);stroke-width:2.6px}.dsvg .sfc{fill:none;stroke:var(--bar-s);stroke-width:2px;stroke-dasharray:6 4}.dsvg .sbl{fill:none;stroke:var(--pv);stroke-width:1.8px;stroke-dasharray:2 3}.dsvg .hl{stroke:var(--axis)}.dsvg .dd{stroke:var(--dd);stroke-width:1.2px;stroke-dasharray:4 3}.dsvg .ba{fill:var(--bar-s)}.dsvg .br{fill:var(--bin-f);stroke:var(--bar-s);stroke-width:.5px}.dsvg .bbl{stroke:var(--pv);stroke-width:2px}.dsvg .farea{opacity:.85;stroke:var(--panel);stroke-width:.5px}.dsvg .tspi{fill:none;stroke:var(--fc);stroke-width:2px}.dsvg .tcpi{fill:none;stroke:var(--ac);stroke-width:2px}.dsvg .pspi{fill:var(--fc)}.dsvg .pcpi{fill:var(--ac)}.dash .dlg{color:var(--muted);margin-top:2px;font-size:11px}.dash .dlg i.ln{vertical-align:middle;border-top:2px solid;width:16px;height:0;margin:0 4px 2px 10px;display:inline-block}.dash .dlg i.ln:first-child{margin-left:0}.dash .dlg i.sact{border-color:var(--bar-s)}.dash .dlg i.sfc{border-color:var(--bar-s);border-top-style:dashed}.dash .dlg i.sbl{border-color:var(--pv);border-top-style:dotted}.dash .dlg i.tspi{border-color:var(--fc)}.dash .dlg i.tcpi{border-color:var(--ac)}.dash .dlg i.sw{vertical-align:middle;border-radius:2px;width:10px;height:9px;margin:0 4px 0 8px;display:inline-block}.ring .rbg{fill:none;stroke:var(--soft);stroke-width:7px}.ring .rfg{fill:none;stroke:var(--bar-s);stroke-width:7px;stroke-linecap:round}.ring .rplan{stroke:var(--pv);stroke-width:2.5px}.gauge .garc{fill:none;stroke-width:7px}.gauge .garc.bad{stroke:var(--crit);opacity:.75}.gauge .garc.watch{stroke:#d97706;opacity:.75}.gauge .garc.good{stroke:#16a34a;opacity:.75}.gauge .ghub{fill:var(--ink)}.dash .dtab{border-collapse:collapse;width:100%;font-size:12px}.dash .dtab td{border-bottom:1px solid var(--soft);padding:5px 4px}.dash .dtab tr{cursor:pointer}.dash .dtab tr:hover td{background:var(--sel)}.dash .dtab td.w{text-overflow:ellipsis;white-space:nowrap;width:60%;max-width:0;overflow:hidden}.dash .dtab td.d{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;width:1%}.dash .dtab td.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:1%}.dash .dtab td.neg{color:var(--crit);font-weight:600}.dash .dtab .cr{color:var(--crit);font-size:11px}.dash .dtab td.barc{width:35%}.dash .sbar{background:var(--crit);opacity:.75;border-radius:4px;height:8px;display:block}.dash .pbar{background:var(--soft);border-radius:5px;height:10px;display:block;position:relative}.dash .pfill{background:var(--bar-s);border-radius:5px;position:absolute;top:0;bottom:0;left:0}.dash .pplan{background:var(--pv);width:2px;position:absolute;top:-3px;bottom:-3px}.dash .chip{background:var(--soft);color:var(--ink);border-radius:10px;padding:1px 7px;font-size:11px;display:inline-block}.dash .chip.good{color:#15803d;background:#16a34a22}.dash .chip.watch{color:#b45309;background:#d9770622}.dash .chip.bad{color:var(--crit);background:#c2410c22}:root[data-theme=dark] .dash .chip.good{color:#4ade80}:root[data-theme=dark] .dash .chip.watch{color:#fbbf24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .dash .chip.good{color:#4ade80}:root:not([data-theme=light]) .dash .chip.watch{color:#fbbf24}}.dash .qchips{flex-wrap:wrap;gap:5px;display:flex}.gantt .blab{fill:var(--ink);pointer-events:none;font-size:10.5px}.gantt .rwhisk line{stroke:var(--pq);stroke-width:1.6px}.gantt .rwhisk line.t80{stroke-width:2.2px}.gantt .rband rect{fill:var(--pq);opacity:.18}.gantt .rband line{stroke:var(--pq);stroke-width:1.4px}.gantt .rband line.t80{stroke-width:2.4px}.glegend{float:right;z-index:4;background:var(--panel);border:1px solid var(--line);width:max-content;max-width:320px;color:var(--muted);border-radius:6px;flex-wrap:wrap;gap:4px 10px;margin-top:-40px;margin-right:10px;padding:5px 9px;font-size:11px;display:flex;position:sticky;bottom:8px;left:calc(100% - 340px);box-shadow:0 4px 12px #16212e1f}.glegend i{vertical-align:middle;border-radius:2px;width:10px;height:9px;margin-right:4px;display:inline-block}.dash .tile.open{cursor:pointer;transition:border-color .12s,transform .12s}.dash .tile.open:hover{border-color:var(--brand);transform:translateY(-1px)}.dash .tile.open:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.dash .panel h3 .xopen{color:var(--brand);border-color:var(--line);background:0 0;margin-left:auto;padding:1px 8px;font-size:11px}.explore{background:var(--bg);flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.explore .xhead{z-index:5;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 16px;display:flex;position:sticky;top:0}.explore .xnav{flex-wrap:wrap;flex:1;gap:2px;display:flex}.explore .xnav button{color:var(--muted);background:0 0;border:none;border-radius:6px;padding:5px 10px}.explore .xnav button:hover{color:var(--ink);background:var(--soft)}.explore .xnav button.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.explore .xbody{flex-direction:column;gap:12px;padding:14px 18px 30px;display:flex}.explore .xctl{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:10px;font-size:12px;display:flex}.explore .xctl .kpis{color:var(--muted)}.explore .xctl .kpis b{color:var(--ink)}.explore .seg{display:inline-flex}.explore .seg button{border-radius:0}.explore .seg button:first-child{border-radius:4px 0 0 4px}.explore .seg button:last-child{border-radius:0 4px 4px 0;margin-left:-1px}.explore .seg button.on{background:var(--brand-soft);border-color:var(--brand);position:relative}.explore .xtime{flex-direction:column;gap:12px;display:flex}.explore .xrow{align-items:stretch;gap:12px;display:flex}.explore .xchart{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex:1;min-width:0;padding:10px 12px}.xsvg .xcol{cursor:pointer}.xsvg .pcol{fill:#0000}.xsvg .xcol:hover .pcol{fill:var(--soft)}.xsvg .pcol.on{fill:var(--sel)}.xsvg .xseg{stroke:var(--panel);stroke-width:.4px}.xsvg .xcum{fill:none;stroke:var(--cum);stroke-width:2.2px;pointer-events:none}.xsvg .axin.cumt{fill:var(--cum)}.xsvg .sbl{pointer-events:none}.explore .xlegend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:4px;font-size:11px;display:flex}.explore .xlegend button{color:var(--ink);background:0 0;border:1px solid #0000;padding:1px 6px;font-size:11px}.explore .xlegend button:hover{border-color:var(--line)}.explore .xlegend button.off{opacity:.4;text-decoration:line-through}.explore .xlegend i{vertical-align:middle;border-radius:2px;width:10px;height:9px;margin-right:5px;display:inline-block}.explore .xlegend i.ln{border-top:2px solid;border-radius:0;width:16px;height:0}.explore .xlegend i.ln.bl{border-color:var(--pv);border-top-style:dotted}.explore .xlegend i.ln.cu{border-color:var(--cum)}.explore .xlegend span{margin-left:6px}.explore .xdrill{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;flex:none;width:340px;max-height:380px;padding:10px 12px;display:flex}.explore .xdh{justify-content:space-between;align-items:center;display:flex}.explore .xdl{flex-direction:column;margin-top:6px;display:flex;overflow:auto}.explore .xdi{text-align:left;border:none;border-bottom:1px solid var(--soft);background:0 0;border-radius:0;grid-template-columns:auto 1fr auto;gap:2px 8px;padding:5px 2px;font-size:12px;display:grid}.explore .xdi:hover{background:var(--sel)}.explore .xdi .c{color:var(--muted);font-variant-numeric:tabular-nums}.explore .xdi .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.explore .xdi .v{font-variant-numeric:tabular-nums;font-weight:600}.explore .xdi .a{color:var(--muted);grid-column:2/4;font-size:11px}.explore .xtable{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.explore .xtbar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:7px 10px;display:flex}.explore .xtbar button{margin-left:auto}.explore .xscroll{max-height:520px;overflow:auto}.explore table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.explore th,.explore td{border-bottom:1px solid var(--soft);white-space:nowrap;text-align:left;padding:5px 9px}.explore th{background:var(--subtle);color:var(--muted);cursor:pointer;z-index:1;-webkit-user-select:none;user-select:none;font-weight:600;position:sticky;top:0}.explore th.n,.explore td.n{text-align:right}.explore td.w{white-space:normal;min-width:220px}.explore tr.click{cursor:pointer}.explore tbody tr:hover td,.explore td.on,.explore th.on{background:var(--sel)}.explore td.dd,.explore th.dd{box-shadow:inset 2px 0 0 var(--dd)}.explore td.b,.explore tr.tot td{font-weight:600}.explore tfoot td{border-top:2px solid var(--line);background:var(--subtle);font-weight:600}.explore .neg{color:var(--crit);font-weight:600}.explore .chip{background:var(--soft);border-radius:10px;padding:0 7px;display:inline-block}.explore .chip.good{color:#15803d;background:#16a34a22}.explore .chip.watch{color:#b45309;background:#d9770622}.explore .chip.bad{color:var(--crit);background:#c2410c22}.explore .xprog{align-items:center;gap:6px;display:inline-flex}.explore .xprog .pbar{background:var(--soft);border-radius:4px;width:90px;height:8px;display:inline-block;position:relative}.explore .xprog .pfill{background:var(--bar-s);border-radius:4px;position:absolute;top:0;bottom:0;left:0}.explore .xprog .pfill.hot{background:var(--crit)}.explore .xprog .pplan{background:var(--pv);width:2px;position:absolute;top:-3px;bottom:-3px}.explore .xsub h4,.explore .xqd h4{margin:4px 0 8px;font-size:13px}.explore .xsub{margin-top:4px}.explore .xpct{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-bottom:12px;display:grid}.explore .xpct>div{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;padding:8px 10px;display:flex}.explore .xpct span{color:var(--muted);font-size:11px;font-weight:600}.explore .xpct b{font-variant-numeric:tabular-nums}.explore .xpct small{color:var(--muted)}.explore .xhealth{grid-template-columns:minmax(260px,340px) 1fr;gap:12px;display:grid}@media (width<=900px){.explore .xhealth{grid-template-columns:1fr}.explore .xrow{flex-direction:column}.explore .xdrill{width:auto}}.explore .xchecks{flex-direction:column;gap:4px;display:flex}.explore .xqc{text-align:left;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:6px;grid-template-columns:1fr auto;gap:0 8px;padding:6px 10px;display:grid}.explore .xqc.good{border-left-color:#16a34a}.explore .xqc.bad{border-left-color:var(--crit)}.explore .xqc.on{border-color:var(--brand);background:var(--brand-soft)}.explore .xqc .nm{font-size:12px;font-weight:600}.explore .xqc .vl{font-variant-numeric:tabular-nums;font-weight:600}.explore .xqc .th{color:var(--muted);font-size:11px}.explore .xqc .ct{color:var(--muted);text-align:right;font-size:11px}.explore .empty{color:var(--muted);padding:20px 4px}.explore .warn{color:var(--crit)}:root[data-theme=dark] .explore .chip.good{color:#4ade80}:root[data-theme=dark] .explore .chip.watch{color:#fbbf24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .explore .chip.good{color:#4ade80}:root:not([data-theme=light]) .explore .chip.watch{color:#fbbf24}}.drawer .colsearch{width:calc(100% - 28px);margin:0 14px 8px}.drawer h4 small,.colgrp b small{color:var(--muted);font-weight:400}.loglist{flex-direction:column;gap:4px;padding:0 10px 20px;display:flex}.logrow{border:1px solid var(--line);border-left:3px solid var(--line-strong);cursor:pointer;background:var(--panel);border-radius:6px;padding:6px 9px}.logrow:hover{border-color:var(--brand)}.logrow.on{background:var(--subtle)}.logrow.k-undo,.logrow.k-redo{border-left-color:var(--muted)}.logrow.k-scenario{border-left-color:var(--fc)}.logrow.k-change{border-left-color:var(--pv)}.logrow .lh{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.logrow .who{color:var(--ink);font-weight:600}.logrow .kind{margin-left:auto}.logrow .ref{color:var(--pv);font-weight:600}.logrow .note{overflow-wrap:anywhere;margin-top:2px;font-size:12.5px}.logrow .eff{gap:6px;margin-top:3px;display:flex}.logrow .eff:empty{display:none}.logrow .lines{margin:6px 0 0;padding-left:18px;font-size:12px}.logrow .lines li{margin:2px 0}.drawer .chip,.logrow .chip{background:var(--soft);border-radius:10px;padding:0 7px;font-size:11px;display:inline-block}.logrow .chip.bad{color:var(--crit);background:#c2410c22}.logrow .chip.good{color:#15803d;background:#16a34a22}.scenbar{color:#fff;background:#2563eb;flex-wrap:wrap;flex:none;align-items:center;gap:12px;padding:5px 14px;font-size:12px;display:flex}.scenbar b{font-size:13px}.scenbar span{opacity:.9}.scenbar button{color:#fff;background:0 0;border-color:#ffffff8c;padding:1px 10px}.scenbar button:hover{background:#ffffff26}.scenbar label{color:#fff}.gantt .livebar{fill:none;stroke:var(--ink);stroke-width:1.2px;stroke-dasharray:3 2;opacity:.7;pointer-events:none}.gantt .scnew{fill:none;stroke:#2563eb;stroke-width:1.6px;pointer-events:none}.drawer.xwide{width:640px}.drawer .scenNow{background:#2563eb18;border:1px solid #2563eb55;border-radius:6px;padding:8px 10px;font-size:12px}.sctable{padding:0 12px;overflow-x:auto}.sctable table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.sctable th,.sctable td{border-bottom:1px solid var(--soft);white-space:nowrap;text-align:left;padding:4px 6px}.sctable th{color:var(--muted);font-weight:600}.sctable .n{text-align:right}.sctable tr.live td{background:var(--subtle);font-weight:600}.sctable tr.on td{background:#2563eb14}.sctable tr.pick td{box-shadow:inset 0 -2px 0 var(--brand)}.sctable tbody tr{cursor:pointer}.sctable .neg{color:var(--crit);font-weight:600}.sctable .pos{color:#15803d;font-weight:600}.sctable .btns{gap:3px;display:flex}.sctable .btns button{padding:1px 7px;font-size:11px}.sctable i.sw{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.sctable .scname{background:0 0;border-color:#0000;width:150px;padding:1px 3px}.sctable .scname:hover,.sctable .scname:focus{border-color:var(--line);background:var(--input)}.sctable .tag{background:var(--soft);color:var(--muted);border-radius:8px;margin-left:5px;padding:0 5px;font-size:10px}.cashcmp{padding:0 12px}.cashcmp .cmp-live{fill:none;stroke:var(--ink);stroke-width:2.4px}.cashcmp .cmp-sc{fill:none;stroke-width:2px;stroke-dasharray:6 3}.cashcmp .cmphov{color:var(--muted);margin-top:2px;font-size:11px}.opslist{max-height:260px;margin:0 12px 16px;padding-left:18px;font-size:12px;overflow:auto}.opslist li{margin:2px 0}.crsum{grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 14px 4px;display:grid}.crsum>div{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;padding:6px 9px;display:flex}.crsum span{color:var(--muted);font-size:11px}.crsum b{font-variant-numeric:tabular-nums;font-size:18px}.crsum small{color:var(--muted);font-variant-numeric:tabular-nums}.crlist{flex-direction:column;gap:3px;max-height:260px;padding:0 12px 8px;display:flex;overflow:auto}.crrow{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:6px;grid-template-columns:62px 1fr auto;gap:1px 8px;padding:5px 8px;font-size:12px;display:grid}.crrow.on{border-color:var(--brand);background:var(--brand-soft)}.crrow .code{font-weight:700}.crrow .t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crrow .im{color:var(--muted);font-variant-numeric:tabular-nums;grid-column:2/4}.st{background:var(--soft);color:var(--muted);white-space:nowrap;border-radius:9px;align-self:center;padding:0 7px;font-size:10.5px}.st.s-submitted,.st.s-review{color:#b45309;background:#d9770622}.st.s-approved,.st.s-implemented{color:#15803d;background:#16a34a22}.st.s-rejected{color:var(--crit);background:#c2410c22}.creditor{border-top:1px solid var(--line);margin-top:6px;padding-bottom:20px}.crhead{align-items:center;gap:8px;padding:10px 14px 4px;display:flex}.crhead .crtitle{flex:1;font-weight:600}.creditor .acts{flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.creditor .acts .chip{background:var(--soft);border-radius:9px;padding:1px 7px}.crimpact{padding:0 2px}.crtiles{grid-template-columns:repeat(4,1fr);gap:6px;padding:0 12px 8px;display:grid}.crtiles>div{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;padding:6px 9px;display:flex}.crtiles span{color:var(--muted);font-size:11px}.crtiles b{font-variant-numeric:tabular-nums;font-size:17px}.crtiles b.neg{color:var(--crit)}.crtiles small{color:var(--muted);font-size:11px}.crimpact .row2,.creditor .row2{padding:0 12px 6px}.crimpact b.sub{padding:6px 14px 2px;font-size:12px;display:block}.crhist{color:var(--muted);margin:4px 0;padding-left:18px;font-size:11.5px}.crhist b{color:var(--ink)}.modelf{padding-top:0}.modelf label{font-size:12px}.modelf .row2{gap:6px}.xmethods h4{margin:4px 0 8px;font-size:13px}.mtimeline{background:var(--panel);border:1px solid var(--line);border-radius:10px;height:84px;margin-bottom:10px;position:relative}.mtimeline .mk{white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:flex;position:absolute;transform:translate(-5px)}.mtimeline .mk i{background:var(--bar-s);border-radius:50%;flex:none;width:10px;height:10px}.mtimeline .mk.k-es i{background:var(--fc)}.mtimeline .mk.k-spi i{background:var(--pv)}.mtimeline .mk.k-p50 i,.mtimeline .mk.k-p80 i{background:var(--pq)}.mtimeline .mk.k-bl i{background:var(--axis)}.mtimeline .mdd{border-left:2px dashed var(--dd);position:absolute;top:0;bottom:0}.mbars{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:5px;margin-bottom:10px;padding:10px 12px;display:flex}.mbars .mb{grid-template-columns:260px 1fr 110px;align-items:center;gap:10px;font-size:12px;display:grid}.mbars .bar{background:var(--soft);border-radius:6px;height:12px;overflow:hidden}.mbars .bar i{background:var(--bar-s);border-radius:6px;height:100%;display:block}.mbars .bar i.k-comp{background:var(--ac)}.mbars .bar i.k-cpi{background:var(--pv)}.mbars .bar i.k-bac{background:var(--axis)}.mbars b{text-align:right;font-variant-numeric:tabular-nums}.mtimeline .mk.lft{flex-direction:row-reverse;transform:translate(calc(5px - 100%))}.mtimeline .mscale{color:var(--muted);font-size:10px;position:absolute;bottom:3px}.mtimeline .mscale.l{left:6px}.mtimeline .mscale.r{right:6px}.fpill{color:#b8c4d0;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-color:#3b4855;max-width:280px;padding:1px 9px;font-size:12px;overflow:hidden}.fpill.ok:before{content:"● ";color:#4ade80}.fpill.warn{color:#fbbf24;border-color:#fbbf2488}.fpill.bad,.fpill.full{color:#fca5a5;border-color:#fca5a588}.fpill:hover{color:#fff}.folder h4,.drawer>h4{margin:12px 14px 4px}.folder .flist{border:1px solid var(--line);border-radius:6px;max-height:260px;margin:4px 14px 8px;overflow:auto}.folder .frow{border-bottom:1px solid var(--soft);grid-template-columns:1fr auto;align-items:center;gap:0 8px;padding:5px 8px;font-size:12px;display:grid}.folder .frow .nm{overflow-wrap:anywhere;font-weight:600}.folder .frow .hint{grid-column:1}.folder .frow button{grid-area:1/2/3}.sbar{background:var(--soft);border-radius:4px;height:8px;overflow:hidden}.sbar i{background:var(--bar-s);height:100%;display:block}.sbar i.warn{background:#d97706}.sbar i.bad{background:var(--crit)}.uptable{border:1px solid var(--line);border-radius:6px;max-height:420px;margin:0 12px;overflow:auto}.uptable table{border-collapse:collapse;width:100%;font-size:12px}.uptable th,.uptable td{border-bottom:1px solid var(--soft);white-space:nowrap;text-align:left;padding:3px 5px}.uptable th{background:var(--subtle);color:var(--muted);z-index:1;position:sticky;top:0}.uptable td.w{white-space:normal;min-width:160px}.uptable .n{text-align:right}.uptable tr.off td{opacity:.45}.uptable select{max-width:112px}.uphist{flex-direction:column;gap:4px;padding:0 14px 20px;font-size:12px;display:flex}.uph{border-bottom:1px solid var(--soft);flex-wrap:wrap;gap:10px;padding:4px 0;display:flex}.upsum{margin-top:6px}.drawer.xxwide{width:min(940px,70vw)}.uptable input[type=date]{width:122px}.uptable input.s{width:58px}.acttabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;padding:6px 12px;display:flex}.acttabs button{color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px 10px}.acttabs button.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.acttabs .badge{background:var(--crit);color:#fff;border-radius:8px;margin-left:5px;padding:0 5px;font-size:10px}.filebtn{border:1px solid var(--line);cursor:pointer;background:var(--panel);border-radius:4px;align-items:center;padding:3px 10px;display:inline-flex}.filebtn:hover{border-color:var(--brand)}.mapcols{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px 10px;display:grid}.mapcols label{color:var(--muted);flex-direction:column;font-size:11px;display:flex}.impsum{font-size:12px}.impsum .warn{font-weight:600}.impprev{border:1px solid var(--line);border-radius:6px;max-height:300px;overflow:auto}.impprev table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.impprev th,.impprev td{border-bottom:1px solid var(--soft);text-align:left;white-space:nowrap;padding:3px 7px}.impprev th{background:var(--subtle);color:var(--muted);position:sticky;top:0}.impprev .n{text-align:right}.impprev tr.warn td,.impprev b.warn{color:var(--crit)}.chips{flex-wrap:wrap;gap:4px;display:flex}.chips .chip{background:var(--soft);border-radius:9px;padding:1px 8px;font-size:11.5px}.maprow{grid-template-columns:1fr 260px;align-items:center;gap:8px;display:grid}.addline{flex-wrap:wrap;gap:4px;display:flex}.addline input:not([type]),.addline input[type=text]{width:120px}.drawer .mapcols{flex:none;grid-auto-rows:min-content;align-content:start}.drawer .mapcols label{align-self:start;margin:0}.drawer .mapcols{flex-wrap:wrap;gap:6px 10px;display:flex}.drawer .mapcols label{width:205px}.drawer .chks{grid-template-columns:1fr 1fr;gap:3px 10px;display:grid}.dash .blsel{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.dash .blsel select{min-width:220px}.dash .blcmp .dtab tr.on td{background:var(--brand-soft)}.dash .blcmp .tag{background:var(--soft);color:var(--muted);border-radius:8px;margin-left:6px;padding:0 6px;font-size:10px}.dash .blcmp i.sw{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.dash .blcmp .dtab{margin-bottom:8px}.dash .panels{align-items:start}.escurve{flex-direction:column;gap:4px;min-width:0;padding:4px 8px;display:flex}.esrow{align-items:flex-start;gap:12px;min-width:0;display:flex}.eschart{flex:1;min-width:0}.esfig{border-collapse:collapse;font-variant-numeric:tabular-nums;flex:none;font-size:12px}.esfig th{text-align:left;color:var(--muted);white-space:nowrap;padding:2px 10px 2px 0;font-weight:400}.esfig td{text-align:right;white-space:nowrap;font-weight:600}.esfig td.neg{color:var(--crit)}.eslg{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:11px;display:flex}.eslg span{align-items:center;gap:5px;display:inline-flex}.es-grid{stroke:var(--soft)}.es-vgrid{stroke:var(--soft);opacity:.6}.es-ax{fill:var(--muted);font-size:10px}.es-r{text-anchor:end}.es-c{text-anchor:middle}.es-pv{fill:none;stroke:var(--pv);stroke-width:2.2px}.es-pvo{fill:none;stroke:var(--pv);opacity:.5;stroke-width:1.2px;stroke-dasharray:2 3}.es-ev{fill:none;stroke:var(--bar-s);stroke-width:2.6px}.es-evp{fill:var(--bar-s)}.es-ac{fill:none;stroke:var(--ac);stroke-width:2.2px}.es-acp{fill:var(--ac)}.es-fc{fill:none;stroke:var(--ac);stroke-width:1.8px;stroke-dasharray:6 4}.es-bac{stroke:var(--bac);stroke-width:1.4px;stroke-dasharray:2 3}.es-eacl{stroke:var(--ac);stroke-width:1.2px;stroke-dasharray:2 3}.es-eaccpi{stroke:var(--dd);stroke-width:1.4px;stroke-dasharray:5 3}.es-lab{fill:var(--muted);font-size:10px}.es-eact{fill:var(--ac)}.es-cpit{fill:var(--dd)}.es-dd{stroke:var(--dd);stroke-dasharray:4 3}.es-ddt{fill:var(--dd);font-size:10px}.es-br{fill:none;stroke-width:1.4px}.es-brt{font-size:11px;font-weight:700}.es-bad{stroke:var(--crit);fill:var(--crit)}.es-good{stroke:#16a34a;fill:#16a34a}path.es-br,path.es-slip{fill:none}.es-slip{stroke-width:1.6px}.es-fin{stroke:var(--axis);stroke-dasharray:2 2}.es-arrowh{fill:var(--muted)}.modelf .crash{border-top:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:6px 12px;padding-top:8px;display:flex}.modelf .crash fieldset{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;align-items:flex-end;gap:4px 10px;margin:0;padding:4px 8px 6px;display:flex}.modelf .crash legend{color:var(--muted);padding:0 4px;font-size:11px}.modelf .crashres{color:var(--ink);background:var(--brand-soft);border-radius:6px;padding:5px 9px;font-weight:600}.holpick{border:1px solid var(--line);background:var(--subtle);border-radius:8px;flex-direction:column;gap:6px;margin:6px 0;padding:8px 10px;display:flex}.holpick .holdays{flex-wrap:wrap;gap:2px 12px;font-size:12px;display:flex}.holpick .hollist{flex-wrap:wrap;gap:4px;max-height:180px;margin-top:4px;display:flex;overflow:auto}.holpick details summary{cursor:pointer;font-size:12px}.holchips{flex-wrap:wrap;gap:4px;max-height:200px;margin-top:4px;display:flex;overflow:auto}.rstabs{padding:8px 12px 0}.rstabs .seg{display:inline-flex}.rstabs .seg button{border-radius:0}.rstabs .seg button:first-child{border-radius:4px 0 0 4px}.rstabs .seg button:last-child{border-radius:0 4px 4px 0}.rstabs .seg button+button{margin-left:-1px}.rstabs .seg button.on{background:var(--brand-soft);border-color:var(--brand);position:relative}.rstw{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 2px}.rstw.built{color:var(--brand);font-weight:700}.rsall{text-align:right;font-variant-numeric:tabular-nums;min-width:60px;color:var(--brand);font-weight:600;display:inline-block}tr.rsopen td{background:var(--subtle)}tr.rsbuild>td{background:var(--subtle);border-bottom:1px solid var(--line);padding:0 0 8px}.rsb{flex-direction:column;gap:6px;padding:6px 8px;display:flex}.rsb .row2{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rsb .inl input.s{width:80px}.rsbt{overflow-x:auto}.rsbt table.ptab{width:100%;margin:0}.rsbt td.n,.rsbt th.n{text-align:right;font-variant-numeric:tabular-nums}.rsbt tr.tot td{border-top:2px solid var(--line)}.rsbt tr.base td{color:var(--muted)}.sw{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:6px;display:inline-block}.rsbar{border-radius:3px;height:10px;margin:6px 0 2px;display:flex;overflow:hidden}.rsbar i{height:100%;display:block}.rsgroups{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;display:flex}.rscomps .rtab{width:100%;margin:0}.rscomps .row2{gap:6px;margin-top:4px;display:flex}.rscomps .row2 input{flex:1}.rsset{border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:6px;margin:8px 12px;padding:8px 10px;display:flex}.rsset .row2{gap:6px;display:flex}.rsset .rsname{flex:1;font-weight:600}.rsset .rsnotes{width:100%;font-size:12px}h4.rsh{margin:12px 12px 4px;font-size:12px}[data-k=rs-sum] .rsbt{padding:0 12px}.rsbt td.rsetn{white-space:normal;max-width:150px;color:var(--muted);font-size:11.5px}.wtab.wt-home{padding-left:8px;padding-right:12px}.wtab.wt-home .wt-code{font-size:14px}.home{background:var(--bg);flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px 20px 28px;display:flex;overflow:auto}.home .hhead{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.home h2{letter-spacing:-.01em;margin:0;font-size:20px}.home .hhead .sub{color:var(--muted);font-size:12px}.home .hhead .sub b{color:var(--ink)}.home .neg{color:var(--crit);font-weight:600}.home .hctl{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.home .hctl label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.home .hctl input.search{width:200px}.home .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px 0 8px;overflow-x:auto}.home table.ptab{width:100%;margin:0}.home .ptab th{background:var(--panel);z-index:1;position:sticky;top:0}.home .ptab td{white-space:nowrap}.home .ptab tr.grp td{background:var(--subtle);border-top:1px solid var(--line);padding:6px 4px;font-weight:600}.home .ptab tr.grp.l1 td{background:0 0;border-top:none;padding-left:22px}.home .ptab tr.grp .tg{width:18px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0}.home .ptab tr.grp .cnt{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.home .ptab tr.pj.l1 td:first-child{padding-left:24px}.home .ptab tr.pj.l2 td:first-child{padding-left:42px}.home .ptab td.oc{cursor:text;min-width:90px}.home .ptab td.oc:hover{background:var(--sel)}.home .ptab td.oc .none{color:var(--muted)}.home .ptab td.oc input,.home .ptab td.oc select{width:100%;min-width:120px;padding:1px 4px}.home .ptab .st{background:var(--soft);border-radius:10px;padding:0 7px;font-size:11px;display:inline-block}.home .ptab .st.active{color:#15803d;background:#16a34a22}.home .ptab .st.on-hold{color:#b45309;background:#d9770622}.home .ptab .st.complete{background:var(--brand-soft);color:var(--brand)}.home .ptab .st.cancelled{opacity:.6}:root[data-theme=dark] .home .ptab .st.active{color:#4ade80}:root[data-theme=dark] .home .ptab .st.on-hold{color:#fbbf24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .home .ptab .st.active{color:#4ade80}:root:not([data-theme=light]) .home .ptab .st.on-hold{color:#fbbf24}}.home .ptab .hint.pad,.home p.hint.pad{margin:0;padding:6px 12px 0}.home .home-empty{background:var(--panel);border:1px dashed var(--line-strong);border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;max-width:640px;padding:24px;display:flex}.home .home-empty h3,.home .home-empty p{margin:0}.home .home-empty .row2{gap:8px;display:flex}.home .folder{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:760px;padding-bottom:8px}.wtab.wt-home .wt-name{opacity:1}.wtmenu{min-width:150px}.wtmenu .mi{text-align:left;background:0 0;border:none;border-radius:4px;padding:4px 10px;display:flex}.wtmenu .mi:hover:not(:disabled){background:var(--brand-soft)}.vstrip{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;min-height:34px;padding:0 12px;display:flex}.vtabs{align-self:stretch;gap:2px;display:flex}.vtab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:7px 10px 6px;font-size:12.5px}.vtab:hover{color:var(--ink);border-color:var(--soft)}.vtab.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.vtool{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;padding:4px 0;font-size:12px;display:flex}.vtool label{align-items:center;gap:4px;display:inline-flex}.vtool .vtl{text-transform:uppercase;letter-spacing:.05em;margin-left:6px;font-size:11px}.vtool .seg{display:inline-flex}.vtool .seg button{border-radius:0;padding:2px 8px;font-size:12px}.vtool .seg button:first-child{border-radius:4px 0 0 4px}.vtool .seg button:last-child{border-radius:0 4px 4px 0}.vtool .seg button+button{margin-left:-1px}.vtool .seg button.on{background:var(--brand-soft);border-color:var(--brand);color:var(--ink);position:relative}.vtool button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.pf{flex-direction:column;flex:1;min-height:0;display:flex}.pfbody{background:var(--bg);flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px 20px 28px;display:flex;overflow:auto}.pfbody .card{background:var(--panel);border:1px solid var(--line);border-radius:10px}.pfbody .card.pad{padding:12px 14px}.pfbody .card h3{margin:0 0 6px;font-size:13px}.pfov{flex-direction:column;gap:14px;display:flex}.pfov .tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}@media (width<=1400px){.pfov .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=800px){.pfov .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.pfov .tile{background:var(--panel);border:1px solid var(--line);box-shadow:inset 4px 0 0 var(--line-strong);border-radius:10px;justify-content:space-between;gap:8px;min-width:0;padding:12px 14px;display:flex}.pfov .tile.good{box-shadow:inset 4px 0 #16a34a}.pfov .tile.watch{box-shadow:inset 4px 0 #d97706}.pfov .tile.bad{box-shadow:inset 4px 0 0 var(--crit)}.pfov .tile .tl{flex-direction:column;gap:3px;min-width:0;display:flex}.pfov .tile .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.pfov .tile .val{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px;font-weight:700;line-height:1.15}.pfov .tile .val small{color:var(--muted);font-size:13px;font-weight:500}.pfov .tile .sub{color:var(--muted);font-size:11.5px;line-height:1.4}.pfov .tile .sub b{color:var(--ink)}.pfov .tile .sub b.neg,.pfov .neg,.pfov .tile.bad .val{color:var(--crit)}.pfov .tile.open{cursor:pointer;transition:border-color .12s,transform .12s}.pfov .tile.open:hover{border-color:var(--brand);transform:translateY(-1px)}.pfov .panels{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;display:grid}.pfov .panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:0;padding:12px 14px 10px}.pfov .panel.wide{grid-column:span 2}@media (width<=900px){.pfov .panel.wide{grid-column:auto}}.pfov .panel h3{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 8px;font-size:13px;font-weight:600;display:flex}.pfov .panel h3 small{color:var(--muted);font-size:11px;font-weight:400}.pfov .panel h3 .xopen{color:var(--brand);border-color:var(--line);background:0 0;margin-left:auto;padding:1px 8px;font-size:11px}.pfbody .empty{color:var(--muted);padding:14px 4px;font-size:12px}.pfbody .chartbox{width:100%;min-width:0}.pfbody .dtab{border-collapse:collapse;width:100%;font-size:12px}.pfbody .dtab td{border-bottom:1px solid var(--soft);padding:5px 4px}.pfbody .dtab tr{cursor:pointer}.pfbody .dtab tr:hover td{background:var(--sel)}.pfbody .dtab td.w{text-overflow:ellipsis;white-space:nowrap;width:60%;max-width:0;overflow:hidden}.pfbody .dtab td.d{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;width:1%}.pfbody .dtab td.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:1%}.pfbody .dtab .cr{color:var(--crit);font-size:11px}.pfbody .chip{background:var(--soft);color:var(--ink);white-space:nowrap;border-radius:10px;padding:0 7px;font-size:11px;display:inline-block}.pfbody .chip.good{color:#15803d;background:#16a34a22}.pfbody .chip.watch{color:#b45309;background:#d9770622}.pfbody .chip.bad{color:var(--crit);background:#c2410c22}:root[data-theme=dark] .pfbody .chip.good{color:#4ade80}:root[data-theme=dark] .pfbody .chip.watch{color:#fbbf24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pfbody .chip.good{color:#4ade80}:root:not([data-theme=light]) .pfbody .chip.watch{color:#fbbf24}}.pfbody .xlegend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:4px;font-size:11px;display:flex}.pfbody .xlegend button{color:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:0;display:inline-flex}.pfbody .xlegend button.off{opacity:.4;text-decoration:line-through}.pfbody .xlegend i{border-radius:2px;width:10px;height:9px;display:inline-block}.pfbody .xlegend i.ln{border-top:2px solid;border-radius:0;width:16px;height:0}.pfbody .xlegend i.ln.bl{border-color:var(--pv);border-top-style:dotted}.pfbody .xlegend i.ln.cu{border-color:var(--cum)}.pfbody .dsvg .pcol{fill:#0000}.pfbody .dsvg .xseg{stroke:var(--panel);stroke-width:.5px}.pfbody .dsvg .bbl{stroke:var(--pv);stroke-width:2px}.pfbody .dsvg .sbl{fill:none;stroke:var(--pv);stroke-width:1.5px;stroke-dasharray:3 3}.pfbody .dsvg .xcum{fill:none;stroke:var(--cum);stroke-width:2px}.pfbody .dsvg .gl{stroke:var(--soft)}.pfbody .dsvg .dd{stroke:var(--crit);stroke-width:1.2px;stroke-dasharray:4 3}.pfbody .dsvg text.axin{fill:var(--muted);font-size:10px}.pfbody .dsvg text.axin.r{text-anchor:end}.pfbody .dsvg text.axin.c{text-anchor:middle}.pfbody .dsvg text.cumt{fill:var(--cum)}.estb .estbar{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.estb .estc{background:var(--soft);color:var(--muted);border-radius:6px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;display:inline-flex}.estb .estc.on{background:var(--brand-soft);color:var(--ink)}.estb .estc.bad{color:var(--crit);background:#c2410c22}.estb .estc b{font-size:13px}.estb .estrow{border-bottom:1px solid var(--soft);padding:3px 0;font-size:12px}.pfperiod{flex-direction:column;gap:14px;display:flex}.pfperiod .kpis{color:var(--muted);margin-bottom:6px;font-size:12px}.pfperiod .kpis b{color:var(--ink)}.pfbody .xtbar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 12px;display:flex}.pfbody .xtbar button{margin-left:auto}.pfbody .xscroll{max-height:420px;overflow:auto}table.ptab.pfx{width:auto;min-width:100%;margin:0}.pfx th.w,.pfx td.w{background:var(--panel);z-index:1;min-width:160px;position:sticky;left:0}.pfx th.dd{color:var(--crit)}.pfx td.b{font-weight:600}.pfx tr.tot td{border-top:1px solid var(--line);font-weight:600}.tlbox{overflow:auto}.tlsvg .tlgrp{fill:var(--subtle)}.tlsvg .tlgl{fill:var(--ink);font-size:12px;font-weight:600}.tlsvg .tlgn{fill:var(--muted);font-weight:400}.tlsvg .tlname{fill:var(--ink);font-size:12px}.tlsvg .tlcode{font-weight:600}.tlsvg .tlbl{fill:none;stroke:var(--pv);stroke-dasharray:3 2}.tlsvg .tlbar{fill:var(--bar-f);stroke:var(--bar-s)}.tlsvg .tlbar.late{stroke:var(--crit)}.tlsvg .tlpct{fill:var(--bar-s)}.tlsvg .tldd{stroke:var(--crit);stroke-width:1.5px}.tlsvg .tllate{fill:var(--crit);font-size:10px;font-weight:600}.tlsvg .tlrow:hover .tlname{fill:var(--brand)}.pfbody .dlg{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;font-size:11px;display:flex}.pfbody .dlg i.sw{vertical-align:middle;border-radius:2px;width:14px;height:9px;margin-right:4px;display:inline-block}.pfbody .dlg i.tlbarsw{background:var(--bar-f);border:1px solid var(--bar-s)}.pfbody .dlg i.tlblsw{border:1px dashed var(--pv)}.pfbody .dlg i.ln{vertical-align:middle;border-top:2px solid;width:14px;height:0;margin-right:4px;display:inline-block}.pfbody .dlg i.ddl{border-color:var(--crit)}.pfrep{grid-template-columns:minmax(360px,640px) minmax(300px,420px);gap:14px;display:grid}@media (width<=1000px){.pfrep{grid-template-columns:1fr}}.pfrep .form.v{padding:12px 14px}.pfrep .chks{flex-wrap:wrap;gap:4px 14px;display:flex}.pfrep textarea{font:inherit;width:100%}.pfprojects{flex-direction:column;gap:14px;display:flex}.pfprojects .hhead{align-items:center;gap:12px;display:flex}.pfprojects .hhead .sub{color:var(--muted);font-size:12px}.pfprojects .hhead .sub b{color:var(--ink)}.pfprojects .hhead input.search{width:220px;margin-left:auto}.pfprojects .oc.est{cursor:pointer;display:inline-block}.pfprojects .oc.est.editing{align-items:center;gap:4px;display:inline-flex}.pfprojects .oc.est.editing label{color:var(--muted);align-items:center;gap:2px;font-size:11px;display:inline-flex}.pfprojects .oc.est.editing input{width:120px}.pfprojects table.ptab{width:100%;margin:0}.pfprojects .ptab th{background:var(--panel);z-index:1;position:sticky;top:0}.pfprojects .ptab td{white-space:nowrap}.pfprojects .ptab tr.grp td{background:var(--subtle);border-top:1px solid var(--line);padding:6px 4px;font-weight:600}.pfprojects .ptab tr.grp.l1 td{background:0 0;border-top:none;padding-left:22px}.pfprojects .ptab tr.grp .tg{width:18px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0}.pfprojects .ptab tr.grp .cnt{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.pfprojects .ptab tr.pj.l1 td:first-child{padding-left:24px}.pfprojects .ptab tr.pj.l2 td:first-child{padding-left:42px}.pfprojects .ptab td.oc{cursor:text;min-width:90px}.pfprojects .ptab td.oc:hover{background:var(--sel)}.pfprojects .ptab td.oc .none{color:var(--muted)}.pfprojects .ptab td.oc input,.pfprojects .ptab td.oc select{width:100%;min-width:120px;padding:1px 4px}.pfprojects .ptab .st{background:var(--soft);border-radius:10px;padding:0 7px;font-size:11px;display:inline-block}.pfprojects .ptab .st.active{color:#15803d;background:#16a34a22}.pfprojects .ptab .st.on-hold{color:#b45309;background:#d9770622}.pfprojects .ptab .st.complete{background:var(--brand-soft);color:var(--brand)}.pfprojects .ptab .st.cancelled{opacity:.6}.pfprojects p.hint.pad{margin:0;padding:6px 12px 0}.pfprojects .folder{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:760px;padding-bottom:8px}.pfbody .home-empty{background:var(--panel);border:1px dashed var(--line-strong);border-radius:10px;flex-direction:column;align-items:flex-start;gap:10px;max-width:640px;padding:24px;display:flex}.pfbody .home-empty h3,.pfbody .home-empty p{margin:0}.pfbody .home-empty .row2{gap:8px;display:flex}.ent{flex-direction:column;gap:14px;display:flex}.ent .enttabs{display:inline-flex}.ent .enttabs button{border-radius:0}.ent .enttabs button:first-child{border-radius:4px 0 0 4px}.ent .enttabs button:last-child{border-radius:0 4px 4px 0}.ent .enttabs button+button{margin-left:-1px}.ent .enttabs button.on{background:var(--brand-soft);border-color:var(--brand);position:relative}.entgrid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.entlist .row2,.ent .row2{gap:6px;margin:8px 0;display:flex}.entlist .row2 input,.ent .row2 input:first-child{flex:1}.entul{margin:0;padding:0;list-style:none}.entul li{border-bottom:1px solid var(--soft);align-items:center;gap:6px;padding:3px 0;display:flex}.entul li input{flex:1}.entul li input.desc{flex:2}.entul li.on{background:var(--sel)}.entul li .acts{gap:2px;margin-left:auto;display:flex}.ent table.ptab,.ent table.rtab{width:100%;margin:6px 0 0}.ent .obst input{width:100%}.wtgrid{grid-template-columns:minmax(260px,360px) 1fr;gap:14px;display:grid}@media (width<=900px){.wtgrid{grid-template-columns:1fr}}.wted .row2 input{flex:1}.fpill.cpill{margin-right:6px}.brand .cpill.ok{border-color:#2dd4bf}.brand .cpill.warn{color:#fde68a;border-color:#a16207}[data-k=cloud-signin] .seg{margin-bottom:4px;display:inline-flex}[data-k=cloud-signin] .seg button{border-radius:0}[data-k=cloud-signin] .seg button:first-child{border-radius:4px 0 0 4px}[data-k=cloud-signin] .seg button:last-child{border-radius:0 4px 4px 0;margin-left:-1px}[data-k=cloud-signin] .seg button.on{background:var(--brand-soft);border-color:var(--brand)}.drawer .entul{margin:0;padding:0;list-style:none}.drawer .entul li{border-bottom:1px solid var(--soft);justify-content:space-between;gap:6px;padding:3px 0;display:flex}.drawer.assist{flex-direction:column;width:420px;padding-bottom:0;display:flex}.drawer.assist .dh{align-items:center;gap:8px}.drawer.assist .dh .hint{flex:1}.drawer.assist .lnk{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:12px}.drawer.assist .lnk:disabled{opacity:.5;cursor:default}.drawer.assist .chat{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 12px;display:flex;overflow:auto}.drawer.assist .intro p{margin:0 0 8px;font-size:13px}.drawer.assist .msg{max-width:100%;font-size:13px;line-height:1.45}.drawer.assist .msg.user{background:var(--brand-soft);border-radius:10px 10px 2px;align-self:flex-end;max-width:90%;padding:7px 10px}.drawer.assist .msg.user p{white-space:pre-wrap;margin:0}.drawer.assist .msg.assistant{border-left:3px solid var(--brand);padding:2px 0 2px 10px}.drawer.assist .msg.assistant p{margin:0 0 7px}.drawer.assist .msg.assistant ul{margin:0 0 7px;padding-left:18px}.drawer.assist .msg.assistant li{margin:2px 0}.drawer.assist .msg.assistant h5{text-transform:uppercase;letter-spacing:.05em;color:var(--brand);margin:8px 0 4px;font-size:12px}.drawer.assist .msg code{background:var(--soft);border-radius:3px;padding:0 4px;font-size:12px}.drawer.assist .msg.err{color:var(--crit);border-left:3px solid var(--crit);padding-left:10px}.drawer.assist .quick{border-top:1px solid var(--soft);flex-wrap:wrap;gap:4px;padding:8px 12px;display:flex}.drawer.assist .quick .chip{cursor:pointer;border:1px solid var(--line);background:var(--panel);padding:2px 8px;font-size:11px}.drawer.assist .quick .chip:hover:not(:disabled){border-color:var(--brand)}.drawer.assist .askrow{border-top:1px solid var(--line);background:var(--panel);gap:6px;padding:8px 12px 10px;display:flex;position:sticky;bottom:0}.drawer.assist textarea{resize:none;font:inherit;border:1px solid var(--line);background:var(--bg);color:inherit;border-radius:6px;flex:1;padding:6px 8px;font-size:13px}.gatebar{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#0f766e22,#7c3aed22);justify-content:center;align-items:center;gap:14px;padding:6px 14px;font-size:13px;display:flex}.gatebar b{color:var(--brand)}.gatebar button{padding:3px 12px}.dmark{vertical-align:middle;color:#fff;width:22px;height:22px;display:inline-block}.brand .logo{align-items:center;margin-right:2px;display:inline-flex}.conn{flex-direction:column;gap:10px;padding:10px 14px;display:flex}.conn .enttabs .hint{align-self:center;margin-left:auto}.conn .connbody{flex-direction:column;gap:10px;max-width:1100px;display:flex}.conn .card.pad h3{margin-bottom:4px}.conn .card.pad>.hint{margin-bottom:8px;display:block}.conn .note{background:var(--soft);word-break:break-all;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.conn code{background:var(--soft);border-radius:4px;padding:1px 5px;font-size:12px}.conn .catgrid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:10px 0;display:grid}.conn .catitem{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.conn .catitem:hover{border-color:var(--brand)}.conn .catitem .hint{white-space:normal;font-size:11px}.conn .connhead{cursor:pointer;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.conn .connhead .grow{flex:1}.conn .conndetail{border-top:1px solid var(--soft);flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;display:flex}.conn .conndetail h4{color:var(--muted);margin:6px 0 0;font-size:12px}.conn .form.v{padding:6px 0 0}.conn .form label.w input,.conn .form label.w select{width:100%;max-width:560px}.conn details{font-size:12px}.conn details summary{cursor:pointer;color:var(--muted)}.conn .dtab td.w{white-space:normal;max-width:none}.conn .chip.good{color:#15803d;background:#16a34a22}.conn .chip.bad{color:#b91c1c;background:#dc262622}.conting{border-bottom:1px solid var(--soft);margin-bottom:6px;padding-bottom:6px}.conting .form{padding:6px 10px}.conting .ctiles{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;padding:0 10px 6px;display:grid}.conting .ctiles div{background:var(--panel);border:1px solid var(--line);border-radius:6px;flex-direction:column;padding:4px 8px;display:flex}.conting .ctiles span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.conting .ctiles b{font-variant-numeric:tabular-nums;font-size:13px}.conting .ctiles .rem{border-color:var(--brand)}.conting .ctiles .bad b{color:var(--crit)}.conting .ctbody{padding:0 10px}.conting .ctchart svg{display:block}.conting .ctchart .line{fill:none;stroke:var(--brand);stroke-width:2px}.conting .ctchart .ax{stroke:var(--soft)}.conting .ctchart .lbl{fill:var(--muted);font-size:9px}.conting .ctchart circle.draw{fill:var(--crit)}.conting .ctchart circle.release{fill:#16a34a}.conting .ctchart circle.adjust,.conting .ctchart circle[class*=transfer]{fill:var(--muted)}.conting tr.proposed td{background:#f59e0b24}.conting .warn{color:var(--crit)}.smallscreen{color:#f2f4f8;background:#0a0c11;place-items:center;min-height:100dvh;padding:24px 16px;font-family:Inter,Segoe UI,system-ui,sans-serif;display:grid}.smallscreen .card{background:#151821;border:1px solid #ffffff1a;border-radius:14px;width:100%;max-width:440px;padding:26px 22px}.smallscreen .brand{align-items:center;gap:10px;margin-bottom:14px;font-size:18px;font-weight:700;display:flex}.smallscreen .brand svg{color:#fff;width:28px;height:28px}.smallscreen h1{letter-spacing:-.02em;margin:0 0 10px;font-size:24px;font-weight:300}.smallscreen p{color:#c3c9d4;margin:0 0 10px;font-size:15px;line-height:1.5}.smallscreen p.hint{color:#8b94a3;font-size:13px}.smallscreen .acts{flex-direction:column;gap:10px;margin:16px 0 10px;display:flex}.smallscreen .acts a,.smallscreen .acts button{text-align:center;color:#f2f4f8;width:100%;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff24;border-radius:999px;padding:12px 16px;font-size:15px;font-weight:600;text-decoration:none;display:block}.smallscreen .acts .primary{color:#06131a;background:linear-gradient(90deg,#2dd4bf,#4f9cff);border:none}.smallscreen button.link{color:#8b94a3;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.phone{background:var(--bg);min-height:100dvh;color:var(--ink);-webkit-text-size-adjust:100%;flex-direction:column;font-size:15px;line-height:1.4;display:flex}.ph-head{z-index:2;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;background:var(--chrome);color:#f2f4f8;align-items:center;gap:10px;display:flex;position:sticky;top:0}.ph-head .brand{font-size:16px;font-weight:700}.ph-head .ro{letter-spacing:.04em;text-transform:uppercase;color:#c3c9d4;border:1px solid #ffffff40;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:11px}.ph-main{padding:14px 16px calc(84px + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex:1;width:100%;max-width:640px;margin:0 auto}.ph-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ph-tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;min-width:0;padding:12px 12px 10px;display:flex;box-shadow:inset 4px 0 #0000}.ph-tile .l{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px}.ph-tile b{letter-spacing:-.01em;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:600;overflow:hidden}.ph-tile .s{color:var(--muted);font-size:12px}.ph-tile.good{box-shadow:inset 4px 0 #16a34a}.ph-tile.watch{box-shadow:inset 4px 0 #d97706}.ph-tile.bad{box-shadow:inset 4px 0 0 var(--crit)}.ph-sec{margin-top:22px}.ph-sec h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px;font-size:13px;font-weight:600}.ph-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ph-row{text-align:left;background:var(--panel);border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.ph-row:active{background:var(--brand-soft)}.ph-row .t{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;display:flex}.ph-row .t b{color:var(--brand)}.ph-row .s{color:var(--muted);flex-wrap:wrap;gap:4px 6px;font-size:12px;display:flex}.ph-pill{background:var(--soft);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.ph-pill.good{color:#166534;background:#dcfce7}.ph-pill.watch{color:#92400e;background:#fef3c7}.ph-pill.bad{color:var(--crit);background:#ffedd5}:root[data-theme=dark] .ph-pill.good{color:#bbf7d0;background:#14532d}:root[data-theme=dark] .ph-pill.watch{color:#fde68a;background:#78350f}:root[data-theme=dark] .ph-pill.bad{color:#fed7aa;background:#7c2d12}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ph-pill.good{color:#bbf7d0;background:#14532d}:root:not([data-theme=light]) .ph-pill.watch{color:#fde68a;background:#78350f}:root:not([data-theme=light]) .ph-pill.bad{color:#fed7aa;background:#7c2d12}}.ph-ms{background:var(--panel);border:1px solid var(--line);border-radius:12px;grid-template-columns:92px 1fr;gap:2px 10px;padding:10px 12px;display:grid}.ph-ms .d{font-variant-numeric:tabular-nums;color:var(--brand);font-size:13px;font-weight:600}.ph-ms .n{flex-direction:column;gap:1px;min-width:0;font-size:14px;display:flex}.ph-ms .n small{color:var(--muted);font-size:12px}.ph-ms .n small.pj b{color:var(--brand);font-weight:600}.ph-ms .n .a b{font-weight:600}.ph-ms .n small.own:before{content:"Owner: "}.ph-ms .v{grid-column:2;gap:6px;display:flex}.ph-empty{background:var(--panel);border:1px dashed var(--line);color:var(--muted);border-radius:12px;margin:0;padding:12px 14px;font-size:14px}.ph-cash svg{width:100%;height:auto;display:block}.ph-cash .fc{fill:var(--bar-f)}.ph-cash .ac{fill:var(--bar-s)}.ph-cash .bl{fill:none;stroke:var(--pv);stroke-width:1.5px;stroke-dasharray:3 2}.ph-cash .ax{fill:var(--muted);font-size:10px}.ph-cash .ax.e{text-anchor:end}.ph-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;font-size:12px;display:flex}.ph-legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.ph-legend i.fc{background:var(--bar-f)}.ph-legend i.ac{background:var(--bar-s)}.ph-legend i.bl{border-top:2px dashed var(--pv);height:0}.ph-legend span{margin-left:auto}.ph-back{color:var(--brand);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 0 8px;font-size:15px;font-weight:600}.ph-project h1{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600;line-height:1.25}.ph-project h1 b{color:var(--brand)}.ph-meta{color:var(--muted);margin:4px 0 14px;font-size:13px}.ph-more p{margin:0 0 10px}.ph-more .muted,.ph-empty-page .muted{color:var(--muted)}.ph-btn{box-sizing:border-box;text-align:center;border:1px solid var(--line-strong);background:var(--panel);width:100%;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;margin:0 0 8px;padding:12px 16px;font-size:15px;font-weight:600;text-decoration:none;display:block}.ph-btn.primary{border-color:var(--brand);background:var(--brand);color:#fff}.ph-foot{text-align:center;color:var(--muted);margin:24px 0 0;font-size:12px}.ph-empty-page{text-align:center;padding:40px 0}.ph-empty-page h1{margin:0 0 8px;font-size:22px;font-weight:600}.ph-empty-page p{color:var(--muted);margin:0 0 16px}.ph-acts{flex-direction:column;gap:0;display:flex}.ph-tabs{z-index:3;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.ph-tabs button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 0 4px;font-size:11px;display:flex}.ph-tabs button:first-line{font-size:20px;line-height:1}.ph-tabs button.on{color:var(--brand)}.ph-tabs button.on.dim{color:var(--ink)}.form select.role{font:inherit;border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:4px;padding:2px 4px;font-size:12px}.form span.role{text-transform:none}.form .row2.inv{grid-template-columns:1fr auto auto;gap:6px;display:grid}.form .entul li select.role{margin-left:auto;margin-right:6px}.entul.audit{max-height:260px;font-size:11px;overflow-y:auto}.entul.audit li{word-break:break-word;line-height:1.35;display:block}.entul.audit b{margin:0 4px;font-weight:600}.pcardsview{flex-direction:column;gap:14px;display:flex}.cgroup h3{align-items:center;gap:8px;margin:6px 0 8px;font-size:13px;font-weight:600;display:flex}.cgroup h3 .cnt{color:var(--muted);font-weight:400}.cgroup h3 .hsum{align-items:center;gap:4px;margin-left:6px;display:inline-flex}.cgroup h3 .hsum small{color:var(--muted);margin-left:4px;font-weight:400}.cgroup.l1{margin-left:16px}.cgroup.l2{margin-left:32px}.pcards{grid-template-columns:repeat(auto-fill,minmax(390px,1fr));gap:12px;display:grid}.pcard{background:var(--panel);border:1px solid var(--line);box-shadow:inset 4px 0 0 var(--line-strong);cursor:pointer;border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:12px 14px 10px;transition:border-color .12s,transform .12s;display:flex}.pcard:hover,.pcard:focus-visible{border-color:var(--brand);outline:none;transform:translateY(-1px)}.pcard.on{border-color:var(--brand)}.pcard.good{box-shadow:inset 4px 0 #16a34a}.pcard.watch{box-shadow:inset 4px 0 #d97706}.pcard.bad{box-shadow:inset 4px 0 #dc2626}.pcard.done{box-shadow:inset 4px 0 #2563eb}.pcard header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.pcard .pid{flex-direction:column;min-width:0;display:flex}.pcard .pid b{color:var(--brand);letter-spacing:.02em;font-size:12px}.pcard .pn{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.pcard .porg{color:var(--muted);margin-top:-4px;font-size:11px}.pcard .pbody{grid-template-columns:150px 1fr;align-items:center;gap:12px;display:grid}.pfacts{grid-template-columns:1fr 1fr;gap:8px 10px;margin:0;display:grid}.pfacts div{flex-direction:column;min-width:0;display:flex}.pfacts dt{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px;font-weight:600}.pfacts dd{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;font-weight:700;line-height:1.2;overflow:hidden}.pfacts small{color:var(--muted);font-size:11px}.pfacts dd.good,.pfacts small.good{color:#15803d}.pfacts dd.watch{color:#b45309}.pfacts dd.bad,.pfacts small.bad{color:var(--crit)}.pbar{background:var(--soft);border-radius:3px;height:6px;position:relative;overflow:hidden}.pbar i{position:absolute;top:0;bottom:0;left:0}.pbar i.d{background:var(--bar-s)}.pbar i.a{background:var(--bar-f)}.pcard footer{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:11px;display:flex}.pwhy{background:var(--subtle);color:var(--ink);border-radius:6px;padding:6px 8px;font-size:11px;line-height:1.35}.pwhy.bad{color:#991b1b;background:#fef2f2}.pwhy.watch{color:#92400e;background:#fffbeb}.gauge{flex-direction:column;align-items:center;display:flex}.gauge svg{display:block;overflow:visible}.gauge .gtrack{fill:none;stroke:var(--soft);stroke-width:10px}.gauge .gfill{fill:none;stroke-width:10px}.gauge .gtick{stroke:var(--line-strong);stroke-width:1.2px}.gauge .gplan{stroke:var(--ink);stroke-width:2px;stroke-dasharray:2 1.5}.gauge .gneedle{stroke:var(--ink);stroke-width:2px;stroke-linecap:round}.gauge .ghub{fill:var(--panel);stroke:var(--ink);stroke-width:2px}.gauge .gval{text-anchor:middle;font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.gauge .gcap{fill:var(--muted);text-anchor:middle;font-size:6.5px}.gauge .gend{fill:var(--muted);text-anchor:end;font-size:6px}.gauge .gend.e{text-anchor:start}.gauge .gsub{color:var(--muted);margin-top:2px;font-size:11px}.hdot{white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.hdot i{width:9px;height:9px;box-shadow:0 0 0 2px var(--panel);border-radius:50%;display:inline-block}.hdot.good{color:#15803d}.hdot.watch{color:#b45309}.hdot.bad{color:#b91c1c}.hdot.done{color:#1d4ed8}.hhead .hsum{align-items:center;gap:6px;margin:0 2px;font-weight:600;display:inline-flex}.pfov .tile.gaugetile .tl{text-align:center;align-items:center}.pfov .tile .hbar{background:var(--soft);border-radius:4px;height:8px;margin:6px 0 4px;display:flex;overflow:hidden}.pfov .tile .hbar i{display:block}.pfov .tile .hbar i.good{background:#16a34a}.pfov .tile .hbar i.watch{background:#d97706}.pfov .tile .hbar i.bad{background:#dc2626}.pfov .tile .hbar i.done{background:#2563eb}.pfov .tile .hcounts{flex-wrap:wrap;gap:4px 10px;margin-bottom:4px;font-size:12px;display:flex}.pfov .tile .hcounts span{align-items:center;gap:4px;display:inline-flex}.pfov .tile.done{box-shadow:inset 4px 0 #2563eb}:root[data-theme=dark] .hdot.good,:root[data-theme=dark] .pfacts dd.good,:root[data-theme=dark] .pfacts small.good{color:#4ade80}:root[data-theme=dark] .hdot.watch,:root[data-theme=dark] .pfacts dd.watch{color:#fbbf24}:root[data-theme=dark] .hdot.bad,:root[data-theme=dark] .pfacts dd.bad,:root[data-theme=dark] .pfacts small.bad{color:#f87171}:root[data-theme=dark] .hdot.done{color:#93c5fd}:root[data-theme=dark] .pwhy.bad{color:#fecaca;background:#3b1111}:root[data-theme=dark] .pwhy.watch{color:#fde68a;background:#3a2a0a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .hdot.good,:root:not([data-theme=light]) .pfacts dd.good,:root:not([data-theme=light]) .pfacts small.good{color:#4ade80}:root:not([data-theme=light]) .hdot.watch,:root:not([data-theme=light]) .pfacts dd.watch{color:#fbbf24}:root:not([data-theme=light]) .hdot.bad,:root:not([data-theme=light]) .pfacts dd.bad,:root:not([data-theme=light]) .pfacts small.bad{color:#f87171}:root:not([data-theme=light]) .hdot.done{color:#93c5fd}:root:not([data-theme=light]) .pwhy.bad{color:#fecaca;background:#3b1111}:root:not([data-theme=light]) .pwhy.watch{color:#fde68a;background:#3a2a0a}}.ph-hero{flex-direction:column;align-items:center;gap:6px;padding:6px 0 14px;display:flex}.ph-hero .gauge .gval{font-size:18px}.ph-hcounts{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:13px;display:flex}.ph-hcounts span{align-items:center;gap:5px;display:inline-flex}.ph-hcounts b{color:var(--ink)}.ph-card{box-shadow:inset 4px 0 0 var(--line-strong)}.ph-card.good{box-shadow:inset 4px 0 #16a34a}.ph-card.watch{box-shadow:inset 4px 0 #d97706}.ph-card.bad{box-shadow:inset 4px 0 #dc2626}.ph-card.done{box-shadow:inset 4px 0 #2563eb}.ph-card .t{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start}.ph-card .t .pid{flex:1;min-width:0}.ph-card .t .hdot{flex:none;margin-top:3px;font-size:12px}.ph-cardbody{grid-template-columns:104px 1fr;align-items:center;gap:8px;display:grid}.ph-facts{grid-template-columns:1fr 1fr;gap:6px 8px;min-width:0;display:grid}.ph-facts>span{flex-direction:column;min-width:0;display:flex}.ph-facts small{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:10px;font-weight:600}.ph-facts b{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.ph-facts em{color:var(--muted);font-size:11px;font-style:normal}.ph-facts em.bad{color:var(--crit)}.ph-facts em.good{color:#15803d}.ph-why{background:var(--subtle);color:var(--ink);border-radius:8px;max-width:100%;padding:6px 8px;font-size:12px;line-height:1.35;display:block}.ph-why.bad{color:#991b1b;background:#fef2f2}.ph-why.watch{color:#92400e;background:#fffbeb}:root[data-theme=dark] .ph-why.bad{color:#fecaca;background:#3b1111}:root[data-theme=dark] .ph-why.watch{color:#fde68a;background:#3a2a0a}:root[data-theme=dark] .ph-facts em.good{color:#4ade80}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ph-why.bad{color:#fecaca;background:#3b1111}:root:not([data-theme=light]) .ph-why.watch{color:#fde68a;background:#3a2a0a}:root:not([data-theme=light]) .ph-facts em.good{color:#4ade80}}.tabview{background:var(--bg);flex:1;min-height:0;padding:14px 20px 28px;overflow:auto}.tabview .tcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 0}.tabview .tbar{flex-wrap:wrap;align-items:center;gap:8px 10px;padding:4px 12px 8px;display:flex}.tabview .tbar b{font-size:14px}.tabview .tbar .sp{flex:1}.tabview .tbar .hint{max-width:60ch}.tabview .tbar button,.tabview .tbar a.btn{font:inherit;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:12px;text-decoration:none}.tabview .tbar button:disabled{opacity:.5;cursor:default}.tabview .xscroll{overflow-x:auto}.tabview .ptab{width:100%;margin:0}.tabview .ptab td.n,.tabview .ptab th.n{text-align:right}.tabview .ptab tfoot td{border-top:2px solid var(--line-strong);font-weight:600}.tabview .ptab .tg{width:16px;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;margin-right:2px;padding:0}.tabview .ptab tr.l0>td:first-child{font-weight:600}.tabview .ptab input.cell{font:inherit;width:9em;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:4px;padding:1px 4px;font-size:12px}.tabview .ptab input.cell.w{width:18em}.tabview .ptab input.cell.n{text-align:right;width:7em}.tabview .ptab input.cell:hover,.tabview .ptab input.cell:focus{border-color:var(--line-strong);background:var(--input);outline:none}.tabview .ptab select.role{max-width:16em}.tabview .ptab .tag{background:var(--soft);color:var(--muted);border-radius:8px;padding:0 6px;font-size:10px}.tabview .ptab .tag.finance{background:var(--brand-soft);color:var(--brand)}.tabview .ptab tr.unmapped td{background:var(--subtle)}.tabview .ptab td.acts{white-space:nowrap}.tabview .ptab td.acts .x{color:var(--muted);cursor:pointer;background:0 0;border:none}.tabview .ptab td.acts .danger{font:inherit;background:var(--crit);color:#fff;border:none;border-radius:4px;margin-right:4px;padding:1px 6px;font-size:11px}.tabview .empty.pad{color:var(--muted);padding:18px 14px}.tabview .empty.pad p{max-width:80ch;margin:0 0 8px}.tabview .hint.pad{margin:0;padding:6px 12px 0}.entrules{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;display:grid}.entrules label{margin:8px 0 4px;display:block}.entrules select{font:inherit;margin-left:6px}.periods .pcmp{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px;display:grid}.periods .pcmp span{background:var(--subtle);border-radius:8px;flex-direction:column;gap:1px;padding:6px 8px;display:flex}.periods .pcmp small{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:10px}.periods .pcmp b{font-size:13px}.periods .pcmp b.good{color:#15803d}.periods .pcmp b.watch{color:#b45309}.periods .pcmp b.bad{color:var(--crit)}.periods tr.cur td{font-weight:600}.periods tr.norec td{color:var(--muted);font-style:italic}.periods td.good{color:#15803d}.periods td.watch{color:#b45309}.periods td.bad{color:var(--crit)}.wbs-t input.cell.code{width:7em;font-weight:600}.wbs-t input.cell.w{width:16em}.wbs-t .wacts{white-space:nowrap;margin-left:4px}.wbs-t .wacts .x{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 3px}.wbs-t .wacts .x:hover{color:var(--ink)}.acwrap{vertical-align:middle;margin-left:6px;display:inline-flex;position:relative}.acbell{color:#b8c4d0;cursor:pointer;background:0 0;border:1px solid #3b4855;border-radius:6px;place-items:center;width:30px;height:26px;padding:0;display:inline-grid;position:relative}.acbell svg{width:16px;height:16px}.acbell:hover,.acavatar:hover{color:#fff;border-color:#5eead4}.acbell b{color:#fff;box-sizing:border-box;text-align:center;background:#dc2626;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-6px;right:-7px}.acavatar{color:#fff;letter-spacing:.02em;cursor:pointer;text-align:center;background:linear-gradient(135deg,#0f766e,#6d28d9);border:1px solid #3b4855;border-radius:50%;flex:none;width:28px;height:28px;padding:0;font:600 11px/26px Segoe UI,system-ui,sans-serif}.acavatar.big{cursor:default;width:40px;height:40px;font-size:14px;line-height:38px}.acavatar.huge{cursor:default;width:56px;height:56px;font-size:19px;line-height:54px}.acsignin{color:#fff;font:inherit;cursor:pointer;background:#0f766e;border:1px solid #0f766e;border-radius:6px;margin-left:6px;padding:2px 12px;font-size:12px;font-weight:600}.acpop{z-index:60;background:var(--panel);width:320px;max-height:min(80vh,640px);color:var(--ink);border:1px solid var(--line);text-align:left;border-radius:10px;font-size:13px;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 14px 40px #0f172a38}.acpop.wide{width:380px}.acwho{align-items:center;gap:10px;padding:14px 14px 10px;display:flex}.acwho>span:last-child{flex-direction:column;min-width:0;display:flex}.acwho b{font-size:14px}.acwho small{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.acwho.big{padding:4px 0 10px}.acorg{background:var(--subtle);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;margin:0 10px 8px;padding:10px 12px;display:flex}.acorg>small{color:var(--muted);word-break:break-all;font-size:11px}.acorgname{justify-content:space-between;align-items:center;gap:8px;display:flex}.acorgname em{background:var(--brand-soft);color:var(--brand);border-radius:10px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:600}.actenant{align-items:center;gap:8px;display:flex}.actenant small{color:var(--muted);font-size:11px}.actenant code{letter-spacing:.03em;font:600 13px/1.2 ui-monospace,Consolas,monospace}.acpop .lnk{color:var(--brand);font:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:12px}.acpop .lnk:hover{text-decoration:underline}.acsec{border-top:1px solid var(--line);padding:6px 0}.aclbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:4px 14px 2px;font-size:10px;font-weight:600;display:block}.acitem{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 14px;display:flex}.acitem:hover{background:var(--brand-soft)}.acitem small{color:var(--muted);font-size:11px}.actheme .seg{gap:4px;padding:2px 14px 6px;display:flex}.actheme .seg button{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border-radius:6px;flex:1;padding:4px 0;font-size:12px}.actheme .seg button.on{border-color:var(--brand);color:var(--brand);font-weight:600}.achead{border-bottom:1px solid var(--line);align-items:center;padding:12px 14px 8px;display:flex}.achead b{font-size:14px}.aclist{flex-direction:column;display:flex}.acempty{color:var(--muted);margin:0;padding:18px 14px;font-size:12px;line-height:1.45}.acnote{border:none;border-bottom:1px solid var(--soft);color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;gap:10px;padding:10px 14px;display:flex}.acnote:hover{background:var(--subtle)}.acnote.unread{background:var(--brand-soft)}.acnote.unread:hover{background:var(--brand-soft);filter:brightness(.98)}.acnote .acbody{flex-direction:column;gap:2px;min-width:0;display:flex}.acnote .acbody b{font-size:13px;font-weight:600}.acnote .acbody span{color:var(--ink);opacity:.85;font-size:12px}.acnote .acbody small{color:var(--muted);font-size:11px}.ackind{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.ackind.member{background:#2563eb}.ackind.security,.ackind.sso{background:#d97706}.ackind.sync,.ackind.project{background:#dc2626}.acnote:not(.unread) .ackind{opacity:.35}.drawer.profile h4{margin:14px 12px 4px}.drawer.profile .accur{color:var(--brand);font-size:11px;font-style:normal;font-weight:600}.drawer.profile .entul li{align-items:center}.brand .acpop,.brand .acpop b,.brand .acpop span,.brand .acpop code{color:var(--ink);font-weight:inherit}.brand .acpop b{font-weight:600}.brand .acpop small,.brand .acpop .aclbl{color:var(--muted)}.brand .acpop .acorgname em,.brand .acpop .lnk{color:var(--brand)}.brand .acpop .acavatar{color:#fff}.brand .acpop .actheme .seg button.on{color:var(--brand)}.gantt .lh{fill:var(--panel);stroke:var(--brand);stroke-width:1.5px;opacity:0;cursor:crosshair;transition:opacity .1s}.gantt .bar:hover .lh,.gantt.linking .lh{opacity:1}.gantt .lh:hover,.gantt .lh.tgt,.gantt .lh.src{fill:var(--brand);opacity:1}.gantt.linking,.gantt.linking .bar{cursor:crosshair}.gantt .ldrag line{stroke:var(--brand);stroke-width:2px;stroke-dasharray:5 3}.gantt .ldrag .ltgt{fill:none;stroke:var(--brand);stroke-width:2px}.gantt .ldrag .lblbg{fill:var(--chrome);opacity:.92}.gantt .ldrag .lbl{fill:#fff;font-size:11px;font-weight:600}.gantt .link,.gantt .dd,.gantt .ldrag{pointer-events:none}.dsvg .fblk{stroke:var(--panel);stroke-width:.6px}.dsvg .fcol.past .fblk{opacity:.55}.dsvg .fhit{fill:#0000}.dsvg .fcol:hover .fblk{filter:brightness(1.08)}.dsvg .ftot{stroke:var(--panel);stroke-width:3px;font-size:9px}.gantt .linkhit{fill:none;stroke:#0000;stroke-width:10px;pointer-events:stroke;cursor:pointer}.gantt.linking .linkhit{pointer-events:none}.gantt .lnk:hover .link,.gantt .lnk.on .link{stroke:var(--brand);stroke-width:2.2px}.linkedit{z-index:70;background:var(--panel);width:280px;color:var(--ink);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;padding:12px;font-size:13px;display:flex;position:fixed;box-shadow:0 14px 40px #0f172a38}.linkedit small{color:var(--muted);margin-top:-4px;font-size:11px}.linkedit label{justify-content:space-between;align-items:center;gap:8px;display:flex}.linkedit select,.linkedit input{font:inherit;width:170px}.linkedit .row2{gap:6px;margin-top:4px;display:flex}.linkedit .row2 .danger{margin-left:auto}.esttab{border:1px solid var(--line);border-radius:6px;max-height:340px;overflow:auto}.esttab .ptab{width:100%;margin:0;font-size:12px}.esttab td{vertical-align:middle}.esttab input.cell.w{width:18em;font:inherit;border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:4px;padding:1px 4px;font-size:12px}.est-draft{color:#b45309}.est-reviewed{color:#1d4ed8}.est-accepted{color:#15803d}.estb{background:var(--soft);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.estb.est-draft{background:#fef3c7}.estb.est-reviewed{background:#dbeafe}.estb.est-accepted{background:#dcfce7}.estrev{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;display:inline-flex}.estrev .lnk{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-size:12px}.rrules li{font-size:12px}.rangetab input.cell{font:inherit;border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:4px;width:10em;padding:1px 4px;font-size:12px}.rangetab input.cell.s{width:6em}.rangetab input.cell.n{text-align:right;width:4.5em}.rangetab input.cell.w{width:22em}.rangetab td.ord{white-space:nowrap}:root[data-theme=dark] .estb.est-draft{background:#3a2a0a}:root[data-theme=dark] .estb.est-reviewed{background:#172554}:root[data-theme=dark] .estb.est-accepted{background:#14532d}.explorer .seg{gap:4px;display:inline-flex}.explorer .seg button{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border-radius:6px;padding:3px 10px;font-size:12px}.explorer .seg button.on{border-color:var(--brand);color:var(--brand);font-weight:600}.explorer .exterms{flex-wrap:wrap;align-items:center;gap:6px 12px}.explorer .exterms label{white-space:nowrap}.exbest{background:var(--brand-soft);border-radius:8px;padding:8px 10px;font-size:13px}.exbest .lnk,.extab .lnk{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:none;padding:0 0 0 6px;font-size:12px;text-decoration:underline}.extab{width:100%;font-size:12px}.extab tr.best td{background:var(--brand-soft);font-weight:600}.tradeoff .pall{fill:var(--line-strong);opacity:.7}.tradeoff .pfront{fill:var(--brand)}.tradeoff .pbest{fill:#16a34a;stroke:var(--panel);stroke-width:2px}.tradeoff .pbase{fill:var(--panel);stroke:var(--ink);stroke-width:1.5px}.tradeoff .frontier{fill:none;stroke:var(--brand);stroke-width:1.5px}.tradeoff .tgt{stroke:#dc2626;stroke-dasharray:4 3}.tradeoff .axl{stroke:var(--line-strong)}.sens td.sw{width:160px}.sens .sbar{background:var(--soft);border-radius:3px;height:7px;margin:2px 0;display:block;position:relative}.sens .sbar i{border-radius:3px;position:absolute;top:0;bottom:0}.sens .sbar i.lo{background:#16a34a}.sens .sbar i.hi{background:#dc2626}:root{--l-ready:#15803d;--l-ready-bg:#ecfdf3;--l-back:#b45309;--l-back-bg:#fff7e6;--l-com:#1d4ed8;--l-com-bg:#eef4ff;--l-done:#475569;--l-done-bg:#f1f5f9;--l-miss:#b91c1c;--l-miss-bg:#fef2f2;--l-span:#f0f7f6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--l-ready:#4ade80;--l-ready-bg:#10261a;--l-back:#fbbf24;--l-back-bg:#2a2110;--l-com:#93c5fd;--l-com-bg:#142236;--l-done:#a3b1c2;--l-done-bg:#1a242f;--l-miss:#fca5a5;--l-miss-bg:#2c1515;--l-span:#13252a}}:root[data-theme=dark]{--l-ready:#4ade80;--l-ready-bg:#10261a;--l-back:#fbbf24;--l-back-bg:#2a2110;--l-com:#93c5fd;--l-com-bg:#142236;--l-done:#a3b1c2;--l-done-bg:#1a242f;--l-miss:#fca5a5;--l-miss-bg:#2c1515;--l-span:#13252a}.lean{background:var(--bg);flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px 20px 28px;display:flex;overflow:auto}.lean .lhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;display:flex}.lean h2{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:20px}.lean .lhead .sub{color:var(--muted);margin-top:2px;font-size:12px;display:block}.lean .lhead .sub b{color:var(--ink);font-weight:600}.lean h3{margin:0 0 8px;font-size:13px;font-weight:600}.lean h3 small{margin-left:6px;font-weight:400}.lean .grow{flex:1}.lean .hint.pad{margin:8px 0 0}.lean .lkpis{grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;display:grid}@media (width<=1100px){.lean .lkpis{grid-template-columns:repeat(2,minmax(150px,1fr))}}.lean .lkpi{background:var(--panel);border:1px solid var(--line);box-shadow:inset 4px 0 0 var(--line-strong);border-radius:10px;flex-direction:column;gap:1px;min-width:0;padding:8px 12px;display:flex}.lean .lkpi .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.lean .lkpi .val{font-variant-numeric:tabular-nums;font-size:20px;font-weight:650}.lean .lkpi .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.lean .lkpi.good{box-shadow:inset 4px 0 0 var(--l-ready)}.lean .lkpi.good .val{color:var(--l-ready)}.lean .lkpi.watch{box-shadow:inset 4px 0 0 var(--l-back)}.lean .lkpi.watch .val{color:var(--l-back)}.lean .lkpi.bad{box-shadow:inset 4px 0 0 var(--l-miss)}.lean .lkpi.bad .val{color:var(--l-miss)}.lean .ltabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;display:flex}.lean .ltab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:6px 12px;font-weight:500}.lean .ltab:hover{color:var(--ink)}.lean .ltab.on{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}.lean .lbody{flex-direction:column;gap:12px;min-width:0;display:flex}.lean .ltool{flex-wrap:wrap;align-items:center;gap:6px 12px;display:flex}.lean .vtl{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.lean .seg{display:inline-flex}.lean .seg button{border-radius:0;padding:2px 8px;font-size:12px}.lean .seg button:first-child{border-radius:4px 0 0 4px}.lean .seg button:last-child{border-radius:0 4px 4px 0}.lean .seg button+button{margin-left:-1px}.lean .seg button.on{background:var(--brand-soft);border-color:var(--brand);position:relative}.lean .seg.sm button{padding:1px 6px;font-size:11px}.lean .lpanel{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:0;padding:12px 14px;overflow-x:auto}.lean .lpanel .form.fw{padding:6px 0 0}.lean .prow{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;display:flex}.lean .prow h3{margin:0}.lean .lempty{color:var(--muted);text-align:center;background:var(--panel);padding:24px}.lean .tag.good{background:var(--l-ready-bg);color:var(--l-ready)}.lean .tag.warn{background:var(--l-back-bg);color:var(--l-back)}.lean .tag.bad{background:var(--l-miss-bg);color:var(--l-miss)}.lean label.inl{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.lean input.s{width:56px}.lean input.m{width:170px}.lean .crew{color:#fff;white-space:nowrap;border-radius:10px;padding:0 7px;font-size:11px;font-weight:600;line-height:17px;display:inline-block}.lean .crewlist{flex-wrap:wrap;gap:6px 14px;display:flex}.lean .crewrow{align-items:center;gap:4px;display:inline-flex}.lean .ldot{vertical-align:middle;background:var(--line-strong);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin:0 3px 0 6px;display:inline-block}.lean .ldot.ready{background:var(--l-ready)}.lean .ldot.backlog{background:var(--l-back)}.lean .ldot.committed{background:var(--l-com)}.lean .ldot.done{background:var(--l-done)}.lean .ldot.missed{background:var(--l-miss)}.lean .tc-h .ldot,.lean .wn .ldot{margin-left:0}.lean .pullgrid{gap:8px;padding-bottom:4px;display:grid;overflow-x:auto}.lean .pcol{background:var(--subtle);border:1px solid var(--soft);border-radius:8px;flex-direction:column;gap:6px;min-height:140px;padding:6px;display:flex}.lean .pcol.ms{background:var(--brand-soft);border-color:var(--brand)}.lean .pch{color:var(--muted);text-align:center;font-size:11px;line-height:1.35}.lean .pch b{color:var(--ink)}.lean .pcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:6px;padding:5px 7px;font-size:12px}.lean .pcard.sent{opacity:.7}.lean .pcard.msc{border-left-color:var(--brand);text-align:center;font-weight:600}.lean .pcard .pn{margin-bottom:3px;font-weight:600}.lean .pcard .pm{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:11px;display:flex}.lean .pcard .pa{justify-content:flex-end;gap:6px;margin-top:3px;display:flex}.lean .pcard .pa .lnk{text-decoration:none}.lean .lagrid{background:var(--line);border:1px solid var(--line);border-radius:10px;gap:1px;display:grid;overflow:auto}.lean .lah{background:var(--subtle);color:var(--muted);z-index:1;padding:6px 8px;font-size:11px;font-weight:600;position:sticky;top:0}.lean .lah.now{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}.lean .lah.first{z-index:2;left:0}.lean .lar{background:var(--panel);min-width:0;padding:6px 8px;font-size:12px}.lean .lar.first{z-index:1;position:sticky;left:0}.lean .lar.crit{box-shadow:inset 3px 0 0 var(--crit)}.lean .lar .lac{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lean .lar .laa{flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:3px;display:flex}.lean .lar .laa .tag{margin-left:0}.lean .lac-cell{background:var(--panel);flex-direction:column;gap:4px;min-width:0;padding:4px;display:flex}.lean .lac-cell.span{background:var(--l-span)}.lean .ladd{border:1px dashed var(--line-strong);color:var(--muted);opacity:0;background:0 0;padding:0;font-size:12px;line-height:16px}.lean .lac-cell:hover .ladd,.lean .ladd:focus-visible{opacity:1}.lean .tcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line-strong);cursor:default;border-radius:6px;padding:4px 6px;font-size:12px}.lean .tcard.ready{background:var(--l-ready-bg)}.lean .tcard.backlog{background:var(--l-back-bg)}.lean .tcard.committed{background:var(--l-com-bg)}.lean .tcard.done{background:var(--l-done-bg);color:var(--muted)}.lean .tcard.missed{background:var(--l-miss-bg)}.lean .tcard.open{box-shadow:0 2px 10px #0f172a26}.lean .tc-h{cursor:pointer;align-items:flex-start;gap:4px;display:flex}.lean .tc-h .ldot{margin-top:4px}.lean .tc-h .tn{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.lean .tcard.open .tc-h .tn{-webkit-line-clamp:unset;line-clamp:none}.lean .tc-h .tm{color:var(--muted);font-variant-numeric:tabular-nums}.lean .tc-m{cursor:pointer;flex-wrap:wrap;align-items:center;gap:4px;margin-top:3px;display:flex}.lean .tc-m .tag{margin-left:0}.lean .tc-edit{border-top:1px solid var(--soft);flex-direction:column;gap:4px;margin-top:6px;padding-top:6px;display:flex}.lean .tc-edit .form.fw{padding:0}.lean .tcons{flex-direction:column;gap:3px;display:flex}.lean .tcon{background:var(--l-back-bg);border-radius:4px;justify-content:space-between;gap:6px;padding:2px 4px;font-size:11px;display:flex}.lean .tcon.cleared{background:var(--l-done-bg);color:var(--muted)}.lean .tcon.late{background:var(--l-miss-bg)}.lean .tc-a{align-items:center;gap:6px;display:flex}.lean .cform{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.lean .cform input:not([type]){flex:1;min-width:140px}.lean .ptab tr.late td{background:var(--l-miss-bg)}.lean .ptab tr.cleared td{color:var(--muted)}.lean .ptab td.w{white-space:nowrap}.lean .ptab .tag{margin-left:4px}.lean .wwp{grid-template-columns:minmax(0,3fr) minmax(280px,2fr);align-items:start;gap:12px;display:grid}@media (width<=1000px){.lean .wwp{grid-template-columns:1fr}}.lean .wcrew{border-top:1px solid var(--soft);padding:6px 0}.lean .wcrew:first-of-type{border-top:none}.lean .wch{align-items:center;gap:8px;margin-bottom:4px;display:flex}.lean .wrow,.lean .crow{border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:flex}.lean .wrow:hover,.lean .crow:hover{background:var(--subtle)}.lean .wrow.done{background:var(--l-done-bg)}.lean .wrow.done b{text-decoration:line-through;-webkit-text-decoration-color:var(--l-done);text-decoration-color:var(--l-done)}.lean .wrow.missed{background:var(--l-miss-bg)}.lean .wn{flex:1;min-width:0}.lean .wa{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.lean .wa button{padding:1px 8px}.lean .wa button.on.good{background:var(--l-ready-bg);border-color:var(--l-ready);color:var(--l-ready)}.lean .wa button.on.bad{background:var(--l-miss-bg);border-color:var(--l-miss);color:var(--l-miss)}.lean .crow.backlog{color:var(--muted)}.lean .dgrid{background:var(--line);border:1px solid var(--line);border-radius:10px;gap:1px;display:grid;overflow:auto}.lean .dcrew{background:var(--subtle);align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.lean .drow{background:var(--panel);flex-direction:column;min-width:0;padding:5px 8px;font-size:12px;display:flex}.lean .drow .wn{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lean .dcell{background:var(--panel);border:none;border-radius:0;min-height:34px;font-size:14px;font-weight:700}.lean .dcell:hover{background:var(--subtle)}.lean .dcell.planned{background:var(--l-com-bg);color:var(--l-com)}.lean .dcell.done{background:var(--l-ready-bg);color:var(--l-ready)}.lean .dcell.blocked{background:var(--l-miss-bg);color:var(--l-miss)}.lean .dhud{background:var(--panel);align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.lean .dhud textarea{resize:vertical;flex:1;font-size:12px}.lean .lgrid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width<=1000px){.lean .lgrid2{grid-template-columns:1fr}}.lean .ppcsvg{width:100%;max-width:640px;height:auto;margin-bottom:8px;display:block}.lean .ppcsvg .grid{stroke:var(--soft)}.lean .ppcsvg .target{stroke:var(--l-ready);stroke-dasharray:5 4;stroke-width:1.2px}.lean .ppcsvg .ax{fill:var(--muted);font-size:10px}.lean .ppcsvg .v{fill:var(--ink);font-size:11px;font-weight:600}.lean .ppcsvg .bar.good{fill:var(--l-ready)}.lean .ppcsvg .bar.watch{fill:var(--l-back)}.lean .ppcsvg .bar.bad{fill:var(--l-miss)}.lean .pareto{flex-direction:column;gap:5px;margin-bottom:8px;display:flex}.lean .prow2{grid-template-columns:150px 1fr 80px;align-items:center;gap:8px;font-size:12px;display:grid}.lean .prow2 .pb{background:var(--subtle);border-radius:5px;height:10px;overflow:hidden}.lean .prow2 .pb i{background:var(--l-miss);border-radius:5px;height:100%;display:block}.lean .prow2 .pv{text-align:right;font-variant-numeric:tabular-nums}
