@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--fg:#1a1d21;--fg-soft:#3a424b;--muted:#697079;--line:#eef0f3;--line-strong:#e4e8ed;--bg:#f1f3f6;--panel:#fff;--panel-alt:#fafbfc;--hover:#eff4fe;--selected:#f7faff;--selected-line:#93b4f5;--accent:#2563eb;--accent-soft:#eff4fe;--critical:#dc2626;--critical-soft:#fef2f2;--warn:#b45309;--warn-soft:#fbf6ec;--ok:#167c4a;--ok-soft:#eaf7ef;--danger:#dc2626;--remaining:#ea580c;--forecast:#7c3aed;--float:#d6dbe1;--surface-2:#f1f3f6;--accent-strong:#1d4ed8;--danger-line:#f0c2c2;--critical-line:#fecaca;--warn-line:#f0e4c8;--edited:#fff8e6;--ms:#6d5ae0;--critical-fill:#dc2626;--accent-fill:#2563eb;--notice:#fff7e9;--notice-line:#f0d9a8;--bar:#3b82f6;--bar-critical:#ef4444;--font:"IBM Plex Sans Variable", "IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "Roboto Mono", monospace;--fs:14px;--fs-sm:13px;--fs-xs:12px;--radius:7px;--radius-sm:5px;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-pop:0 8px 28px #1018282e;font-family:var(--font);font-size:var(--fs);color:var(--fg)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--fg:#e6eaf2;--fg-soft:#b8c0cf;--muted:#8b95a7;--line:#2a3346;--line-strong:#3a4560;--bg:#0f1420;--panel:#171d2b;--panel-alt:#1e2536;--hover:#232c40;--selected:#24344f;--selected-line:#3f5f9e;--accent:#5b86f5;--accent-soft:#1c2942;--critical:#f87171;--critical-soft:#2a1a1c;--warn:#fbbf24;--warn-soft:#2a2312;--ok:#34d399;--ok-soft:#10251d;--danger:#f87171;--remaining:#fb923c;--forecast:#a78bfa;--float:#3a4560;--surface-2:#232c40;--accent-strong:#3b6ae0;--danger-line:#5a2a2a;--critical-line:#5a2a2a;--warn-line:#4a3a12;--edited:#2a2612;--ms:#6355c8;--critical-fill:#dc2626;--accent-fill:#2f5fd0;--notice:#2a2312;--notice-line:#4a3a12;--bar:#5b86f5;--bar-critical:#f87171;--shadow:0 1px 2px #0006, 0 1px 3px #00000080;--shadow-pop:0 8px 28px #0009}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0}button{cursor:pointer;font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);color:var(--fg);padding:5px 11px;line-height:1.4;transition:background .1s,border-color .1s}button:hover:not(:disabled){background:var(--panel-alt);border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button.secondary{color:var(--muted)}button.danger{color:var(--critical);border-color:var(--danger-line)}button.danger:hover:not(:disabled){background:var(--critical-soft)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--hover)}button.sm{font-size:var(--fs-sm);padding:2px 8px}input,select,textarea{font:inherit;color:var(--fg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);padding:5px 8px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent-soft);outline-offset:0;border-color:var(--accent)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 8px;font-weight:600}h2{font-size:18px}h3{font-size:15px}h4{font-size:13px}.app{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;flex:none;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.brand{align-items:center;gap:9px;display:flex}.brand-link{color:inherit;border-radius:var(--radius-sm);text-decoration:none;display:inline-flex}.project-search{min-width:220px;margin-left:auto}.mode-help{max-width:460px}.mode-help section{margin-bottom:14px}.mode-help h4{margin:0 0 4px}.mode-help p{margin:4px 0;line-height:1.5}.mode-help-foot{font-size:var(--fs-sm);margin-top:4px}.brand-mark{color:var(--accent);display:flex}.wordmark{letter-spacing:-.01em;color:var(--fg);font-size:17px;font-weight:700}.wordmark-accent{color:var(--accent)}.account{align-items:center;gap:10px;display:flex}.topnav{align-items:center;gap:12px;display:flex}.topnav-link{color:var(--muted);border-radius:var(--radius-sm);white-space:nowrap;padding:5px 9px;font-size:14px;font-weight:500;text-decoration:none}.topnav-link:hover{background:var(--hover);color:var(--fg)}.topnav-link.active{color:var(--accent);background:var(--accent-soft)}main{flex:auto;min-height:0;overflow:auto}.page{max-width:980px;margin:0 auto;padding:20px}.login{text-align:center;margin-top:80px}.login-brand{justify-content:center;margin-bottom:6px;display:flex}.muted{color:var(--muted)}.error{color:var(--critical)}.warning{color:var(--warn)}.ok{color:var(--ok)}.right{text-align:right}.tnum{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:var(--fs-sm)}.row{flex-wrap:wrap;align-items:center;gap:12px;margin:8px 0;display:flex}.repo-list{padding:0;list-style:none}.repo-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 2px;display:flex}.editor{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.editor .import{margin-top:10px}.editor textarea{width:100%;margin:8px 0}.diagnostics{background:var(--critical-soft);border:1px solid var(--critical-line);border-radius:var(--radius);margin:10px 0;padding:8px 12px}.diagnostics.warnings{background:var(--warn-soft);border-color:var(--warn-line)}.diagnostics .calendar-diag{padding:4px 0}.diagnostics .calendar-diag+.calendar-diag{border-top:1px solid var(--critical-line);margin-top:4px}.diagnostics .diag-title{font-weight:600}.diagnostics .diag-fix{font-size:.9em}.review{flex-direction:column;display:flex}.review h4{margin:4px 0 8px}.review-table{border:1px solid var(--line);border-radius:var(--radius-sm);max-height:46vh;overflow:auto}.review-actions{background:var(--panel);border-bottom:1px solid var(--line);z-index:1;align-items:center;gap:8px;margin-bottom:8px;padding:4px 0 10px;display:flex;position:sticky;top:0}.toolbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.toolbar .sep{background:var(--line);align-self:stretch;width:1px;margin:2px 4px}.toolbar .spacer{flex:auto}.toolbar .title{font-weight:600}.menu{display:inline-block;position:relative}.menu-backdrop{z-index:19;position:fixed;inset:0}.menu-pop{z-index:20;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow-pop);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.menu-pop.right{left:auto;right:0}.menu-pop button{text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;padding:7px 10px}.menu-pop button:hover:not(:disabled){background:var(--hover)}.menu-pop .menu-section{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;cursor:default;padding:6px 10px 2px;font-weight:600}.menu-pop .menu-section:not(:first-child){border-top:1px solid var(--line);margin-top:4px}.menu-pop .menu-sep{border-top:1px solid var(--line);margin:4px 0}.theme-choice{gap:4px;padding:2px 10px 6px;display:flex}.theme-choice button{text-align:center;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);flex:1;padding:5px 8px}.theme-choice button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.menu-field{flex-direction:column;gap:3px;padding:2px 10px 8px;display:flex}.menu-field select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);color:var(--fg);padding:5px 8px}.menu-sample{font-size:var(--fs-xs);color:var(--muted)}.col-chooser{min-width:220px;max-height:70vh;overflow:auto}.col-chooser-section{font-size:var(--fs-xs);color:var(--fg-soft);text-transform:uppercase;letter-spacing:.04em;padding:6px 8px 2px;font-weight:600}.col-chooser-row{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:4px 8px;display:flex}.col-chooser-row:hover{background:var(--hover)}.col-chooser-search{margin:2px 8px 4px}.col-chooser-list{max-height:240px;overflow:auto}.skeleton{padding:10px 12px}.skeleton-row{background:linear-gradient(90deg, var(--line) 25%, var(--panel-alt) 50%, var(--line) 75%);background-size:200% 100%;border-radius:4px;height:14px;margin:8px 0;animation:1.2s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tabs{border-bottom:1px solid var(--line);background:var(--panel-alt);flex-wrap:wrap;gap:2px;padding:0 6px;display:flex}.tabs button{color:var(--muted);font-size:var(--fs-sm);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:7px 12px}.tabs button:hover{color:var(--fg);background:0 0}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.grid-scroll,.gantt-scroll{scrollbar-gutter:stable;height:100%;overflow:auto}.grid-scroll .grid-table th{box-sizing:border-box;height:30px}.grid-scroll .grid-table td{text-overflow:ellipsis;height:34px;padding-top:0;padding-bottom:0;overflow:hidden}.gantt-scroll{background:var(--panel)}.grid-table{border-collapse:collapse;background:var(--panel);width:100%;font-size:var(--fs-sm)}.grid-table th,.grid-table td{text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;padding:7px 10px}.grid-table th{background:var(--panel-alt);color:var(--fg-soft);text-transform:uppercase;letter-spacing:.04em;z-index:1;cursor:default;-webkit-user-select:none;user-select:none;font-weight:600;position:sticky;top:0}.grid-table th.sortable{cursor:pointer}.grid-table th.filtered{color:var(--accent)}.th-filter{margin-left:4px;display:inline-block;position:relative}.th-filter .filter-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1}.th-filter .filter-btn:hover{color:var(--fg);background:0 0}.th-filter .filter-btn.active{color:var(--accent)}.filter-pop{z-index:30;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);align-items:center;gap:5px;padding:6px;display:flex;position:absolute;top:calc(100% + 3px);right:0}.filter-pop input{width:130px;font-size:var(--fs-sm)}.grid-table th:first-child,.grid-table td:first-child,.grid-table th.col-left,.grid-table td.col-left{text-align:left}.grid-table tbody tr:hover{background:var(--hover)}.grid-table tbody tr.selected{background:var(--selected)}.grid-table tbody tr.selected td{border-bottom-color:var(--selected-line)}.grid-table td.edited{background:var(--edited)}.grid-table td.num{text-align:right}.grid-table .cell-input{border:1px solid var(--accent);width:100%;font:inherit;border-radius:3px;padding:2px 5px}.grid-table .cell-btn{width:100%;text-align:inherit;background:0 0;border:1px solid #0000;border-radius:3px;padding:3px 5px}.grid-table .cell-btn:hover{border-color:var(--line-strong);background:var(--panel)}.badge{font-size:var(--fs-xs);border-radius:4px;padding:1px 6px;font-weight:600;line-height:1.5;display:inline-block}.badge.critical{background:var(--critical-fill);color:#fff}.badge.ms{background:var(--ms);color:#fff}.badge.soft{background:var(--accent-soft);color:var(--accent)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.chip{background:var(--accent-soft);color:var(--accent);font-size:var(--fs-xs);border-radius:12px;align-items:center;gap:5px;padding:2px 4px 2px 9px;display:inline-flex}.chip button{color:inherit;background:0 0;border:none;padding:0 4px;line-height:1}.split{align-items:stretch;min-height:0;display:flex}.split>.pane{min-width:0;overflow:auto}.split>.gutter{cursor:col-resize;background:var(--line);flex:0 0 6px}.split>.gutter:hover{background:var(--selected-line)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel.flush{box-shadow:none;border-left:none;border-right:none;border-radius:0}.section-pad{padding:20px 22px}.kv{grid-template-columns:minmax(120px,max-content) 1fr;align-items:center;gap:6px 14px;display:grid}.kv label{color:var(--muted);font-size:var(--fs-sm)}.field{flex-direction:column;gap:3px;display:flex}.field>span{color:var(--muted);font-size:var(--fs-xs)}.import-drop{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:14px}.term-list{border:1px solid var(--line);border-radius:var(--radius-sm);max-height:420px;margin:0;padding:0;list-style:none;overflow:auto}.term-row{border-bottom:1px solid var(--line);padding:7px 10px}.term-row:last-child{border-bottom:none}.term-row-main{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.term-def{font-size:var(--fs-xs);margin-top:2px}.field-label{font-size:var(--fs-sm);color:var(--muted)}.brief-input{resize:vertical;width:100%;font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);color:var(--fg);padding:8px 10px}.detail-header{border-bottom:1px solid var(--line);background:var(--panel-alt);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.detail-id{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.id-chip{border-radius:var(--radius-sm);background:var(--surface-2);padding:2px 7px}.detail-name{font-weight:600}.type-pill{font-size:var(--fs-sm);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 9px}.detail-summary{font-size:var(--fs-sm)}.detail-form{grid-template-columns:1fr 1fr;gap:22px 40px;display:grid}.detail-form .span2{grid-column:1/-1}.detail-form .field-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.simple-details-pane .detail-form{grid-template-columns:1fr;gap:16px}.commitbar{background:var(--notice);border-top:1px solid var(--notice-line);flex:none;align-items:center;gap:10px;padding:7px 14px;display:flex}.commitbar.clean{background:var(--panel);border-top:1px solid var(--line);color:var(--muted)}.tray{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);width:380px;max-height:60vh;box-shadow:var(--shadow-pop);z-index:30;position:fixed;bottom:54px;right:14px;overflow:auto}.tray header{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;padding:9px 12px;display:flex;position:sticky;top:0}.tray ul{margin:0;padding:0;list-style:none}.tray li{border-bottom:1px solid var(--line);font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;display:flex}.tray li .ev{font-weight:600}.tray li .det{color:var(--muted);font-size:var(--fs-xs)}.drawer-mask{z-index:40;background:#10182840;position:fixed;inset:0}.drawer{background:var(--panel);width:460px;max-width:92vw;height:100vh;box-shadow:var(--shadow-pop);z-index:41;flex-direction:column;display:flex;position:fixed;top:0;right:0}.drawer.wide{width:800px}.drawer.xwide{width:1600px;max-width:96vw}.drawer>header,.dialog>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.drawer>.body{flex:auto;padding:20px;overflow:auto}.dialog-mask{z-index:50;background:#1018284d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-pop);flex-direction:column;width:460px;max-width:94vw;max-height:88vh;display:flex}.dialog>.body{padding:20px;overflow:auto}.dialog>footer,.drawer>footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:11px 14px;display:flex}.dialog:has(.concept-editor-form){width:640px}@media (width<=700px){.dialog:has(.concept-editor-form){width:96vw}}.upgrade-footer{text-align:center;border-top:1px solid var(--line);flex:none;padding:6px 14px}.upgrade-footer-link{font:inherit;font-size:var(--fs-sm);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0}.upgrade-footer-link:hover{color:var(--accent);background:0 0;text-decoration:underline}.unlock-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-alt);margin:8px 0;padding:8px 10px 8px 26px}.unlock-list li{margin:2px 0}.one-way-note{border-radius:var(--radius);background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn);font-size:var(--fs-sm);margin:10px 0 0;padding:8px 12px}.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-xs);color:var(--muted);font-weight:600}.mode-cards{grid-template-columns:1fr 1fr;gap:14px;margin:12px 0;display:grid}.mode-card{text-align:left;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);cursor:pointer;flex-direction:column;gap:6px;padding:12px;display:flex}.mode-card:hover:not(:disabled){background:var(--panel-alt)}.mode-card.selected{border-color:var(--accent);background:var(--accent-soft)}.mode-card-title{font-weight:600}.mode-card-desc{font-size:var(--fs-sm);color:var(--muted)}.gantt{background:var(--panel);display:block}.gantt .bar{fill:var(--bar)}.gantt .bar.critical{fill:var(--bar-critical);stroke:var(--fg,#111827);stroke-width:1.5px;stroke-dasharray:3 2}.gantt .bar.chain{stroke:var(--forecast);stroke-width:2.5px;paint-order:stroke}.compare-head{font-size:var(--fs-sm);color:var(--fg-soft);background:var(--panel-alt);border-bottom:1px solid var(--line);flex:none;padding:4px 10px;font-weight:600}.envelope-breakdown{flex-direction:column;gap:8px;display:flex}.envelope-breakdown tr.sets-finish td{background:var(--accent-soft);border-bottom-color:var(--accent)}.envelope-summary{font-size:var(--fs-sm);margin:0}.dur-cell{align-items:center;gap:3px;display:inline-flex}.dur-expander{color:var(--muted);padding:0 2px;font-size:11px;line-height:1}.dur-expander:hover{color:var(--fg);background:0 0}.dur-pop{gap:8px;min-width:360px;max-width:460px}.dur-pop:focus{outline:none}.risk-view{flex-direction:column;height:100%;min-height:0;display:flex;overflow:auto}.risk-controls{border-bottom:1px solid var(--line);background:var(--panel-alt);flex:none;align-items:center;gap:12px;padding:8px 12px;display:flex}.risk-controls label{align-items:center;gap:5px;display:inline-flex}.risk-body{flex-direction:column;gap:14px;padding:12px;display:flex}.risk-section{padding-bottom:4px}.risk-section h4{font-size:var(--fs-sm);color:var(--fg-soft);margin:0 0 8px}.risk-chips{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.risk-hist{background:var(--panel-alt);border-radius:4px;align-items:flex-end;gap:2px;height:120px;padding:4px;display:flex}.risk-hist-bar{background:var(--accent);border-radius:2px 2px 0 0;flex:1 1 0;min-width:3px}.risk-cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=760px){.risk-cols{grid-template-columns:1fr}}.risk-bar-row{font-size:var(--fs-sm);grid-template-columns:130px 1fr 48px;align-items:center;gap:8px;margin-bottom:4px;display:grid}.risk-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.risk-bar-track{background:var(--panel-alt);border-radius:3px;height:12px;overflow:hidden}.risk-bar-fill{border-radius:3px;height:100%;display:block}.risk-bar-fill.crit{background:var(--critical)}.risk-bar-fill.sens{background:var(--forecast)}.risk-bar-val{text-align:right;font-variant-numeric:tabular-nums;color:var(--fg-soft)}.why-section{border-bottom:1px solid var(--line);margin-bottom:10px;padding:2px 0 10px}.why-section:last-child{border-bottom:none;margin-bottom:0}.why-section h4{font-size:var(--fs-sm);color:var(--fg-soft);align-items:center;gap:8px;margin:0 0 6px;display:flex}.why-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.why-hop{background:var(--accent-soft);color:var(--accent);cursor:pointer;font:inherit;border:1px solid #0000;border-radius:6px;padding:2px 9px;font-weight:600}.why-hop:hover{border-color:var(--accent)}.why-crumbs{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:1px;margin-bottom:12px;display:flex}.why-crumb{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:4px;padding:1px 4px}.why-crumb:hover{background:var(--accent-soft)}.why-crumb.current{color:inherit;cursor:default;font-weight:700}.why-crumb-sep{color:var(--fg-soft)}.gantt .float-bar{fill:var(--float)}.gantt .placement-bar{fill:var(--forecast);opacity:.85}.gantt .row-band{fill:#0000}.gantt .row-band.selected{fill:var(--selected)}.gantt .grid{stroke:var(--line);stroke-width:1px}.gantt .grid-label{fill:var(--muted);text-anchor:middle;font-size:9px}.gantt .datedate{stroke:var(--critical);stroke-width:1px;stroke-dasharray:3 2}.gantt .gantt-cutoff text{fill:var(--critical);font-size:var(--fs-xs);font-weight:600}.gantt .weekend-band{fill:var(--surface-2)}.gantt .today-line{stroke:var(--accent);stroke-width:1.5px}.gantt .gantt-links path{fill:none;stroke:var(--muted);stroke-width:1px}.gantt .gantt-arrowhead{fill:var(--muted)}.gantt-pane{height:100%;min-height:0;position:relative}.gantt-legend{z-index:4;font-size:var(--fs-xs);color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);white-space:nowrap;gap:14px;padding:3px 10px;display:flex;position:absolute;top:5px;right:12px}.gantt-legend span{align-items:center;gap:5px;display:inline-flex}.gantt-legend .lg-bar{background:var(--bar);border-radius:2px;width:16px;height:8px;display:inline-block}.gantt-legend .lg-bar.critical{background:var(--bar-critical);outline:1.5px dashed var(--fg,#111827);outline-offset:-1px}.gantt-legend .lg-bar.float{background:var(--float)}.gantt-legend .lg-bar.placement{background:var(--forecast);opacity:.85;height:4px}.gantt-legend .lg-cutoff{border-left:2px dashed var(--critical);width:0;height:12px;display:inline-block}.gantt-header{z-index:2;background:var(--panel-alt);border-bottom:1px solid var(--line);box-sizing:border-box;position:sticky;top:0}.gantt-header span{white-space:nowrap;font-size:var(--fs-xs);color:var(--fg-soft);pointer-events:none;position:absolute}.gantt-header .gantt-major{font-weight:600;top:2px}.gantt-header .gantt-minor{color:var(--muted);top:15px}.gantt-header .gantt-minor.solo{top:8px}.mobile-switch{z-index:2;position:sticky;top:0}.mobile-switch button{text-align:center;flex:1;min-height:40px}.banner{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:10px;padding:7px 14px;display:flex}.banner.timetravel{background:var(--notice);border-bottom:1px solid var(--notice-line);color:var(--warn)}.banner.stale,.banner.scheduling{background:var(--accent-soft);border-bottom:1px solid var(--selected-line);color:var(--fg-soft)}.progressbar{background:var(--selected-line);border-radius:3px;flex:1;min-width:120px;height:6px;overflow:hidden}.progressbar-fill{background:var(--accent,#2563eb);border-radius:3px;height:100%;transition:width .2s}.grid-table td .stale,.stale{color:var(--muted);font-style:italic}@media (width<=760px){.topbar{padding:8px 12px}.page{padding:14px}.toolbar{gap:5px 6px;padding:7px 10px}.toolbar .sep{display:none}.toolbar .title{width:100%}.toolbar button,.menu>button{min-height:36px}.grid-table th,.grid-table td{padding:7px 8px}.drawer{width:100vw}.tray{width:auto;bottom:60px;left:10px;right:10px}.dialog{width:96vw}}.week-grid td{vertical-align:top;padding:4px 6px}.week-grid tr.day-off td{opacity:.6}.week-grid input[type=time]{width:96px}.cal-list .cal-item{text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:flex-start;width:100%;padding:5px 8px;display:flex}.cal-list .cal-item:hover{background:var(--surface-2,#f3f4f6)}.cal-list .cal-item.active{border-color:var(--accent);background:var(--surface-2,#f3f4f6)}.cal-list .cal-item .muted{font-size:var(--fs-sm)}.risk-summary{border-radius:var(--radius);background:var(--warn-soft);border:1px solid var(--warn-line);margin:0 0 10px;padding:8px 12px}.risk-summary.earlier,.risk-summary.same{background:var(--surface-2,#f3f4f6);border-color:var(--line)}.risk-summary .risk-summary-head{font-weight:600}.drift-view{overflow:auto}.drift-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.drift-table th,.drift-table td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:4px 10px}.drift-table th:first-child,.drift-table td:first-child{text-align:left}.drift-table th{background:var(--panel);color:var(--muted);font-weight:600;position:sticky;top:0}.drift-row{cursor:pointer}.drift-row:hover{background:var(--surface-2,#f3f4f6)}.drift-name{align-items:center;gap:6px;display:flex}.drift-pos{color:var(--danger,#b45309)}.drift-neg{color:var(--accent,#2563eb)}.drift-zero,.drift-na{color:var(--muted)}.drift-dim{border-collapse:collapse;width:100%;font-size:var(--fs-sm);margin-top:8px}.drift-dim th,.drift-dim td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:5px 8px}.drift-dim th{color:var(--muted);font-weight:600}.drift-dim tr.drift-diff{background:var(--warn-soft,#fef9c3)}.drift-cells{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.datefield{align-items:center;gap:2px;display:inline-flex;position:relative}.datefield input{width:92px}.datefield-cal{padding:2px 6px}.datefield-pop{z-index:30;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:8px;position:absolute;top:calc(100% + 4px);left:0}.datefield-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-weight:600;display:flex}.datefield-grid{grid-template-columns:repeat(7,26px);gap:2px;display:grid}.datefield-dow{text-align:center;color:var(--muted);font-size:var(--fs-xs)}.datefield-day{border:1px solid #0000;border-radius:4px;padding:3px 0}.datefield-day:hover{background:var(--surface-2,#f3f4f6);border-color:var(--line)}.infodot{color:var(--muted);cursor:help;font-size:var(--fs-xs);vertical-align:super;background:0 0;border:none;padding:0 0 0 3px;line-height:1}.infodot:hover,.infodot:focus{color:var(--accent)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:14px;display:grid}.project-card{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:20px 22px;display:flex;position:relative}.project-card.att-red{border-left-color:var(--critical)}.project-card.att-amber{border-left-color:var(--warn)}.project-card.att-green{border-left-color:var(--ok)}.pc-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pc-name{color:var(--fg);font-size:15px;font-weight:700;text-decoration:none}.pc-name:hover{color:var(--accent)}.pc-status{font-size:var(--fs-sm);align-items:center;gap:7px;display:flex}.pc-dot{border-radius:50%;flex:none;width:9px;height:9px}.pc-dot.att-red{background:var(--critical)}.pc-dot.att-amber{background:var(--warn)}.pc-dot.att-green{background:var(--ok)}.pc-kpis{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.pc-kpi{flex-direction:column;display:flex}.pc-k{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.pc-v{font-size:var(--fs-sm);color:var(--fg);font-variant-numeric:tabular-nums}.pc-context{font-size:var(--fs-xs)}.pc-advanced{margin-top:2px}.pc-advanced summary{font-size:var(--fs-xs);color:var(--muted);cursor:pointer;list-style:revert}.pc-advanced summary:hover{color:var(--fg)}.pc-advanced .pc-kpis{margin-top:8px}.pc-brief{border-top:1px solid var(--line);padding-top:8px}.pc-brief-text{font-size:var(--fs-sm);color:var(--fg-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.pc-brief-empty{color:var(--muted);font-size:var(--fs-sm);background:0 0;border:none;padding:0}.pc-brief-empty:hover{color:var(--accent);background:0 0}.pc-skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--panel-alt), var(--hover), var(--panel-alt));height:96px}.pc-error{font-size:var(--fs-sm);color:var(--warn)}.pc-diag-link{text-align:left;font:inherit;font-size:var(--fs-sm);color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.pc-diag-link:hover{background:0 0;text-decoration:underline}.diag-list{flex-direction:column;gap:8px;display:flex}.diag-group{border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px}.diag-group.error{border-left-color:var(--critical)}.diag-group.warning{border-left-color:var(--warn)}.diag-group-head{align-items:baseline;gap:8px;display:flex}.diag-sev{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.diag-sev.error{color:var(--critical)}.diag-sev.warning{color:var(--warn)}.diag-code{font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted)}.diag-count{font-size:var(--fs-xs);margin-left:auto}.diag-msg{font-size:var(--fs-sm);color:var(--fg);margin-top:3px}.diag-subjects{font-size:var(--fs-xs);margin-top:3px}.diag-open{font:inherit;font-size:var(--fs-xs);color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0}.diag-open:hover{background:0 0;text-decoration:underline}.page-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.seg{gap:4px;display:inline-flex}.seg button{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);padding:5px 10px}.seg button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.client-doc{background:var(--panel);color:var(--fg);border-radius:var(--radius);box-shadow:var(--shadow);max-width:820px;margin:0 auto;padding:32px}.client-doc-header{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:16px;display:flex}.client-doc-eyebrow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.client-doc-title{margin:0;font-size:22px}.client-doc-logo{color:var(--accent);flex:none}.client-doc-meta{flex-wrap:wrap;gap:24px;margin-bottom:20px;display:flex}.client-doc-meta-item{flex-direction:column;gap:2px;display:flex}.client-doc-meta-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.client-doc-status{align-items:center;gap:6px;font-weight:600;display:inline-flex}.client-doc-status-dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.client-status-ok{color:var(--ok)}.client-status-warn{color:var(--warn)}.client-doc-table{border-collapse:collapse;width:100%;margin-bottom:20px}.client-doc-table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line-strong);padding:6px 10px;font-weight:600}.client-doc-table td{border-bottom:1px solid var(--line);font-size:var(--fs-sm);padding:7px 10px}.client-doc-notes{color:var(--fg-soft)}.client-doc-diamond{background:var(--ms);width:7px;height:7px;margin-right:7px;display:inline-block;transform:rotate(45deg)}.client-doc-chart{margin-bottom:20px;overflow-x:auto}.client-doc-footer{border-top:1px solid var(--line-strong);font-size:var(--fs-xs);color:var(--muted);justify-content:space-between;gap:12px;padding-top:12px;display:flex}.dialog:has(.export-dialog){width:920px}.export-dialog{gap:20px;min-height:0;display:flex}.export-rail{flex-direction:column;flex:0 0 200px;gap:20px;display:flex}.export-rail-section{flex-direction:column;gap:6px;display:flex}.export-radio-row,.export-check-row{font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:8px;display:flex}.export-preview{background:var(--panel-alt);border-radius:var(--radius-sm);flex:auto;min-width:0;max-height:70vh;padding:16px;overflow:auto}@media (width<=760px){.dialog:has(.export-dialog){width:96vw}.export-dialog{flex-direction:column}.export-rail{flex-flow:wrap;flex:none;gap:24px}}#print-root{display:none}@media print{#root{display:none!important}#print-root{display:block!important}.client-doc{box-shadow:none}}
