html,body{height:100%}body{overflow:hidden}#root{height:100%}:root{--slate-1:#fcfcfd;--slate-2:#f9f9fb;--slate-3:#f0f0f3;--slate-4:#e8e8ec;--slate-5:#e0e1e6;--slate-6:#d9d9e0;--slate-7:#cdced6;--slate-8:#b9bbc6;--slate-9:#8b8d98;--slate-10:#80838d;--slate-11:#60646c;--slate-12:#1c2024;--indigo-1:#fdfdfe;--indigo-2:#f7f9ff;--indigo-3:#edf2fe;--indigo-4:#e1e9ff;--indigo-5:#d2deff;--indigo-6:#c1d0ff;--indigo-7:#abbdf9;--indigo-8:#8da4ef;--indigo-9:#3e63dd;--indigo-10:#3358d4;--indigo-11:#3a5bc7;--indigo-12:#1f2d5c;--green-1:#fbfefc;--green-2:#f4fbf6;--green-3:#e6f6eb;--green-4:#d6f1df;--green-5:#c4e8d1;--green-6:#adddc0;--green-7:#8eceaa;--green-8:#5bb98b;--green-9:#30a46c;--green-10:#2b9a66;--green-11:#218358;--green-12:#193b2d;--amber-1:#fefdfb;--amber-2:#fefbe9;--amber-3:#fff7c2;--amber-4:#ffee9c;--amber-5:#fbe577;--amber-6:#f3d673;--amber-7:#e9c162;--amber-8:#e2a336;--amber-9:#ffc53d;--amber-10:#ffba18;--amber-11:#ab6400;--amber-12:#4f3422;--red-1:#fffcfc;--red-2:#fff7f7;--red-3:#feebec;--red-4:#ffdbdc;--red-5:#ffcdce;--red-6:#fdbdbe;--red-7:#f4a9aa;--red-8:#eb8e90;--red-9:#e5484d;--red-10:#dc3e42;--red-11:#ce2c31;--red-12:#641723;--violet-1:#fdfcfe;--violet-2:#faf8ff;--violet-3:#f4f0fe;--violet-4:#ebe4ff;--violet-5:#e1d9ff;--violet-6:#d4cafe;--violet-7:#c2b5f5;--violet-8:#aa99ec;--violet-9:#6e56cf;--violet-10:#654dc4;--violet-11:#6550b9;--violet-12:#2f265f;--blue-1:#fbfdff;--blue-2:#f4faff;--blue-3:#e6f4fe;--blue-4:#d5efff;--blue-5:#c2e5ff;--blue-6:#acd8fc;--blue-7:#8ec8f6;--blue-8:#5eb1ef;--blue-9:#0090ff;--blue-10:#0588f0;--blue-11:#0d74ce;--blue-12:#113264;--orange-1:#fefcfb;--orange-2:#fff7ed;--orange-3:#ffefd6;--orange-4:#ffdfb5;--orange-5:#ffd19a;--orange-6:#ffc182;--orange-7:#f5ae73;--orange-8:#ec9455;--orange-9:#f76b15;--orange-10:#ef5f00;--orange-11:#cc4e00;--orange-12:#582d1d;--cyan-1:#fafdfe;--cyan-2:#f2fafb;--cyan-3:#def7f9;--cyan-4:#caf1f6;--cyan-5:#b5e9f0;--cyan-6:#9ddde7;--cyan-7:#7dcedc;--cyan-8:#3db9cf;--cyan-9:#00a2c7;--cyan-10:#0797b9;--cyan-11:#107d98;--cyan-12:#0d3c48;--teal-1:#fafefd;--teal-2:#f3fbf9;--teal-3:#e0f8f3;--teal-4:#ccf3ea;--teal-5:#b8eae0;--teal-6:#a1ded2;--teal-7:#83cdc1;--teal-8:#53b9ab;--teal-9:#12a594;--teal-10:#0d9b8a;--teal-11:#008573;--teal-12:#0d3d38;--pink-1:#fffcfe;--pink-2:#fef7fb;--pink-3:#fee9f5;--pink-4:#fbdcef;--pink-5:#f6cee7;--pink-6:#efbfdd;--pink-7:#e7acd0;--pink-8:#dd93c2;--pink-9:#d6409f;--pink-10:#cf3897;--pink-11:#c2298a;--pink-12:#651249;--plum-1:#fefcff;--plum-2:#fdf7fd;--plum-3:#fbebfb;--plum-4:#f7def8;--plum-5:#f2d1f3;--plum-6:#e9c2ec;--plum-7:#deade3;--plum-8:#cf91d8;--plum-9:#ab4aba;--plum-10:#a144af;--plum-11:#953ea3;--plum-12:#53195d;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--slate-2);color:var(--slate-12);--bg:var(--slate-2);--panel:#fff;--panel-2:var(--slate-3);--line:var(--slate-7);--muted:var(--slate-11);--text:var(--slate-12);--blue:var(--indigo-9);--green:var(--green-10);--purple:var(--violet-10);--yellow:var(--amber-11);--amber-text:#b45309;--amber-fill:#e6a817;--red:var(--red-10);--white-soft:var(--slate-12);--sidebar-line:var(--slate-6);--tools-bg:var(--slate-2);--input-bg:#fff;--select-bg:var(--indigo-3);--select-border:var(--indigo-8);--select-text:var(--indigo-12);--select-menu-bg:#fff;--select-menu-text:var(--slate-12);--manual-bg:var(--indigo-3);--manual-border:var(--indigo-8);--manual-text:var(--indigo-12);--manual-focus:var(--indigo-9);--readonly-bg:var(--slate-3);--readonly-text:var(--slate-11);--table-line:var(--slate-6);--table-header:var(--slate-3);--table-cell:#fff;--table-hover:var(--slate-2);--table-strong:var(--slate-4);--table-footer:var(--slate-3);--section-row-bg:var(--slate-4);--section-row-border:var(--slate-8);--section-row-text:var(--slate-12);--section-row-muted:var(--slate-11);--group-row-bg:var(--slate-3);--chart-panel:linear-gradient(180deg, #fff 0%, var(--slate-2) 100%);--chart-surface:linear-gradient(180deg, #fffffff0 0%, #f9f9fbfa 100%), #fff;--chart-rail-bg:#fcfcfdf2;--chart-axis:var(--slate-11);--chart-title:var(--slate-12);--chart-week:var(--slate-12);--chart-series-planned:var(--blue-10);--chart-series-actual:var(--orange-10);--chart-series-earned:var(--green-9);--chart-series-progress:var(--cyan-10);--chart-series-approved:var(--green-11);--chart-series-baseline:var(--orange-11);--chart-series-efficiency:var(--indigo-9);--chart-series-downtime:var(--cyan-10);--chart-series-blocking:var(--orange-11);--chart-series-impact:var(--cyan-10);--chart-series-extra:var(--violet-9);--chart-series-danger:var(--red-11);--text-2xs:10px;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:15px;--font-num:"SFMono-Regular", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--steel:#0e7c8b;--ui-ease:.12s ease;--ui-hover-bg:var(--slate-4);--ui-press-bg:var(--slate-5);--ui-focus-ring:0 0 0 3px #3e63dd52;--ui-disabled-opacity:.48;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:2000;background:var(--blue);color:#fff;font-size:var(--text-md);border-radius:6px;padding:8px 14px;font-weight:600;transition:transform .12s;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{outline-offset:2px;outline:2px solid #fff;transform:translateY(0)}.main-area:focus{outline:none}body{background:var(--bg);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}button{cursor:pointer}select{appearance:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-color:var(--select-border);background-color:var(--select-bg);background-image:linear-gradient(45deg, transparent 50%, var(--select-text) 50%), linear-gradient(135deg, var(--select-text) 50%, transparent 50%);color:var(--select-text);background-position:calc(100% - 15px),calc(100% - 10px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:28px}select option,select optgroup{background:var(--select-menu-bg);color:var(--select-menu-text)}select:focus{border-color:var(--manual-focus);outline:0;box-shadow:0 0 0 2px #3d8bfd3d}button:focus-visible,[role=button]:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.58}.app-shell{--rail-w:clamp(232px, 17vw, 248px);--rail-bg:#0f1b2d;--rail-bg-elev:#16263c;--rail-line:#94adcc29;--rail-text:#aebfd4;--rail-text-strong:#f2f6fc;--rail-active-bg:var(--indigo-9);--rail-accent-line:color-mix(in srgb, var(--indigo-8) 60%, transparent);--rail-accent-strong:var(--indigo-8);grid-template-columns:var(--rail-w) minmax(0, 1fr);background:var(--bg);height:100dvh;min-height:0;color:var(--text);transition:grid-template-columns .22s;display:grid;overflow:hidden}.app-shell--rail-hidden{grid-template-columns:0 minmax(0,1fr)}.app-shell--rail-hidden .sidebar{pointer-events:none;visibility:hidden;border-right-color:#0000;padding-left:0;padding-right:0;transition:visibility 0s linear .22s}.sidebar-toprow{justify-content:space-between;align-items:center;gap:8px;display:flex}.sidebar-toprow .brand{flex:1}.sidebar-collapse{flex:none}.sidebar-collapse,.sidebar-reopen{border:1px solid var(--rail-line);background:var(--rail-bg-elev);width:30px;height:30px;color:var(--rail-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.sidebar-collapse:hover,.sidebar-reopen:hover{color:var(--rail-text-strong);border-color:#94adcc57}.sidebar-collapse:focus-visible,.sidebar-reopen:focus-visible{outline:2px solid var(--rail-active-bg);outline-offset:1px}.sidebar-reopen{z-index:1500;position:fixed;top:12px;left:12px;box-shadow:0 6px 18px #00000047}.mobile-topbar{display:none}@media (width<=900px){.mobile-topbar{z-index:1450;height:var(--mobile-topbar-height,52px);border-bottom:1px solid var(--rail-line);background:var(--rail-bg);color:var(--rail-text);align-items:center;gap:10px;padding:0 10px 0 14px;display:flex;position:sticky;top:0}.mobile-topbar button:focus-visible{box-shadow:0 0 0 2px var(--rail-bg), 0 0 0 4px var(--rail-active-bg);outline:none}.mobile-topbar-screen{color:var(--rail-text);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;opacity:.75;font-weight:700;overflow:hidden}.mobile-topbar-menu{border:1px solid var(--rail-line);width:40px;height:40px;color:inherit;background:0 0;border-radius:8px;flex:none;place-items:center;margin-left:auto;display:grid}}@media (width>=901px){.app-shell--rail-hidden .main-area{padding-left:62px}}.status-banners{z-index:2000;position:fixed;top:0;left:0;right:0}.write-lock-banner,.admin-readonly-banner{color:#fff;font-size:var(--text-base);text-align:center;padding:6px 12px;font-weight:600}.admin-readonly-banner{background:var(--amber-11)}.write-lock-banner{background:var(--red-11)}.app-shell--booting{grid-template-columns:minmax(0,1fr);place-items:center}.gate-screen{flex-direction:column;align-items:center;gap:18px;width:min(440px,92vw);padding:24px 0;display:flex}.gate-brand{color:var(--text);font-size:var(--text-lg);align-items:center;gap:10px;font-weight:700;display:flex}.gate-brand-icon{object-fit:contain;width:28px;height:28px}.gate-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:12px;width:100%;padding:24px;display:flex;box-shadow:0 1px 3px #0206170f}.gate-title{color:var(--text);margin:0;font-size:18px;font-weight:700}.gate-text{font-size:var(--text-md);color:var(--muted);margin:0;line-height:1.55}.gate-text strong{color:var(--text)}.gate-text a{color:var(--indigo-11);font-weight:600}.gate-input{width:100%;font:inherit;font-size:var(--text-md);color:var(--manual-text);background:var(--manual-bg);border:1px solid var(--manual-border);border-radius:8px;padding:10px 12px}.gate-input:focus{border-color:var(--manual-focus);outline:0;box-shadow:0 0 0 2px #3d8bfd38}.gate-input:disabled{border-color:var(--line);background:var(--readonly-bg);color:var(--muted)}.gate-cta{justify-content:center;width:100%}.gate-error{font-size:var(--text-sm);color:var(--red-11);margin:0;font-weight:600}.gate-footnote{font-size:var(--text-sm);color:var(--muted);margin:4px 0 0}.gate-spinner{border:2px solid var(--line);border-top-color:var(--indigo-9);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite gate-spin}@keyframes gate-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.gate-spinner{animation:none}}.boot-status{color:var(--muted);font-size:var(--text-md);flex-direction:column;align-items:center;gap:12px;font-weight:500;display:flex}.invite-gate-list{flex-direction:column;gap:10px;width:100%;display:flex}.invite-gate-row{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.invite-gate-company{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.sidebar{--ui-focus-ring:0 0 0 2px var(--rail-bg), 0 0 0 4px var(--rail-active-bg);scrollbar-width:thin;border-right:1px solid var(--rail-line);background:var(--rail-bg);height:100dvh;min-height:0;color:var(--rail-text);flex-direction:column;gap:clamp(10px,1.8vh,16px);padding:16px 14px;display:flex;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#94adcc47;border-radius:99px}.sidebar button:focus-visible,.sidebar select:focus-visible{box-shadow:var(--ui-focus-ring);outline:none}.brand{min-width:0;color:var(--rail-text-strong);font-size:var(--text-lg);letter-spacing:.01em;text-align:left;flex-direction:row;align-items:center;gap:10px;font-weight:800;display:flex}.brand>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.brand-mark{flex:0 0 32px;width:32px;height:32px;display:block;position:relative}.brand-mark-icon{object-fit:contain;width:32px;height:32px;display:block;position:absolute;inset:0}.brand-mark-icon-dark{display:block}.brand-mark-icon-light{display:none}.nav-list{gap:2px;margin-top:4px;display:grid}.nav-item{width:100%;min-height:38px;color:var(--rail-text);font-size:var(--text-sm);text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:row;justify-content:flex-start;align-items:center;gap:10px;padding:8px 10px;font-weight:600;line-height:1.2;display:flex}.nav-item svg{flex:none}.nav-item:hover{background:var(--rail-bg-elev);color:var(--rail-text-strong)}.nav-item.active{background:var(--rail-active-bg);color:#fff;border-color:#0000;box-shadow:0 2px 8px #3e63dd59}.sidebar-project-card{border:1px solid var(--rail-line);background:var(--rail-bg-elev);width:100%;color:var(--rail-text);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px;display:flex}.sidebar-project-card:hover{border-color:var(--rail-accent-line)}.sidebar-project-card-head{align-items:baseline;gap:8px;min-width:0;display:flex}.sidebar-project-card-foot{flex-wrap:wrap;align-items:center;gap:2px 8px;min-width:0;display:flex}.sidebar-project-name{min-width:0;color:var(--rail-text-strong);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.sidebar-project-code{color:var(--rail-text);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;opacity:.8;flex:none}.sidebar-project-duration{color:var(--rail-text);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.85}.sidebar-project-exposure{color:var(--rail-text);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-weight:700}.sidebar-project-exposure-word{opacity:.65;margin-left:4px;font-weight:600}.project-slot-progress{align-items:center;gap:8px;display:flex}.project-slot-progress-track{background:#94adcc38;border-radius:999px;flex:1;height:4px;overflow:hidden}.project-slot-progress-fill{border-radius:inherit;background:var(--rail-active-bg);height:100%;transition:width .3s;display:block}.project-slot-progress-value{min-width:4ch;color:var(--rail-text-strong);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;text-align:right;flex:none;font-weight:700}.project-slot-progress-track.scope-split{background:0 0;gap:2px;display:flex}.scope-bar-segment{background:#94adcc38;border-radius:999px;min-width:6px;height:100%;position:relative;overflow:hidden}.scope-bar-earned,.scope-bar-approved{border-radius:inherit;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.scope-bar-earned{background:color-mix(in srgb, var(--rail-active-bg) 40%, transparent)}.scope-bar-approved{background:var(--rail-active-bg)}.scope-bar-segment.extra .scope-bar-earned{background:color-mix(in srgb, var(--chart-series-actual) 40%, transparent)}.scope-bar-segment.extra .scope-bar-approved{background:var(--chart-series-actual)}.sidebar-project-actions{justify-content:flex-start;gap:4px;width:100%;display:flex}.sidebar-project-actions button{border:1px solid var(--rail-line);width:30px;height:30px;color:var(--rail-text);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.sidebar-project-actions button:hover{background:var(--rail-bg-elev);color:var(--rail-text-strong)}.sidebar-project-actions button.danger{color:#e2a49d;border-color:#a5483d73}.sidebar-project-actions button.danger:hover{color:#ffb0b0;background:#a5483d29;border-color:#a5483d}.sidebar-project-note{max-width:100%;color:var(--rail-text);text-align:left;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.project-basic-data{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.project-basic-title,.project-basic-data label span{color:var(--muted);font-size:var(--text-sm);font-weight:900}.project-basic-data label{gap:4px;display:grid}.project-basic-data input{border:1px solid var(--line);background:var(--input-bg);width:100%;min-height:34px;color:var(--text);font-size:var(--text-sm);border-radius:8px;padding:0 9px;font-weight:800}.project-basic-data input:not(:disabled),.period-field input:not(:disabled),.period-field select:not(:disabled),.work-table input:not(:disabled),.work-table textarea:not(:disabled),.work-table select:not(:disabled),.planning-setting-field input:not(:disabled),.planning-package-cell select:not(:disabled),.planning-input:not(:disabled){border-color:var(--manual-border);background:var(--manual-bg);color:var(--manual-text);box-shadow:inset 0 0 0 1px #7db5ff14}.project-basic-data input:not(:disabled):focus,.period-field input:not(:disabled):focus,.period-field select:not(:disabled):focus,.work-table input:not(:disabled):focus,.work-table textarea:not(:disabled):focus,.work-table select:not(:disabled):focus,.planning-setting-field input:not(:disabled):focus,.planning-package-cell select:not(:disabled):focus,.planning-input:not(:disabled):focus{border-color:var(--manual-focus);outline:0;box-shadow:0 0 0 2px #3d8bfd38,inset 0 0 0 1px #ffffff14}.project-basic-data input:disabled,.period-field input:disabled,.period-field select:disabled,.work-table input:disabled,.work-table textarea:disabled,.work-table select:disabled,.planning-setting-field input:disabled,.planning-package-cell select:disabled,.planning-input:disabled{border-color:var(--line);background:var(--readonly-bg);color:var(--muted);box-shadow:none}.status-pill{border:1px solid var(--line);width:fit-content;min-height:28px;color:var(--muted);font-size:var(--text-base);border-radius:999px;align-items:center;padding:0 10px;font-weight:800;display:inline-flex}.status-pill.good{color:var(--green);border-color:#2dcc7080}.status-pill.warn{color:var(--yellow);border-color:#ffd12f8c}.status-pill.bad{color:var(--red);border-color:#ff5b4f8c}.status-group{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.main-area{overscroll-behavior:contain;flex-direction:column;min-width:0;height:100dvh;min-height:0;padding:18px 22px 32px;display:flex;overflow:hidden auto}.panel h2{margin:0}.panel-description{max-width:760px;color:var(--muted);font-size:var(--text-base);margin:8px 0 0;font-weight:700;line-height:1.45}.toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.toolbar.compact{gap:8px}.toolbar-button,.icon-button{border:1px solid var(--line);background:var(--panel-2);min-height:38px;color:var(--text);font-size:var(--text-base);border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:800;display:inline-flex}.toolbar-button{padding:0 14px}.toolbar-button.compact-action{min-height:30px;font-size:var(--text-sm);padding:0 10px}.toolbar-button.icon-only{width:34px;min-height:34px;color:var(--muted);gap:0;padding:0}.toolbar-button.icon-only:hover{color:var(--text)}.toolbar-button.primary{border-color:var(--blue);background:var(--blue);color:#fff}.toolbar-button.saved{color:var(--green);background:#2dcc7024;border-color:#2dcc708a}.toolbar-button.active{color:var(--manual-text);background:#3d8bfd29;border-color:#3d8bfdb8}.toolbar-button.primary:disabled{border-color:var(--line);background:var(--panel-2);color:var(--text)}.toolbar-button.ghost{background:0 0}.toolbar-button.danger{color:var(--red);border-color:#dc262666}.icon-button{width:36px;color:var(--chart-axis)}.icon-button.danger{color:var(--red)}.toolbar-button,.icon-button{transition:background-color var(--ui-ease), border-color var(--ui-ease), color var(--ui-ease), box-shadow var(--ui-ease), transform var(--ui-ease)}.toolbar-button:hover:not(:disabled),.icon-button:hover:not(:disabled){border-color:var(--blue);background:var(--ui-hover-bg);color:var(--text)}.toolbar-button:active:not(:disabled),.icon-button:active:not(:disabled){background:var(--ui-press-bg);transform:translateY(1px)}.toolbar-button:disabled,.icon-button:disabled,.toolbar-button[disabled],.icon-button[disabled]{opacity:var(--ui-disabled-opacity);cursor:not-allowed}.toolbar-button.primary:hover:not(:disabled){border-color:var(--indigo-10);background:var(--indigo-10);color:#fff}.toolbar-button.primary:active:not(:disabled){background:var(--indigo-11)}.toolbar-button.danger:hover:not(:disabled),.icon-button.danger:hover:not(:disabled){border-color:var(--red);color:var(--red);background:#dc26261a}.toolbar-button.danger:active:not(:disabled),.icon-button.danger:active:not(:disabled){background:#dc26262e}.icon-button.danger.is-armed{border-color:var(--red);color:var(--red);background:#dc262624}.toolbar-button.primary.is-armed,.toolbar-button.primary.is-armed:hover:not(:disabled){border-color:var(--amber-11);background:var(--amber-11);color:#fff}.toolbar-divider{background:var(--line);flex:none;align-self:stretch;width:1px;margin:4px 2px}.boq-validation-pill{white-space:nowrap;align-self:center}.toolbar-button:focus-visible,.icon-button:focus-visible,.progress-matrix-status-chip:focus-visible,.progress-matrix-view-toggle button:focus-visible,.nav-item:focus-visible,[role=button]:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:var(--ui-focus-ring);outline:none}.search-field:hover,.period-field:hover{border-color:var(--blue)}.search-field:focus-within,.period-field:focus-within{border-color:var(--blue);box-shadow:var(--ui-focus-ring)}.search-field input:focus-visible,.period-field input:focus-visible,.period-field select:focus-visible{box-shadow:none}.progress-matrix-status-chip{transition:background-color var(--ui-ease), color var(--ui-ease), box-shadow var(--ui-ease)}.progress-matrix-status-chip:hover:not(.active){background:color-mix(in srgb, var(--matrix-slate) 10%, transparent);color:var(--matrix-text-primary)}.toolbar-button[aria-busy=true],.icon-button[aria-busy=true]{opacity:.7;cursor:progress}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.screen-stack{gap:16px;margin-top:0;display:grid}.work-volume-screen:has(.progress-matrix-panel){flex-direction:column;flex:auto;gap:16px;height:100%;min-height:0;display:flex;overflow:hidden}.work-volume-screen:has(.progress-matrix-panel) .boq-kpi-dashboard{flex:none}.work-volume-screen:has(.boq-model-table){flex-direction:column;flex:auto;height:100%;min-height:0;display:flex;overflow:hidden}.work-volume-screen:has(.boq-model-table)>.panel{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.work-volume-screen:has(.boq-model-table) .work-table-wrap{flex:auto;min-height:0}.boq-model-table thead th{z-index:25;background:var(--panel);box-shadow:0 1px 0 var(--table-line);position:sticky;top:0}.work-volume-screen{gap:10px}.work-volume-screen .boq-kpi-dashboard{border-color:var(--matrix-border,var(--line))}.work-volume-screen .boq-kpi-card{border-color:var(--matrix-border,var(--line));background:var(--matrix-surface,var(--panel))}.boq-setup-message{max-width:760px;color:var(--yellow);font-size:var(--text-base);margin:8px 0 0;font-weight:800;line-height:1.4}.boq-bulk-action-bar{z-index:30;border:1px solid var(--line);background:var(--panel-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;padding:8px 10px;display:flex;position:sticky;top:8px;box-shadow:0 10px 24px #0000002e}.boq-selection-summary{border-right:1px solid var(--line);color:var(--text);font-size:var(--text-base);align-items:center;gap:6px;padding-right:10px;font-weight:600;display:inline-flex}.boq-clear-selection-button{border:1px solid var(--line);width:20px;height:20px;color:var(--muted);background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:16px;font-weight:800;line-height:1;display:inline-flex}.boq-clear-selection-button:hover{border-color:var(--red-7);color:var(--red-11)}.boq-new-section-inline{align-items:center;gap:6px;display:flex}.boq-new-section-input{border:1px solid var(--blue);background:var(--input-bg);height:30px;color:var(--text);font-size:var(--text-sm);border-radius:6px;outline:none;width:200px;padding:0 8px}.boq-move-menu-wrap{position:relative}.boq-section-move-menu{z-index:30;border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:240px;max-height:280px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:auto;box-shadow:0 16px 36px #0000003d}.boq-section-move-menu button{min-height:34px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;padding:0 10px;font-weight:800}.boq-section-move-menu button:not(:disabled):hover{background:var(--panel-2)}.boq-section-move-menu button:disabled{color:var(--muted)}.boq-section-move-menu button.boq-move-menu-group{padding-left:26px;font-weight:600}.boq-import-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.boq-import-summary span{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;gap:4px;min-height:58px;padding:10px 12px;display:grid}.boq-import-summary small,.boq-mapping-field small{color:var(--muted);font-size:var(--text-xs);font-weight:800}.boq-import-summary strong{color:var(--text);font-size:20px;font-weight:900}.boq-mapping-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.boq-mapping-field{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;gap:7px;min-width:0;padding:10px;display:grid}.boq-mapping-field span{color:var(--text);font-size:var(--text-base);font-weight:900}.boq-mapping-field select{width:100%}.boq-mapping-field small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.boq-import-warning-list{color:var(--yellow);font-size:var(--text-sm);background:#ffd12f14;border:1px solid #ffd12f61;border-radius:8px;gap:6px;padding:10px 12px;font-weight:800;display:grid}.boq-import-preview-wrap{margin-top:0}.boq-import-preview-table td,.boq-import-preview-table th{white-space:nowrap}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.dashboard-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.dashboard-kpi-grid .boq-kpi-card{grid-column:span 2}.dashboard-kpi-grid .metric-card{grid-column:span 1;min-height:156px}.metric-card,.boq-kpi-card,.panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;box-shadow:0 10px 26px #0f172a0f}.metric-card{align-content:start;gap:10px;min-height:118px;padding:16px;display:grid}.metric-card-head{align-items:center;gap:10px;min-height:22px;display:flex}.metric-icon{color:var(--blue);flex:none}.metric-label{color:var(--muted);font-size:var(--text-md);font-weight:800}.metric-value{color:var(--white-soft);font-size:30px;font-weight:900;line-height:1}.metric-note{color:var(--chart-axis);font-size:var(--text-base);font-weight:700}.kpi-strip{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:12px 16px;display:flex}.kpi-strip-title{color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;margin:0;font-weight:900}.kpi-strip-items{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px 20px;display:grid}.kpi-item{flex-direction:column;gap:2px;min-width:0;display:flex}.kpi-item-label{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;font-weight:800;line-height:1.3}.kpi-item-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;line-height:1.2}.kpi-item-value.good{color:var(--matrix-business-earned-strong)}.kpi-item-value.warn{color:var(--matrix-business-commercial-strong)}.kpi-item-value.bad{color:var(--red-11)}.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}@media (width<=900px){.kpi-row{grid-template-columns:1fr}}.metrics-grid{gap:8px}.metrics-grid .metric-card{min-height:0;box-shadow:none;gap:4px;padding:10px 12px}.metrics-grid .metric-card-head{min-height:0}.metrics-grid .metric-icon{display:none}.metrics-grid .metric-label{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-weight:900}.metrics-grid .metric-value{font-family:var(--matrix-mono,"SFMono-Regular", ui-monospace, monospace);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.metrics-grid .metric-note{color:var(--muted);font-size:var(--text-2xs);font-style:italic;font-weight:400}.boq-kpi-stack{gap:10px;display:grid}.boq-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.boq-kpi-dashboard{grid-template-columns:repeat(3,1fr);gap:8px;min-width:0;display:grid}.boq-kpi-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex;box-shadow:0 10px 26px #0f172a0f}.boq-kpi-card--inactive{opacity:.55}.boq-kpi-card--slim{justify-content:flex-start;gap:6px}.boq-kpi-dashboard:has(.boq-kpi-card--slim){grid-template-columns:1.2fr .6fr 1.2fr}@media (width<=1200px){:is(.boq-kpi-dashboard,.boq-kpi-dashboard:has(.boq-kpi-card--slim)){grid-template-columns:repeat(2,minmax(0,1fr))}.boq-kpi-dashboard>.lifecycle-card{grid-column:1/-1}}@media (width<=760px){:is(.boq-kpi-dashboard,.boq-kpi-dashboard:has(.boq-kpi-card--slim)){grid-template-columns:minmax(0,1fr)}}.boq-kpi-card-heading{min-width:0}.kpi-hero{flex-direction:column;gap:2px;margin-top:2px;display:flex}.kpi-hero-pair{align-items:flex-start;gap:20px;display:flex}.kpi-hero-pair>.kpi-hero{flex:1 1 0;min-width:0}@media (width<=640px){.kpi-hero-pair{flex-direction:column;gap:10px}}.kpi-hero-row{flex-wrap:wrap;align-items:center;gap:2px 8px;min-width:0;display:flex}.kpi-hero-value{color:var(--text);letter-spacing:-.015em;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:clamp(24px,2.3vw,30px);font-weight:800;line-height:1.05}.kpi-hero-value--good{color:var(--green)}.kpi-hero-value--warn{color:var(--amber-text)}.kpi-hero-value--bad{color:var(--red)}.kpi-hero-value--neutral{color:var(--muted)}.kpi-delta{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:800;display:inline-flex}.kpi-delta--up{color:var(--green-11);background:color-mix(in srgb, var(--green) 10%, transparent)}.kpi-delta--down{color:var(--amber-text);background:color-mix(in srgb, var(--amber-fill) 14%, transparent)}.kpi-delta--flat{color:var(--muted);background:color-mix(in srgb, var(--muted) 10%, transparent)}.kpi-weekbars{width:100%;padding-top:2px}.kpi-weekbars-caption{color:var(--muted);justify-content:space-between;gap:8px;margin-bottom:3px;font-size:10px;display:flex}.kpi-weekbars-caption-last{font-variant-numeric:tabular-nums;font-weight:700}.kpi-weekbars-plot{align-items:flex-end;gap:2px;height:44px;display:flex;position:relative}.kpi-weekbars-ref{border-top:1px dashed var(--muted);opacity:.6;pointer-events:none;position:absolute;left:0;right:0}.kpi-weekbars-slot{flex:1 1 0;align-items:flex-end;min-width:0;max-width:56px;height:100%;display:flex}.kpi-weekbars-bar{border-radius:3px 3px 0 0;width:100%;min-height:2px}.kpi-weekbars-bar--good{background:var(--green)}.kpi-weekbars-bar--warn{background:var(--amber-fill)}.kpi-weekbars-bar--bad{background:var(--red)}.kpi-weekbars-bar--neutral{background:var(--muted)}.kpi-weekbars-weeks{gap:2px;margin-top:2px;display:flex}.kpi-weekbars-week{text-align:center;min-width:0;max-width:56px;color:var(--muted);font-variant-numeric:tabular-nums;text-overflow:clip;white-space:nowrap;flex:1 1 0;font-size:9px;overflow:hidden}.boq-kpi-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:5px 0 7px;display:grid}.boq-kpi-stats--pair{grid-template-columns:repeat(2,minmax(0,1fr))}.boq-kpi-stat{flex-direction:column;gap:2px;min-width:0;display:flex}.boq-kpi-stat-label{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:flex}.boq-kpi-stat-value-row{flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.boq-kpi-stat-value{color:var(--text);letter-spacing:-.01em;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:21px;font-weight:700;line-height:1.15;overflow:hidden}.screen-stack:not(.work-volume-screen) .boq-kpi-stat-value{font-family:var(--font-num);letter-spacing:-.02em;font-weight:640}.screen-stack:not(.work-volume-screen) .boq-kpi-stat-label{text-transform:none;letter-spacing:0;font-weight:550}.screen-stack:not(.work-volume-screen) .boq-kpi-dashboard{gap:7px}.screen-stack:not(.work-volume-screen) .boq-kpi-card{gap:7px;padding:9px 12px}.boq-kpi-stat-suffix{color:var(--muted);font-size:var(--text-xs);letter-spacing:0;font-weight:700}.boq-kpi-stat-value--amber{color:var(--amber-text)}.boq-kpi-stat-value--good{color:var(--green)}.boq-kpi-stat-value--warn{color:var(--amber-text)}.boq-kpi-stat-value--bad{color:var(--red)}.boq-kpi-stat-value--neutral{color:var(--muted)}.boq-kpi-stat-sub{color:var(--muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.lifecycle-impact-line{color:var(--muted);font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:4px;padding:3px 0 6px;display:flex}.lifecycle-impact-line strong{font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.boq-kpi-card-title{color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-weight:700}.lifecycle-incomplete{background:color-mix(in srgb, var(--amber-fill) 10%, transparent);border-radius:7px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.lifecycle-incomplete-title{font-size:var(--text-xs);color:var(--amber-text);font-weight:800}.lifecycle-incomplete-text{font-size:var(--text-xs);color:var(--text);line-height:1.45}.lifecycle-incomplete-text strong{font-variant-numeric:tabular-nums;font-weight:800}.boq-kpi-section-figure{color:var(--text);font-variant-numeric:tabular-nums}.boq-kpi-dashboard-wrap{flex-direction:column;gap:8px;min-width:0;display:flex}.planning-chart-scroll,.section-progress-chart{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 38%, transparent) transparent}.planning-chart-scroll::-webkit-scrollbar{width:8px;height:8px}.section-progress-chart::-webkit-scrollbar{width:8px;height:8px}.planning-chart-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 38%, transparent);border-radius:999px}.section-progress-chart::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 38%, transparent);border-radius:999px}.planning-chart-scroll::-webkit-scrollbar-track{background:0 0}.section-progress-chart::-webkit-scrollbar-track{background:0 0}.screen-stack:has(.boq-kpi-dashboard-wrap){gap:12px}.dashboard-grid .panel{padding:12px 14px}.dash-panel-header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:10px;padding-bottom:9px;display:flex}.dash-panel-title{flex:none;align-items:center;gap:6px;display:inline-flex}.dash-panel-title h2{letter-spacing:-.01em;white-space:nowrap;margin:0;font-size:16px;font-weight:800}.dash-header-stats{flex-wrap:wrap;align-items:center;gap:4px 30px;min-width:0;margin-left:10px;display:flex}.dash-header-stats .boq-kpi-stat{gap:1px}.dash-header-stats .boq-kpi-stat-value{font-size:16px}.dash-header-stats .boq-kpi-stat-sub{display:none}.dash-header-stats .boq-kpi-stat--eta-stale .boq-kpi-stat-sub,.dash-header-stats .boq-kpi-stat--pace .boq-kpi-stat-sub{display:block}.dash-panel-controls{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}@media (width<=1400px){.dash-panel-controls{flex-basis:100%;justify-content:flex-start;margin-left:0}}.dash-panel-header .chart-headline{min-width:0;font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.boq-kpi-aging{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:7px;padding:12px 16px;display:flex;box-shadow:0 10px 26px #0f172a0f}.boq-kpi-aging-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px 18px;display:flex}.boq-kpi-aging-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:center;font-weight:700;display:inline-flex}.boq-kpi-anchor-body{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:3px;display:flex}.boq-kpi-anchor-earned-value{font-family:var(--font-num);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;line-height:1.05}.boq-kpi-anchor-body-sep{background:var(--line);align-self:center;width:1px;height:18px;margin:0 2px}.boq-kpi-anchor-body-value{font-family:var(--font-num);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;font-size:27px;font-weight:700;line-height:1.05}.boq-kpi-anchor-body-unit{font-size:var(--text-sm);color:var(--muted)}.boq-kpi-anchor-ready{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.boq-kpi-anchor-ready-label{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--amber-text);font-weight:700}.boq-kpi-anchor-ready-value{font-family:var(--font-num);letter-spacing:-.02em;color:var(--amber-text);font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;line-height:1.05}.boq-kpi-anchor-ready-sub{font-size:var(--text-2xs);color:var(--muted)}.boq-kpi-anchor-row{grid-template-columns:62px minmax(0,1fr);align-items:center;gap:10px;display:grid}.boq-kpi-anchor-rowlabel{font-family:var(--font-num);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:9.5px}.boq-kpi-anchor-bar{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;height:19px;display:flex;overflow:hidden}.boq-kpi-anchor-seg{border-right:2px solid var(--panel);min-width:0;font-family:var(--font-num);color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;padding:0 7px;font-size:10.5px;display:flex;overflow:hidden}.boq-kpi-anchor-seg:last-child{border-right:0}.boq-kpi-anchor-seg--approved{background:var(--green)}.boq-kpi-anchor-seg--ready{background:var(--amber-fill)}.boq-kpi-anchor-seg--approved,.boq-kpi-anchor-seg--ready{color:var(--text)}.boq-kpi-anchor-seg--original{background:var(--steel)}.boq-kpi-anchor-seg--extraWork{background:var(--violet-9)}.boq-kpi-anchor-seg--staff{background:var(--indigo-9)}.boq-kpi-anchor-legend{font-size:var(--text-xs);color:var(--muted);flex-wrap:wrap;align-items:center;gap:3px 15px;display:flex}.boq-kpi-anchor-legend-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.boq-kpi-anchor-legend-item strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.boq-kpi-anchor-legend-item--ready strong{color:var(--amber-text)}.boq-kpi-anchor-legend-sep{background:var(--line);width:1px;height:13px}.boq-kpi-anchor-dot{border-radius:3px;flex:none;width:9px;height:9px}.boq-kpi-aging-empty{font-size:var(--text-xs);color:var(--green-11)}.kpi-info{vertical-align:middle;cursor:help;outline:none;justify-content:center;align-items:center;margin-left:5px;display:inline-flex;position:relative}.kpi-info-icon{border:1px solid var(--slate-7);width:14px;height:14px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;font-size:9px;font-weight:800;line-height:1;display:inline-flex}.kpi-info:hover .kpi-info-icon,.kpi-info:focus-visible .kpi-info-icon{border-color:var(--blue);color:var(--blue)}.kpi-info-tip{z-index:60;background:var(--slate-12);color:#fff;text-align:left;text-transform:none;letter-spacing:0;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;border-radius:8px;width:max-content;max-width:230px;padding:8px 10px;font-size:11px;font-weight:500;line-height:1.35;transition:opacity .12s;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);box-shadow:0 10px 28px #0f172a38}.kpi-info--right .kpi-info-tip{left:auto;right:0;transform:none}.kpi-info:hover .kpi-info-tip,.kpi-info:focus-visible .kpi-info-tip,.kpi-info:focus-within .kpi-info-tip{opacity:1;visibility:visible}.boq-kpi-dashboard-wrap{z-index:20;background:var(--bg);padding-bottom:12px;position:sticky;top:0;box-shadow:0 10px 16px -12px #0f172a2e}.boq-kpi-dashboard-wrap:before{content:"";background:var(--bg);height:18px;position:absolute;top:-18px;left:-22px;right:-22px}@media (height<=820px){.boq-kpi-dashboard-wrap{box-shadow:none;position:static}}.boq-kpi-commercial-list{flex-direction:column;gap:4px;display:flex}.scroll-frame{min-width:0;position:relative}.scroll-frame:after{content:"";z-index:6;opacity:0;pointer-events:none;background:linear-gradient(270deg,#0f172a29,#0000);width:22px;transition:opacity .15s;position:absolute;top:0;bottom:0;right:0}.scroll-frame--more-right:after{opacity:1}.scroll-frame-scroller{scrollbar-width:thin}.scroll-frame-scroller::-webkit-scrollbar{height:8px}.scroll-frame-scroller::-webkit-scrollbar-track{background:#0f172a0f;border-radius:8px}.scroll-frame-scroller::-webkit-scrollbar-thumb{background:#0f172a47;border-radius:8px}.scroll-frame-scroller::-webkit-scrollbar-thumb:hover{background:#0f172a6b}.screen-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.screen-header-title{align-items:baseline;gap:10px;min-width:0;display:flex}.screen-header-title h1{margin:0;font-size:20px;font-weight:800}.screen-header-context{color:var(--muted);font-size:var(--text-xs)}.screen-header-actions{align-items:flex-end;gap:10px;display:flex}.boq-kpi-section-label{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.boq-kpi-section-label--split{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.boq-kpi-section-note{letter-spacing:.02em;text-transform:none;color:var(--text-soft,var(--muted));font-weight:600}.boq-kpi-draft-state{color:var(--muted);font-size:var(--text-xs);padding:6px 0;font-style:italic}.boq-kpi-primary{align-items:baseline;gap:6px;margin-bottom:4px;display:flex}.boq-kpi-card-foot{border-top:1px solid var(--line-soft,var(--slate-4));color:var(--muted);font-size:var(--text-2xs);white-space:nowrap;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px;display:flex}.boq-kpi-card-foot strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.boq-kpi-note{color:var(--muted);font-size:var(--text-2xs);font-style:italic}.boq-kpi-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.boq-kpi-details span{gap:3px;min-width:0;display:grid}.boq-kpi-details small{color:var(--muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.boq-kpi-details strong{color:var(--chart-axis);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;font-weight:900;overflow:hidden}.boq-kpi-progress{background:#9fb0c038;border-radius:999px;height:7px;display:block;overflow:hidden}.boq-kpi-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--green), var(--blue));height:100%;display:block}.metric-card.good .metric-value{color:var(--green)}.text-good{color:var(--green-11)}.metric-card.warn .metric-value{color:var(--yellow)}.metric-card.bad .metric-value{color:var(--red)}.text-bad{color:var(--red-11)}.dashboard-grid{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.panel{min-width:0;padding:16px}.work-volume-screen,.progress-matrix-panel{--matrix-mono:"SFMono-Regular", "Roboto Mono", "Cascadia Mono", "Liberation Mono", ui-monospace, monospace;--matrix-app-bg:var(--slate-2);--matrix-surface:#fff;--matrix-surface-elevated:var(--slate-1);--matrix-table-header:var(--slate-3);--matrix-table-row:#fff;--matrix-table-row-hover:var(--slate-2);--matrix-border:var(--slate-6);--matrix-border-strong:var(--slate-8);--matrix-text-primary:var(--slate-12);--matrix-text-secondary:var(--slate-11);--matrix-text-muted:var(--slate-11);--matrix-text-inverse:#fff;--matrix-business-baseline:var(--slate-11);--matrix-business-neutral:var(--slate-11);--matrix-business-input:var(--indigo-11);--matrix-business-input-focus:var(--indigo-12);--matrix-business-earned:var(--green-10);--matrix-business-earned-strong:var(--green-11);--matrix-business-commercial:var(--amber-11);--matrix-business-commercial-strong:var(--amber-12);--matrix-business-locked:var(--slate-11);--matrix-business-locked-strong:var(--slate-12);--matrix-business-extra:var(--chart-series-extra);--matrix-business-extra-strong:var(--violet-11);--matrix-business-impact:var(--red-11);--matrix-business-downtime:var(--chart-series-downtime);--matrix-business-blocking:var(--chart-series-blocking);--matrix-warning:var(--amber-11);--matrix-danger:var(--red-11);--matrix-success:var(--green-11);--matrix-state-unsaved:var(--matrix-warning);--matrix-state-saved:var(--matrix-business-earned-strong);--matrix-state-empty:var(--matrix-text-muted);--matrix-state-claim-locked:var(--matrix-business-locked);--matrix-state-disabled-cell:var(--slate-3);--matrix-state-calculated-cell:var(--slate-2);--matrix-state-input-cell:var(--indigo-3);--matrix-state-input-focus-cell:var(--indigo-4);--matrix-chart-planned:var(--chart-series-planned);--matrix-chart-actual:var(--chart-series-actual);--matrix-chart-earned:var(--chart-series-earned);--matrix-chart-variance-positive:var(--green-10);--matrix-chart-variance-negative:var(--red-10);--matrix-chart-claimable:var(--amber-11);--matrix-chart-unclaimed:var(--slate-9);--matrix-graphite:var(--matrix-border-strong);--matrix-slate:var(--matrix-text-secondary);--matrix-steel:var(--matrix-business-input);--matrix-steel-strong:var(--matrix-business-input-focus);--matrix-earned:var(--matrix-business-earned);--matrix-earned-strong:var(--matrix-business-earned-strong);--matrix-commercial:var(--matrix-business-commercial);--matrix-commercial-strong:var(--matrix-business-commercial-strong);--matrix-extra:var(--matrix-business-extra);--matrix-extra-strong:var(--matrix-business-extra-strong);--matrix-risk:var(--matrix-business-downtime);--matrix-risk-strong:var(--matrix-danger);--matrix-blocking:var(--matrix-business-blocking);--matrix-locked:var(--matrix-state-claim-locked);--matrix-locked-text:var(--matrix-text-inverse);--matrix-baseline-bg:#f3f6f9;--matrix-calculated-bg:var(--matrix-state-calculated-cell);--matrix-grid-line:var(--matrix-border);--matrix-grid-strong:var(--matrix-border-strong);--matrix-input-bg:var(--matrix-state-input-cell);--matrix-input-active-bg:var(--matrix-state-input-focus-cell)}.progress-matrix-panel{border:1px solid var(--line);background:var(--matrix-app-bg);min-height:0;color:var(--matrix-text-primary);border-radius:10px;flex-direction:column;flex:auto;padding:12px;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0f}.progress-matrix-panel>*{flex:none}.progress-matrix-panel>.progress-matrix-workspace{flex:auto;min-height:0}.progress-matrix-panel .table-header-row{border:1px solid var(--matrix-border);background:var(--matrix-surface);border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;padding:6px 10px}.progress-matrix-panel h2{color:var(--matrix-text-primary);letter-spacing:0;margin:0;font-size:15px;line-height:1.2}.progress-matrix-panel .status-group{margin-top:4px}.progress-matrix-panel .table-header-actions{flex-wrap:wrap;flex:1;justify-content:flex-end;gap:8px}.progress-matrix-title-block{min-width:260px}.progress-matrix-panel .progress-matrix-period-field{align-items:center;gap:6px;min-width:0;display:flex}.progress-matrix-panel .progress-matrix-period-field>span{color:var(--matrix-text-secondary);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;font-weight:700}.progress-matrix-panel .period-field input,.progress-matrix-panel .period-field select{border-color:var(--matrix-grid-line);background-color:var(--matrix-surface-elevated);min-height:32px;color:var(--matrix-text-primary);font-size:var(--text-sm);border-radius:4px;font-weight:500}.progress-matrix-panel .search-field{border-color:var(--matrix-grid-line);background:var(--matrix-surface-elevated);min-width:260px;min-height:32px;color:var(--matrix-text-primary);border-radius:4px}.progress-matrix-panel .search-field input{color:var(--matrix-text-primary);font-size:var(--text-sm);letter-spacing:0}.progress-matrix-panel .toolbar-button{border-color:var(--matrix-grid-line);background:var(--matrix-surface-elevated);min-height:32px;color:var(--matrix-text-secondary);box-shadow:none;border-radius:4px}.progress-matrix-status-field{min-width:410px}.progress-matrix-status-filter{border:1px solid var(--matrix-grid-line);background:var(--matrix-surface-elevated);border-radius:4px;display:inline-flex;overflow:hidden}.progress-matrix-status-chip{border:0;border-right:1px solid var(--matrix-grid-line);min-height:32px;color:var(--matrix-text-muted);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 10px;font-weight:700;display:inline-flex}.progress-matrix-status-chip:last-child{border-right:0}.progress-matrix-status-chip b{background:color-mix(in srgb, var(--matrix-slate) 14%, transparent);min-width:20px;color:var(--matrix-text-primary);font-size:var(--text-xs);border-radius:3px;padding:1px 6px;font-weight:600}.progress-matrix-status-chip.active{background:color-mix(in srgb, var(--matrix-steel) 22%, transparent);color:var(--matrix-business-input-focus);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-steel) 48%, transparent)}.progress-matrix-status-chip.open.active{background:color-mix(in srgb, var(--matrix-earned) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-earned) 48%, transparent)}.progress-matrix-status-chip.nearLimit.active{background:color-mix(in srgb, var(--matrix-commercial) 18%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-commercial) 46%, transparent)}.progress-matrix-status-chip.claimed.active,.progress-matrix-status-chip.claimLocked.active{background:color-mix(in srgb, var(--matrix-locked) 34%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-slate) 44%, transparent)}.progress-matrix-status-chip.completed.active{background:color-mix(in srgb, var(--matrix-earned) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-earned) 48%, transparent)}.progress-matrix-status-chip.overLimit.active{background:color-mix(in srgb, var(--matrix-danger) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-danger) 46%, transparent)}.progress-matrix-status-chip.extraWork.active{background:color-mix(in srgb, var(--matrix-extra) 18%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-extra) 46%, transparent)}.progress-matrix-status-chip.readyForPa.active{background:color-mix(in srgb, var(--matrix-earned) 16%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-earned) 48%, transparent)}.progress-matrix-status-chip.pendingClient.active{background:color-mix(in srgb, var(--matrix-commercial) 18%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-commercial) 46%, transparent)}.progress-matrix-status-chip.closed.active{background:color-mix(in srgb, var(--matrix-locked) 30%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-slate) 44%, transparent)}.progress-matrix-status-chip.progress-matrix-scope-select{padding:0;position:relative}.progress-matrix-scope-select:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid var(--matrix-text-muted);pointer-events:none;width:0;height:0;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.progress-matrix-scope-select.active:after{border-top-color:var(--matrix-business-input-focus)}.progress-matrix-scope-select select{appearance:none;min-height:32px;color:var(--matrix-text-muted);font-size:var(--text-xs);letter-spacing:.02em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0 22px 0 10px;font-weight:700}.progress-matrix-scope-select:hover select{color:var(--matrix-text-primary)}.progress-matrix-scope-select select:focus-visible{outline:2px solid color-mix(in srgb, var(--matrix-steel) 55%, transparent);outline-offset:-2px}.progress-matrix-scope-select.active{background:color-mix(in srgb, var(--matrix-steel) 22%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-steel) 48%, transparent)}.progress-matrix-scope-select.active select{color:var(--matrix-business-input-focus)}.progress-matrix-control-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:0 2px;display:flex}.progress-matrix-control-bar .progress-matrix-status-filter{flex-wrap:wrap;flex:none}.progress-matrix-control-bar .search-field{flex:0 220px;min-width:120px}.progress-matrix-control-tools{flex-wrap:nowrap;flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.progress-matrix-save-state{white-space:nowrap}.progress-matrix-inline-message{background:color-mix(in srgb, var(--matrix-steel) 12%, transparent);color:var(--matrix-text-secondary);font-size:var(--text-xs);border-radius:8px;margin:0 0 10px;padding:6px 10px}.progress-matrix-filter-clear{border:1px solid var(--matrix-grid-line);background:var(--matrix-surface-elevated);min-height:32px;color:var(--matrix-text-secondary);font-size:var(--text-xs);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:0 12px;font-weight:700;display:inline-flex}.progress-matrix-filter-clear:hover{border-color:var(--blue);color:var(--matrix-text-primary)}.panel.wide{grid-column:span 1}.panel.full{grid-column:1/-1}.panel-header,.table-header-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.table-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.panel-subtitle{color:var(--muted);font-size:var(--text-base);margin-top:4px;font-weight:800;display:block}.chart-headline{color:var(--text);font-size:var(--text-lg);font-weight:800}.chart-legend{color:var(--matrix-text-primary,var(--text));font-size:var(--text-base);flex-wrap:wrap;align-items:center;gap:14px;font-weight:900;display:inline-flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend-divider{color:var(--muted);text-transform:lowercase;font-weight:700}.chart-legend-group-label{color:var(--muted);font-weight:700}.chart-scope-select{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-sm);align-items:center;gap:8px;font-weight:900;display:inline-flex}.chart-scope-select select{border:1px solid var(--matrix-border,var(--line));background:var(--matrix-surface-elevated,var(--input-bg));min-width:180px;min-height:32px;color:var(--matrix-text-primary,var(--text));border-radius:7px;padding:0 9px;font-weight:900}.legend-line.cumulative{border-top-color:var(--chart-series-progress)}.planning-work-legend{flex-wrap:wrap;margin:2px 0 4px}.legend-dot{border-radius:999px;width:10px;height:10px;display:inline-block}.legend-dot.plan{background:var(--chart-series-planned)}.legend-dot.actual{background:var(--chart-series-actual)}.legend-dot.earned{background:var(--chart-series-earned)}.legend-dot.reconciled{background:var(--chart-series-progress)}.legend-dot.impact{background:var(--chart-series-impact)}.legend-dot.extra-work{background:var(--chart-series-extra)}.legend-dot.remaining{background:color-mix(in srgb, var(--matrix-chart-unclaimed,var(--muted)) 45%, transparent)}.legend-dot.unexplained{background:color-mix(in srgb, var(--chart-series-danger) 85%, var(--bg))}.planning-chart-bar.accounted.unexplained{fill:color-mix(in srgb, var(--chart-series-danger) 85%, var(--bg))}.section-progress-panel{gap:10px}.section-progress-summary-panel{justify-self:stretch;gap:10px;width:100%}.section-progress-drilldown{grid-template-columns:minmax(360px,1.15fr) minmax(0,2fr);align-items:stretch;gap:12px;min-height:240px;display:grid}.section-progress-chart{align-content:start;gap:2px;max-height:560px;padding-right:3px;display:grid;overflow:auto}.remaining-section-row{width:100%;color:var(--matrix-text-primary,var(--text));cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:6px;grid-template-columns:minmax(0,2fr) minmax(64px,1fr) 48px 92px;align-items:center;gap:10px;padding:7px 10px 7px 8px;transition:background .15s,border-color .15s;display:grid}.remaining-section-row:hover{background:color-mix(in srgb, var(--matrix-business-input,var(--blue)) 7%, transparent)}.remaining-section-row.active{border-left-color:var(--section-accent,var(--blue));background:color-mix(in srgb, var(--matrix-business-input,var(--blue)) 10%, transparent)}.remaining-section-name{min-width:0;font-size:var(--text-sm);align-items:center;gap:7px;font-weight:600;display:inline-flex}.remaining-section-row.active .remaining-section-name{font-weight:700}.remaining-section-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remaining-section-row--group{padding-left:24px}.remaining-section-row--group .remaining-section-name{font-weight:500}.remaining-section-row--group.active .remaining-section-name{font-weight:600}.remaining-section-row--group .legend-dot{opacity:.55;width:6px;height:6px}.remaining-section-track{background:color-mix(in srgb, var(--matrix-chart-unclaimed,var(--muted)) 22%, transparent);border-radius:999px;height:10px;display:block;overflow:hidden}.remaining-section-track span{background:var(--section-accent,var(--matrix-chart-earned,var(--green)));border-radius:999px;height:100%;display:block}.remaining-section-pct{font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:700}.remaining-section-left{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:500}.section-progress-timeline{margin-top:2px}.section-progress-track{background:color-mix(in srgb, var(--matrix-chart-unclaimed,var(--muted)) 22%, transparent);border-radius:999px;height:14px;display:flex;overflow:hidden}.section-progress-track span{min-width:0;display:block}.section-progress-track .earned{background:var(--section-accent,var(--matrix-chart-earned,var(--green)))}.section-progress-track .remaining{background:color-mix(in srgb, var(--matrix-chart-unclaimed,var(--muted)) 42%, transparent)}.section-progress-detail{border:1px solid var(--matrix-border,var(--line));background:var(--matrix-surface,var(--section-row-bg));border-radius:8px;align-content:start;gap:12px;min-width:0;padding:12px;display:grid}.section-remaining-rollup{border-bottom:1px solid var(--matrix-border,var(--line));flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding-bottom:10px;display:flex}.section-remaining-rollup-name{min-width:0;color:var(--matrix-text-primary,var(--text));font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-weight:700;overflow:hidden}.section-remaining-rollup strong{color:var(--matrix-text-primary,var(--text));font-size:var(--text-lg);white-space:nowrap;font-weight:800}.section-remaining-rollup small{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-xs);flex:100%;font-weight:500}.section-remaining-eta{background:color-mix(in srgb, var(--matrix-business-input-focus,var(--blue)) 16%, transparent);color:var(--matrix-business-input-focus,var(--blue));font-size:var(--text-xs);white-space:nowrap;border-radius:999px;flex:none;padding:2px 10px;font-weight:700}.section-remaining-eta.muted{background:color-mix(in srgb, var(--matrix-chart-unclaimed,var(--muted)) 20%, transparent);color:var(--matrix-text-muted,var(--muted))}.section-remaining-units{gap:6px;min-width:0;display:grid}.remaining-unit-row{grid-template-columns:44px minmax(0,1fr) auto 44px;align-items:center;gap:10px;display:grid}.remaining-unit-label{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-xs);white-space:nowrap;font-weight:600}.remaining-unit-track{background:color-mix(in srgb, var(--matrix-chart-unclaimed,var(--muted)) 22%, transparent);border-radius:999px;height:10px;overflow:hidden}.remaining-unit-track span{background:var(--matrix-chart-earned,var(--green));border-radius:999px;height:100%;display:block}.remaining-unit-left{color:var(--matrix-text-primary,var(--text));font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:600}.remaining-unit-share{color:var(--matrix-text-muted,var(--muted));font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:10px}.section-remaining-ranked{gap:6px;display:grid}.section-remaining-ranked-list{align-content:start;gap:4px;display:grid}.section-remaining-rank-more{color:var(--matrix-business-input-focus,var(--blue));cursor:pointer;font:inherit;font-size:var(--text-xs);text-align:left;background:0 0;border:0;justify-self:start;padding:2px;font-weight:600}.section-remaining-rank-more:hover{text-decoration:underline}.section-remaining-rank-row{grid-template-columns:minmax(0,1.6fr) minmax(96px,auto) 52px auto;align-items:center;gap:12px;padding:4px 2px;display:grid}.section-remaining-rank-pct{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.section-remaining-rank-name{color:var(--matrix-text-primary,var(--text));font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.section-remaining-rank-idle{color:var(--amber-text);font-size:var(--text-xs);white-space:nowrap;margin-left:8px;font-weight:600}.section-remaining-rank-idle--muted{color:var(--muted);font-weight:500}.remaining-pace-behind{color:var(--amber-text);font-weight:600}.section-remaining-rank-qty{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-xs);white-space:nowrap;font-weight:500}.section-remaining-rank-mh{min-width:56px;color:var(--matrix-text-primary,var(--text));font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:700}.section-remaining-rank-head{padding:0 2px}.section-remaining-rank-head span{color:var(--matrix-text-muted,var(--muted));font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-weight:600}.section-remaining-rank-head span:nth-child(n+3){text-align:right}.muted-text{color:var(--muted);font-size:var(--text-sm);font-weight:500}.search-field{border:1px solid var(--line);background:var(--input-bg);min-width:280px;min-height:38px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.search-field input{width:100%;color:var(--text);background:0 0;border:0;outline:0}.compact-search{min-width:240px}.period-field{gap:6px;min-width:220px;display:grid}.period-field span{color:var(--muted);font-size:var(--text-sm);font-weight:900}.period-field input,.period-field select{border:1px solid var(--line);background:var(--input-bg);min-height:38px;color:var(--text);border-radius:8px;padding:0 10px;font-weight:800}.panel h2{font-size:18px}.compact-table-wrap,.work-table-wrap{overflow:auto}.timesheet-table-wrap{border:1px solid var(--line);background:var(--table-cell);border-radius:8px;max-height:72vh;overflow:auto}.compact-table,.work-table{border-collapse:collapse;width:100%}.compact-table th,.compact-table td,.work-table th,.work-table td{border-bottom:1px solid var(--table-line);text-align:left;vertical-align:middle;font-size:var(--text-base);padding:10px}.compact-table td.expand-cell{text-align:center;width:42px;min-width:42px}.compact-table th,.work-table th{color:var(--chart-axis);font-size:var(--text-base);white-space:nowrap;font-weight:900}.work-table{min-width:1580px}.boq-model-table{table-layout:fixed;min-width:1224px}.boq-expand-col{width:42px}.boq-select-col{width:44px}.boq-number-col{width:58px}.boq-code-col{width:178px}.boq-type-col{width:164px}.boq-description-col{width:31%;min-width:360px}.boq-unit-col{width:92px}.boq-qty-col,.boq-rate-col{width:102px}.boq-norm-col{width:134px}.boq-budget-col,.boq-value-col{width:136px}.boq-progress-col{width:178px}.boq-action-col{width:76px}.boq-model-table th{white-space:normal;line-height:1.18}.boq-model-table .group-row .boq-structure-editor-row{padding-left:22px}.boq-model-table .group-row .section-color-dot{opacity:.72;width:7px;height:7px}.boq-model-table .boq-item-row .number-cell{padding-left:22px}.boq-select-cell{text-align:center}.work-table .boq-select-cell input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--blue);padding:0}.boq-item-scope-select{min-width:148px;font-weight:800}.matrix-description-content{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}.matrix-description-content>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.work-item-scope-badge{border:1px solid color-mix(in srgb, var(--matrix-border-strong) 72%, transparent);background:color-mix(in srgb, var(--matrix-table-header) 88%, var(--matrix-table-row));min-height:18px;color:var(--matrix-text-secondary);font-size:var(--text-2xs);text-transform:uppercase;border-radius:999px;flex:none;align-items:center;padding:2px 6px;font-weight:700;line-height:1;display:inline-flex}.work-item-scope-badge.extra-work{border-color:color-mix(in srgb, var(--matrix-extra) 36%, var(--matrix-border-strong));background:color-mix(in srgb, var(--matrix-extra) 12%, var(--matrix-table-row));color:color-mix(in srgb, var(--matrix-extra) 72%, var(--matrix-text-primary))}.report-table{table-layout:fixed;min-width:1680px}.report-code-col{width:230px}.report-description-col{width:28%;min-width:320px}.report-unit-col{width:84px}.report-qty-col,.report-input-col{width:128px}.report-norm-col,.report-hours-col{width:132px}.report-action-col{width:76px}.progress-matrix-table{--m-wbs-w:68px;--m-code-w:94px;--m-desc-w:176px;border-collapse:separate;border-spacing:0;border-left:1px solid var(--matrix-grid-line);border-top:1px solid var(--matrix-grid-line);background:var(--matrix-table-row);min-width:0;color:var(--matrix-text-primary);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--text-sm);font-variant-numeric:tabular-nums;table-layout:fixed;font-weight:500}.progress-matrix-table th,.progress-matrix-table td{border-right:1px solid var(--matrix-grid-line);border-bottom:1px solid var(--matrix-grid-line);vertical-align:middle;min-width:86px;padding:6px 8px}.progress-matrix-table tbody td{padding-top:9px;padding-bottom:9px}.progress-matrix-table th{z-index:30;border-bottom:1px solid var(--matrix-border-strong);background:var(--matrix-table-header);color:var(--matrix-text-secondary);box-shadow:none;font-weight:600;position:sticky;top:0}.progress-matrix-table .matrix-group-header-row th{z-index:45;border-bottom:1px solid var(--matrix-grid-strong);background:color-mix(in srgb, var(--matrix-table-header) 88%, var(--matrix-business-neutral));height:30px;color:var(--matrix-slate);font-size:var(--text-xs);letter-spacing:.04em;text-align:center;text-transform:uppercase;box-shadow:none;padding:6px 8px;font-weight:600;top:0}.progress-matrix-table .matrix-column-header-row th{z-index:44;background:var(--matrix-table-header);height:42px;font-size:var(--text-xs);font-weight:600;top:30px}.progress-matrix-table .matrix-group-heading{border-left:1px solid color-mix(in srgb, var(--matrix-border) 80%, transparent)}.progress-matrix-table .matrix-group-header-row .matrix-baseline-start,.progress-matrix-table .matrix-column-header-row .matrix-baseline-start{background:color-mix(in srgb, var(--matrix-table-header) 86%, var(--matrix-business-baseline));color:var(--matrix-slate)}.progress-matrix-table .matrix-group-header-row .matrix-week-start,.progress-matrix-table .matrix-column-header-row .progress-matrix-week{background:color-mix(in srgb, var(--matrix-table-header) 86%, var(--matrix-steel));color:var(--matrix-business-input-focus)}.progress-matrix-table .matrix-group-header-row .matrix-summary-start,.progress-matrix-table .matrix-column-header-row .matrix-summary-start,.progress-matrix-table .matrix-column-header-row .matrix-progress-col{background:color-mix(in srgb, var(--matrix-table-header) 82%, var(--matrix-earned))}.progress-matrix-table .matrix-group-header-row .matrix-status-group,.progress-matrix-table .matrix-column-header-row .matrix-status-col{background:color-mix(in srgb, var(--matrix-table-header) 82%, var(--matrix-locked))}.progress-matrix-table .matrix-work-group{text-align:left;border-left:0}.progress-matrix-table .sticky-matrix-col{z-index:12;background:var(--matrix-table-row);position:sticky}.progress-matrix-table th.sticky-matrix-col{z-index:52;background:var(--matrix-table-header)}.progress-matrix-table .matrix-wbs-col{width:var(--m-wbs-w);min-width:var(--m-wbs-w);left:0}.progress-matrix-table .matrix-code-col{left:var(--m-wbs-w);width:var(--m-code-w);min-width:var(--m-code-w)}.progress-matrix-table .matrix-description-col{left:calc(var(--m-wbs-w) + var(--m-code-w));width:var(--m-desc-w);min-width:var(--m-desc-w)}.progress-matrix-table .matrix-boq-col{width:92px;min-width:92px}.progress-matrix-table .matrix-week-col,.progress-matrix-table .progress-matrix-week{width:78px;min-width:78px}.progress-matrix-table .matrix-done-col,.progress-matrix-table .matrix-summary-start{width:128px;min-width:128px}.progress-matrix-table .matrix-progress-col{width:76px;min-width:76px}.progress-matrix-table .matrix-claimed-col,.progress-matrix-table .matrix-nextpa-col{width:108px;min-width:108px}.progress-matrix-table--value .matrix-done-col,.progress-matrix-table--value .matrix-summary-start{width:156px;min-width:156px}.progress-matrix-table--value .matrix-claimed-col,.progress-matrix-table--value .matrix-nextpa-col{width:132px;min-width:132px}.progress-matrix-table td.matrix-boq-col,.progress-matrix-table td.matrix-summary-start,.progress-matrix-table td.matrix-claimed-col,.progress-matrix-table td.matrix-progress-col{text-align:right;white-space:nowrap}.progress-matrix-table td.progress-matrix-input-cell{text-align:center}.progress-matrix-table .status-pill{white-space:nowrap}.progress-matrix-table .matrix-status-col{width:90px;min-width:90px}.progress-matrix-table td:last-child,.progress-matrix-table th:last-child{text-align:center}.progress-matrix-table .matrix-summary-start{border-left:1px solid color-mix(in srgb, var(--matrix-earned) 44%, transparent)}.progress-matrix-table .matrix-description-col{border-right:1px solid color-mix(in srgb, var(--matrix-steel) 42%, transparent);box-shadow:none}.progress-matrix-table .matrix-baseline-start{border-left:1px solid color-mix(in srgb, var(--matrix-slate) 28%, transparent)}.progress-matrix-table .matrix-week-start{border-left:1px solid color-mix(in srgb, var(--matrix-steel) 54%, transparent)}.progress-matrix-week{text-align:center;position:relative}.progress-matrix-week span,.progress-matrix-table .description-cell strong,.progress-matrix-table .description-cell small{display:block}.progress-matrix-week>span{color:var(--matrix-text-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:600}.progress-matrix-week-cell{flex-direction:column;align-items:center;gap:5px;display:flex}.progress-matrix-week-head{justify-content:center;align-items:center;gap:6px;min-height:24px;display:flex}.progress-matrix-week-dot{border-radius:50%;flex:none;width:7px;height:7px}.progress-matrix-week-dot.saved{background:var(--matrix-state-saved)}.progress-matrix-week-dot.unsaved{background:var(--matrix-state-unsaved)}.progress-matrix-week-dot.empty{box-shadow:inset 0 0 0 1px var(--matrix-state-empty);background:0 0}.progress-matrix-week-filter{color:var(--matrix-text-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:1px 8px;font-weight:600;display:inline-flex}.progress-matrix-week-filter:hover{border-color:color-mix(in srgb, var(--matrix-steel) 40%, transparent);background:color-mix(in srgb, var(--matrix-steel) 14%, transparent)}.progress-matrix-week-filter:focus-visible{outline:2px solid color-mix(in srgb, var(--matrix-steel) 55%, transparent);outline-offset:1px}.progress-matrix-week-filter.active{border-color:color-mix(in srgb, var(--matrix-steel) 60%, transparent);background:color-mix(in srgb, var(--matrix-steel) 26%, transparent);color:var(--matrix-business-input-focus)}.progress-matrix-week-empty{color:var(--matrix-state-empty);font-size:var(--text-sm);font-variant-numeric:tabular-nums;opacity:.7;border:1px solid #0000;justify-content:center;align-items:center;padding:1px 8px;font-weight:600;display:inline-flex}.progress-matrix-table .matrix-column-header-row .progress-matrix-week.week-focus-active{background:color-mix(in srgb, var(--matrix-steel) 16%, transparent);box-shadow:inset 0 -2px 0 0 color-mix(in srgb, var(--matrix-steel) 60%, transparent)}.progress-matrix-week-labour{color:var(--matrix-business-input-focus);font-size:var(--text-2xs);white-space:nowrap;margin-top:3px;font-weight:600;line-height:1.2;display:block}.progress-matrix-week-save{border:1px solid var(--matrix-border);background:var(--matrix-surface);min-height:22px;color:var(--matrix-state-empty);font-size:var(--text-2xs);letter-spacing:.02em;text-transform:uppercase;border-radius:6px;justify-content:center;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}.progress-matrix-week-save.primary{border-color:color-mix(in srgb, var(--matrix-steel-strong) 66%, transparent);background:color-mix(in srgb, var(--matrix-state-input-cell) 72%, var(--matrix-surface));color:var(--matrix-business-input-focus)}.progress-matrix-week-save.saved{border-color:color-mix(in srgb, var(--matrix-earned) 42%, transparent);background:color-mix(in srgb, var(--matrix-earned) 13%, var(--matrix-surface));color:var(--matrix-earned-strong)}.progress-matrix-week-save:disabled{cursor:default;opacity:.62}.progress-matrix-table td.progress-matrix-input-cell input{border:1px solid color-mix(in srgb, var(--matrix-grid-line) 55%, transparent);width:66px;min-width:58px;min-height:30px;color:var(--matrix-text-primary);font-variant-numeric:tabular-nums;text-align:right;background:0 0;border-radius:7px;padding:0 7px;font-weight:500;transition:border-color .12s,box-shadow .12s,background-color .12s}.progress-matrix-table td.progress-matrix-input-cell input:hover:not(:disabled){border-color:var(--matrix-grid-line);background:var(--matrix-table-row)}.progress-matrix-input-cell{background:0 0;position:relative}.billable-staff-identity-line{align-items:center;gap:6px;min-width:0;display:flex}.billable-staff-identity-line .timesheet-identity-name{flex:0 auto;min-width:0}.row-claim-lock{color:var(--muted);flex:none}.progress-matrix-input-cell:focus-within{background:color-mix(in srgb, var(--blue) 5%, transparent)}.progress-matrix-table td.progress-matrix-input-cell input:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 14%, transparent);outline:none}.progress-matrix-input-cell.is-saved input{border-color:color-mix(in srgb, var(--matrix-earned) 56%, transparent);background:color-mix(in srgb, var(--matrix-earned) 22%, var(--matrix-table-row));color:var(--matrix-earned-strong)}.progress-matrix-input-cell.is-locked input{border-color:color-mix(in srgb, var(--matrix-locked) 48%, transparent);background:var(--matrix-state-disabled-cell);color:var(--matrix-business-locked-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--matrix-locked) 22%, transparent)}.matrix-remaining-cell,.matrix-boq-col,.matrix-progress-col{white-space:nowrap}.matrix-done-total-cell{white-space:normal}.matrix-done-total-cell .matrix-figure{white-space:nowrap}.matrix-over-contract-badge{background:color-mix(in srgb, var(--matrix-warning) 18%, transparent);color:var(--matrix-warning);font-size:var(--text-2xs);white-space:nowrap;border-radius:999px;margin-left:6px;padding:0 5px;font-weight:700;display:inline-block}.matrix-cut-badge{background:color-mix(in srgb, var(--matrix-business-commercial-strong) 14%, transparent);color:var(--matrix-business-commercial-strong);font-size:var(--text-2xs);white-space:nowrap;border-radius:6px;margin-left:6px;padding:0 6px;font-weight:800;display:inline-block}.progress-matrix-item-row{cursor:pointer}.progress-matrix-item-row td{height:38px}.progress-matrix-item-row .number-cell{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--section-accent,var(--matrix-steel)) 58%, transparent);color:var(--matrix-text-primary);font-weight:700}.matrix-wbs-number{min-width:0;color:color-mix(in srgb, var(--matrix-text-primary) 92%, var(--matrix-slate));font-size:var(--text-sm);letter-spacing:0;align-items:center;font-weight:700;display:inline-flex}.progress-matrix-item-row .description-cell{color:color-mix(in srgb, var(--matrix-text-primary) 88%, var(--matrix-slate));padding-left:14px;font-weight:500}.progress-matrix-item-row .matrix-code-col{color:color-mix(in srgb, var(--matrix-text-primary) 70%, var(--matrix-slate));font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:500}.progress-matrix-table .calculated{color:color-mix(in srgb, var(--matrix-text-primary) 72%, var(--matrix-slate));font-variant-numeric:tabular-nums;font-weight:500}.progress-matrix-table td.calculated{background:var(--matrix-calculated-bg)}.progress-matrix-table td.calculated strong{color:color-mix(in srgb, var(--matrix-text-primary) 72%, var(--matrix-earned-strong));font-weight:600}.progress-matrix-table td.matrix-boq-col.calculated{background:var(--matrix-baseline-bg);color:color-mix(in srgb, var(--matrix-text-primary) 62%, var(--matrix-slate))}.progress-matrix-table td.matrix-remaining-cell,.progress-matrix-table td.matrix-progress-col{color:color-mix(in srgb, var(--matrix-text-primary) 62%, var(--matrix-earned))}.progress-matrix-table .progress-percent-cell strong{color:color-mix(in srgb, var(--matrix-text-primary) 64%, var(--matrix-slate));font-weight:600}.progress-matrix-table .progress-percent-cell.is-complete strong{color:var(--matrix-earned-strong)}.progress-matrix-table .section-progress-track .earned{background:var(--matrix-earned)}.progress-matrix-table .section-progress-track .remaining{background:color-mix(in srgb, var(--matrix-slate) 30%, transparent)}.progress-matrix-table .progress-matrix-item-scope-extra td{background:color-mix(in srgb, var(--matrix-extra) 5%, var(--matrix-table-row))}.progress-matrix-table .progress-matrix-item-scope-extra .sticky-matrix-col{background:color-mix(in srgb, var(--matrix-extra) 7%, var(--matrix-table-row))}.progress-matrix-row-nearLimit td{background:color-mix(in srgb, var(--matrix-commercial) 6%, var(--matrix-table-row))}.progress-matrix-row-approved td{background:color-mix(in srgb, var(--matrix-locked) 12%, var(--matrix-table-row))}.progress-matrix-table .progress-matrix-row-approved .sticky-matrix-col{background:color-mix(in srgb, var(--matrix-locked) 14%, var(--matrix-table-row))}.progress-matrix-structure-row td{border-top:1px solid color-mix(in srgb, var(--matrix-border) 80%, transparent);border-bottom:1px solid color-mix(in srgb, var(--matrix-border) 80%, transparent);background:color-mix(in srgb, var(--matrix-table-header) 88%, var(--section-accent,var(--matrix-steel)));color:var(--matrix-text-primary)}.progress-matrix-structure-row.section-row td{font-size:var(--text-sm)}.progress-matrix-structure-row.section-row .section-color-dot{width:11px;height:11px}.progress-matrix-structure-row.group-row td{background:color-mix(in srgb, var(--matrix-table-row-hover) 94%, var(--section-accent,var(--matrix-slate)))}.progress-matrix-structure-row.group-row .section-color-dot{opacity:.72;width:7px;height:7px}.progress-matrix-structure-summary{gap:7px;display:grid}.progress-matrix-structure-summary.compact{grid-template-columns:minmax(270px,.95fr) minmax(240px,1.1fr) minmax(360px,auto);align-items:center;gap:10px;min-height:36px}.progress-matrix-structure-label{align-items:center;gap:10px;min-width:0;font-weight:700;display:inline-flex}.section-row .progress-matrix-structure-label{font-size:var(--text-base)}.group-row .progress-matrix-structure-label{color:color-mix(in srgb, var(--matrix-text-primary) 76%, var(--matrix-slate));font-size:var(--text-sm);padding-left:22px}.group-row .progress-matrix-structure-label strong{color:color-mix(in srgb, var(--matrix-text-primary) 56%, var(--matrix-slate))}.progress-matrix-structure-label span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.progress-matrix-structure-label .expand-button{flex:none}.progress-matrix-structure-metrics{color:var(--matrix-text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;gap:9px;min-width:0;font-weight:600;display:flex}.progress-matrix-structure-metrics span,.progress-matrix-structure-metrics strong{text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:0;align-items:center;max-width:180px;min-height:21px;padding:0;display:inline-flex;overflow:hidden}.progress-matrix-structure-metrics strong{text-overflow:clip;max-width:none;color:color-mix(in srgb, var(--section-accent,var(--matrix-steel)) 82%, var(--matrix-text-primary));font-weight:700;overflow:visible}.progress-matrix-structure-metrics .section-approved-metric{max-width:none;color:var(--matrix-text-secondary);font-size:var(--text-xs);font-weight:600;overflow:visible}.progress-matrix-structure-metrics .toolbar-button{flex:none;min-height:25px;padding:0 8px}.progress-matrix-structure-summary .section-progress-track,.boq-structure-editor-row .section-progress-track{height:8px}.progress-matrix-workspace{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.progress-matrix-wrap{border:1px solid var(--matrix-grid-line);background:var(--matrix-table-row);overscroll-behavior:contain;scrollbar-color:var(--matrix-border-strong) var(--matrix-app-bg);border-radius:12px;flex:auto;min-height:0;overflow:auto;box-shadow:0 8px 24px #0f172a0f}.progress-matrix-table .status-pill{border-color:color-mix(in srgb, var(--matrix-slate) 28%, transparent);background:color-mix(in srgb, var(--matrix-table-row) 86%, var(--matrix-graphite));min-height:24px;color:color-mix(in srgb, var(--matrix-text-primary) 70%, var(--matrix-slate));font-size:var(--text-2xs);font-variant-numeric:tabular-nums;letter-spacing:.01em;text-transform:uppercase;padding:0 9px;font-weight:700}.progress-matrix-table .status-pill.good{border-color:color-mix(in srgb, var(--matrix-earned) 42%, transparent);background:color-mix(in srgb, var(--matrix-earned) 9%, var(--matrix-table-row));color:var(--matrix-earned-strong)}.progress-matrix-table .status-pill.warn{border-color:color-mix(in srgb, var(--matrix-commercial) 42%, transparent);background:color-mix(in srgb, var(--matrix-commercial) 10%, var(--matrix-table-row));color:var(--matrix-commercial-strong)}.progress-matrix-table .status-pill.bad{border-color:color-mix(in srgb, var(--matrix-risk) 45%, transparent);background:color-mix(in srgb, var(--matrix-risk) 10%, var(--matrix-table-row));color:var(--matrix-risk-strong)}.progress-matrix-table .status-pill.matrix-status-pending,.progress-matrix-table .status-pill.info{border-color:color-mix(in srgb, var(--blue) 42%, transparent);background:color-mix(in srgb, var(--blue) 10%, var(--matrix-table-row));color:var(--blue)}.status-pill.info{color:var(--blue);border-color:#3e63dd80}.progress-matrix-table td.calculated.matrix-num--ok{color:var(--matrix-earned-strong)}.progress-matrix-table td.calculated.matrix-num--action{color:var(--matrix-commercial-strong)}.progress-matrix-table td.calculated.matrix-num--error{color:var(--matrix-risk-strong);font-weight:800}.extra-work-item-row .matrix-wbs-col,.extra-work-item-row .matrix-code-col,.extra-work-item-row .matrix-description-col{background:color-mix(in srgb, var(--matrix-extra) 8%, var(--matrix-table-row))}@media (width<=760px){.progress-matrix-table{--m-desc-w:140px}.progress-matrix-table td.matrix-code-col{position:static}.progress-matrix-table th.matrix-code-col{left:auto}.progress-matrix-table .matrix-description-col{left:var(--m-wbs-w)}}.extra-work-item-row td{background:color-mix(in srgb, var(--matrix-extra) 5%, var(--matrix-table-row))}.extra-work-item-row .progress-matrix-input-cell{background:color-mix(in srgb, var(--matrix-extra) 12%, transparent)}.extra-work-item-row .progress-matrix-input-cell input{border-color:color-mix(in srgb, var(--matrix-extra) 46%, transparent);background:color-mix(in srgb, var(--matrix-table-row) 72%, var(--matrix-extra))}.extra-work-item-row .progress-matrix-input-cell:focus-within{background:color-mix(in srgb, var(--matrix-extra) 18%, transparent)}.extra-work-item-row .progress-matrix-input-cell input:focus{border-color:color-mix(in srgb, var(--matrix-extra-strong) 72%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--matrix-extra) 20%, transparent), inset 0 1px 0 color-mix(in srgb, var(--matrix-text-inverse) 70%, transparent)}.extra-work-item-row input,.extra-work-item-row select{width:100%;min-width:0}.extra-work-draft-row>td{padding:0}.extra-work-draft-editor{background:color-mix(in srgb, var(--matrix-extra) 9%, var(--matrix-table-row));border-left:3px solid color-mix(in srgb, var(--matrix-extra-strong) 70%, transparent);flex-wrap:wrap;align-items:flex-end;gap:18px;width:fit-content;max-width:min(100%,100vw - 48px);padding:14px 18px;display:flex;position:sticky;left:0}.extra-work-draft-badge{background:color-mix(in srgb, var(--matrix-extra) 24%, transparent);min-width:36px;height:26px;color:var(--matrix-extra-strong);font-size:var(--text-2xs);letter-spacing:.04em;border-radius:999px;justify-content:center;align-self:center;align-items:center;padding:0 10px;font-weight:700;display:inline-flex}.extra-work-draft-group{align-items:flex-end;gap:12px;display:flex}.extra-work-draft-identity{flex:360px;min-width:260px}.extra-work-draft-quantity{flex:none}.extra-work-draft-field{flex-direction:column;gap:4px;display:flex}.extra-work-draft-field>span{font-size:var(--text-2xs);color:var(--muted);font-weight:600}.extra-work-draft-field input,.extra-work-draft-field select,.extra-work-draft-field textarea{width:100%;min-width:0}.extra-work-draft-field--code{flex:0 0 130px}.extra-work-draft-field--description{flex:auto;min-width:200px}.extra-work-draft-field--description textarea{resize:vertical;min-height:36px}.extra-work-draft-field--unit{flex:0 0 80px}.extra-work-draft-field--num{flex:0 0 72px}.extra-work-draft-actions{align-items:flex-end;gap:8px;margin-left:auto;display:flex}.progress-matrix-detail-panel{z-index:120;border:1px solid var(--matrix-border);background:var(--matrix-surface);width:min(380px,100vw - 24px);max-height:min(620px,100vh - 24px);color:var(--matrix-text-primary);box-shadow:0 18px 42px color-mix(in srgb, var(--matrix-business-locked-strong) 18%, transparent);border-radius:8px;padding:12px;position:fixed;overflow-y:auto}.progress-matrix-detail-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.progress-matrix-detail-header h3{margin:0;font-size:16px}.progress-matrix-detail-header span{color:var(--matrix-text-muted);font-size:var(--text-sm);margin-top:4px;font-weight:800;line-height:1.35;display:block}.progress-matrix-detail-stack{gap:8px;display:grid}.progress-matrix-detail-heading{flex:1;min-width:0}.progress-matrix-detail-header>button{flex:none;width:30px;min-width:30px;padding:0}.progress-matrix-detail-header .progress-matrix-detail-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pmd-summary-strip{border:1px solid var(--matrix-grid-line);background:var(--matrix-table-row);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.pmd-summary-metric{flex-direction:column;gap:3px;min-width:0;padding:10px 8px;display:flex}.pmd-summary-metric+.pmd-summary-metric{border-left:1px solid var(--matrix-grid-line)}.pmd-summary-metric>svg{color:var(--matrix-text-muted)}.pmd-metric-label{font-size:var(--text-2xs);color:var(--matrix-text-muted)}.pmd-metric-value{font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.25}.pmd-money-strip{border:1px solid var(--matrix-grid-line);background:var(--matrix-table-row);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.pmd-money-cell{flex-direction:column;gap:3px;min-width:0;padding:9px 10px;display:flex}.pmd-money-cell.pmd-money-op{border-left:1px solid var(--matrix-grid-line)}.pmd-money-label{font-size:var(--text-2xs);color:var(--matrix-text-muted);white-space:nowrap}.pmd-money-value{font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.25}.pmd-keyfigures-title{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--matrix-text-muted);margin:4px 0 6px;font-weight:800}.pmd-keyfigures-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0;display:grid}.pmd-kf{grid-template-columns:auto 1fr auto;align-items:center;gap:6px;min-width:0;display:grid}.pmd-kf>svg{color:var(--matrix-text-muted)}.pmd-kf dt{color:var(--matrix-text-muted);font-size:var(--text-2xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pmd-kf dd{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;margin:0;font-weight:700}.progress-matrix-detail-add-pa{justify-content:center;width:100%;margin-top:8px}.progress-matrix-detail-collapse>summary{cursor:pointer;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--matrix-text-muted);padding:4px 0;font-weight:800;list-style-position:inside}.progress-matrix-detail-collapse[open]>summary{margin-bottom:6px}.progress-matrix-detail-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--matrix-text-muted);margin-top:4px;font-weight:800}.progress-matrix-detail-history-wrap{border:1px solid var(--matrix-grid-line);border-radius:4px;overflow-x:auto}.progress-matrix-detail-history-table{border-collapse:collapse;width:100%;font-size:var(--text-xs);white-space:nowrap;font-variant-numeric:tabular-nums}.progress-matrix-detail-history-table th,.progress-matrix-detail-history-table td{text-align:right;border-bottom:1px solid var(--matrix-grid-line);padding:4px 8px}.progress-matrix-detail-history-table tr>:is(th,td):is(:first-child,:nth-child(2),:nth-child(3),:last-child){text-align:left}.progress-matrix-detail-history-table thead th{color:var(--matrix-text-muted);background:var(--matrix-surface-elevated);font-weight:700;position:sticky;top:0}.progress-matrix-detail-history-table tbody tr:last-child td{border-bottom:0}.progress-matrix-detail-title{gap:3px;display:grid}.progress-matrix-detail-title strong{-webkit-line-clamp:2;color:var(--matrix-text-primary);font-size:var(--text-base);-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.progress-matrix-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.progress-matrix-detail-kpis span{border:1px solid var(--matrix-border);background:var(--matrix-surface-elevated);border-radius:8px;gap:4px;min-height:62px;padding:10px;display:grid}.progress-matrix-detail-kpis small{color:var(--matrix-text-muted);font-size:var(--text-xs);font-weight:900}.progress-matrix-detail-kpis strong{color:var(--matrix-text-primary);font-size:17px;line-height:1.1}.progress-matrix-detail-section{border:1px solid var(--matrix-border);background:var(--matrix-state-calculated-cell);border-radius:8px;gap:9px;padding:10px;display:grid}.progress-matrix-detail-section h4{color:var(--matrix-text-primary);font-size:var(--text-base);margin:0}.progress-matrix-detail-section dl{gap:7px;margin:0;display:grid}.progress-matrix-detail-section div{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px;display:grid}.progress-matrix-detail-section dt{color:var(--matrix-text-muted);font-size:var(--text-xs);font-weight:900}.progress-matrix-detail-section dd{min-width:0;color:var(--matrix-text-primary);font-size:var(--text-sm);overflow-wrap:anywhere;text-align:right;margin:0;font-weight:900}.progress-matrix-detail-compact-grid{border:1px solid var(--matrix-border);background:var(--matrix-state-calculated-cell);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;padding:8px;display:grid}.progress-matrix-detail-compact-grid div{border-radius:4px;gap:2px;padding:4px 6px;display:grid}.progress-matrix-detail-compact-grid div[style*=grid-column]{grid-column:1/-1}.progress-matrix-detail-compact-grid dt{color:var(--matrix-text-muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.03em;font-weight:900}.progress-matrix-detail-compact-grid dd{color:var(--matrix-text-primary);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0;font-weight:700}.progress-matrix-detail-progress-body{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;display:grid}.progress-matrix-detail-doughnut{aspect-ratio:1;width:92px;box-shadow:inset 0 0 0 1px var(--matrix-border);border-radius:999px;place-items:center;display:grid;position:relative}.progress-matrix-detail-doughnut:after{border-radius:inherit;background:var(--matrix-surface);content:"";position:absolute;inset:27%}.progress-matrix-detail-doughnut span{z-index:1;text-align:center;place-items:center;line-height:1.05;display:grid;position:relative}.progress-matrix-detail-doughnut strong{color:var(--matrix-text-primary);font-size:18px;font-weight:900}.progress-matrix-detail-doughnut small{max-width:58px;color:var(--matrix-text-muted);font-size:9px;font-weight:900}.progress-matrix-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.progress-matrix-detail-grid span{border:1px solid var(--matrix-border);background:var(--matrix-surface-elevated);border-radius:8px;gap:5px;min-height:64px;padding:10px;display:grid}.progress-matrix-detail-grid small{color:var(--matrix-text-muted);font-size:var(--text-xs);font-weight:900}.progress-matrix-detail-grid strong{color:var(--matrix-text-primary);font-size:var(--text-base)}.progress-matrix-history{border-top:1px solid var(--matrix-border);gap:5px;padding-top:8px;display:grid}.progress-matrix-history h4{font-size:var(--text-base);margin:0}.progress-matrix-history p{color:var(--matrix-text-muted);font-size:var(--text-sm);margin:0;font-weight:800}.progress-matrix-history span{border:1px solid var(--matrix-border);background:var(--matrix-surface-elevated);min-height:28px;font-size:var(--text-sm);border-radius:7px;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 8px;display:grid}.progress-matrix-history-more{color:var(--matrix-text-muted);font-size:var(--text-xs);text-align:center;margin:0;font-weight:800}.progress-matrix-history small{color:var(--matrix-text-muted);font-weight:800}.progress-matrix-history b{color:var(--matrix-business-input-focus)}.progress-matrix-detail-footnote{border-top:1px solid var(--matrix-border);color:var(--matrix-text-muted);font-size:var(--text-xs);justify-content:space-between;gap:10px;padding-top:8px;font-weight:900;display:flex}.progress-matrix-detail-footnote strong{color:var(--matrix-text-primary)}.row-claim-lock.is-approved{color:var(--green-11)}.finance-document{border:1px solid var(--table-line);background:#9fb0c009;border-radius:8px;gap:14px;padding:14px;display:grid}.finance-section-title{color:var(--matrix-slate,var(--text));font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:700}.finance-grand-total{border-top:2px solid var(--table-line);justify-content:flex-end;align-items:baseline;gap:12px;padding-top:12px;font-weight:800;display:flex}.finance-grand-total strong{font-size:var(--text-md);font-variant-numeric:tabular-nums}.finance-outstanding{align-content:start;gap:16px;display:grid}.finance-detail-header{align-items:center;margin-bottom:0}.finance-kpi-warn{border-left:3px solid var(--chart-series-blocking);padding-left:14px}.finance-kpi-warn .kpi-item-value{color:var(--chart-series-blocking)}.finance-outstanding-table td.finance-section-head-cell{padding:14px 0 4px}.finance-outstanding-table tbody:first-of-type td.finance-section-head-cell{padding-top:4px}.finance-outstanding-table .finance-section-empty-row td{padding:10px 8px}.finance-section-head{background:color-mix(in srgb, var(--matrix-business-neutral,#5f6f82) 12%, transparent);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;display:flex}.finance-outstanding-table tbody[data-section=A] .finance-section-head{background:color-mix(in srgb, var(--matrix-business-earned,#5f9670) 14%, transparent)}.finance-outstanding-table tbody[data-section=B] .finance-section-head{background:color-mix(in srgb, var(--matrix-business-commercial,#a47c2c) 12%, transparent)}.finance-outstanding-table tbody[data-section=C] .finance-section-head{background:color-mix(in srgb, var(--blue) 12%, transparent)}.finance-outstanding-table tbody[data-section=D] .finance-section-head{background:color-mix(in srgb, var(--matrix-business-locked,#46515d) 12%, transparent)}.finance-section-subtotal{color:var(--matrix-slate,var(--text));font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.finance-outstanding-table td.calculated,table.finance-outstanding-table th:nth-child(n+4){text-align:right;font-variant-numeric:tabular-nums}table.finance-outstanding-table th,table.finance-outstanding-table td{padding:6px 8px}table.finance-outstanding-table th{white-space:normal;font-size:var(--text-2xs);font-weight:800}table.finance-outstanding-table th:nth-child(3),table.finance-outstanding-table td:nth-child(3){white-space:nowrap;width:1%}.finance-outstanding-table .finance-claim-desc{min-width:200px}.finance-claim-desc-main{white-space:normal;overflow-wrap:anywhere;line-height:1.35}table.finance-outstanding-table{table-layout:fixed;width:100%;min-width:640px}table.finance-outstanding-table.finance-outstanding-table--entry{min-width:860px}.finance-outstanding-table col.fc-col-no{width:88px}.finance-outstanding-table td.number-cell{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.finance-outstanding-table col.fc-col-unit{width:44px}.finance-outstanding-table col.fc-col-num{width:78px}.finance-outstanding-table col.fc-col-value{width:108px}.finance-outstanding-table col.fc-col-entry{width:104px}.finance-outstanding-table td.finance-entry-muted{color:var(--muted);text-align:center}.finance-impact-entry-row td{border-top:1px dashed var(--table-line)}.finance-impact-entry-row .finance-claim-desc-main{font-weight:600}.finance-legend{color:var(--muted);font-size:var(--text-2xs);margin:6px 2px 0;line-height:1.45}.finance-legend strong{color:var(--text);font-weight:700}.finance-grand-impact{font-variant-numeric:tabular-nums;color:var(--chart-series-blocking);font-weight:700}.export-menu{position:relative}.export-menu-popover{z-index:60;border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:2px;width:180px;margin:0;padding:6px;list-style:none;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #0f172a2e}.export-menu-item{width:100%;color:var(--text);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-weight:700;display:block}.export-menu-item:hover,.export-menu-item:focus-visible{background:var(--panel-2)}.finance-entry-bar{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;padding:12px 16px;display:flex}.finance-entry-cert-preview{font-variant-numeric:tabular-nums;align-self:center;font-weight:800}.finance-entry-field{font-size:var(--text-xs);color:var(--muted);gap:4px;display:grid}.finance-entry-field input{border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;border-radius:6px;padding:4px 6px}.finance-entry-bar-actions{gap:8px;margin-left:auto;display:flex}.finance-register-empty{justify-content:center;align-items:center;display:flex}.finance-cert-item-figures{font-variant-numeric:tabular-nums;color:var(--muted-foreground);white-space:nowrap;flex:none;font-size:.82rem}.finance-cert-attach-icon{vertical-align:-1px;color:var(--muted-foreground);margin-inline-start:.35rem}.finance-cert-detail{flex-direction:column;gap:.75rem;min-height:0;padding:.75rem;display:flex;overflow:auto}.finance-cert-back{align-self:flex-start;gap:.3rem}.finance-final-cut-flag{background:var(--muted);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;margin-inline-start:.4rem;padding:.05rem .4rem;font-size:.7rem;display:inline-block}.finance-cert-line-note{color:var(--muted-foreground);font-size:.78rem;display:block}.finance-table-wrap{max-height:clamp(320px,62vh,720px);overflow:auto}.finance-table-wrap .progress-detail-table th{z-index:2;background:color-mix(in srgb, #9fb0c0 3.5%, var(--panel));box-shadow:inset 0 -1px 0 var(--table-line);position:sticky;top:0}.finance-zero-rate-flag{color:var(--amber-11);font-size:var(--text-2xs);letter-spacing:.02em;text-transform:uppercase;margin-top:2px;font-weight:800;display:inline-block}.timesheet-table{width:100%;min-width:max(100%, calc(var(--timesheet-fixed-columns) + var(--timesheet-working-columns) * 36px + var(--timesheet-weekend-columns) * 30px));table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--text-sm);--timesheet-fixed-columns:316px;--timesheet-fluid-column-width:calc((100% - var(--timesheet-fixed-columns) - var(--timesheet-weekend-columns) * 30px) / var(--timesheet-working-columns));--ts-header-row-h:34px}.timesheet-table thead th{z-index:30;position:sticky;top:0}.timesheet-table thead tr:nth-child(2) th{top:var(--ts-header-row-h)}.timesheet-number-col{width:38px}.timesheet-action-col{width:42px}.timesheet-id-col{width:64px}.timesheet-employee-col{width:182px}.timesheet-month-total-col{width:96px}.billable-staff-position-col{width:168px}.billable-staff-rate-col{width:96px}.billable-staff-amount-col{width:110px}.billable-staff-identity-col{width:190px}.billable-staff-identity-cell{text-align:left!important;padding:4px 8px!important}.billable-staff-identity-cell input{text-align:left;width:100%}.billable-staff-position-line{color:var(--muted);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.timesheet-data-row{cursor:pointer}.timesheet-data-row.is-selected td{background:var(--table-strong)}.timesheet-grid-panel{position:relative}.timesheet-detail-panel{z-index:120;border:1px solid var(--line);background:var(--panel);border-radius:10px;width:300px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:14px;position:fixed;overflow-y:auto;box-shadow:0 18px 42px #0f172a38}.timesheet-detail-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.timesheet-detail-heading h3{font-size:var(--text-lg);margin:0}.timesheet-detail-heading span{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.04em;text-transform:uppercase;margin-top:2px;font-weight:800;display:block}.timesheet-detail-fields{gap:10px;margin-bottom:12px;display:grid}.timesheet-detail-field{gap:4px;display:grid}.timesheet-detail-field>span{color:var(--muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;font-weight:800}.timesheet-detail-field input{border:1px solid var(--line);background:var(--input-bg);min-height:32px;color:var(--text);font-size:var(--text-base);border-radius:6px;padding:0 10px}.timesheet-detail-stats{border:1px solid var(--line);background:var(--readonly-bg);border-radius:8px;gap:6px;margin:0 0 12px;padding:10px;display:grid}.timesheet-detail-stats>div{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.timesheet-detail-stats dt{color:var(--muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em}.timesheet-detail-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:800}.timesheet-detail-note{color:var(--muted);font-size:var(--text-2xs);margin:-6px 2px 12px;line-height:1.4}.timesheet-detail-actions{gap:8px;margin-top:12px;display:flex}.timesheet-detail-actions .toolbar-button{flex:1;justify-content:center}.timesheet-employee-cell,.billable-staff-identity-cell{text-align:left!important;padding:0 10px!important}.timesheet-identity-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;display:block;overflow:hidden}.timesheet-identity-name.is-missing{color:var(--muted);font-style:italic;font-weight:600}.timesheet-identity-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.timesheet-identity-button:focus-visible{box-shadow:var(--ui-focus-ring);border-radius:4px;outline:none}.timesheet-month-tag{color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700}.timesheet-code-legend{color:var(--muted);font-size:var(--text-2xs);margin:8px 2px 0}.billable-staff-panel{border-left:3px solid var(--indigo-8)}.timesheet-day-col{width:var(--timesheet-fluid-column-width)}.timesheet-day-col.weekend{width:30px}.timesheet-table td.timesheet-week-total-cell{font-size:var(--text-2xs);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;padding:0 2px;font-weight:800}.timesheet-table th,.timesheet-table td{border-right:1px solid var(--table-line);border-bottom:1px solid var(--table-line);background:var(--table-cell);text-align:center;height:42px;padding:0}.timesheet-table th{height:34px;color:var(--chart-axis);font-size:var(--text-sm);white-space:normal;line-height:1.15}.timesheet-table thead tr:first-child th{background:var(--table-header)}.timesheet-table tbody tr:hover td{background:var(--table-hover)}.work-table.timesheet-table input{width:100%;height:42px;min-height:42px;color:var(--text);font-size:var(--text-sm);text-overflow:ellipsis;background:0 0;border:0;border-radius:0;outline:0;margin:0;padding:0 6px;font-weight:800;display:block}.work-table.timesheet-table input:not(:disabled){background:var(--manual-bg);color:var(--manual-text);box-shadow:inset 0 0 0 1px #7db5ff1f}.work-table.timesheet-table input::placeholder{color:var(--muted);opacity:.55;font-style:italic;font-weight:400}.work-table.timesheet-table input:focus{box-shadow:inset 0 0 0 2px var(--blue);background:#3d8bfd14}.work-table.timesheet-table input.numeric{text-align:center;text-transform:uppercase;padding:0 5px}.work-table.timesheet-table td.weekend input.numeric{padding:0 1px}.work-table.timesheet-table input:disabled{opacity:1;color:var(--muted);box-shadow:none;background:0 0}.timesheet-table .number-cell,.timesheet-table .action-cell{background:var(--table-header)}.timesheet-table .action-cell{padding:0 6px}.timesheet-table .icon-button{border-radius:6px;width:30px;min-height:30px}.timesheet-employee-cell input{text-align:left}.timesheet-month-total-cell,.timesheet-id-cell{background:var(--table-header)}.timesheet-month-total-cell{color:var(--white-soft);font-weight:900}.timesheet-day-cell{padding:0 4px}.timesheet-day-heading span{font-size:var(--text-2xs);letter-spacing:0;white-space:nowrap;font-weight:700;line-height:1.2;display:block}.timesheet-day-heading small{color:var(--muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;margin-top:2px;display:block}.timesheet-table th.is-week-end,.timesheet-table td.is-week-end{border-right:2px solid var(--line)}.timesheet-table .is-today{background:color-mix(in srgb, var(--indigo-8) 8%, var(--table-cell))}.timesheet-table .is-today small{color:var(--indigo-11);font-weight:700}.timesheet-table .timesheet-day-cell.absence-s,.timesheet-code-pill.absence-s{background:var(--red-3);color:var(--red-11)}.timesheet-table .timesheet-day-cell.absence-v,.timesheet-code-pill.absence-v{background:var(--green-3);color:var(--green-11)}.timesheet-table .timesheet-day-cell.absence-r,.timesheet-code-pill.absence-r{background:var(--violet-3);color:var(--violet-11)}.timesheet-table .timesheet-day-cell.absence-a,.timesheet-code-pill.absence-a{background:var(--amber-3);color:var(--amber-11)}.timesheet-table .timesheet-day-cell.absence-p,.timesheet-code-pill.absence-p{background:var(--indigo-3);color:var(--indigo-11)}.timesheet-table .timesheet-day-cell.absence-unknown{background:var(--amber-3);color:var(--amber-11)}.timesheet-table .timesheet-day-heading.weekend,.timesheet-table .timesheet-day-cell.weekend,.timesheet-table .timesheet-week-total-cell.weekend{background:color-mix(in srgb, var(--slate-8) 16%, var(--table-cell));color:var(--muted)}.work-table.timesheet-table td.weekend input{box-shadow:none;background:0 0}.timesheet-table .timesheet-day-cell.out-of-period{background:color-mix(in srgb, var(--slate-8) 24%, var(--table-cell))}.timesheet-day-cell.out-of-period input{opacity:.35}.work-table.timesheet-table td.absence-unknown input{box-shadow:inset 0 0 0 1.5px var(--amber-8);color:inherit;background:0 0}.work-table.timesheet-table td.absence-s input,.work-table.timesheet-table td.absence-v input,.work-table.timesheet-table td.absence-r input,.work-table.timesheet-table td.absence-a input,.work-table.timesheet-table td.absence-p input{box-shadow:none;color:inherit;background:0 0}.work-table.timesheet-table .timesheet-day-cell input:focus{box-shadow:inset 0 0 0 2px var(--blue)}.timesheet-table tfoot td{background:var(--table-footer);height:40px;color:var(--white-soft);font-weight:900}.legend-popover{position:relative}.legend-popover-panel{z-index:60;border:1px solid var(--line);background:var(--panel);width:360px;color:var(--muted);font-size:var(--text-sm);text-align:left;border-radius:8px;justify-items:start;gap:6px;padding:12px 14px;font-weight:800;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #0f172a2e}.timesheet-code-pill{border:1px solid #ffffff14;border-radius:6px;align-items:center;gap:6px;min-height:28px;padding:0 10px;display:inline-flex}.timesheet-code-pill strong{color:currentColor;font-size:var(--text-base)}.timesheet-code-pill small{color:currentColor;opacity:.72}.timesheet-legend-note{color:var(--muted)}.action-cell{text-align:center}.work-table input,.work-table textarea,.work-table select{border:1px solid var(--line);background:var(--input-bg);width:100%;min-height:36px;color:var(--text);border-radius:6px;padding:0 10px}.work-table textarea{resize:vertical;padding-top:8px;padding-bottom:8px;line-height:1.35}.description-textarea{overflow-wrap:anywhere;min-height:36px}.work-table input.numeric{text-align:right}.work-table th small{color:var(--muted);font-size:var(--text-xs);margin-top:3px;display:block}.work-table tfoot td{background:var(--table-footer);color:var(--white-soft);font-weight:900}input.invalid-field,select.invalid-field,.work-table input.invalid-field,.work-table textarea.invalid-field{border-color:color-mix(in srgb, var(--red) 75%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--red) 26%, transparent)}input.warning-field,.work-table input.warning-field{border-style:dashed;border-color:#ffd12f8c}.progress-percent-cell{min-width:84px;font-weight:900}.progress-percent-cell strong{color:var(--blue)}.last-report-cell{white-space:nowrap;gap:4px;display:grid}.last-report-cell small{color:var(--muted);font-size:var(--text-sm);font-weight:800}.boq-model-table th:first-child,.boq-model-table td.expand-cell{text-align:center;width:42px}.boq-item-row{cursor:pointer}.boq-item-row:hover td{background:var(--table-hover)}.boq-item-row.is-expanded td{border-bottom-color:#9fb0c014}.progress-matrix-table .progress-matrix-item-row:hover td{background:color-mix(in srgb, var(--matrix-table-row-hover) 94%, var(--section-accent,var(--matrix-steel)))}.progress-matrix-table .progress-matrix-item-row:hover .sticky-matrix-col{background:color-mix(in srgb, var(--section-accent,var(--matrix-steel)) 9%, var(--matrix-table-row-hover))}.progress-matrix-table .progress-matrix-item-row.is-expanded td{background:color-mix(in srgb, var(--matrix-table-row-hover) 88%, var(--section-accent,var(--matrix-steel)))}.expand-button{width:28px;min-height:28px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.expand-button svg{transition:transform .16s}.expand-button[aria-expanded=true]{border-color:var(--line);background:var(--input-bg);color:var(--text)}.expand-button[aria-expanded=true] svg{transform:rotate(90deg)}.boq-detail-row>td{background:#9fb0c00a;padding:0 10px 14px 52px}.boq-detail-panel{border:1px solid var(--table-line);background:#9fb0c009;border-radius:8px;overflow:hidden}.progress-detail-table{border-collapse:collapse;width:100%}.progress-detail-table th,.progress-detail-table td{border-right:1px solid var(--table-line);border-bottom:1px solid var(--table-line);font-size:var(--text-sm);padding:8px 10px}.progress-detail-table th{color:var(--chart-axis);white-space:nowrap;font-weight:900}.report-table .description-cell,.progress-detail-table .description-cell{white-space:normal;overflow-wrap:anywhere;word-break:normal;min-width:260px;line-height:1.35}.progress-detail-table th:nth-child(3),.progress-detail-table td:nth-child(3){width:24%}.progress-detail-table tr:last-child td{border-bottom:0}.progress-detail-table th:last-child,.progress-detail-table td:last-child{border-right:0}.report-reconciliation-panel{border:1px solid var(--table-line);background:#9fb0c00a;border-radius:8px;gap:12px;margin-top:12px;padding:12px;display:grid}.report-reconciliation-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.report-reconciliation-head h3{color:var(--text);font-size:var(--text-base);margin:0}.report-reconciliation-head p,.reconciliation-empty{color:var(--muted);font-size:var(--text-xs);margin:3px 0 0;font-weight:800}.reconciliation-rows{gap:8px;display:grid}.reconciliation-row{grid-template-columns:minmax(180px,260px) 140px 44px;align-items:center;gap:8px;display:grid}.pr-revision-badge{background:color-mix(in srgb, var(--matrix-business-commercial,#a47c2c) 16%, transparent);color:var(--matrix-business-commercial-strong,#755517);font-size:var(--text-2xs);letter-spacing:.02em;white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 6px;font-weight:700}.reports-table th.num-col,.reports-table td.calculated,.reports-detail .progress-detail-table th.num-col,.reports-detail .progress-detail-table td.calculated{text-align:right;font-variant-numeric:tabular-nums}.reports-table tbody tr:not(.boq-detail-row){cursor:pointer}.reports-table td.reports-efficiency.good{color:var(--matrix-business-earned-strong);font-weight:700}.reports-table td.reports-efficiency.warn{color:var(--matrix-business-commercial-strong);font-weight:700}.reports-screen{flex-direction:column;flex:auto;min-height:0;display:flex}.reports-master-detail{flex:auto;gap:0;min-height:0;padding:0;display:flex;overflow:hidden}.reports-list{border-right:1px solid var(--line);flex-direction:column;flex:0 0 clamp(230px,21vw,300px);min-height:0;display:flex;overflow:hidden}.reports-list-head{border-bottom:1px solid var(--line);padding:16px 16px 12px}.reports-list-head h2{margin:0}.reports-list-head .panel-description{margin:3px 0 0}.reports-list-items{flex-direction:column;gap:6px;min-height:0;margin:0;padding:8px;list-style:none;display:flex;overflow-y:auto}.reports-list-item{border:1px solid var(--line);background:var(--panel-2);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:10px;align-items:baseline;gap:10px;padding:10px 12px;transition:border-color .12s,background .12s;display:flex}.reports-list-item:hover{border-color:color-mix(in srgb, var(--blue) 45%, var(--line))}.reports-list-item.active{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 10%, var(--panel-2))}.reports-list-item-pr{white-space:nowrap;flex:none;font-weight:800}.reports-list-item-period{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:var(--text-xs);flex:auto;font-weight:700;overflow:hidden}.reports-list-item-eff{font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:700}.reports-list-item-eff.good{color:var(--chart-series-approved)}.reports-list-item-eff.warn{color:var(--chart-series-blocking)}.reports-list-item-eff.bad{color:var(--chart-series-danger)}.reports-detail-pane .kpi-item-value.good{color:var(--chart-series-approved)}.reports-detail-pane .kpi-item-value.warn{color:var(--chart-series-blocking)}.reports-detail-pane .kpi-item-value.bad{color:var(--chart-series-danger)}.reports-detail-pane{flex:auto;min-width:0;min-height:0;padding:16px 18px;overflow-y:auto}.reports-detail-header{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.reports-detail-title{min-width:0}.reports-detail-header .status-group{flex:none}.reports-detail-title h2{white-space:nowrap;align-items:center;gap:8px;margin:0;display:flex;overflow:hidden}.reports-detail-title .panel-description{margin:3px 0 0}.reports-detail .kpi-strip,.reports-detail-pane>.kpi-strip{margin-bottom:14px}@media (width<=900px){.reports-master-detail{flex-direction:column;overflow:visible}.reports-list{border-right:none;border-bottom:1px solid var(--line);flex:none}.reports-list-items{max-height:320px}.impact-add-form{flex-wrap:wrap}}@media (width<=640px){.reports-detail-header{flex-wrap:wrap}}.saved-report-section-title{color:var(--matrix-slate,var(--text));background:color-mix(in srgb, var(--matrix-business-neutral,#5f6f82) 12%, transparent);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;border-radius:6px;margin:14px 0 8px;padding:6px 10px;font-weight:700}.saved-report-section-title.section-original{background:color-mix(in srgb, var(--matrix-business-earned,#5f9670) 14%, transparent)}.saved-report-section-title.section-extra{background:color-mix(in srgb, var(--matrix-business-commercial,#a47c2c) 12%, transparent)}.saved-report-section-title.section-impact{background:color-mix(in srgb, var(--matrix-business-locked,#46515d) 12%, transparent)}.saved-report-section-title.section-attachments{background:color-mix(in srgb, var(--blue) 12%, transparent);align-items:center;gap:8px;display:flex}.saved-report-section-count{background:color-mix(in srgb, var(--blue) 22%, transparent);min-width:18px;height:18px;color:var(--text);font-size:var(--text-2xs);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.reports-attach-button{cursor:pointer;position:relative}.reports-attach-button input[type=file]{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.reports-attach-button.is-busy{opacity:.7;pointer-events:none}.reports-attach-button:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:2px}.reports-attachment-error{color:var(--red);font-size:var(--text-xs);margin:6px 0 0;font-weight:700}.reports-attachment-empty{color:var(--muted);font-size:var(--text-xs);margin:6px 0 0}.reports-attachment-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:8px;display:grid}.reports-attachment-card{border:.5px solid var(--line);background:var(--panel-2);border-radius:10px;flex-direction:column;margin:0;display:flex;position:relative;overflow:hidden}.reports-attachment-preview{background:var(--panel);justify-content:center;align-items:center;height:110px;display:flex;overflow:hidden}.reports-attachment-preview img{object-fit:cover;width:100%;height:100%}.reports-attachment-file{color:var(--muted);font-size:var(--text-2xs);letter-spacing:.04em;flex-direction:column;align-items:center;gap:4px;font-weight:800;display:flex}.reports-attachment-meta{flex-direction:column;gap:1px;min-width:0;padding:8px 10px;display:flex}.reports-attachment-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);font-weight:600;overflow:hidden}.reports-attachment-size{color:var(--muted);font-size:var(--text-2xs)}.reports-attachment-delete{border:.5px solid var(--line);background:color-mix(in srgb, var(--panel-2) 88%, transparent);width:26px;height:26px;color:var(--red);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:6px;right:6px}.reports-attachment-delete:hover{background:color-mix(in srgb, var(--red) 14%, var(--panel-2))}.reports-attachment-delete:disabled{opacity:.5;cursor:default}.saved-report-section-header{justify-content:space-between;align-items:center;gap:12px;margin:14px 0 8px;display:flex}.saved-report-section-header .saved-report-section-title{margin:0}.progress-detail-table td.saved-report-section-title{text-align:left}.reports-scope-table-wrap{max-height:clamp(320px,62vh,720px);overflow:auto}.reports-detail .progress-detail-table th{z-index:2;white-space:normal;background:color-mix(in srgb, #9fb0c0 3.5%, var(--panel));box-shadow:inset 0 -1px 0 var(--table-line);font-size:var(--text-2xs);font-weight:800;position:sticky;top:0}.reports-detail .progress-detail-table th,.reports-detail .progress-detail-table td{padding:6px 8px}.reports-detail .progress-detail-table .description-cell{min-width:166px}.reports-detail .progress-detail-table td:nth-child(2){white-space:nowrap}.reports-detail .progress-detail-table td:nth-child(6){background:color-mix(in srgb, var(--matrix-business-earned,#5f9670) 6%, transparent);font-weight:700}.impact-add-form{border:1px solid var(--table-line);background:#9fb0c00d;border-radius:8px;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;display:flex}.impact-add-form .impact-reason-input{flex:auto;min-width:0}.impact-hours-input{flex:none;width:90px}@media (width<=900px){.impact-hours-input{width:64px}}.impact-entry-empty{color:var(--muted);font-size:var(--text-xs);margin:0 0 8px;font-weight:700}.impact-entry-list{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.impact-entry-row{border:1px solid var(--table-line);background:#9fb0c00a;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:flex}.impact-entry-row .impact-reason-input{flex:auto;min-width:0}.impact-entry-row .status-pill{flex:none}.impact-entry-text{color:var(--muted);font-size:var(--text-xs);flex:auto;font-weight:700}.impact-entry-hours{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.status-pill.impact-category.downtime{border-color:color-mix(in srgb, var(--red-11) 55%, transparent);color:var(--red-11)}.status-pill.impact-category.blocking{border-color:color-mix(in srgb, var(--amber-11) 60%, transparent);color:var(--amber-11)}.impact-reason-input{width:100%}.progress-metric-label{color:var(--text);white-space:nowrap;font-weight:900}.progress-detail-table .progress-percent-cell{min-width:72px}.boq-commercial-summary{border-top:1px solid var(--table-line);background:#9fb0c009;grid-template-columns:minmax(280px,1fr) minmax(320px,42%);gap:12px;padding:12px;display:grid}.boq-commercial-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.boq-commercial-card{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;gap:4px;min-width:0;padding:10px;display:grid}.boq-commercial-card span,.boq-commercial-card small,.commercial-value-header span,.commercial-meta-grid small{color:var(--muted);font-size:var(--text-sm);font-weight:900}.boq-commercial-card strong,.commercial-value-header strong,.commercial-meta-grid strong{color:var(--chart-axis);font-size:var(--text-base);font-weight:900}.commercial-value-status{gap:8px;min-width:0;display:grid}.commercial-value-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.commercial-value-header>div{gap:3px;display:grid}.commercial-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.commercial-meta-grid span{border:1px solid var(--line);background:#07101833;border-radius:8px;gap:3px;min-width:0;padding:8px 10px;display:grid}.selected-row td{background:#3d8bfd1f}.section-row td{border-top:1px solid var(--section-row-border);border-bottom:1px solid var(--section-row-border);background:var(--section-row-bg);color:var(--section-row-text);font-weight:900}.group-row td{border-top:1px solid var(--table-line);border-bottom:1px solid var(--table-line);background:var(--group-row-bg);color:var(--section-row-text);font-weight:900}.section-row .structure-input,.group-row .structure-input{border-color:var(--section-row-border);color:var(--section-row-text);background:#ffffff0a;font-weight:900}.work-table .section-row .structure-input:not(:disabled),.work-table .group-row .structure-input:not(:disabled){border-color:var(--section-row-border);color:var(--section-row-text);box-shadow:none;background:#ffffff13}.section-row .structure-input.invalid-field,.group-row .structure-input.invalid-field{border-color:color-mix(in srgb, var(--red) 85%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--red) 40%, transparent)}.boq-structure-editor-row{grid-template-columns:auto minmax(180px,1fr) minmax(180px,.72fr) auto auto;align-items:center;gap:10px;display:grid}.section-color-dot{background:var(--section-accent,var(--blue));width:10px;height:10px;box-shadow:0 0 0 2px color-mix(in srgb, var(--section-accent,var(--blue)) 24%, transparent);border-radius:999px;display:inline-block}.section-progress-track.compact{min-width:160px}.boq-structure-progress-label{color:var(--section-accent,var(--blue));font-size:var(--text-sm);white-space:nowrap;font-weight:900}.number-cell,.calculated{white-space:nowrap;font-weight:900}.calculated{text-align:right;color:var(--readonly-text)}td.calculated,.progress-detail-table td.calculated,.compact-table td.calculated{background:var(--readonly-bg)}.compact-table td.mono-cell{font-family:var(--matrix-mono,"SFMono-Regular", ui-monospace, monospace);white-space:nowrap}.progress-matrix-shared-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progress-matrix-measure-toggle{border:1px solid var(--matrix-grid-line);border-radius:4px;align-items:center;display:inline-flex;overflow:hidden}.progress-matrix-measure-toggle button{background:var(--matrix-surface-elevated);min-height:30px;color:var(--matrix-text-secondary);font-size:var(--text-sm);cursor:pointer;border:0;padding:0 12px;font-weight:700}.progress-matrix-measure-toggle button+button{border-left:1px solid var(--matrix-grid-line)}.progress-matrix-measure-toggle button.active{background:var(--blue);color:#fff}.progress-matrix-view-toggle{border:1px solid var(--line);background:var(--readonly-bg);border-radius:10px;gap:4px;padding:4px;display:inline-flex}.progress-matrix-view-toggle button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 14px;font-weight:600}.progress-matrix-view-toggle button.active{background:var(--panel-2);color:var(--text);box-shadow:0 1px 2px #0f172a1f}.commercial-kpi-grid{flex-wrap:nowrap;gap:10px;margin-bottom:10px;display:flex;overflow-x:auto}.commercial-kpi-grid>.metric-card{min-width:160px;min-height:0;box-shadow:none;flex:1 0 160px;gap:3px;padding:8px 12px}.commercial-kpi-grid>.metric-card .metric-card-head{min-height:0}.commercial-kpi-grid>.metric-card .metric-value{font-size:22px}.commercial-kpi-grid>.metric-card .metric-icon{display:none}.matrix-commercial-panel{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.matrix-commercial-context{min-width:0;font-size:var(--text-sm);color:var(--matrix-text-primary);align-items:baseline;gap:8px;display:flex}.matrix-commercial-context .matrix-context-label{text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-xs);color:var(--matrix-text-secondary);font-weight:700}.matrix-commercial-context strong{flex:none;font-weight:600}.matrix-commercial-context .matrix-context-measure{background:color-mix(in srgb, var(--matrix-steel) 16%, transparent);color:var(--matrix-business-input-focus);font-size:var(--text-xs);letter-spacing:.02em;border-radius:999px;margin-left:auto;padding:1px 8px;font-weight:700}.matrix-commercial-qty-hint{text-overflow:ellipsis;white-space:nowrap;border:1px solid color-mix(in srgb, var(--matrix-commercial) 35%, transparent);background:color-mix(in srgb, var(--matrix-commercial) 10%, transparent);min-width:0;color:var(--matrix-text-secondary);font-size:var(--text-xs);border-radius:999px;flex:0 auto;padding:1px 8px;font-weight:600;overflow:hidden}.matrix-commercial-body{border:1px solid var(--matrix-grid-line);background:var(--matrix-surface-elevated);border-radius:10px;align-items:stretch;display:flex;overflow:hidden}.matrix-commercial-flow{flex:68%;align-items:center;gap:6px;padding:12px 16px;display:flex;overflow-x:auto}.flow-stage{flex-direction:column;flex:1 1 0;gap:3px;min-width:0;display:flex}.flow-stage-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--matrix-text-secondary);font-weight:700}.flow-stage-value{color:var(--matrix-text-primary);white-space:nowrap;font-size:22px;font-weight:800;line-height:1.05}.flow-stage.good .flow-stage-value{color:color-mix(in srgb, var(--green,#16a34a) 72%, var(--matrix-text-primary))}.flow-stage-pct{font-size:var(--text-xs);color:var(--matrix-text-secondary);white-space:nowrap}.flow-stage-pct.muted{opacity:.7}.flow-stage-pct small{opacity:.8}.flow-stage-pct.over{color:var(--red,#dc2626);font-weight:700}.flow-arrow{color:color-mix(in srgb, var(--matrix-text-secondary) 60%, transparent);flex:none;padding-bottom:14px;font-size:18px}.matrix-action-summary{border-left:1px solid var(--matrix-grid-line);background:color-mix(in srgb, var(--matrix-grid-line) 12%, transparent);flex-direction:column;flex:32%;justify-content:center;align-items:flex-start;gap:8px;padding:11px 16px;display:flex}.matrix-week-ptd-summary{gap:3px}.matrix-week-ptd-figures{font-size:var(--text-sm);color:var(--matrix-text-secondary);white-space:nowrap;font-weight:600}.action-primary{flex-direction:column;gap:1px;display:flex}.action-primary .action-label{color:color-mix(in srgb, var(--amber-text) 85%, var(--matrix-text-secondary))}.action-value-lg{color:color-mix(in srgb, var(--amber-11) 78%, var(--matrix-text-primary));white-space:nowrap;font-size:22px;font-weight:800;line-height:1.05}.action-pct{font-size:var(--text-xs);color:var(--matrix-text-secondary)}.action-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--matrix-text-secondary);white-space:nowrap;font-weight:700}.cert-input{border:1px solid var(--line);background:var(--panel-2);width:80px;color:var(--text);font:inherit;text-align:right;border-radius:6px;padding:4px 6px}.timesheet-table td.calculated{color:var(--white-soft)}.empty-state{border:1px dashed var(--line);min-height:180px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;gap:8px;display:grid}.empty-state strong{color:var(--text)}.empty-state--compact{gap:4px;min-height:96px;padding:12px}.empty-state-action{margin-top:6px}.no-project-screen{align-items:center;min-height:calc(100vh - 64px);display:grid}.no-project-onboarding{background-color:var(--bg);background-image:radial-gradient(120% 90% at 50% 0,#3e63dd0f,#0000 60%),linear-gradient(#3e63dd0d 1px,#0000 1px),linear-gradient(90deg,#3e63dd0d 1px,#0000 1px);background-size:100% 100%,26px 26px,26px 26px;justify-items:center;margin:-18px -22px -32px;padding:24px}.home-create-cta{border:1px solid var(--blue);background:var(--blue);color:#fff;font-size:var(--text-md);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:12px 22px;font-weight:700;display:inline-flex}.home-create-cta:hover{background:color-mix(in srgb, var(--blue) 88%, #000)}.home-stack{flex-direction:column;align-items:center;gap:22px;width:100%;display:flex}.clock-board{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 78%, transparent);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:320px;padding:22px 28px;display:flex}.clock-board-time{letter-spacing:.02em;color:var(--text);font-variant-numeric:tabular-nums;font-family:SFMono-Regular,Roboto Mono,Cascadia Mono,ui-monospace,monospace;font-size:52px;font-weight:600;line-height:1}.clock-board-date{color:var(--muted);font-size:var(--text-base);letter-spacing:.04em}.clock-board-week{background:var(--panel-2);color:var(--blue);font-size:var(--text-sm);letter-spacing:.03em;border-radius:999px;margin-top:2px;padding:2px 12px;font-weight:700}.home-stack--form{gap:14px}.home-stack--form .clock-board{padding:12px 22px}.home-stack--form .clock-board-time{font-size:30px}.brand-home,.mobile-topbar-brand{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:8px 6px 6px;position:relative}.brand-home:hover,.mobile-topbar-brand:hover{border-color:var(--rail-line);background:var(--rail-bg-elev)}.brand-home-icon{color:var(--rail-text);opacity:.7;position:absolute;top:7px;right:8px}.sidebar-projects{border-top:1px solid var(--rail-line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.sidebar-section-label{color:var(--rail-text);font-size:var(--text-xs);letter-spacing:.06em;font-weight:800;line-height:inherit;text-transform:uppercase;opacity:.75;margin:0}.sidebar-slot{border:1px dashed #94adcc1a;border-radius:12px;flex-direction:column;gap:6px;padding:6px;display:flex}.sidebar-slot-error{color:#f3b0b0;font-size:var(--text-2xs);background:#a93c3c2e;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-weight:700;display:flex}.sidebar-slot-retry{color:#f3b0b0;font-size:var(--text-2xs);cursor:pointer;background:0 0;border:1px solid #f3b0b066;border-radius:6px;padding:2px 8px;font-weight:800}.sidebar-slot-retry:hover{color:#fff;border-color:#f3b0b0}.sidebar-slot-loading{border:1px dashed var(--rail-line);color:var(--rail-text);font-size:var(--text-2xs);text-align:center;opacity:.75;border-radius:12px;padding:14px 10px;font-weight:700}.sidebar-project-slots{flex-direction:column;gap:8px;min-height:0;max-height:clamp(180px,44vh,560px);padding-right:2px;display:flex;overflow-y:auto}.sidebar-project-slots::-webkit-scrollbar{width:6px}.sidebar-project-slots::-webkit-scrollbar-thumb{background:#94adcc47;border-radius:99px}.sidebar-project-slot-card{box-sizing:border-box;border:1px solid var(--rail-line);background:var(--rail-bg-elev);width:100%;min-height:92px;color:var(--rail-text);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.sidebar-project-slot-card:hover:not(:disabled){border-color:var(--rail-accent-line)}.sidebar-project-slot-card.active{border-color:var(--rail-accent-strong);box-shadow:inset 0 0 0 1px var(--rail-accent-line)}.sidebar-project-slot-card.empty{background:0 0;border-style:dashed;border-color:#94adcc4d}.sidebar-project-slot-card:disabled{cursor:default}.sidebar-project-slot-card.empty:disabled{opacity:.7}.sidebar-slot-number{color:var(--rail-text);letter-spacing:.05em;text-transform:uppercase;opacity:.7;font-size:10px;font-weight:700}.sidebar-slot-body{flex:1;min-width:0;display:flex}.sidebar-slot-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:3px}.sidebar-slot-empty-icon{width:26px;height:26px;color:var(--rail-text);border:1px dashed #94adcc73;border-radius:50%;justify-content:center;align-items:center;display:flex}.sidebar-slot-empty-title{color:var(--rail-text-strong);font-size:var(--text-2xs);font-weight:800}.sidebar-slot-empty-subtitle{color:var(--rail-text);opacity:.75;font-size:10px}.sidebar-projects-import{border:1px solid var(--rail-line);width:100%;color:var(--rail-text);font-size:var(--text-2xs);cursor:pointer;background:0 0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:7px 6px;font-weight:700;display:inline-flex}.sidebar-projects-import:hover{border-color:var(--rail-accent-line);color:var(--rail-text-strong)}.sidebar-project-tools{flex-direction:column;align-items:stretch;gap:6px;width:100%;display:flex}.sidebar-project-tools-label{max-width:100%;color:var(--rail-text-strong);line-height:16px;font-size:var(--text-2xs);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:6px;margin:-4px -6px;padding:4px 6px;font-weight:800;overflow:hidden}.sidebar-project-tools-label:hover{background:var(--rail-bg-elev)}.sidebar-slot-create,.sidebar-slot-import{width:100%;font-size:var(--text-2xs);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:8px 6px;font-weight:800;display:inline-flex}.sidebar-slot-create{border:1px solid var(--rail-active-bg);background:color-mix(in srgb, var(--rail-active-bg) 16%, transparent);color:#cfe0ff}.sidebar-slot-create:hover:not(:disabled){background:color-mix(in srgb, var(--rail-active-bg) 26%, transparent)}.sidebar-slot-import{border:1px solid var(--rail-line);color:var(--rail-text);background:0 0}.sidebar-slot-import:hover:not(:disabled){border-color:var(--rail-accent-line);color:var(--rail-text-strong)}.sidebar-slot-create:disabled,.sidebar-slot-import:disabled{opacity:.45;cursor:not-allowed}.sidebar-add-slot{border:1px dashed var(--rail-line);width:100%;color:var(--rail-text-strong);font-size:var(--text-2xs);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-weight:800;display:inline-flex}.sidebar-add-slot:hover:not(:disabled){border-color:var(--rail-accent-line)}.sidebar-add-slot:disabled{cursor:not-allowed;color:var(--rail-text)}.sidebar-request-slot{text-decoration:none}.sidebar-request-slot:hover{border-color:var(--rail-accent-line)}.sidebar-add-slot-soon{background:var(--rail-bg-elev);color:var(--rail-text);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:0 5px;font-size:9px;font-weight:700}.sidebar-project-slot{flex-direction:column;gap:4px;display:flex}.sidebar-project-slot-actions{justify-content:center;gap:4px;display:flex}.sidebar-slot-action{border:1px solid var(--rail-line);color:var(--rail-text);font-size:var(--text-2xs);cursor:pointer;background:0 0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:4px;padding:4px 6px;font-weight:700;display:inline-flex}.sidebar-slot-action:hover{border-color:var(--rail-accent-line);color:var(--rail-text-strong)}.sidebar-slot-action.danger:hover{color:#f3b1b1;border-color:#e5737399}.sidebar-bottom{border-top:1px solid var(--rail-line);flex-direction:column;align-items:center;gap:8px;margin-top:auto;padding-top:10px;display:flex}.sidebar-user{align-items:center;gap:9px;width:100%;padding:4px 2px;display:flex;position:relative}.sidebar-user-button{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;align-items:center;gap:9px;margin:0;padding:2px;display:flex}.sidebar-user-button:hover{background:var(--rail-bg-elev)}.sidebar-user-menu{background:var(--rail-bg-elev);border-radius:8px;margin-bottom:6px;padding:4px;position:absolute;bottom:100%;left:0;right:0;box-shadow:0 8px 24px #00000059}.sidebar-logout{width:100%;color:var(--rail-text-strong);font-size:var(--text-2xs);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 9px;font-weight:700;display:block}.sidebar-logout:hover{background:var(--rail-bg)}.sidebar-section{flex-direction:column;gap:8px;width:100%;display:flex}.sidebar-section+.sidebar-section{margin-top:4px}.sidebar-admin:empty{display:none}.sidebar-nav-item{width:100%;min-height:38px;color:var(--rail-text-strong);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-weight:600;display:flex}.sidebar-nav-item:hover{background:var(--rail-bg-elev);border-color:var(--rail-line)}.sidebar-nav-item svg{color:var(--rail-text);flex:none}.sidebar-nav-item>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-nav-dot{background:#f59e0b;border-radius:50%;flex:none;width:7px;height:7px;margin-left:auto}.sidebar-company-switcher{flex-direction:column;gap:6px;width:100%;display:flex}.sidebar-switcher-label{color:var(--rail-text);font-size:var(--text-sm);opacity:.85;align-items:center;gap:6px;display:flex}.sidebar-switcher-label svg{flex:none}.sidebar-select{background-color:var(--rail-bg-elev);border:1px solid var(--rail-line);width:100%;min-height:44px;color:var(--rail-text-strong);font-size:var(--text-base);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23aebfd4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:10px;padding:10px 32px 10px 13px;font-weight:700}.sidebar-select:hover{border-color:#94adcc57}.sidebar-switcher-note{color:var(--rail-text);font-size:var(--text-2xs);opacity:.7;font-style:italic}.sidebar-user-chevron{color:var(--rail-text);opacity:.7;flex:none;margin-left:auto}.sidebar-user-avatar{background:var(--rail-bg-elev);width:32px;height:32px;color:var(--rail-text-strong);font-size:var(--text-2xs);border-radius:50%;flex:0 0 32px;justify-content:center;align-items:center;font-weight:800;display:flex}.sidebar-user-meta{flex-direction:column;min-width:0;display:flex}.sidebar-user-name{color:var(--rail-text-strong);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.sidebar-user-sub{color:var(--rail-text);font-size:var(--text-sm);opacity:.8;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.no-project-panel,.create-project-panel{width:100%;max-width:860px;margin:0 auto;padding:20px}.no-project-actions,.form-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.no-project-helper{max-width:460px;color:var(--muted);font-size:var(--text-sm);font-weight:800}.create-project-panel.create-project-panel--wide{max-width:1200px}.create-project-panel .panel-header{justify-content:space-between;align-items:flex-start}.create-project-step-indicator{flex-wrap:wrap;gap:8px;margin:14px 0 4px;padding:0;list-style:none;display:flex}.create-project-step-indicator li{border:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);border-radius:999px;padding:5px 12px;font-weight:800}.create-project-step-indicator li.active{border-color:var(--blue,#3d8bfd);color:var(--text);background:#3d8bfd1f}.create-project-step-indicator li.done{color:var(--green,#3fbf72)}.create-project-step-panel{flex-direction:column;gap:14px;margin-top:16px;display:flex}.create-project-details-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;display:grid}.create-project-span-all{grid-column:1/-1}.create-project-method-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.create-project-method-card{border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:6px;padding:18px;transition:border-color .15s,background .15s;display:flex}.create-project-method-card:hover{border-color:var(--blue,#3d8bfd);background:#3d8bfd0f}.create-project-method-card strong{font-size:var(--text-md)}.create-project-method-card span{color:var(--muted);font-size:var(--text-sm)}.boq-mapping-grid--wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.create-project-summary-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.create-project-summary-cards--primary{grid-template-columns:repeat(3,minmax(220px,1fr))}.create-project-summary-cards--secondary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.create-project-summary-card{border:1px solid var(--line);background:var(--panel);border-radius:10px;gap:6px;padding:16px;display:grid}.create-project-summary-card--primary{border-width:1.5px;border-color:var(--blue,#3d8bfd);background:linear-gradient(#3d8bfd14,#0000);padding:20px 22px;box-shadow:0 2px 8px #00000024}.create-project-summary-card--primary small{font-size:var(--text-sm)}.create-project-summary-card--primary strong{font-size:28px;font-weight:800}.create-project-summary-card--secondary{opacity:.88;border-radius:8px;gap:3px;padding:10px 12px}.create-project-summary-card--secondary small{font-size:var(--text-2xs)}.create-project-summary-card--secondary strong{font-size:var(--text-md);font-weight:700}.create-project-summary-card small{color:var(--muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;font-weight:800}.create-project-summary-card strong{font-family:var(--matrix-mono,"SFMono-Regular", ui-monospace, monospace);font-variant-numeric:tabular-nums;font-size:20px}.create-project-qty-by-unit{flex-direction:column;gap:2px;display:flex}.create-project-summary-card .create-project-qty-by-unit{font-size:var(--text-md)}.create-project-summary-card--primary .create-project-qty-by-unit{font-size:22px}.create-project-qty-by-unit span{white-space:nowrap}.create-project-warnings{flex-direction:column;gap:8px;display:flex}.create-project-preview-wrap{max-height:480px}.create-project-sticky-footer{border-top:1px solid var(--line);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:14px 0 4px;display:flex;position:sticky;bottom:0}.create-project-sticky-footer-actions{align-items:center;gap:10px;display:flex}.create-project-save-hint{text-align:right;max-width:380px}.saved-scope-structure-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.saved-scope-structure-table .boq-section-row td{background:var(--surface-2,#0000000a)}.saved-scope-delete-cell{text-align:right;white-space:nowrap}.saved-scope-section-title-input{width:min(420px,100%);font-weight:600}.create-project-step-panel .planning-setting-field textarea{width:100%;font-family:var(--matrix-mono,"SFMono-Regular", ui-monospace, monospace);font-size:var(--text-sm);resize:vertical}.field-hint{color:var(--muted);font-size:var(--text-2xs)}.form-message{color:var(--red-11);font-size:var(--text-base);font-weight:600}.planning-panel{gap:12px;display:grid}.segmented-control{border:1px solid var(--line);background:var(--tools-bg);border-radius:8px;grid-auto-columns:minmax(110px,1fr);grid-auto-flow:column;display:inline-grid;overflow:hidden}.segmented-control button{border:0;border-left:1px solid var(--line);min-height:40px;color:var(--text);background:0 0;font-weight:900}.segmented-control button:first-child{border-left:0}.segmented-control button.active{background:var(--blue);color:#fff}.planning-settings-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;display:grid}.planning-settings-note{color:var(--muted);font-size:var(--text-2xs);margin:6px 0 0}.planning-setting-field{gap:7px;display:grid}.planning-setting-field span{color:var(--muted);font-size:var(--text-base);font-weight:900}.planning-setting-field input{border:1px solid var(--line);background:var(--input-bg);width:100%;min-height:40px;color:var(--text);border-radius:8px;padding:0 10px;font-weight:800}.planning-settings-grid .planning-setting-field{gap:4px}.planning-settings-grid .planning-setting-field span{font-size:var(--text-sm);font-weight:700}.planning-settings-grid .planning-setting-field input{min-height:34px}.planning-table-wrap{border:1px solid var(--line);border-radius:8px;max-height:72vh;overflow:auto}.planning-table{--plan-month-row-h:30px;border-collapse:separate;border-spacing:0;width:100%}.planning-table th.planning-summary-col{white-space:nowrap;width:1%}.planning-table th.planning-period-col{min-width:96px}.planning-table th,.planning-table td{border-right:1px solid var(--table-line);border-bottom:1px solid var(--table-line);text-align:center;font-size:var(--text-sm);padding:6px 8px}.planning-table th:first-child,.planning-table td:first-child{text-align:left}.planning-table thead th{z-index:30;background:var(--panel);position:sticky;top:0}.planning-table thead .planning-week-row th{top:var(--plan-month-row-h)}.planning-table th:first-child,.planning-table td:first-child{z-index:12;background:var(--panel);position:sticky;left:0}.planning-table thead th:first-child{z-index:40}.planning-table thead .planning-week-row th:first-child{z-index:30;left:auto}.planning-table th{color:var(--chart-axis);font-size:var(--text-xs);white-space:nowrap;font-weight:800}.planning-table th small{color:var(--muted);font-size:var(--text-2xs);margin-top:3px;font-weight:600;display:block}.planning-table th.planning-month-group{height:var(--plan-month-row-h);background:var(--table-footer);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.planning-readonly-note{color:var(--muted);font-size:var(--text-sm);margin:0}.planning-package-cell{align-items:center;gap:8px;min-width:200px;max-width:320px;display:flex}.planning-package-cell select{border:1px solid var(--line);background:var(--input-bg);width:100%;min-height:34px;color:var(--text);border-radius:6px;padding:0 8px;font-weight:800}.period-field select,.work-table select,.chart-scope-select select,.planning-package-cell select{border-color:var(--select-border);background-color:var(--select-bg);background-image:linear-gradient(45deg, transparent 50%, var(--select-text) 50%), linear-gradient(135deg, var(--select-text) 50%, transparent 50%);color:var(--select-text);background-position:calc(100% - 15px),calc(100% - 10px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:28px}.planning-section-name{width:100%;min-height:34px;color:var(--text);overflow-wrap:anywhere;align-items:center;font-weight:900;line-height:1.25;display:inline-flex}.planning-color{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block}.planning-input{border:1px solid var(--line);background:var(--input-bg);width:100%;min-width:56px;max-width:104px;min-height:34px;color:var(--text);text-align:right;border-radius:6px;padding:0 8px}input.planning-input.warning-field:not(:disabled){border-style:dashed;border-color:#ffd12f8c}.planning-value,.planning-total,.planning-table tfoot td{color:var(--readonly-text);font-variant-numeric:tabular-nums;font-weight:900}.planning-value{text-align:right;display:block}td.planning-total,.planning-table tfoot td{text-align:right}.planning-table tfoot td,.planning-table tfoot td:first-child{background:var(--table-footer)}.planning-balance.warn{color:var(--yellow)}.planning-chart-panel{border:1px solid var(--line);background:var(--chart-panel);border-radius:8px;gap:10px;padding:14px;display:grid}.planning-chart-panel .dash-panel-header{margin-bottom:0}.planning-chart-scroll{border:1px solid var(--line);background:var(--chart-surface);border-radius:8px;overflow:auto hidden}.chart-scroll-frame{min-width:0;position:relative}.chart-axis-rail{z-index:4;pointer-events:none;color:var(--chart-axis);font-size:var(--text-sm);font-weight:800;position:absolute;top:1px}.chart-axis-rail.left{background:linear-gradient(90deg, var(--chart-rail-bg) 62%, transparent);border-radius:8px 0 0 8px;left:1px}.chart-axis-rail.right{background:linear-gradient(270deg, var(--chart-rail-bg) 62%, transparent);border-radius:0 8px 8px 0;right:1px}.chart-axis-rail-tick{white-space:nowrap;position:absolute;transform:translateY(-50%)}.chart-axis-rail.left .chart-axis-rail-tick{right:12px}.chart-axis-rail.right .chart-axis-rail-tick{left:12px}.chart-axis-rail-title{color:var(--chart-title);font-size:var(--text-md);white-space:nowrap;position:absolute;transform:translateY(-100%)}.chart-axis-rail.left .chart-axis-rail-title{left:16px}.chart-axis-rail.right .chart-axis-rail-title{right:12px}.planning-chart{display:block}@media (width<=900px){html,body{height:auto;overflow:auto}#root{height:auto}.app-shell{height:auto;min-height:100vh;display:block;overflow:visible}.app-shell--booting{place-items:center;min-height:100vh;padding:16px;display:grid}.sidebar{display:none}.app-shell--mobile-nav-open .sidebar{top:var(--mobile-topbar-height,52px);z-index:1400;visibility:visible;pointer-events:auto;border-right:0;gap:14px;height:auto;min-height:0;padding:14px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.sidebar-toprow,.sidebar-reopen{display:none}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-project-actions button{width:40px;height:40px}.sidebar-project-tools-label{margin:-4px -6px;padding:10px 6px}.create-project-details-grid,.create-project-method-grid,.create-project-summary-cards--primary{grid-template-columns:1fr}.work-volume-screen:has(.progress-matrix-panel){flex:none;height:auto;min-height:0;overflow:visible}.progress-matrix-panel{flex:none;min-height:0;overflow:visible}.progress-matrix-workspace{flex:none;min-height:0}.progress-matrix-wrap{flex:none;min-height:0;max-height:80vh}.main-area{height:auto;min-height:0;padding:14px;display:block;overflow:visible}.metrics-grid,.dashboard-kpi-grid,.boq-kpi-grid,.boq-commercial-cards,.commercial-meta-grid,.dashboard-grid,.planning-settings-grid,.section-progress-drilldown,.section-progress-row{grid-template-columns:1fr}.section-progress-drilldown{min-height:0}.section-progress-chart{max-height:320px}.dashboard-kpi-grid .boq-kpi-card,.dashboard-kpi-grid .metric-card{grid-column:auto}.panel-header,.table-header-row{flex-direction:column;align-items:stretch}.table-header-actions,.toolbar,.section-progress-values{justify-content:flex-start}.section-detail-head{flex-direction:column}.section-detail-metrics,.section-item-progress-row{grid-template-columns:1fr}.search-field,.period-field,.toolbar-button,.segmented-control{width:100%}.segmented-control{grid-auto-columns:minmax(0,1fr)}.dash-panel-controls{flex-wrap:wrap;row-gap:8px}.dash-panel-controls .segmented-control{flex:130px;width:auto}.dash-panel-controls .chart-scope-select{flex:100%;min-width:0}.dash-panel-controls .chart-scope-select select{flex:auto;min-width:0}.screen-header-actions{flex-wrap:wrap;min-width:0}.screen-header-actions .toolbar-button{flex:auto;width:auto}.period-field{min-width:0}.status-group .toolbar-button{flex:40%;width:auto}.progress-matrix-control-bar{flex-wrap:wrap}.progress-matrix-control-bar .progress-matrix-status-filter{flex-wrap:wrap;flex:100%}.progress-matrix-control-bar .search-field{flex:100%}.progress-matrix-control-tools{flex-wrap:wrap;flex:100%;min-width:0;margin-left:0}.reports-detail-header .status-group{flex:100%;min-width:0}.matrix-commercial-body{flex-direction:column}.matrix-commercial-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;display:grid}.flow-arrow{display:none}.matrix-action-summary{border-top:1px solid var(--matrix-grid-line);border-left:0}.chart-axis-rail.left,.chart-axis-rail.right{background:var(--chart-rail-bg)}.kpi-info-tip{max-width:min(230px,100vw - 32px);display:none}.kpi-info:hover .kpi-info-tip,.kpi-info:focus-visible .kpi-info-tip,.kpi-info:focus-within .kpi-info-tip{display:block}}@media (width<=640px){.remaining-section-row{grid-template-columns:minmax(64px,1fr) 48px 92px;row-gap:4px}.remaining-section-name{grid-column:1/-1}.section-remaining-rank-row{grid-template-columns:minmax(0,1fr) 52px auto;row-gap:2px}.section-remaining-rank-name{grid-column:1/-1}.section-remaining-rank-head span:first-child{display:none}.scroll-frame:has(.progress-detail-table) .scroll-frame-scroller{overflow:visible}.scroll-frame:has(.progress-detail-table):after{content:none}.progress-detail-table,.progress-detail-table tbody,.progress-detail-table tr,.progress-detail-table td{width:auto;min-width:0;display:block}table.finance-outstanding-table,table.finance-outstanding-table.finance-outstanding-table--entry{table-layout:auto;min-width:0}.progress-detail-table thead{display:none}.progress-detail-table tbody tr:has(>td[colspan]) td{text-align:left;display:block}.progress-detail-table tbody tr:not(:has(>td[colspan])){border:1px solid var(--table-line);background:var(--panel);border-radius:8px;flex-direction:column;margin:0 0 10px;padding:10px 12px;display:flex}.progress-detail-table tbody tr:not(:has(>td[colspan])) td{text-align:right;white-space:nowrap;border:0;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;display:flex}.progress-detail-table tbody tr:not(:has(>td[colspan])) td:before{content:attr(data-label);text-align:left;color:var(--muted);font-weight:700;font-size:var(--text-xs);flex:none}:is(.progress-detail-table tbody tr:not(:has(>td[colspan])) td.finance-claim-desc,.progress-detail-table tbody tr:not(:has(>td[colspan])) td.description-cell){text-align:left;white-space:normal;order:-1;min-width:0;padding:0 0 6px;font-weight:800;display:block}.progress-detail-table tbody tr:not(:has(>td[colspan])) td.finance-claim-desc:before{content:none}.progress-detail-table tbody tr:not(:has(>td[colspan])) td.description-cell:before{content:none}.progress-detail-table tbody tr:not(:has(>td[colspan])) td.number-cell{text-align:left;white-space:normal;color:var(--muted);font-size:var(--text-2xs);order:-2;padding:0 0 2px;font-weight:700;display:block;overflow:visible}.progress-detail-table tbody tr:not(:has(>td[colspan])) td.number-cell:before{content:none}.progress-detail-table tbody tr:not(:has(>td[colspan])) td .cert-input{width:8rem;max-width:55%}.finance-grand-total{flex-wrap:wrap}.finance-grand-total strong,.finance-grand-impact{white-space:nowrap}.progress-detail-table tbody tr:not(:has(>td[colspan])) td[data-empty]{display:none}}.planning-chart-grid{stroke:#445f7447;stroke-width:1px}.planning-chart-axis{stroke:#7e99ae9e;stroke-width:1.2px}.planning-chart-axis-label,.planning-chart-axis-title,.planning-chart-week,.planning-chart-date,.planning-chart-personnel{fill:var(--chart-axis);font-weight:600}.planning-chart-axis-title{font-weight:700}.planning-chart-axis-label{text-anchor:end;font-size:var(--text-sm)}.planning-chart-axis-label.right{text-anchor:start}.planning-chart-axis-title{fill:var(--chart-title);font-size:var(--text-md)}.planning-chart-axis-title.right{text-anchor:end}.planning-chart-bar,.planning-chart-bar-segment{shape-rendering:geometricprecision}.planning-chart-bar{opacity:.92}.planning-chart-bar.accounted{stroke:var(--bg);stroke-width:2px}.manpower-flow-panel .planning-chart-bar.actual{fill:color-mix(in srgb, var(--chart-series-actual) 82%, var(--bg))}.planning-chart-bar.plan{fill:var(--chart-series-planned)}.planning-chart-bar.actual{fill:var(--chart-series-actual)}.planning-chart-bar.earned{fill:var(--chart-series-earned)}.planning-chart-bar.reconciled{fill:var(--chart-series-progress)}.planning-chart-bar.impact{fill:var(--chart-series-impact)}.planning-chart-bar.extra-work{fill:var(--chart-series-extra)}.planning-chart-bar-segment{stroke:var(--bg);stroke-width:1px}.planning-chart-bar-label,.planning-chart-total-label,.planning-chart-cumulative-label{text-anchor:middle;font-weight:900}.planning-chart-cumulative-line{fill:none;stroke:var(--chart-series-progress);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px;filter:drop-shadow(0 0 6px #0797b961)}.planning-chart-cumulative-point{fill:var(--chart-series-progress);stroke:#fff;stroke-width:2px}.planning-chart-approved-line{fill:none;stroke:var(--chart-series-approved);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px;stroke-dasharray:6 5}.planning-chart-approved-point{fill:var(--chart-series-approved);stroke:#fff;stroke-width:2px}.planning-chart-planned-point{fill:var(--chart-series-baseline);stroke:#fff;stroke-width:2px}.section-progress-legend{margin:2px 0 4px}.legend-line{vertical-align:middle;border-top-style:solid;border-top-width:3px;border-radius:2px;width:16px;height:0;display:inline-block}.legend-line.earned{border-top-color:var(--chart-series-progress)}.legend-line.approved{border-top-color:var(--chart-series-approved);border-top-style:dashed}.legend-line.planned{border-top-color:var(--chart-series-baseline);border-top-style:dashed}.legend-line.efficiency{border-top-color:var(--chart-series-efficiency)}.planning-chart-efficiency-line{fill:none;stroke:var(--chart-series-efficiency);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px;opacity:.75}.planning-chart-efficiency-point{fill:var(--chart-series-efficiency);stroke:#fff;stroke-width:2px}.planning-chart-efficiency-point.good{fill:var(--chart-series-approved)}.planning-chart-efficiency-point.warn{fill:var(--chart-series-blocking)}.planning-chart-efficiency-point.bad{fill:var(--chart-series-danger)}.planning-chart-efficiency-label{text-anchor:middle;font-weight:600;font-size:var(--text-sm);fill:var(--chart-series-efficiency);paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round}.planning-chart-efficiency-label.good{fill:var(--chart-series-approved)}.planning-chart-efficiency-label.warn{fill:var(--chart-series-blocking)}.planning-chart-efficiency-label.bad{fill:var(--chart-series-danger)}.planning-chart-planned-line{fill:none;stroke:var(--chart-series-baseline);stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;stroke-dasharray:2 6;opacity:.9}.planning-chart-now-line{stroke:var(--matrix-text-muted,#94a3b8);stroke-width:1.5px;stroke-dasharray:3 4;opacity:.55}.planning-chart-now-label{fill:var(--matrix-text-muted,#94a3b8);font-size:var(--text-xs);text-anchor:middle;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.chart-hover-host{width:fit-content;position:relative}.chart-hover-overlay{position:absolute;top:0;left:0}.chart-hover-hit{height:100%;position:absolute;top:0}.chart-hover-hit:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;border-radius:6px}.chart-hover-band{background:color-mix(in srgb, var(--blue) 7%, transparent);pointer-events:none;position:absolute}.chart-hover-crosshair{border-left:1px solid var(--muted);opacity:.65;pointer-events:none;width:0;position:absolute;transform:translate(-.5px)}.chart-hover-tooltip{z-index:6;background:var(--panel);border:1px solid var(--line);min-width:176px;font-size:var(--text-xs);pointer-events:none;border-radius:10px;padding:9px 12px;position:absolute;box-shadow:0 10px 26px #0f172a29}.chart-hover-tooltip-title{color:var(--text);white-space:nowrap;margin-bottom:6px;font-weight:800}.chart-hover-tooltip-row{white-space:nowrap;align-items:center;gap:8px;line-height:1.8;display:flex}.chart-hover-key{border-top:3px solid #0000;border-radius:2px;flex:none;width:14px;height:0}.chart-hover-key.dashed-line{border-top-style:dashed}.chart-hover-key.dotted-line{border-top-style:dotted}.chart-hover-key.bar{border:none;border-radius:3px;width:10px;height:10px}.chart-hover-row-label{color:var(--muted);margin-right:auto}.chart-hover-row-value{color:var(--text);font-variant-numeric:tabular-nums;margin-left:14px;font-weight:800}.chart-spi-chip{font-size:var(--text-xs);white-space:nowrap;border-radius:999px;padding:2px 10px;font-weight:900}.chart-spi-chip.ahead{background:color-mix(in srgb, var(--green,#16a34a) 16%, transparent);color:var(--green,#16a34a)}.chart-spi-chip.on{background:color-mix(in srgb, var(--matrix-business-input-focus,var(--blue)) 16%, transparent);color:var(--matrix-business-input-focus,var(--blue))}.chart-spi-chip.behind{background:color-mix(in srgb, var(--amber-9) 24%, transparent);color:var(--amber-11)}.planning-chart-cumulative-label{fill:var(--text);font-size:var(--text-sm)}.planning-chart-percent-pill{fill:var(--panel);stroke:var(--line);stroke-width:1px}.planning-chart-future{fill:color-mix(in srgb, var(--muted) 5%, transparent)}.planning-chart-point-guide{stroke:var(--line);stroke-dasharray:4 5;stroke-width:1px;opacity:.45}.planning-chart-week{text-anchor:middle;fill:var(--chart-week);font-size:var(--text-base)}.planning-chart-date{text-anchor:middle;fill:var(--muted);font-size:var(--text-xs)}.section-progress-panel .planning-chart-cumulative-line{stroke:var(--steel);stroke-width:2.6px;filter:none}.section-progress-panel .planning-chart-cumulative-point{fill:var(--panel);stroke:var(--steel);stroke-width:2.2px}.section-progress-panel .planning-chart-approved-line{stroke:var(--steel);stroke-width:2px;stroke-dasharray:7 5;opacity:.55}.section-progress-panel .planning-chart-approved-point{fill:var(--panel);stroke:var(--steel);stroke-width:2px;opacity:.55}.section-progress-panel .planning-chart-planned-line{stroke-dasharray:1.5 5;opacity:1}.section-progress-panel .planning-chart-now-line{stroke:var(--text);opacity:.32}.section-progress-panel .planning-chart-now-label{font-family:var(--font-num);letter-spacing:.12em;fill:var(--muted);font-weight:600}.section-progress-panel .planning-chart-future{fill:color-mix(in srgb, var(--muted) 8%, transparent)}.section-progress-panel .planning-chart-cumulative-label{font-family:var(--font-num);font-weight:600}.section-progress-panel .planning-chart-week,.section-progress-panel .planning-chart-date,.section-progress-panel .chart-axis-rail-tick,.section-progress-panel .chart-axis-rail-title{font-family:var(--font-num)}.section-progress-panel .chart-headline,.section-progress-panel .chart-spi-chip{font-family:var(--font-num);font-weight:600}.section-progress-legend .legend-line.earned{border-top-color:var(--steel)}.section-progress-legend .legend-line.approved{border-top-color:var(--steel);opacity:.55}.section-progress-legend .legend-line.planned{border-top-style:dotted}@media (width>=901px) and (width<=1400px){.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-kpi-grid .boq-kpi-card,.dashboard-kpi-grid .metric-card{grid-column:auto}}@media (width<=900px){.progress-matrix-panel .table-header-row,.progress-matrix-panel .table-header-actions{flex-direction:column;align-items:stretch}.progress-matrix-detail-panel{width:auto;right:12px;left:12px!important}.progress-matrix-status-field,.progress-matrix-panel .progress-matrix-period-field,.progress-matrix-panel .search-field{width:100%;min-width:0}.progress-matrix-status-filter{width:100%}.progress-matrix-status-chip{flex:1;padding:0 8px}.boq-commercial-summary{grid-template-columns:1fr}.report-reconciliation-head{flex-direction:column;align-items:flex-start}}.app-error-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.app-error-card{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:12px;justify-items:center;gap:12px;max-width:420px;padding:28px 32px;display:grid}.app-error-card h1{color:var(--text);margin:0;font-size:18px}.app-error-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.app-error-card button{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 22px;font-size:13px;font-weight:600}.app-error-card .app-error-support a{color:var(--blue)}.screen-error{justify-content:center;align-items:center;padding:48px 24px;display:flex}
