@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-latin.woff2)format("woff2");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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-latin.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-latin.woff2)format("woff2");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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-latin.woff2)format("woff2");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:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-tight-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-tight-600-latin.woff2)format("woff2");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:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-tight-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-tight-700-latin.woff2)format("woff2");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{--color-bg:#fafaf8;--color-surface:#fff;--color-surface-2:#f3f3f0;--color-surface-3:#ecece8;--color-text:#1f2024;--color-text-2:#45474d;--color-muted:#62656b;--color-border:#e5e5e0;--color-border-strong:#d2d2cc;--color-input-border:#90908a;--color-primary:#3b4da6;--color-primary-hover:#32429a;--color-primary-soft:#eceef8;--color-on-primary:#fff;--color-focus:#4a5dc4;--cc-chain-critical:#2e3a8c;--cc-chain-critical-soft:#e7e9f4;--cc-chain-feeding:#7c84b0;--cc-chain-feeding-soft:#eceef4;--cc-task:#9aa0ab;--cc-task-soft:#ecedef;--cc-task-progress:#5b6170;--cc-buffer-frame:#c4c7ce;--cc-buffer-empty:#f5f5f2;--cc-grid-line:#ecece8;--cc-grid-line-strong:#deded9;--cc-axis:#b7b9be;--cc-today:#45474d;--cc-link:#b7bac1;--cc-link-critical:#6e77ae;--status-ok:#236e42;--status-ok-strong:#3e9a66;--status-ok-soft:#e7f2eb;--status-ok-border:#8fc4a6;--status-watch:#8a6314;--status-watch-strong:#c9941f;--status-watch-soft:#faf0dc;--status-watch-border:#e2bc72;--status-act:#b23e37;--status-act-strong:#c84a41;--status-act-soft:#fbe8e6;--status-act-border:#e09a93;--status-none:#62656b;--status-none-soft:#efefec;--font-display:"Inter Tight", "Inter", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:25px;--text-2xl:31px;--text-3xl:39px;--leading-tight:1.2;--leading-normal:1.5;--tracking-wide:.02em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-full:999px;--shadow-sm:0 1px 2px #1c1d240d;--shadow:0 2px 8px #1c1d240f, 0 1px 2px #1c1d240a;--container:1440px;--ease:cubic-bezier(.2, 0, .2, 1);--dur:.2s}.num,.kpi-value,td.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);margin:0}.center{min-height:100vh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.muted{color:var(--color-muted)}.error{color:var(--status-act);font-size:var(--text-sm)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-8);gap:var(--space-3);flex-direction:column;width:340px;display:flex}.card h1{color:var(--cc-chain-critical);font-family:var(--font-display);font-size:var(--text-2xl);margin:0}input{border:1px solid var(--color-input-border);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text);padding:10px 12px;font-family:inherit}input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px;border-color:var(--color-focus)}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}button{border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--dur) var(--ease);border:none;padding:10px 14px;font-family:inherit}button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{opacity:.5;cursor:default}button.link{color:var(--color-muted);background:0 0;padding:4px 8px}button.link:hover:not(:disabled){color:var(--color-text);background:0 0}.page{max-width:1180px;margin:0 auto}.topbar{align-items:center;gap:var(--space-4);padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);height:56px;display:flex}.topbar .brand{color:var(--cc-chain-critical);font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-md);text-decoration:none}.topbar .crumb{color:var(--color-muted)}.topbar .user{font-size:var(--text-sm);margin-left:auto}.topnav{gap:var(--space-4);display:flex}.topnav a{color:var(--color-muted);font-size:var(--text-sm);text-decoration:none}.topnav a.active{color:var(--color-primary);font-weight:var(--weight-semibold)}.content{padding:var(--space-6)}.content section{margin-top:var(--space-6)}.content section h3{margin:0 0 var(--space-3);font-size:var(--text-md);font-weight:var(--weight-semibold)}.proj-head{align-items:baseline;gap:var(--space-3);display:flex}.proj-head h2{font-family:var(--font-display);margin:0}.list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;padding:14px 16px;display:flex}.list li a{color:var(--color-primary);font-weight:var(--weight-medium);text-decoration:none}.list li a:hover{text-decoration:underline}.metrics{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(168px,1fr));display:grid}.metric{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.metric-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.metric-label{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-1)}.task-context-panel{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);padding:var(--space-4);width:100%}.task-context-panel__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.task-context-panel__header h4{margin:var(--space-1) 0 0;font-family:var(--font-display);font-size:var(--text-lg)}.task-context-panel__body{gap:var(--space-3);margin-top:var(--space-3);display:grid}.task-context-panel__value{margin-top:var(--space-1);font-weight:var(--weight-semibold)}.task-context-panel__reasons{margin:var(--space-2) 0 0;padding-left:1.2rem}.task-context-panel__reasons li+li{margin-top:var(--space-1)}.role-aware-workflow{gap:var(--space-5);flex-direction:column;display:flex}.role-aware-workflow__surface{gap:var(--space-3);flex-direction:column;display:flex}.role-aware-workflow__surface-caption,.role-read-context{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.role-aware-workflow__surface-caption h3,.role-read-context h4{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.role-aware-workflow__surface-caption p,.role-read-context p{margin:var(--space-2) 0 0;color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.role-read-context{gap:var(--space-3);border-left:4px solid var(--color-primary);display:grid}.role-read-context--blocked{border-left-color:var(--status-watch);background:var(--status-watch-soft)}.role-read-context__labels{gap:var(--space-2);flex-wrap:wrap;display:flex}.role-read-context__labels span{border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:5px 10px}.resource-mini{gap:var(--space-4);flex-direction:column;display:flex}.resource-mini__gate{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);padding:var(--space-4)}.resource-mini__gate--stale,.resource-mini__gate--incomplete{border-left-color:var(--status-watch);background:var(--status-watch-soft)}.resource-mini__gate--failed,.resource-mini__gate--conflict{border-left-color:var(--status-act);background:var(--status-act-soft)}.resource-mini__header,.resource-mini__legend,.resource-mini__responsibility,.resource-mini__explain,.resource-mini__blocked,.resource-mini__empty,.resource-mini__row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.resource-mini__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.resource-mini__header h4{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.resource-mini__header p{margin:var(--space-1) 0 0;color:var(--color-muted)}.resource-mini__subtle,.resource-mini__legend,.resource-mini__responsibility,.resource-mini__explain,.resource-mini__row-note{color:var(--color-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.resource-mini__blocked{border-left:4px solid var(--status-watch);background:var(--status-watch-soft);font-weight:var(--weight-semibold)}.resource-mini__empty{color:var(--color-muted)}.resource-mini__rows,.resource-mini__row{gap:var(--space-3);display:grid}.resource-mini__row-main{gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.resource-mini__row-main strong,.resource-mini__row-main span{display:block}.resource-mini__row-main span{margin-top:var(--space-1);color:var(--color-muted);font-size:var(--text-sm)}.resource-mini__signal{border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;padding:4px 10px}.resource-mini__signal--attention{border-color:var(--status-watch-border);background:var(--status-watch-soft);color:var(--status-watch)}.resource-mini__bar-track{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-full);height:12px;overflow:hidden}.resource-mini__bar{background:var(--cc-task-progress);border-radius:var(--radius-full);height:100%}.resource-mini__bar--attention{background:var(--status-watch-strong)}@media (width<=700px){.resource-mini__header,.resource-mini__row-main{grid-template-columns:1fr}.resource-mini__header{display:grid}.resource-mini__signal{white-space:normal;width:fit-content}}.working-gantt{gap:var(--space-4);flex-direction:column;display:flex}.working-gantt__gate{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);padding:var(--space-4)}.working-gantt__gate--stale,.working-gantt__gate--incomplete{border-left-color:var(--status-watch);background:#b775151a}.working-gantt__gate--failed,.working-gantt__gate--conflict{border-left-color:var(--status-act);background:#b737371a}.working-gantt__blocked,.working-gantt__heading,.working-gantt__legend{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.working-gantt__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.working-gantt__heading h4,.working-gantt__blocked h4{font-family:var(--font-display);font-size:var(--text-lg);margin:0}.working-gantt__heading p,.working-gantt__blocked p{margin:var(--space-1) 0 0}.working-gantt__range{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap}.working-gantt__grid-wrap{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow-x:auto}.working-gantt__grid{min-width:max(1120px, calc(var(--m3f-total-days) * 22px + 220px))}.working-gantt__task-head,.working-gantt__date-head,.working-gantt__task-cell,.working-gantt__date-cell{border-bottom:1px solid var(--color-border)}.working-gantt__task-head,.working-gantt__task-cell{z-index:2;background:var(--color-surface);width:220px;position:sticky;left:0}.working-gantt__task-head,.working-gantt__date-head{z-index:3;background:var(--color-surface-2);min-height:42px;position:sticky;top:0}.working-gantt__task-head{z-index:4;padding:var(--space-3);font-size:var(--text-sm);color:var(--color-muted)}.working-gantt__date-head{height:42px;margin-left:220px;position:sticky}.working-gantt__date-head span{color:var(--color-muted);font-size:var(--text-xs);white-space:nowrap;position:absolute;top:12px;transform:translate(-50%)}.working-gantt__row{grid-template-columns:220px minmax(540px,1fr);min-height:56px;display:grid}.working-gantt__task-cell{padding:var(--space-3);flex-direction:column;gap:2px;display:flex}.working-gantt__task-cell strong{font-size:var(--text-sm)}.working-gantt__task-cell span{color:var(--color-muted);font-size:var(--text-sm);line-height:1.3}.working-gantt__date-cell{background-image:linear-gradient(to right, var(--color-border) 1px, transparent 1px);background-size:44px 100%;min-height:56px;position:relative}.working-gantt__bar{border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary-soft);min-width:10px;height:16px;position:absolute;top:18px}.working-gantt__marker{top:34px;left:var(--space-3);color:var(--color-muted);font-size:var(--text-xs);position:absolute}.working-gantt__mobile-list{display:none}.working-gantt__mobile-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3)}.working-gantt__mobile-item div:first-child{flex-direction:column;gap:2px;display:flex}@media (width<=700px){.working-gantt__grid-wrap{display:none}.working-gantt__mobile-list{gap:var(--space-2);display:grid}.working-gantt__heading{flex-direction:column}}.recompute{font-size:var(--text-xs);color:var(--color-muted);margin-bottom:var(--space-2);min-height:16px}table.grid{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;font-size:var(--text-sm);overflow:hidden}table.grid th,table.grid td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 12px}table.grid th{background:var(--color-surface-2);color:var(--color-text-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);z-index:1;position:sticky;top:0}table.grid tbody tr:last-child td{border-bottom:none}table.grid tr.crit td:first-child{box-shadow:inset 3px 0 0 var(--cc-chain-critical)}table.grid tr.special td{color:var(--color-muted);font-style:italic}.tag{border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-muted);font-size:var(--text-xs);margin-left:8px;padding:1px 6px;font-style:normal}.stage-tree__list{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.stage-row{border-bottom:1px solid var(--color-border);font-size:var(--text-sm);align-items:center;gap:8px;padding:6px 8px;display:flex}.stage-row:last-child{border-bottom:none}.stage-toggle{width:20px;height:20px;color:var(--color-muted);cursor:pointer;font-size:var(--text-xs);border-radius:var(--radius-sm);background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.stage-toggle:hover:not(.stage-toggle--leaf){background:var(--color-surface-2);color:var(--color-text)}.stage-toggle--leaf{cursor:default;color:var(--color-border-strong)}.stage-code{font-variant-numeric:tabular-nums;color:var(--color-muted);flex:none;font-weight:600}.stage-name{color:var(--color-text);flex:auto}.stage-status{border-radius:var(--radius-sm);font-size:var(--text-xs);border:1px solid var(--color-border-strong);color:var(--color-text-2);background:var(--color-surface-2);flex:none;padding:1px 8px}.stage-status--active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.stage-status--done{border-color:var(--status-ok-border)}.stage-status--on_hold{border-color:var(--status-watch-border)}.stage-status--cancelled{color:var(--color-muted);text-decoration:line-through}.stage-form{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);margin-bottom:12px;padding:12px}.stage-form__row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.stage-form__row label{font-size:var(--text-xs);color:var(--color-muted);flex-direction:column;gap:4px;display:flex}.stage-form__actions{align-items:center;gap:8px;margin-top:12px;display:flex}.stage-row__action{flex:none;margin-left:4px}.stage-row__reorder{flex:none;gap:2px;display:inline-flex}.stage-form__wide{flex:100%}.stage-form__wide input{width:100%}.cell-edit{color:var(--color-primary);border:1px dashed var(--color-input-border);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:text;background:0 0;padding:4px 8px}.cell-edit:hover:not(:disabled){border-color:var(--color-primary);background:0 0}.remaining-edit{align-items:center;gap:4px;display:flex}.remaining-edit input{width:56px;font-size:var(--text-sm);padding:4px 6px}.remaining-edit select{font-size:var(--text-sm);border:1px solid var(--color-input-border);border-radius:var(--radius-sm);max-width:150px;padding:4px 6px}.remaining-edit button{font-size:var(--text-sm);padding:4px 10px}.rem-form{flex-direction:column;gap:3px;display:flex}.rem-form .error{font-size:var(--text-xs)}.fever{gap:var(--space-2);flex-direction:column;max-width:520px;display:flex}.fever svg{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;height:auto}.fz-ok{fill:var(--status-ok-strong);fill-opacity:.12}.fz-watch{fill:var(--status-watch-strong);fill-opacity:.12}.fz-act{fill:var(--status-act-strong);fill-opacity:.12}.fz-zoneborder{stroke:var(--color-text-2);stroke-width:1.2px;stroke-dasharray:4 3;fill:none}.fz-zonelabel{font-size:var(--text-xs);fill:var(--color-text-2)}.fx-axis{stroke:var(--cc-axis);stroke-width:1px}.fx-grid{stroke:var(--cc-grid-line);stroke-width:1px}.fx-label,.fx-title{fill:var(--color-muted);font-size:var(--text-xs)}.fx-ceiling{stroke:var(--status-act);stroke-width:1px;stroke-dasharray:4 3}.fx-point{stroke:var(--color-surface);stroke-width:2px}.fever-meta{font-size:var(--text-xs);line-height:var(--leading-normal)}.priority{gap:var(--space-3);max-width:660px;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);border-left-width:4px;flex-direction:column;display:flex}.priority.zone-ok{border-left-color:var(--status-ok-strong)}.priority.zone-watch{border-left-color:var(--status-watch-strong)}.priority.zone-act{border-left-color:var(--status-act-strong)}.priority-head{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-2);display:flex}.dot{border-radius:var(--radius-full);width:10px;height:10px;display:inline-block}.dot.ok{background:var(--status-ok-strong)}.dot.watch{background:var(--status-watch-strong)}.dot.act{background:var(--status-act-strong)}.priority-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.priority-task{font-size:var(--text-md);font-weight:var(--weight-semibold);margin-top:2px}.priority-queue ul{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.priority-queue li{font-size:var(--text-sm);justify-content:space-between;display:flex}.gantt-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2);overflow-x:auto}.gantt-wrap svg{display:block}.g-grid{stroke:var(--cc-grid-line-strong);stroke-width:1px}.g-month{fill:var(--color-muted);font-size:10px}.g-label{fill:var(--color-text);font-size:var(--text-xs)}.g-label-muted{fill:var(--color-muted);font-style:italic}.g-bar.g-crit{fill:var(--cc-chain-critical)}.g-bar.g-norm{fill:var(--cc-task)}.g-bar.g-buffer{fill:var(--cc-buffer-empty);stroke:var(--cc-buffer-frame);stroke-width:1px}.g-milestone{fill:var(--cc-chain-critical)}.g-progress{fill:var(--cc-task-progress);opacity:.55}.gantt-legend{font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gantt-legend .lg{border-radius:2px;width:12px;height:12px;margin-left:10px;display:inline-block}.gantt-legend .lg.g-crit{background:var(--cc-chain-critical)}.gantt-legend .lg.g-norm{background:var(--cc-task)}.gantt-legend .lg.g-buffer{background:var(--cc-buffer-empty);border:1px solid var(--cc-buffer-frame)}.gantt-legend .g-note{margin-left:10px}.g-today{stroke:var(--cc-today);stroke-width:1.5px;stroke-dasharray:4 3}.g-today-label{fill:var(--cc-today);font-size:10px}.g-buffer-label{fill:var(--color-muted);font-variant-numeric:tabular-nums;font-size:10px}.g-week{fill:var(--color-muted);font-size:10px}.g-rowlabel{fill:var(--color-text-2);font-size:12px}.g-rowlabel.chain{fill:var(--color-text);font-weight:var(--weight-semibold)}.g-chain-band{fill:var(--cc-chain-critical)}.g-chain-sep{stroke:#fff;stroke-width:1px;stroke-opacity:.35}.g-task-on-band{fill:#fff;font-size:10.5px;font-weight:var(--weight-medium)}.g-branch-bar{fill:var(--cc-task)}.g-progress-band{fill:#fff;fill-opacity:.9}.g-relay{fill:none;stroke:var(--color-primary);stroke-width:2px}.g-relay-label{fill:var(--color-primary);font-size:10px;font-weight:var(--weight-semibold)}.resload-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2);overflow-x:auto}.resload-wrap svg{display:block}.rl-name{fill:var(--color-text);font-size:var(--text-sm);dominant-baseline:middle}.rl-cap{stroke:var(--cc-buffer-frame);stroke-width:1px;stroke-dasharray:3 3}.rl-ok{fill:var(--cc-task-progress)}.rl-over{fill:var(--status-act-strong)}.resload-legend{font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.resload-legend .lg{border-radius:2px;width:12px;height:12px;margin-left:10px;display:inline-block}.resload-legend .lg.rl-ok{background:var(--cc-task-progress)}.resload-legend .lg.rl-over{background:var(--status-act-strong)}.mytasks{gap:var(--space-3);flex-direction:column;max-width:660px;margin:0;padding:0;list-style:none;display:flex}.mytasks li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.mytasks li.now{border-left:4px solid var(--cc-chain-critical)}.mt-name{font-size:var(--text-md);font-weight:var(--weight-semibold)}.mt-sub{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-top:2px}.mt-remaining{font-size:var(--text-xs);flex-direction:column;align-items:flex-end;gap:4px;display:flex}.table-scroll{overflow-x:auto}@media (width<=640px){.topbar{flex-wrap:wrap;gap:10px;height:auto;padding:10px 16px}.topbar .user{font-size:var(--text-xs)}.topbar .crumb{order:5;width:100%}.content{padding:16px}.content section{margin-top:18px}.proj-head{flex-direction:column;gap:2px}.metrics{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.mytasks li{flex-wrap:wrap;gap:8px}.mt-remaining{align-items:flex-start}.remaining-edit{flex-wrap:wrap}.cell-edit{min-height:44px;padding:11px 12px}.remaining-edit input,.remaining-edit select,.remaining-edit button{min-height:44px}}.state{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-2);flex-direction:column;display:flex}.state-icon{flex:none;width:28px;height:28px}.state-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.state-detail{font-size:var(--text-sm);color:var(--color-muted);max-width:40ch;margin:0}.state--error .state-icon,.state--error .state-title{color:var(--status-act)}.state--empty .state-icon{color:var(--status-none)}.state--noaccess .state-icon{color:var(--color-muted)}.state--ok .state-icon,.state--ok .state-title{color:var(--status-ok)}.spinner{border:3px solid var(--color-surface-3);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:24px;height:24px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.state-retry{margin-top:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-sm);cursor:pointer;padding:8px 16px}.state-retry:hover{background:var(--color-surface-2)}.state-retry:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.onboarding{width:420px}.onboarding-steps{padding-left:var(--space-5);gap:var(--space-2);color:var(--color-text-2);font-size:var(--text-sm);flex-direction:column;margin:0;display:flex}.project-edit{gap:var(--space-3);max-width:420px;margin:var(--space-4) 0;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;display:flex}.project-edit label{gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-2);flex-direction:column;display:flex}.project-edit__actions{gap:var(--space-2);display:flex}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong)}.confirm-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--border,#d0d0d0);background:var(--bg,#fff);width:min(420px,100vw - 2rem);color:var(--text,#1a1a1a);box-shadow:var(--shadow,0 8px 32px #00000040);border-radius:8px;padding:1.25rem}.confirm-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.confirm-head h2{margin:0;font-size:1.1rem}.confirm-close{cursor:pointer;color:var(--muted,#666);background:0 0;border:none;font-size:1.5rem;line-height:1}.confirm-message{margin:.75rem 0 1.25rem}.confirm-actions{justify-content:flex-end;gap:.5rem;display:flex}.btn-destructive{color:var(--color-on-primary);background:var(--status-act);border-color:var(--status-act);align-items:center;gap:var(--space-2);display:inline-flex}.btn-destructive:hover:not(:disabled){background:var(--status-act);filter:brightness(.92)}.confirm-ok__icon{flex:none}
