:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f3f6;--surface-3:#e7eaef;--border:#e1e4ea;--border-strong:#cbd1da;--text:#14171c;--text-2:#4d5562;--text-3:#7a8391;--accent:#2a63d6;--accent-hover:#2253b8;--accent-soft:#e8effc;--accent-text:#1d4fb3;--good:#14804a;--good-soft:#e3f4ea;--warn:#a36100;--warn-soft:#fdf1dc;--bad:#c4312f;--bad-soft:#fce8e7;--violet:#5b47c9;--violet-soft:#eeebfb;--col-todo:#7a8391;--col-progress:#2a78d6;--col-test:#b06d00;--col-done:#14804a;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--shadow-sm:0 1px 2px #1018280f;--shadow:0 1px 3px #10182814, 0 4px 12px #1018280f;--shadow-lg:0 12px 40px #1018282e;--radius:10px;--radius-sm:7px;--sidebar:#0f1522;--sidebar-text:#aeb6c5;--sidebar-hover:#1b2335;--sidebar-active:#25304a;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1116;--surface:#161a21;--surface-2:#1c212a;--surface-3:#262c37;--border:#2a303b;--border-strong:#3a4250;--text:#eef1f5;--text-2:#b3bbc8;--text-3:#818a99;--accent:#4d86f0;--accent-hover:#6a9af3;--accent-soft:#1b2a46;--accent-text:#8fb3f7;--good:#3cb877;--good-soft:#15301f;--warn:#e0a23a;--warn-soft:#3a2c12;--bad:#ef6b69;--bad-soft:#3d1a1a;--violet:#9a8cf0;--violet-soft:#28234a;--col-todo:#8a93a3;--col-progress:#3987e5;--col-test:#d19a33;--col-done:#3cb877;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--shadow-sm:0 1px 2px #0006;--shadow:0 2px 10px #00000059;--shadow-lg:0 16px 48px #0000008c;--sidebar:#0a0d13;--sidebar-hover:#151b27;--sidebar-active:#1e2738}}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}h4{font-size:13px}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{grid-template-columns:248px 1fr;height:100%;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-text);flex-direction:column;gap:4px;padding:14px 10px;display:flex;overflow-y:auto}.brand{color:#fff;align-items:center;gap:10px;padding:4px 8px 14px;font-size:16px;font-weight:700;display:flex}.brand-mark{background:var(--accent);border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:#6f7a8e;padding:14px 10px 6px;font-size:11px;font-weight:600}.nav-group{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:5px;width:100%;padding-left:6px;font-family:inherit;display:flex}.nav-group:hover{color:#c8cfdb}.nav-group-count{background:var(--sidebar-hover);color:var(--sidebar-text);letter-spacing:0;border-radius:999px;margin-left:auto;padding:0 7px;font-size:10.5px}.nav-link{color:var(--sidebar-text);white-space:nowrap;text-overflow:ellipsis;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex;overflow:hidden}.nav-link:hover{background:var(--sidebar-hover);color:#fff;text-decoration:none}.nav-link.active{background:var(--sidebar-active);color:#fff}.nav-link .dot{border-radius:50%;flex:none;width:8px;height:8px}.nav-link span.truncate{text-overflow:ellipsis;overflow:hidden}.sidebar-footer{border-top:1px solid #1f2738;flex-direction:column;gap:4px;margin-top:auto;padding-top:12px;display:flex}.org-switch{background:var(--sidebar-hover);color:#fff;text-align:left;cursor:pointer;border:1px solid #242d40;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.org-switch:hover{border-color:#33405a}.main{flex-direction:column;min-width:0;display:flex;overflow-y:auto}.topbar{align-items:center;gap:12px;padding:18px 28px 0;display:flex}.page{flex-direction:column;gap:20px;padding:20px 28px 48px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head .sub{color:var(--text-2);margin-top:4px}.crumbs{color:var(--text-3);align-items:center;gap:6px;font-size:13px;display:flex}.crumbs a{color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:18px}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.row{align-items:center;gap:8px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.spacer{flex:1}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:12.5px}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);height:34px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:550;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--bad)}.btn-danger:hover{background:var(--bad-soft);border-color:var(--bad)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{height:28px;padding:0 10px;font-size:13px}.btn-icon{width:32px;padding:0}.btn-icon.btn-sm{width:28px}.btn-block{width:100%}.field{flex-direction:column;gap:5px;display:flex}.field>label,.label{color:var(--text-2);font-size:12.5px;font-weight:600}.field .hint{color:var(--text-3);font-size:12px}.input,.select,.textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);width:100%;height:36px;padding:0 10px;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;height:auto;min-height:80px;padding:8px 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input-sm{height:30px;font-size:13px}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent)}.badge{background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent-text)}.badge-good{background:var(--good-soft);color:var(--good)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-violet{background:var(--violet-soft);color:var(--violet)}.avatar{color:#fff;border:2px solid var(--surface);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:inline-grid}.avatars{display:flex}.avatars .avatar+.avatar{margin-left:-8px}.progress{background:var(--surface-3);border-radius:99px;height:6px;overflow:hidden}.progress>div{background:var(--accent);border-radius:99px;height:100%}.alert{border-radius:var(--radius-sm);border:1px solid;align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.alert-error{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 35%, transparent);color:var(--bad)}.alert-warn{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 35%, transparent);color:var(--warn)}.alert-info{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent-text)}.alert-good{background:var(--good-soft);border-color:color-mix(in srgb, var(--good) 35%, transparent);color:var(--good)}.empty{text-align:center;color:var(--text-2);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty .icon{background:var(--surface-2);width:44px;height:44px;color:var(--text-3);border-radius:12px;place-items:center;display:grid}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:10px 14px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-2)}.table tr.clickable{cursor:pointer}.num{text-align:right;font-variant-numeric:tabular-nums}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:0 28px;display:flex}.project-header{z-index:20;background:var(--bg);padding-bottom:0;position:sticky;top:0}.tab{color:var(--text-2);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 12px;font-weight:550;display:flex}.tab:hover{color:var(--text);text-decoration:none}.tab.active{color:var(--accent-text);border-bottom-color:var(--accent)}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px;display:inline-flex}.seg button{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:6px;padding:4px 12px;font-size:13px;font-weight:550}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.overlay{z-index:50;background:#0a0e1673;place-items:center;padding:20px;animation:.12s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 40px);animation:.14s pop;display:flex}.modal-lg{width:min(820px,100%)}.modal-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 0;display:flex}.modal-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.drawer-overlay{z-index:50;background:#0a0e1659;animation:.12s fade;position:fixed;inset:0}.drawer-actions{z-index:2;background:var(--surface);border-bottom:1px solid var(--border);gap:8px;margin:-16px -20px 0;padding:10px 20px;position:sticky;top:-16px}.drawer-below .drawer-actions{grid-column:1/-1}.drawer-below{flex-direction:column;margin-top:16px;scroll-margin:16px;display:flex}.drawer-below .modal-body{max-height:none}.drawer-below .modal-body>form{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:16px 28px;display:grid}.drawer-below .task-form-side{border-left:1px solid var(--border);padding-left:24px}@media (width<=900px){.drawer-below .modal-body>form{grid-template-columns:1fr}.drawer-below .task-form-side{border-left:0;padding-left:0}}.drawer{background:var(--surface);width:min(520px,100%);box-shadow:var(--shadow-lg);z-index:51;flex-direction:column;animation:.16s slide;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97)}}@keyframes slide{0%{opacity:0;transform:translate(30px)}}.toast-host{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:9px;max-width:380px;padding:10px 14px;animation:.14s pop}.toast.error{background:var(--bad);color:#fff}.auth-shell{grid-template-columns:1.05fr 1fr;min-height:100%;display:grid}.auth-hero{color:#fff;background:radial-gradient(1200px 600px at 10% 10%,#2a63d6 0%,#16306d 55%,#0c1630 100%);flex-direction:column;justify-content:space-between;padding:48px;display:flex}.auth-hero h1{max-width:440px;font-size:34px;line-height:1.15}.auth-hero ul{color:#d3def7;flex-direction:column;gap:12px;margin:28px 0 0;padding:0;list-style:none;display:flex}.auth-hero li{align-items:center;gap:10px;display:flex}.auth-form{place-items:center;padding:32px;display:grid}.auth-card{flex-direction:column;gap:16px;width:min(400px,100%);display:flex}.portfolio{flex-direction:column;gap:14px;display:flex}.portfolio-head{align-items:center;gap:10px;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.project-card{color:var(--text);flex-direction:column;gap:12px;padding:16px;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex}.project-card:hover{box-shadow:var(--shadow);border-color:var(--border-strong);text-decoration:none;transform:translateY(-1px)}.program-block{border:1px dashed var(--border-strong);border-radius:var(--radius);flex-direction:column;gap:12px;padding:14px;display:flex}.method-dot{border-radius:3px;flex:none;width:10px;height:10px}.kpi{flex-direction:column;gap:4px;padding:16px 18px;display:flex}.kpi .kpi-label{color:var(--text-2);font-size:12.5px;font-weight:550}.kpi .kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.kpi .kpi-foot{color:var(--text-3);font-size:12px}.board{grid-template-columns:repeat(4,minmax(250px,1fr));align-items:start;gap:14px;padding-bottom:8px;display:grid;overflow-x:auto}.column{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;min-height:200px;display:flex}.column.drop{border-color:var(--accent);background:var(--accent-soft)}.column-head{align-items:center;gap:8px;padding:12px 12px 8px;font-weight:650;display:flex}.column-head .bar{border-radius:2px;width:4px;height:16px}.column-body{flex-direction:column;gap:8px;min-height:60px;padding:4px 10px 10px;display:flex}.task-card{background:var(--surface);border:1px solid var(--border);cursor:grab;box-shadow:var(--shadow-sm);border-radius:9px;flex-direction:column;gap:8px;padding:10px 12px;transition:box-shadow .12s,border-color .12s;display:flex}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.task-card.dragging{opacity:.4}.task-card.blocked{border-left:3px solid var(--bad)}.task-card .meta{color:var(--text-3);align-items:center;gap:8px;font-size:12px;display:flex}.quick-add{gap:6px;padding:0 10px 10px;display:flex}.gantt{grid-template-columns:300px 1fr;display:grid;overflow:hidden}.gantt-left{border-right:1px solid var(--border)}.gantt-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;height:36px;padding:0 12px;font-size:13px;display:flex}.gantt-row.blocked,.gantt-row.blocked .faint{color:var(--bad)}.gantt-head{border-bottom:1px solid var(--border);background:var(--surface-2);height:48px}.gantt-right{position:relative;overflow-x:auto}.gantt-canvas{position:relative}.gantt-bar{background:var(--accent);cursor:pointer;color:#fff;white-space:nowrap;border-radius:5px;align-items:center;height:20px;padding:0 6px;font-size:11.5px;font-weight:600;display:flex;position:absolute;top:8px;overflow:hidden}.gantt-bar .fill{background:#ffffff47;position:absolute;top:0;bottom:0;left:0}.gantt-bar.parent{background:var(--text-2);border-radius:2px;height:8px;top:14px}.gantt-today{background:var(--bad);opacity:.7;z-index:2;width:2px;position:absolute;top:0;bottom:0}.gantt-scale{border-left:1px solid var(--border);height:48px;color:var(--text-3);white-space:nowrap;padding:6px;font-size:11.5px;position:absolute;top:0}.gantt-scale b{color:var(--text-2);font-weight:600;display:block}.gantt-grid{background:var(--border);width:1px;position:absolute;top:48px;bottom:0}.gantt-weekend{background:var(--surface-2);position:absolute;top:48px;bottom:0}.gantt-lane{border-bottom:1px solid var(--border);position:absolute;left:0}.gantt-row.wp,.gantt-lane.wp{background:var(--accent-soft)}.gantt-row.wp{color:var(--accent-text)}.wp-code{color:var(--text-3);font-variant-numeric:tabular-nums;margin-right:7px;font-weight:500}.gantt-summary{background:var(--text);z-index:1;border-radius:2px 2px 0 0;height:9px;position:absolute;top:12px}.gantt-summary:before,.gantt-summary:after{content:"";border-top:6px solid var(--text);border-left:5px solid #0000;border-right:5px solid #0000;position:absolute;top:9px}.gantt-summary:before{border-left:0;left:0}.gantt-summary:after{border-right:0;right:0}.gantt-summary .fill{background:var(--accent);border-radius:2px 0 0;max-width:100%;position:absolute;top:0;bottom:0;left:0}.gantt-summary-label{color:var(--text-2);white-space:nowrap;font-size:11.5px;font-weight:700;position:absolute;top:-4px;left:calc(100% + 8px)}.gantt-summary-key{background:var(--text);border-radius:1px;width:16px;height:5px}.tree-row td:first-child{padding-left:calc(14px + var(--depth,0) * 22px)}.twisty{cursor:pointer;width:18px;height:18px;color:var(--text-3);background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.perm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;display:grid}.split{grid-template-columns:1fr 360px;align-items:start;gap:16px;display:grid}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--text-2);cursor:pointer;padding:24px}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.legend-swatch{border-radius:2px;width:14px;height:3px;display:inline-block}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center{place-items:center;padding:60px;display:grid}@media (width<=1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media (width<=860px){.app{grid-template-columns:1fr}.sidebar{display:none}.auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.grid-2,.grid-3{grid-template-columns:1fr}.page,.topbar{padding-left:16px;padding-right:16px}.tabs{padding:0 16px}.gantt{grid-template-columns:180px 1fr}}.office-shell{z-index:60;background:var(--surface);flex-direction:column;animation:.12s fade;display:flex;position:fixed;inset:0}.office-bar{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;display:flex}.office-body{background:#fff;flex:1;min-height:0;position:relative}.office-loading{background:var(--surface);z-index:1;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.menu{z-index:30;min-width:220px;box-shadow:var(--shadow);padding:4px;position:absolute;top:calc(100% + 4px);right:0}.menu .btn{justify-content:flex-start;width:100%}.tabs.panel-tabs{margin-top:-4px;padding:0}.tabs button.tab{cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000}.tabs button.tab.active{border-bottom-color:var(--accent)}.report-body{flex:1;min-height:0;display:flex}.report-canvas{flex-direction:column;flex:1;align-items:flex-start;gap:18px;padding:20px;display:flex;overflow:auto}.report-canvas>*{flex:none}.report-canvas>div:first-child{box-shadow:var(--shadow);border-radius:8px;max-width:none;line-height:0;overflow:hidden}.report-canvas>div.report-fit{max-width:100%}.report-fit svg{max-width:100%;height:auto}.report-table{width:100%;max-width:1200px;overflow-x:auto}.report-customize{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex:none;gap:14px;width:300px;padding:16px;display:flex;overflow-y:auto}.report-colors{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;display:grid}.report-color{cursor:pointer;align-items:center;gap:6px;font-size:12.5px;display:flex}.report-color input{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:5px;width:26px;height:22px;padding:0}.report-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.report-preset{cursor:pointer;text-align:left;border:1px solid;border-radius:8px;align-items:center;gap:3px;min-width:0;padding:6px 8px;display:flex}.report-preset span{border-radius:3px;flex:none;width:12px;height:12px}.report-preset em{white-space:nowrap;text-overflow:ellipsis;margin-left:4px;font-size:12px;font-style:normal;font-weight:600;overflow:hidden}@media (width<=860px){.report-customize{box-shadow:var(--shadow-lg);position:absolute;top:52px;bottom:0;right:0}}.avatar-photo{background:var(--surface-3);padding:0;overflow:hidden}.avatar-photo img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-more{background:var(--surface-3);color:var(--text-2)}.avatar-octagon{clip-path:polygon(29% 0,71% 0,100% 29%,100% 71%,71% 100%,29% 100%,0 71%,0 29%);border:0;border-radius:0}.avatar-octagon.avatar-photo img{border-radius:0}.avatars .avatar-octagon+.avatar,.avatars .avatar+.avatar-octagon{margin-left:3px}.qty-table td{vertical-align:middle;padding:6px 8px}.res-qtys{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.res-qty{white-space:nowrap;color:var(--text-2);align-items:center;gap:5px;display:inline-flex}.dep-row{grid-template-columns:minmax(0,1fr) minmax(170px,1.2fr) 88px 15px auto;align-items:center;gap:6px;display:grid}.dep-lag{align-items:center;gap:4px;display:inline-flex}.dep-lag .input{width:58px;padding-left:6px;padding-right:4px}.gantt-links{pointer-events:none;z-index:1;position:absolute;top:0;left:0;overflow:visible}.gantt-links path{pointer-events:stroke}.btn-danger-soft{border-color:color-mix(in srgb, var(--bad) 40%, transparent);color:var(--bad)}.gantt-holiday{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--warn) 22%, transparent) 0 3px, transparent 3px 6px);border-left:1px solid color-mix(in srgb, var(--warn) 45%, transparent);z-index:0;position:absolute;top:48px;bottom:0}.gantt-holiday-key{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--warn) 45%, transparent) 0 2px, transparent 2px 4px);border-radius:2px;width:12px;height:12px}.holiday-row{grid-template-columns:170px minmax(0,1fr) auto auto;align-items:center;gap:8px;display:grid}.evm-help dl{grid-template-columns:minmax(170px,max-content) 1fr;gap:10px 18px;margin:0;font-size:13.5px;display:grid}.evm-help dt{align-items:center;gap:8px;font-weight:650;display:flex}.evm-help dd{color:var(--text-2);margin:0;line-height:1.5}@media (width<=640px){.evm-help dl{grid-template-columns:1fr}.evm-help dd{margin-bottom:6px}}.milestone-diamond{background:var(--violet);border-radius:1px;flex:none;width:9px;height:9px;display:inline-block;transform:rotate(45deg)}.gantt-milestone{background:var(--violet);border:2px solid var(--surface);z-index:2;width:13px;height:13px;box-shadow:0 0 0 1px var(--violet);border-radius:2px;position:absolute;top:11px;transform:rotate(45deg)}.evm-methods section{border-top:1px solid var(--border);padding-top:10px}.evm-methods h4{align-items:center;margin:0 0 4px;font-size:14.5px;display:flex}.evm-methods p{margin:3px 0;font-size:13.5px;line-height:1.5}.evm-example{background:var(--surface-2);border-radius:var(--radius-sm);padding:6px 10px}.view-panel section{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding-bottom:14px;display:flex}.view-panel section:last-of-type{border-bottom:0}.view-panel h4{text-transform:uppercase;letter-spacing:.03em;color:var(--text-3);margin:0;font-size:13px}.view-panel .check{flex-wrap:wrap;row-gap:0}.view-panel .check .faint{flex-basis:100%;padding-left:24px}.view-panel .seg{align-self:flex-start}.zoom-control{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;height:36px;padding:0 2px;display:inline-flex}.zoom-value{font:inherit;font-variant-numeric:tabular-nums;color:var(--text-2);cursor:pointer;background:0 0;border:0;min-width:44px;padding:0 2px;font-size:12.5px}.zoom-value:hover{color:var(--accent-text)}.eng-matrix .eng-col{text-align:center;width:12%}.eng-matrix td.eng-col{border-left:1px solid var(--border)}.eng-matrix td.eng-between{background:repeating-linear-gradient(90deg, transparent 0 6px, color-mix(in srgb, var(--accent) 14%, transparent) 6px 10px);background-position:50%;background-repeat:no-repeat;background-size:100% 3px}.eng-mark{vertical-align:middle;border-radius:6px;place-items:center;width:24px;height:24px;margin:0 2px;font-size:12.5px;font-weight:700;display:inline-grid}.eng-c{background:var(--surface-3);color:var(--text);border:1px solid var(--border-strong)}.eng-d{background:var(--accent);color:#fff}.faint .eng-mark,p .eng-mark{width:18px;height:18px;font-size:11px}.pi-wrap{grid-template-rows:auto auto;grid-template-columns:28px 1fr;gap:6px;padding:4px 16px 16px;display:grid}.pi-yaxis{justify-content:center;align-items:center;display:flex}.pi-yaxis span{white-space:nowrap;color:var(--text-3);font-size:12px;font-weight:600;transform:rotate(-90deg)}.pi-xaxis{text-align:center;color:var(--text-3);font-size:12px;font-weight:600}.pi-grid{border:1px solid var(--border-strong);border-radius:var(--radius-sm);grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;height:420px;display:grid;position:relative;overflow:hidden}.pi-quad{flex-direction:column;gap:2px;padding:10px 12px;display:flex}.pi-quad b{font-size:13px}.q-tl{background:color-mix(in srgb, var(--warn) 9%, var(--surface));border-right:1px dashed var(--border-strong);border-bottom:1px dashed var(--border-strong)}.q-tr{background:color-mix(in srgb, var(--bad) 9%, var(--surface));border-bottom:1px dashed var(--border-strong);text-align:right;align-items:flex-end}.q-bl{background:var(--surface-2);border-right:1px dashed var(--border-strong);justify-content:flex-end}.q-br{background:color-mix(in srgb, var(--accent) 9%, var(--surface));text-align:right;justify-content:flex-end;align-items:flex-end}.pi-chip{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border-strong);background:var(--surface);max-width:160px;color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);z-index:1;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:550;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.pi-chip:hover{border-color:var(--accent);color:var(--accent-text);z-index:2}.pi-chip.inactive{opacity:.55}.split.split-below{grid-template-columns:1fr}.panel-dock-bar{margin:-6px -6px 8px 0}.backlog td{vertical-align:middle}.backlog-row{cursor:pointer;transition:background .15s}.backlog-epic{background:color-mix(in srgb, var(--violet) 7%, var(--surface))}.backlog-story,.backlog-group{background:var(--surface-2)}.backlog-title{font-weight:650}.backlog-epic .backlog-title{font-weight:700}.backlog-kind{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:5px;padding:2px 6px;font-size:10.5px;font-weight:700;display:inline-block}.kind-epic{background:var(--violet-soft);color:var(--violet)}.kind-story{background:var(--accent-soft);color:var(--accent-text)}.kind-task{background:var(--surface-3);color:var(--text-2)}.dep-chips{flex-wrap:wrap;gap:4px;display:flex}.dep-chip{border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--text-2);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:4px;max-width:260px;padding:1px 8px;font-size:12px;display:inline-flex;overflow:hidden}.dep-chip:hover{border-color:var(--accent);color:var(--accent-text)}.dep-chip-pred{border-left:3px solid var(--series-1)}.dep-chip-succ{border-right:3px solid var(--series-2)}.dep-chip.bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 45%, transparent)}.backlog-row.dep-focus td{background:color-mix(in srgb, var(--accent) 6%, transparent)}.backlog-row.dep-pred td{background:color-mix(in srgb, var(--series-1) 14%, transparent)}.backlog-row.dep-pred td:first-child{box-shadow:inset 4px 0 0 var(--series-1)}.backlog-row.dep-succ td{background:color-mix(in srgb, var(--series-2) 14%, transparent)}.backlog-row.dep-succ td:first-child{box-shadow:inset 4px 0 0 var(--series-2)}.backlog-row.flash td{animation:1.6s backlog-flash}@keyframes backlog-flash{0%,40%{background:color-mix(in srgb, var(--warn) 28%, transparent)}}.dep-key{border-radius:4px;padding:0 5px}.dep-key-pred{background:color-mix(in srgb, var(--series-1) 18%, transparent)}.dep-key-succ{background:color-mix(in srgb, var(--series-2) 18%, transparent)}.backlog-grip{width:14px;color:var(--text-3);cursor:grab;flex:none;display:inline-flex}.backlog-actions{opacity:0;gap:2px;transition:opacity .12s;display:inline-flex}.backlog-row:hover .backlog-actions,.backlog-row:focus-within .backlog-actions,.backlog-row:focus .backlog-actions{opacity:1}.backlog-row:focus{outline:2px solid var(--accent);outline-offset:-2px}.backlog-row.dragging{opacity:.45}.backlog-row.drop-before td{box-shadow:inset 0 3px 0 var(--accent)}.backlog-row.drop-after td{box-shadow:inset 0 -3px 0 var(--accent)}.backlog-row.drop-into td{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.backlog-add td{background:color-mix(in srgb, var(--accent) 5%, var(--surface))}.sprint-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.moscow-badge{border-radius:5px;flex:none;place-items:center;width:20px;height:20px;font-size:11.5px;font-weight:800;display:inline-grid}.moscow-must{background:color-mix(in srgb, var(--bad) 16%, transparent);color:var(--bad)}.moscow-should{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.moscow-could{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent-text)}.moscow-wont{background:var(--surface-3);color:var(--text-3)}.moscow-summary{flex-wrap:wrap;align-items:center;gap:12px 28px;padding:14px 16px;display:flex}.moscow-summary .moscow-must{color:inherit;background:0 0;align-items:center;gap:12px;display:flex}.moscow-summary .moscow-must>.moscow-badge{background:color-mix(in srgb, var(--bad) 16%, transparent);width:32px;height:32px;color:var(--bad);font-size:16px}.moscow-rest{flex-wrap:wrap;gap:8px 18px;display:flex}.program-facts{grid-template-columns:140px 1fr;gap:6px 14px;margin:0;font-size:13.5px;display:grid}.program-facts dt{color:var(--text-3)}.program-facts dd{margin:0;font-weight:550}.plain-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.roadmap{padding:0;position:relative;overflow:hidden}.roadmap-head,.roadmap-row{border-bottom:1px solid var(--border);grid-template-columns:220px 1fr;min-height:38px;display:grid}.roadmap-head{background:var(--surface-2);min-height:30px}.roadmap-label{border-right:1px solid var(--border);align-items:center;gap:8px;min-width:0;padding:0 12px;font-size:13px;display:flex}.roadmap-track{position:relative}.roadmap-month{color:var(--text-3);white-space:nowrap;border-left:1px solid var(--border);padding-left:4px;font-size:11.5px;position:absolute;top:7px}.roadmap-grid{background:var(--border);opacity:.6;width:1px;position:absolute;top:0;bottom:0}.roadmap-bar{color:#fff;border-radius:5px;align-items:center;min-width:6px;height:20px;padding:0 6px;font-size:11.5px;font-weight:600;display:flex;position:absolute;top:9px;overflow:hidden}.roadmap-bar.closed{opacity:.55}.roadmap-fill{background:#00000038;position:absolute;top:0;bottom:0;left:0}.roadmap-bar span{position:relative}.roadmap-ms{border:2px solid var(--violet);background:var(--surface);z-index:1;border-radius:2px;width:13px;height:13px;margin-left:-6px;position:absolute;top:12px;transform:rotate(45deg)}.roadmap-ms.done{background:var(--violet)}.roadmap-today{background:var(--bad);opacity:.7;z-index:2;width:2px;position:absolute;top:30px;bottom:0}.roadmap-group{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:650;display:flex}.sl-table{border-collapse:collapse;width:100%;font-size:13px}.sl-table th{color:#fff;border:1px solid var(--surface);white-space:nowrap;text-align:left;background:#6e6ea8;padding:6px 10px;font-weight:600}.sl-table th.sl-num{text-align:right}.sl-table tr.sl-bands th{text-align:center}.sl-table th.sl-blank{background:0 0}.sl-table td{border:1px solid var(--surface);white-space:nowrap;padding:5px 10px}.sl-table .sl-num{text-align:right;font-variant-numeric:tabular-nums}.sl-table .sl-code{color:var(--text-3);font-variant-numeric:tabular-nums}.sl-table td.sl-var{background:var(--surface-2)}.sl-table tr.sl-l0 td{color:#fff;background:#7d8594;font-weight:700}.sl-table tr.sl-l0 td a,.sl-table tr.sl-l0 .twisty,.sl-table tr.sl-l0 .sl-code{color:#fff}.sl-table tr.sl-l1 td{color:#1a2433;background:#cfe2f6;font-weight:650}.sl-table tr.sl-l1 td a,.sl-table tr.sl-l1 .twisty,.sl-table tr.sl-l1 .sl-code{color:#1a2433}.sl-table .sl-neg{color:var(--bad)}.sl-table tr.sl-l0 td.sl-neg{color:#ffd0cf}.sl-table tr.sl-l1 td.sl-neg{color:#c4312f}.sl-table td.sl-status{text-align:center;min-width:76px;font-weight:700}.sl-GREEN{color:#0b2400!important;background:#6fb52c!important}.sl-YELLOW{color:#3a3200!important;background:#ffea2e!important}.sl-RED{color:#fff!important;background:#e5261f!important}.sl-HOLD{color:#fff!important;background:#111!important}.sl-hold-tag{color:#fff;background:#111;border-radius:4px;margin-left:6px;padding:0 6px;font-size:10.5px;font-weight:700}.sl-table .sl-hold-btn{opacity:.55;margin-left:auto;padding:1px 7px;font-size:11.5px;font-weight:500}.sl-table tr:hover .sl-hold-btn,.sl-table .sl-hold-btn:focus-visible{opacity:1}.sl-table tr.sl-l0 .sl-hold-btn{color:#fff}.sl-table td.sl-none{color:var(--text-3)}.sl-chip{border-radius:4px;margin:0 4px 0 8px;padding:0 6px;font-size:10.5px;font-weight:700;display:inline-block}.badge.badge-hold{color:#fff;background:#111;border-color:#111}.nav-hold{color:#c8cfdb;border:1px solid #6f7a8e;border-radius:4px;flex:none;margin-left:auto;padding:0 5px;font-size:10px;font-weight:600;line-height:15px}
