@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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 Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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 Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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 Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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;--bg:oklch(98.3% .004 240);--surface:oklch(99.5% .002 240);--surface-sunken:oklch(96.4% .006 240);--surface-hover:oklch(95.4% .009 240);--surface-inverse:oklch(26% .02 245);--text-inverse:oklch(96% .006 240);--rule:oklch(91.5% .008 240);--rule-strong:oklch(83% .012 240);--text:oklch(25% .02 245);--text-muted:oklch(49% .016 245);--text-faint:oklch(64% .012 245);--accent:oklch(45% .11 242);--accent-hover:oklch(39% .11 242);--accent-soft:oklch(94.5% .025 242);--accent-text:oklch(98.5% .005 242);--focus:oklch(56% .15 242);--danger:oklch(53% .19 27);--danger-soft:oklch(95% .03 27);--st-todo:oklch(70% .01 245);--st-doing:oklch(58% .15 245);--st-done:oklch(60% .14 150);--st-hold:oklch(72% .15 75);--st-blocked:oklch(56% .2 27);--pri-high:oklch(50% .17 27);--pri-medium:oklch(52% .11 70);--shadow-pop:0 1px 2px oklch(25% .02 245/.06), 0 8px 24px oklch(25% .02 245/.12);--hatch:oklch(25% .02 245/.045);--load-1:#cde2fb;--load-2:#86b6ef;--load-3:#2a78d6;--over-1:#f2a59d;--over-2:#dd5148;--over-3:#a8231c;--load-1-ink:var(--text);--load-2-ink:var(--text);--load-3-ink:#fff;--over-1-ink:var(--text);--over-2-ink:#fff;--over-3-ink:#fff;--radius:6px;--font:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--topbar:52px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(17.5% .012 245);--surface:oklch(20.5% .013 245);--surface-sunken:oklch(23% .014 245);--surface-hover:oklch(25.5% .016 245);--surface-inverse:oklch(92% .008 240);--text-inverse:oklch(22% .02 245);--rule:oklch(29% .015 245);--rule-strong:oklch(37% .018 245);--text:oklch(92% .008 240);--text-muted:oklch(70% .014 240);--text-faint:oklch(55% .014 240);--accent:oklch(72% .11 242);--accent-hover:oklch(78% .1 242);--accent-soft:oklch(30% .05 242);--accent-text:oklch(18% .02 245);--focus:oklch(72% .12 242);--danger:oklch(68% .17 27);--danger-soft:oklch(30% .06 27);--st-todo:oklch(55% .012 245);--st-doing:oklch(70% .13 245);--st-done:oklch(70% .14 150);--st-hold:oklch(78% .14 75);--st-blocked:oklch(68% .18 27);--pri-high:oklch(72% .15 27);--pri-medium:oklch(78% .11 75);--shadow-pop:0 1px 2px oklch(0% 0 0/.3), 0 10px 28px oklch(0% 0 0/.45);--hatch:oklch(100% 0 0/.04);--load-1:#1f3d63;--load-2:#2f6cb8;--load-3:#78aff0;--over-1:#6b2b28;--over-2:#c6443d;--over-3:#ff8a80;--load-1-ink:var(--text);--load-2-ink:#fff;--load-3-ink:#0d1a2a;--over-1-ink:var(--text);--over-2-ink:#fff;--over-3-ink:#2a0d0b}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(17.5% .012 245);--surface:oklch(20.5% .013 245);--surface-sunken:oklch(23% .014 245);--surface-hover:oklch(25.5% .016 245);--surface-inverse:oklch(92% .008 240);--text-inverse:oklch(22% .02 245);--rule:oklch(29% .015 245);--rule-strong:oklch(37% .018 245);--text:oklch(92% .008 240);--text-muted:oklch(70% .014 240);--text-faint:oklch(55% .014 240);--accent:oklch(72% .11 242);--accent-hover:oklch(78% .1 242);--accent-soft:oklch(30% .05 242);--accent-text:oklch(18% .02 245);--focus:oklch(72% .12 242);--danger:oklch(68% .17 27);--danger-soft:oklch(30% .06 27);--st-todo:oklch(55% .012 245);--st-doing:oklch(70% .13 245);--st-done:oklch(70% .14 150);--st-hold:oklch(78% .14 75);--st-blocked:oklch(68% .18 27);--pri-high:oklch(72% .15 27);--pri-medium:oklch(78% .11 75);--shadow-pop:0 1px 2px oklch(0% 0 0/.3), 0 10px 28px oklch(0% 0 0/.45);--hatch:oklch(100% 0 0/.04);--load-1:#1f3d63;--load-2:#2f6cb8;--load-3:#78aff0;--over-1:#6b2b28;--over-2:#c6443d;--over-3:#ff8a80;--load-1-ink:var(--text);--load-2-ink:#fff;--load-3-ink:#0d1a2a;--over-1-ink:var(--text);--over-2-ink:#fff;--over-3-ink:#2a0d0b}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font);font-feature-settings:"tnum" 0;-webkit-font-smoothing:antialiased;margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a{color:inherit}code{background:var(--surface-sunken);border-radius:4px;padding:1px 4px;font-size:.92em}.muted{color:var(--text-muted)}.empty{color:var(--text-faint)}.nowrap{white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;display:block;overflow:hidden}.hint{color:var(--text-faint);margin:0;font-size:12.5px}.page-message{color:var(--text-muted);text-align:center;padding:48px 16px}.topbar{z-index:20;height:var(--topbar);background:var(--surface);border-bottom:1px solid var(--rule);align-items:stretch;gap:28px;padding:0 24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;font-weight:600;display:flex}.nav{scrollbar-width:none;flex:1;gap:20px;display:flex;overflow-x:auto}.nav-link{color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;text-decoration:none;display:flex}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--text);border-bottom-color:var(--accent);font-weight:500}.topbar-tools{align-items:center;gap:4px;display:flex}.topbar-tool{height:30px;padding:0 10px;font-weight:500}.topbar-tool.is-prompt{color:var(--accent)}.topbar-icon{color:var(--text-muted)}.search-button{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface-sunken);height:30px;color:var(--text-muted);font:inherit;cursor:pointer;align-items:center;gap:8px;margin-right:6px;padding:0 6px 0 10px;font-size:13px;display:inline-flex}.search-button:hover{color:var(--text)}kbd{border:1px solid var(--rule-strong);background:var(--surface);font:500 11px/1.4 var(--font);white-space:nowrap;border-radius:4px;padding:1px 5px}.palette-backdrop{z-index:80;background:oklch(20% .02 245/.28);justify-content:center;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.palette{border:1px solid var(--rule-strong);background:var(--surface);width:min(640px,100%);max-height:70vh;box-shadow:var(--shadow-pop);border-radius:10px;flex-direction:column;animation:.14s cubic-bezier(.22,1,.36,1) pop-in;display:flex}.palette-input{border:0;border-bottom:1px solid var(--rule);height:52px;color:var(--text);font:inherit;background:0 0;border-radius:10px 10px 0 0;outline:none;padding:0 18px;font-size:16px}.palette-list{padding:6px;overflow-y:auto}.palette-group{color:var(--text-faint);letter-spacing:.03em;text-transform:uppercase;padding:8px 10px 4px;font-size:11.5px;font-weight:500}.palette-item{cursor:pointer;border-radius:6px;align-items:center;gap:10px;min-height:36px;padding:6px 10px;display:flex}.palette-item.is-highlighted{background:var(--surface-hover)}.palette-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.palette-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:50%;margin-left:auto;font-size:12.5px;overflow:hidden}.palette-empty{color:var(--text-muted);margin:0;padding:18px 12px}.palette-hint{border-top:1px solid var(--rule);color:var(--text-faint);padding:8px 14px;font-size:12px}.shortcuts-body{outline:none;gap:14px;max-height:70vh;padding:16px;display:grid;overflow:auto}.shortcuts-body h3{margin:0 0 6px;font-size:13px}.shortcuts-body dl{gap:5px;margin:0;display:grid}.shortcuts-body dl>div{grid-template-columns:170px 1fr;align-items:baseline;gap:12px;font-size:13px;display:grid}.shortcuts-body dd{color:var(--text-muted);margin:0}.identity-note{color:var(--text-muted);margin:4px 8px 8px;font-size:12.5px}.identity-other{padding:6px 8px}.identity-other .input{width:100%;height:30px}.menu-item.is-current{font-weight:600}.main{max-width:1180px;margin:0 auto;padding:28px 24px 64px}.main:has(.page-wide){max-width:none;padding-inline:32px}.page-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.page-actions{gap:8px;display:flex}a.button{text-decoration:none}.page-title{letter-spacing:-.015em;margin:0 0 20px;font-size:24px;font-weight:600;line-height:1.2}.page-head .page-title{margin:0}.button{border-radius:var(--radius);height:32px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:500;transition:background-color .12s ease-out,border-color .12s ease-out;display:inline-flex}.button:disabled{opacity:.55;cursor:default}.button-primary{background:var(--accent);color:var(--accent-text)}.button-primary:hover:not(:disabled){background:var(--accent-hover)}.button-secondary{border-color:var(--rule-strong);background:var(--surface);color:var(--text)}.button-secondary:hover{background:var(--surface-hover)}.button-quiet{color:var(--text-muted);background:0 0}.button-quiet:hover{background:var(--surface-hover);color:var(--text)}.button-danger{background:var(--danger);color:var(--accent-text)}.icon-button{border-radius:var(--radius);width:28px;height:28px;color:var(--text-faint);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}.icon-button:hover,.icon-button[aria-expanded=true]{background:var(--surface-hover);color:var(--text)}.field{gap:5px;display:grid}.field-label{color:var(--text-muted);font-size:12.5px;font-weight:500}.input{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);height:34px;color:var(--text);font:inherit;padding:0 10px}.input:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:#0000}.input[aria-invalid=true]{border-color:var(--danger)}.textarea{resize:vertical;field-sizing:content;height:auto;min-height:84px;max-height:50vh;padding:8px 10px;line-height:1.45}.form-error{color:var(--danger);margin:0;font-size:13px}.badge{border:1px dashed var(--rule-strong);color:var(--text-muted);letter-spacing:.02em;vertical-align:1px;border-radius:4px;margin-left:8px;padding:0 6px;font-size:11px;font-weight:500;display:inline-block}.chips{gap:4px;max-width:100%;display:inline-flex;overflow:hidden}.chip{background:var(--surface-sunken);white-space:nowrap;border-radius:4px;padding:0 7px;font-size:12.5px;line-height:20px}.chip.is-inactive{color:var(--text-faint);text-decoration:line-through}.chip-more{color:var(--text-muted)}.swatch{border-radius:3px;flex:none;display:inline-block}.status{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.status-dot{background:var(--st-todo);border-radius:50%;width:8px;height:8px}.status.is-todo{color:var(--text-muted)}.status.is-doing .status-dot{background:var(--st-doing)}.status.is-done .status-dot{background:var(--st-done)}.status.is-hold .status-dot{background:var(--st-hold)}.status.is-blocked .status-dot{background:var(--st-blocked)}.status.is-blocked{color:var(--st-blocked);font-weight:500}.priority.is-high{color:var(--pri-high);font-weight:500}.priority.is-medium{color:var(--pri-medium)}.priority.is-low{color:var(--text-muted)}.over{color:var(--danger)}.under{color:var(--st-done)}.checkbox{border:1.5px solid var(--rule-strong);vertical-align:-3px;border-radius:4px;flex:none;width:16px;height:16px;display:inline-block}.checkbox.is-checked{border-color:var(--accent);background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5 6.8 11 12 5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center / 14px no-repeat}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{border:1px solid var(--rule);background:var(--surface);border-radius:10px;gap:16px;width:100%;max-width:340px;padding:28px;display:grid}.login-title{letter-spacing:-.01em;margin:0 0 4px;font-size:20px;font-weight:600}.table-wrap{overflow-x:auto}.ledger{border-collapse:collapse;width:100%;min-width:760px}.ledger th,.ledger td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:10px 12px}.ledger th,.sheet th{color:var(--text-muted);letter-spacing:.02em;border-bottom:1px solid var(--rule-strong);font-size:12px;font-weight:500}.ledger th:first-child,.ledger td:first-child{padding-left:0}.ledger tr.is-link{cursor:pointer}.ledger tr.is-link:hover td{background:var(--surface-hover)}.project-name{align-items:center;gap:8px;font-weight:500;display:inline-flex}.project-name a{text-decoration:none}.project-name a:hover{text-underline-offset:3px;text-decoration:underline}.ledger .sub{max-width:360px;margin-left:18px}.archived{margin-top:24px}.projects-hint{max-width:760px;margin-top:12px}.progress-cell{min-width:120px}.progress-text{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;display:flex}.behind-tag,.tight-tag{background:var(--danger-soft);color:var(--danger);border-radius:3px;padding:0 5px;font-size:11px;font-weight:600}.checks{gap:2px;font-size:12.5px;display:grid}.check-tight{color:var(--danger);white-space:nowrap;font-weight:500}.check-mild{color:var(--text-muted);white-space:nowrap}.archived .table-wrap{opacity:.75;margin-top:8px}.empty-state{max-width:560px;color:var(--text-muted);padding:20px 0}.empty-state p{margin:0 0 16px}.sheet{table-layout:fixed;border-collapse:collapse;width:100%;min-width:1300px}.sheet-compact{min-width:720px}.sheet th{text-align:left;white-space:nowrap;padding:8px 10px}.sheet td{border-bottom:1px solid var(--rule);vertical-align:middle;height:36px;padding:0}.sheet .num{text-align:right}.sheet td.num:not(:has(.cell)){padding:0 10px}.w-handle{width:28px}.w-status{width:124px}.w-priority{width:84px}.w-people{width:190px}.w-date{width:108px}.w-num{width:72px}.w-pct{width:60px}.w-menu{width:36px}.cell{white-space:nowrap;text-overflow:ellipsis;min-height:36px;scroll-margin:calc(var(--topbar) + 16px) 0 48px;outline:none;padding:8px 10px;position:relative;overflow:hidden}.cell.is-editable:hover{background:var(--surface-hover)}.cell.is-active,.cell:focus-visible{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--focus)}.cell.is-active:not(:focus){box-shadow:inset 0 0 0 1px var(--rule-strong);background:0 0}.cell.is-editing{z-index:3;overflow:visible}.cell-input{outline:2px solid var(--focus);outline-offset:-2px;background:var(--surface);width:100%;height:100%;min-height:36px;color:var(--text);font:inherit;border:0;border-radius:0;padding:0 10px;position:absolute;inset:0}.cell-input.is-right{text-align:right}.cell-input[aria-invalid=true]{outline-color:var(--danger)}.cell-error{z-index:4;background:var(--danger);color:var(--accent-text);white-space:nowrap;border-radius:0 0 4px 4px;padding:3px 8px;font-size:12px;position:absolute;top:100%;left:0}.col-handle,.col-menu{text-align:center}.drag-handle{width:20px;height:24px;color:var(--text-faint);cursor:grab;opacity:0;place-items:center;display:inline-grid}.task-row:hover .drag-handle,.drag-handle:focus-visible{opacity:1}.drag-handle.is-disabled{cursor:not-allowed;opacity:0!important}.missing{color:var(--danger);font-size:12.5px;font-weight:500}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:10px;display:flex}.count-tag{background:var(--danger-soft);color:var(--danger);border-radius:9px;margin-left:6px;padding:0 6px;font-size:11.5px;font-weight:600}.phase-cell .tight-tag,.phase-cell .behind-tag{vertical-align:1px;margin-left:8px}.summary-progress{align-items:baseline;gap:4px;display:inline-flex}.summary-progress .progress{align-self:center;width:90px;margin:0 0 0 6px}.last-change{color:var(--text-faint)}.cell[data-flash]{animation:1.6s ease-out flash}@keyframes flash{0%,40%{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}}.task-row.is-dragging{opacity:.35}.drop-before>td{box-shadow:inset 0 2px 0 var(--accent)}.drop-into>td{background:var(--accent-soft)}.task-row .col-menu .icon-button{opacity:0}.task-row:hover .col-menu .icon-button,.task-row .col-menu .icon-button:focus-visible,.task-row .col-menu .icon-button[aria-expanded=true]{opacity:1}.task-cell{white-space:normal}.task-cell .task-name{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.clamp{white-space:nowrap}.phase-row>td{border-top:1px solid var(--rule-strong);background:var(--surface-sunken);height:44px}tbody>.phase-row:first-child>td{border-top:0}.phase-row.is-tentative>td{background-image:repeating-linear-gradient(135deg, var(--hatch) 0 6px, transparent 6px 12px)}.phase-cell .phase-name{font-weight:600}.phase-count{color:var(--text-muted);margin-left:8px;font-size:12.5px}.phase-people{padding:0 10px!important}.phase-row .chip{background:var(--surface)}.phase-row .num{font-weight:500}.collapse-toggle{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;display:inline-grid}.collapse-toggle:hover{background:var(--surface-hover);color:var(--text)}.collapse-toggle svg{transition:transform .16s cubic-bezier(.22,1,.36,1)}.collapse-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.add-row>td{height:32px}.add-cell{min-height:32px;color:var(--text-faint);padding-block:6px}.add-cell:hover{color:var(--text)}.total-row>td{border-top:1px solid var(--rule-strong);border-bottom:0;height:44px;padding:0 10px;font-weight:600}.total-row .sub{font-weight:400}.below-table{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:16px;display:flex}.below-table .hint{max-width:720px}.is-inactive td{color:var(--text-faint)}.crumbs{align-items:center;gap:4px;margin-bottom:6px;font-size:13px;display:flex}.crumbs a{color:var(--text-muted);text-decoration:none}.crumbs a:after{content:" /";color:var(--text-faint)}.crumbs a:hover{color:var(--text)}.project-head{margin-bottom:28px}.project-title-row{align-items:center;gap:10px;max-width:900px;display:flex}.project-title{border-radius:var(--radius);flex:1;min-width:0;margin-left:-8px;padding:2px 8px}.project-title h1{letter-spacing:-.02em;text-overflow:ellipsis;margin:0;font-size:26px;font-weight:600;line-height:1.3;overflow:hidden}.project-title .cell-input{letter-spacing:-.02em;border-radius:var(--radius);padding:0 8px;font-size:26px;font-weight:600}.color-button{border-radius:var(--radius);cursor:pointer;background:0 0;border:0;place-items:center;width:28px;height:28px;display:inline-grid}.color-button:hover{background:var(--surface-hover)}.project-meta{flex-wrap:wrap;gap:4px 28px;margin:10px 0 0;display:flex}.project-meta>div{min-width:140px}.project-meta-wide{flex:1;max-width:560px}.project-meta dt{color:var(--text-faint);font-size:12px}.project-meta dd{margin:0 0 0 -10px}.project-head .cell.is-active:not(:focus){box-shadow:none}.project-meta .cell{border-radius:var(--radius);min-height:30px;padding:4px 10px}.project-meta .cell-input{border-radius:var(--radius);min-height:30px}.project-summary{border-top:1px solid var(--rule);color:var(--text-muted);flex-wrap:wrap;gap:4px 20px;margin:14px 0 0;padding-top:12px;display:flex}.project-summary strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.people-page{gap:40px;display:grid}.people-page .page-title{margin-bottom:0}.section{justify-items:start;gap:12px;display:grid}.section>.table-wrap{width:100%}.section-head h2{margin:0;font-size:16px;font-weight:600}.section-head p{margin:2px 0 0;font-size:13px}.overview{gap:18px;display:grid}.overview .page-head{margin-bottom:0}.overview-summary{margin:0}.overview-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:12px 48px;display:grid}.overview-col{gap:32px;display:grid}.ov-head{border-bottom:1px solid var(--rule-strong);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;padding-bottom:6px;display:flex}.ov-head h2{margin:0;font-size:15px;font-weight:600}.ov-head a{color:var(--text-muted);font-size:13px;text-decoration:none}.ov-head a:after{content:" →"}.ov-head a:hover{color:var(--text)}.ov-section>p{margin:0;font-size:13.5px}.ov-list{margin:0;padding:0;list-style:none;display:grid}.ov-list>li{border-bottom:1px solid var(--rule);grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px;padding:8px 0;font-size:13.5px;display:grid}.ov-list>li>:not(.ov-flag){grid-column:1/-1}.ov-list>li>.ov-flag+*,.ov-list>li>.ov-flag~.ov-detail{grid-column:2}.ov-title{color:var(--text);align-items:center;gap:8px;font-weight:500;text-decoration:none;display:inline-flex}.ov-title:hover{text-underline-offset:3px;text-decoration:underline}.ov-when,.ov-detail{color:var(--text-muted)}.ov-when strong{color:var(--text)}.ov-detail a{color:inherit;text-decoration:none}.ov-detail a:hover{color:var(--text);text-decoration:underline}.ov-flag{color:var(--over-2);font-size:10px}.ov-flag.is-mild{color:var(--text-faint)}.ov-feed-meta{align-items:baseline;gap:8px;display:flex}.ov-load{width:100%}.ov-load .wl-week{width:auto;min-width:0;font-size:12px}.ov-load .wl-cell{cursor:default;height:30px;min-height:30px;position:relative}.ov-person{text-align:left;white-space:nowrap;font-weight:500;padding-right:10px!important}.ov-person a{color:var(--text);text-decoration:none}.ov-person a:hover{text-decoration:underline}.progress{background:var(--surface-sunken);border-radius:3px;height:6px;margin-top:4px;display:block;position:relative}.progress-done{background:var(--load-3);border-radius:3px;position:absolute;inset:0 auto 0 0}.progress.is-behind .progress-done{background:var(--over-2)}.progress-planned{background:var(--text);width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}@media (width<=900px){.overview-grid{grid-template-columns:minmax(0,1fr)}}.main:has(.roadmap-page){padding-bottom:12px}.roadmap-page{gap:14px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.toolbar .page-title{margin:0 6px 0 0}.toolbar-hint{margin-left:auto}.toolbar-field{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.select{appearance:none;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%23778' stroke-width='1.5'/%3E%3C/svg%3E") right 9px center / 12px no-repeat;cursor:pointer;height:32px;padding:0 30px 0 10px}.segmented{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--surface);gap:2px;padding:2px;display:inline-flex}.segmented button{height:26px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 12px}.segmented button:hover{color:var(--text)}.segmented button[aria-pressed=true]{background:var(--surface-sunken);color:var(--text);font-weight:500}.rm-scroll{height:calc(100dvh - var(--topbar) - 112px);overscroll-behavior:contain;border-block:1px solid var(--rule);background:var(--surface);min-height:380px;position:relative;overflow:auto}.rm-canvas{min-height:100%;position:relative}.rm-head{z-index:8;background:var(--surface);border-bottom:1px solid var(--rule-strong);display:flex;position:sticky;top:0}.rm-corner{z-index:9;background:var(--surface);border-right:1px solid var(--rule);flex:none;position:sticky;left:0}.rm-scale{flex:none;height:50px;position:relative;overflow:hidden}.rm-scale-row{height:25px;position:relative}.rm-scale-row span{border-left:1px solid var(--rule);height:100%;color:var(--text-muted);white-space:nowrap;padding:4px 6px;font-size:12px;position:absolute;top:0}.rm-scale-row.is-coarse span{border-left-color:var(--rule-strong);color:var(--text);font-weight:500}.rm-today-label{background:var(--accent);color:var(--accent-text);border-radius:3px;padding:1px 5px;font-size:11px;font-weight:600;line-height:1.4;position:absolute;top:3px;transform:translate(-50%)}.rm-body{position:relative}.rm-grid{pointer-events:none;position:absolute;top:0;bottom:0}.rm-grid span{background:var(--rule);width:1px;position:absolute;top:0;bottom:0}.rm-grid span.is-coarse{background:var(--rule-strong)}.rm-today{z-index:4;background:var(--accent);opacity:.5;pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.rm-lane,.rm-load-row,.rm-load-head{display:flex;position:relative}.rm-lane{border-bottom:1px solid var(--rule)}.rm-label{z-index:6;background:var(--surface);border-right:1px solid var(--rule);flex-direction:column;flex:none;gap:1px;padding:12px 14px 0;display:flex;position:sticky;left:0}.rm-label .project-name{color:var(--text);text-decoration:none}.rm-label .project-name:hover{text-underline-offset:3px;text-decoration:underline}.rm-lane.is-dimmed .rm-label>*{opacity:.45}.rm-track,.rm-cells{flex:none;position:relative}.rm-bar{z-index:2;font:500 12.5px/1 var(--font);text-align:left;white-space:nowrap;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border:0;border-radius:4px;align-items:center;padding:0 8px;transition:filter .12s ease-out,opacity .16s ease-out;display:flex;position:absolute}.rm-bar:hover{filter:brightness(1.08)saturate(1.05)}.rm-bar:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.rm-bar.is-dragging{z-index:3;cursor:grabbing;box-shadow:0 6px 16px oklch(25% .02 245/.22)}.rm-bar.is-tentative{border:1.5px dashed var(--bar);background:color-mix(in oklch, var(--bar) 14%, var(--surface))}.rm-bar.is-dimmed{opacity:.25}.rm-edge{cursor:ew-resize;width:7px;position:absolute;top:0;bottom:0;left:0}.rm-edge.is-end{left:auto;right:0}.rm-bar-label{pointer-events:none}.rm-progress{opacity:.55;pointer-events:none;background:currentColor;border-radius:0 0 0 4px;height:3px;position:absolute;bottom:0;left:0}.rm-bar.is-behind .rm-progress{background:var(--over-2);opacity:1}.rm-bar.is-tight:after{content:"";border-top:10px solid var(--over-2);pointer-events:none;border-left:10px solid #0000;border-top-right-radius:4px;position:absolute;top:0;right:0}.rm-over-tick{z-index:2;background:var(--over-2);cursor:help;border-radius:2px 2px 0 0;height:4px;position:absolute;bottom:0}.rm-over-key{color:var(--over-2);font-size:11.5px;position:absolute;bottom:4px;left:14px}.rm-over-key:first-letter{letter-spacing:-2px}.tip-hint{opacity:.7;font-size:11.5px}.tip-warn{max-width:260px;margin-top:2px;font-weight:500}.rm-people{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;font-size:11.5px;line-height:14px;position:absolute;overflow:hidden}.rm-load{border-top:1px solid var(--rule-strong)}.rm-load-head{align-items:stretch;min-height:48px}.rm-load-head .rm-label{justify-content:center;padding-top:0}.rm-legend{padding:0 12px;position:sticky;left:222px}.load-legend{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;display:flex}.load-legend span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.legend-key{border-radius:2px;width:14px;height:10px;display:inline-block}.rm-load-row{height:26px}.rm-load-row .rm-label{flex-direction:row;justify-content:space-between;align-items:center;padding-top:0;font-size:13px}.rm-load-row.is-dimmed .rm-label>*,.rm-load-row.is-dimmed .rm-cells{opacity:.3}.rm-peak{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.rm-peak.is-over{color:var(--text);font-weight:600}.rm-peak.is-over>span[aria-hidden]{color:var(--over-2);font-size:10px}.rm-cell{border-radius:2px;height:16px;position:absolute;top:5px}.rm-cell:hover{box-shadow:0 0 0 1.5px var(--text)}.l1{background:var(--load-1)}.l2{background:var(--load-2)}.l3{background:var(--load-3)}.o1{background:var(--over-1)}.o2{background:var(--over-2)}.o3,.rm-cell.is-off{background:var(--over-3)}.rm-tip{z-index:70;background:var(--surface-inverse);max-width:280px;color:var(--text-inverse);box-shadow:var(--shadow-pop);pointer-events:none;border-radius:6px;gap:2px;padding:8px 10px;font-size:12.5px;display:grid;position:fixed}.rm-tip strong{font-size:13.5px;font-weight:600}.workload-page,.my-tasks{gap:14px;display:grid}.toolbar-check{color:var(--text);align-items:center;font-size:13px}.toolbar-check input{margin:0}.toolbar-legend{margin-left:auto}.wl-wrap{border-block:1px solid var(--rule);background:var(--surface)}.wl{border-collapse:separate;border-spacing:2px;font-variant-numeric:tabular-nums}.wl th,.wl td{padding:0}.wl-person{z-index:3;border-right:1px solid var(--rule);background:var(--surface);text-align:left;width:260px;min-width:260px;font-weight:400;position:sticky;left:0}.wl-corner{color:var(--text-muted);vertical-align:bottom;font-size:12px;font-weight:500;padding:6px 12px!important}.wl-month{border-left:1px solid var(--rule-strong);color:var(--text);text-align:left;white-space:nowrap;font-size:12px;font-weight:500;padding:8px 4px 2px!important}.wl-week{width:52px;min-width:52px;color:var(--text-muted);text-align:center;font-size:12px;font-weight:400;padding:2px 0 6px!important}.wl-week.is-now{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.wl td.is-now{box-shadow:-2px 0 0 0 var(--accent)}.wl-person-inner{align-items:center;gap:6px;min-height:40px;padding:4px 12px 4px 6px;display:flex}.wl-name{flex:1;min-width:0;display:grid}.wl-name a{color:var(--text);font-weight:500;text-decoration:none}.wl-name a:hover{text-underline-offset:3px;text-decoration:underline}.wl-peak{justify-items:end;font-size:13px;font-weight:600;line-height:1.25;display:grid}.wl-peak .sub{font-size:11.5px;font-weight:400}.wl-peak.is-over span[aria-hidden]{color:var(--over-2);font-size:10px}.wl .wl-cell{cursor:pointer;border-radius:3px;place-items:center;height:40px;min-height:40px;padding:0;font-size:12.5px;display:grid}.wl .wl-cell:hover{background-color:var(--surface-hover)}.wl .wl-cell.l1{background:var(--load-1);color:var(--load-1-ink)}.wl .wl-cell.l2{background:var(--load-2);color:var(--load-2-ink)}.wl .wl-cell.l3{background:var(--load-3);color:var(--load-3-ink)}.wl .wl-cell.o1{background:var(--over-1);color:var(--over-1-ink)}.wl .wl-cell.o2{background:var(--over-2);color:var(--over-2-ink);font-weight:600}.wl .wl-cell.o3,.wl .wl-cell.is-off{background:var(--over-3);color:var(--over-3-ink);font-weight:600}.wl .wl-cell.is-active,.wl .wl-cell:focus-visible,.wl .wl-cell.is-editing{box-shadow:inset 0 0 0 2px var(--focus)}.wl .wl-cell.is-active:not(:focus):not(.is-editing){box-shadow:inset 0 0 0 1px var(--text-faint)}.wl-cell.has-off:after{content:"";opacity:.6;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:4px;right:4px}.wl .wl-cell.is-sub{height:30px;min-height:30px;color:var(--text-muted);font-size:12px}.wl-subrow .wl-person{padding:0 12px 0 34px;font-size:13px}.wl-subrow .project-name{font-weight:400}.breakdown-body{outline:none;gap:12px;width:340px;max-width:100%;max-height:70vh;padding:14px;display:grid;overflow:auto}.breakdown-head{gap:1px;font-size:13px;display:grid}.breakdown-value{letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:1.15}.breakdown-group h4{justify-content:space-between;margin:0 0 4px;font-size:13px;font-weight:600;display:flex}.breakdown-group h4 .project-name{color:var(--text);text-decoration:none}.breakdown-group h4 .project-name:hover{text-decoration:underline}.breakdown-group ul{margin:0;padding:0;list-style:none}.breakdown-more{height:26px;margin:2px 0 0 10px;padding:0 8px;font-size:12.5px}.breakdown-note{margin:0;font-size:12.5px}.wl-team .wl-person,.wl-team td{border-bottom:2px solid var(--rule-strong)}.wl-team .wl-person-inner{padding-left:34px}.breakdown-group li{border-top:1px solid var(--rule);justify-content:space-between;gap:12px;padding:5px 0 5px 18px;font-size:13px;display:flex}.my-summary{margin-top:0}.group-row>td{border-bottom:1px solid var(--rule-strong);height:auto;padding:18px 10px 6px!important}.group-row .hint{margin-left:10px;display:inline}.group-row.is-overdue strong{color:var(--danger)}.my-sheet td.my-task{padding:6px 10px}.my-task .task-name{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.my-task .project-name{color:var(--text-muted);gap:5px;font-weight:400;text-decoration:none}.my-task .project-name:hover{color:var(--text)}.my-sheet td.nowrap{padding:6px 10px}.my-sheet td.num .sub{font-size:11.5px}.side-panel{top:var(--topbar);z-index:30;border-left:1px solid var(--rule-strong);background:var(--surface);align-content:start;gap:14px;width:min(380px,100vw);padding:18px 20px 28px;animation:.22s cubic-bezier(.22,1,.36,1) panel-in;display:grid;position:fixed;bottom:0;right:0;overflow-y:auto;box-shadow:-10px 0 30px oklch(25% .02 245/.08)}@keyframes panel-in{0%{opacity:0;transform:translate(24px)}}.side-panel-head{justify-content:space-between;align-items:center;display:flex}.side-panel-head .project-name{color:var(--text-muted);font-size:13px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent);margin:2px 0 0}.check .hint{display:block}.side-panel-stats{border-block:1px solid var(--rule);gap:28px;margin:0;padding:12px 0;display:flex}.side-panel-stats dt{color:var(--text-faint);font-size:12px}.side-panel-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.side-panel-title{margin:0 0 8px;font-size:13px;font-weight:600}.side-panel-tasks{margin:10px 0 0;padding:0;list-style:none}.side-panel-tasks li{border-bottom:1px solid var(--rule);justify-content:space-between;gap:12px;padding:6px 0;font-size:13px;display:flex}.side-panel-tasks .task-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.side-panel-task-meta{color:var(--text-muted);flex:none;gap:10px;display:flex}.side-panel>.button{justify-self:start;text-decoration:none}.popover{z-index:50;border:1px solid var(--rule-strong);background:var(--surface);max-width:min(480px,100vw - 16px);box-shadow:var(--shadow-pop);border-radius:8px;animation:.14s cubic-bezier(.22,1,.36,1) pop-in;position:fixed}@keyframes pop-in{0%{opacity:0;transform:translateY(-3px)}}.picker{outline:none;max-height:320px;padding:4px;overflow-y:auto}.picker-filter{border:0;border-bottom:1px solid var(--rule);width:100%;height:32px;color:var(--text);font:inherit;background:0 0;outline:none;margin-bottom:4px;padding:0 8px}.picker-option{cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:32px;padding:4px 8px;display:flex}.picker-option.is-highlighted{background:var(--surface-hover)}.picker-check{color:var(--accent);margin-left:auto}.picker-empty,.picker-hint{color:var(--text-faint);padding:6px 8px;font-size:12px}.name-note{gap:10px;width:460px;padding:14px;display:grid}.name-note .picker-hint{margin:0;padding:0}.menu [role=menu]{padding:4px}.menu-item,.menu-back{width:100%;min-height:32px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;padding:4px 10px;display:flex}.menu-item:hover,.menu-item:focus-visible,.menu-back:hover{background:var(--surface-hover);outline:none}.menu-item:disabled{color:var(--text-faint);cursor:default;background:0 0}.menu-item.is-danger{color:var(--danger)}.menu-back{color:var(--text-muted);font-size:12.5px}.menu-confirm{max-width:320px;padding:10px}.menu-confirm p{margin:0 0 12px;line-height:1.5}.menu-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.color-picker{padding:10px}.swatches{grid-template-columns:repeat(5,32px);gap:4px;display:grid}.swatch-button{border-radius:var(--radius);cursor:pointer;background:0 0;border:0;place-items:center;width:32px;height:32px;display:grid}.swatch-button:hover{background:var(--surface-hover)}.swatch-button.is-selected{box-shadow:inset 0 0 0 2px var(--text)}.custom-color{border-top:1px solid var(--rule);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;font-size:13px;display:flex}.custom-color input{background:0 0;border:0;width:40px;height:24px;padding:0}.toasts{z-index:60;gap:8px;display:grid;position:fixed;bottom:20px;left:20px}.toast{background:var(--surface-inverse);max-width:min(440px,100vw - 40px);color:var(--text-inverse);box-shadow:var(--shadow-pop);border-radius:8px;align-items:center;gap:12px;padding:10px 10px 10px 14px;animation:.2s cubic-bezier(.22,1,.36,1) toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast-error{background:var(--danger);color:var(--accent-text)}.toast-action{color:inherit;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 8px;font-weight:600;text-decoration:underline}.toast-close{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:18px;line-height:1}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}@media (width<=1000px){.brand{display:none}.nav{gap:16px}}@media (width<=1100px){.search-label,.search-button kbd{display:none}.search-button{padding:0 8px}}@media (width<=640px){.topbar{gap:16px;padding:0 16px}.identity-button:not(.is-prompt),.brand{display:none}:is(.main,.main:has(.page-wide)){padding:20px 16px 48px}.project-title h1,.project-title .cell-input{font-size:22px}}@page{size:A4 landscape;margin:10mm}@media print{:root,:root[data-theme=dark]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-sunken:#f3f5f8;--rule:#e2e5ea;--rule-strong:#c9ced6;--text:#1b1f24;--text-muted:#5f6873;--text-faint:#8a939d;--accent:#0d5a8b;--accent-text:#fff;--load-1:#cde2fb;--load-2:#86b6ef;--load-3:#2a78d6;--over-1:#f2a59d;--over-2:#dd5148;--over-3:#a8231c}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff}.topbar,.toasts,.side-panel,.rm-tip,.roadmap-page .toolbar>:not(.page-title),.roadmap-page>.hint{display:none!important}.main{padding:0!important}.roadmap-page .toolbar .page-title:after{content:" · printed " attr(data-printed);color:#5f6873;font-size:13px;font-weight:400}.rm-scroll{border:0;height:auto!important;overflow:visible!important}.rm-canvas{zoom:var(--print-scale,1)}.rm-head,.rm-label{position:static!important}.rm-corner{position:relative!important}.rm-lane,.rm-load-row{break-inside:avoid}}.task-name-wrap{align-items:stretch;display:flex}.task-name-wrap>.cell{flex:1;min-width:0}.subtask-slot{display:none}.sheet.has-subtasks .subtask-slot{flex:none;place-items:center;width:24px;display:grid}.task-row.is-parent .task-cell .task-name{font-weight:600}.task-row.is-subtask .task-cell{padding-left:26px}.task-row.is-subtask .task-cell:before{content:"";border-left:1px solid var(--rule-strong);position:absolute;top:0;bottom:0;left:12px}.task-row.is-subtask .drag-handle{width:16px}.add-sub-cell{padding-left:26px}.sheet.has-subtasks .add-sub-cell{padding-left:50px}.cell.is-derived{cursor:default}.phase-row .cell.is-derived{color:var(--text-muted)}.task-row.is-parent .num,.task-row.is-parent .is-derived{font-weight:500}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.import-page{max-width:880px}.import-intro{max-width:640px;color:var(--text-muted);margin:-8px 0 20px}.drop-zone{border:1.5px dashed var(--rule-strong);border-radius:var(--radius);background:var(--surface);text-align:center;cursor:pointer;place-items:center;gap:4px;padding:28px 16px;transition:background-color .12s ease-out,border-color .12s ease-out;display:grid}.drop-zone:hover,.drop-zone.is-over{border-color:var(--accent);background:var(--accent-soft)}.drop-zone:focus-within{outline:2px solid var(--focus);outline-offset:2px}.drop-zone.is-busy{cursor:progress}.drop-zone-title{font-weight:500}.import-error{margin-top:12px}.import-sheet{border-top:1px solid var(--rule-strong);margin-top:28px;padding-top:20px}.import-sheet.is-skipped .import-sheet-head h2,.import-sheet.is-skipped .import-summary{color:var(--text-faint)}.import-sheet-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 24px;margin-bottom:12px;display:flex}.import-sheet-head h2{margin:0 0 4px;font-size:18px;font-weight:600}.import-summary{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.import-target{min-width:240px}.import-replace{border-radius:var(--radius);background:var(--danger-soft);align-items:baseline;gap:8px;max-width:680px;margin:0 0 12px;padding:10px 12px;font-size:13.5px;display:flex}.import-phases{min-width:520px}.import-phases .num{text-align:right}.import-warnings{margin-top:14px}.import-warnings h3{color:var(--pri-medium);margin:0 0 6px;font-size:13px;font-weight:600}.import-warnings ul{color:var(--text-muted);margin:0 0 6px;padding-left:18px;font-size:13px}.import-warnings li+li{margin-top:3px}.import-people{border-top:1px solid var(--rule-strong);gap:8px;margin-top:28px;padding-top:20px;display:grid}.import-people p{margin:0}.import-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:24px;display:flex}.rm-row-labels{gap:0;padding:0}.rm-row-label{align-items:center;gap:6px;min-width:0;padding:0 12px 0 14px;font-size:13px;display:flex}.rm-row-label.is-project{justify-content:space-between}.rm-row-label.is-phase{padding-left:6px;font-weight:500}.rm-row-label.is-task{color:var(--text);padding-left:34px;font-size:12.5px}.rm-row-label.is-subtask{color:var(--text-muted);padding-left:48px;font-size:12px}.rm-row-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rm-row-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12px;font-weight:400}.rm-task{background:color-mix(in srgb, var(--bar) 42%, transparent);border-radius:3px;padding:0;overflow:hidden}.rm-task-progress{background:var(--bar);pointer-events:none;position:absolute;inset:0 auto 0 0}.rm-task.is-undated{border:1px dashed color-mix(in srgb, var(--bar) 80%, transparent);background:color-mix(in srgb, var(--bar) 14%, transparent)}.rm-task.is-undated .rm-task-progress{opacity:.6}.rm-task.is-in-tentative{background-image:repeating-linear-gradient(135deg, var(--hatch) 0 4px, transparent 4px 8px)}.rm-task.is-done{opacity:.55}.rm-task.is-static{cursor:pointer}.rm-task.is-summary{background:var(--bar);border:0;border-radius:1px;overflow:visible}.rm-task.is-summary:before,.rm-task.is-summary:after{content:"";border-top:5px solid var(--bar);position:absolute;top:100%}.rm-task.is-summary:before{border-right:5px solid #0000;left:0}.rm-task.is-summary:after{border-left:5px solid #0000;right:0}.rm-task .rm-edge{width:5px}.rm-task-people{max-width:260px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;align-items:center;font-size:11.5px;display:flex;position:absolute;overflow:hidden}.side-panel-path{color:var(--text-muted);margin:-6px 0 0;font-size:13px}.side-panel-description{color:var(--text-muted);white-space:pre-wrap;margin:0;font-size:13px}
