@layer tokens,base,layout,components,utilities;@layer tokens{:root{--n-0: #ffffff;--n-25: #fbfcfb;--n-50: #f5f7f6;--n-100: #edf0f0;--n-150: #e3e8e7;--n-200: #d7dddc;--n-300: #bcc5c4;--n-400: #97a2a2;--n-500: #657170;--n-600: #586462;--n-700: #404d4d;--n-800: #29383a;--n-900: #18262a;--n-950: #0e1a1d;--brand-50: #fdf1eb;--brand-100: #f9ddce;--brand-200: #f2bda2;--brand-300: #e69a75;--brand-400: #d46f45;--brand-500: #be451e;--brand-600: #a63a17;--brand-700: #862e12;--teal-50: #eaf2f4;--teal-100: #d0e1e5;--teal-200: #a9c7ce;--teal-300: #7aa9b5;--teal-400: #4d8595;--teal-500: #2e6070;--teal-600: #255060;--teal-700: #1c4150;--green-50: #e8f1ea;--green-100: #cfe2d5;--green-300: #7aab8c;--green-500: #3c7a54;--green-600: #316546;--amber-50: #faf0dd;--amber-100: #f2dfba;--amber-300: #cfa757;--amber-500: #a9761b;--amber-600: #8c6115;--red-50: #fbeae7;--red-100: #f4cec7;--red-300: #d98572;--red-500: #b4361f;--red-600: #982c18;--bg: var(--n-50);--bg-sunken: var(--n-100);--surface: var(--n-0);--surface-raised: var(--n-0);--surface-overlay: var(--n-0);--surface-hover: var(--n-50);--surface-active: var(--n-100);--surface-selected: var(--teal-50);--ink: var(--n-900);--ink-strong: var(--n-950);--muted: var(--n-500);--muted-strong: var(--n-600);--on-accent: var(--n-0);--rule: var(--n-200);--rule-soft: var(--n-150);--rule-strong: var(--n-300);--accent: var(--brand-500);--accent-hover: var(--brand-600);--accent-active: var(--brand-700);--accent-soft: var(--brand-50);--accent-ink: var(--brand-600);--link: var(--teal-500);--link-hover: var(--teal-600);--info-soft: var(--teal-50);--info-ink: var(--teal-600);--task: var(--green-500);--good: var(--green-500);--good-soft: var(--green-50);--good-ink: var(--green-600);--warn: var(--amber-500);--warn-soft: var(--amber-50);--warn-ink: var(--amber-600);--danger: var(--red-500);--danger-hover: var(--red-600);--danger-soft: var(--red-50);--danger-ink: var(--red-600);--not-started: var(--n-400);--track: var(--n-150);--row-hover: var(--n-50);--focus-ring: color-mix(in srgb, var(--teal-500) 55%, transparent);--backdrop: color-mix(in srgb, var(--n-950) 52%, transparent);--shadow-color: 210 18% 12%;--shadow-xs: 0 1px 2px hsl(var(--shadow-color) / .06);--shadow-sm: 0 1px 2px hsl(var(--shadow-color) / .06), 0 2px 5px -2px hsl(var(--shadow-color) / .08);--shadow-md: 0 2px 4px -2px hsl(var(--shadow-color) / .08), 0 6px 16px -6px hsl(var(--shadow-color) / .14);--shadow-lg: 0 4px 8px -4px hsl(var(--shadow-color) / .1), 0 16px 32px -12px hsl(var(--shadow-color) / .18);--shadow-xl: 0 8px 16px -8px hsl(var(--shadow-color) / .12), 0 32px 64px -20px hsl(var(--shadow-color) / .26);--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Archivo", "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-2xs: 10px;--text-xs: 11.5px;--text-sm: 12.5px;--text-base: 14px;--text-md: 15px;--text-lg: clamp(16px, .9rem + .4vw, 18px);--text-xl: clamp(18px, 1rem + .8vw, 22px);--text-2xl: clamp(21px, 1.15rem + 1.2vw, 27px);--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.55;--tracking-wide: .06em;--tracking-wider: .09em;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 10px;--sp-6: 12px;--sp-7: 16px;--sp-8: 20px;--sp-9: 24px;--sp-10: 32px;--sp-11: 40px;--sp-12: 56px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--dur-instant: 80ms;--dur-fast: .13s;--dur-base: .2s;--dur-slow: .32s;--dur-slower: .46s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--z-raised: 5;--z-sticky: 100;--z-drawer: 200;--z-backdrop: 300;--z-modal: 310;--z-popover: 400;--control-h: 32px;--control-h-sm: 26px;--control-h-lg: 38px;--tap-min: 32px;--shell-max: 1180px;--topbar-h: 54px;color-scheme:light;font-family:var(--font-sans)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: var(--n-950);--bg-sunken: #0a1416;--surface: #142225;--surface-raised: #182a2d;--surface-overlay: #1b2f33;--surface-hover: #1c3034;--surface-active: #21383c;--surface-selected: #1d3a42;--ink: #e6ecea;--ink-strong: #f4f8f6;--muted: #94a3a2;--muted-strong: #b3c0be;--on-accent: #22100a;--rule: #26383b;--rule-soft: #1e2f32;--rule-strong: #35494d;--accent: #e0673d;--accent-hover: #ea7a53;--accent-active: #f08c68;--accent-soft: #33201a;--accent-ink: #f0a184;--link: #7db9c9;--link-hover: #9bcdd9;--info-soft: #142b33;--info-ink: #9bcdd9;--task: #64b183;--good: #64b183;--good-soft: #14291e;--good-ink: #8fcba7;--warn: #d9a44f;--warn-soft: #2e2413;--warn-ink: #e8c383;--danger: #e06a52;--danger-hover: #ea8069;--danger-soft: #331a16;--danger-ink: #f0998a;--not-started: #5b6b6b;--track: #22363a;--row-hover: #1c3034;--focus-ring: color-mix(in srgb, #7db9c9 65%, transparent);--backdrop: color-mix(in srgb, #000000 68%, transparent);--shadow-color: 195 40% 3%;--shadow-xs: 0 1px 2px hsl(var(--shadow-color) / .4);--shadow-sm: 0 1px 2px hsl(var(--shadow-color) / .4), 0 2px 5px -2px hsl(var(--shadow-color) / .45);--shadow-md: 0 2px 4px -2px hsl(var(--shadow-color) / .45), 0 6px 16px -6px hsl(var(--shadow-color) / .6);--shadow-lg: 0 4px 8px -4px hsl(var(--shadow-color) / .5), 0 16px 32px -12px hsl(var(--shadow-color) / .65);--shadow-xl: 0 8px 16px -8px hsl(var(--shadow-color) / .55), 0 32px 64px -20px hsl(var(--shadow-color) / .7);color-scheme:dark}}:root[data-theme=dark]{--bg: var(--n-950);--bg-sunken: #0a1416;--surface: #142225;--surface-raised: #182a2d;--surface-overlay: #1b2f33;--surface-hover: #1c3034;--surface-active: #21383c;--surface-selected: #1d3a42;--ink: #e6ecea;--ink-strong: #f4f8f6;--muted: #94a3a2;--muted-strong: #b3c0be;--on-accent: #22100a;--rule: #26383b;--rule-soft: #1e2f32;--rule-strong: #35494d;--accent: #e0673d;--accent-hover: #ea7a53;--accent-active: #f08c68;--accent-soft: #33201a;--accent-ink: #f0a184;--link: #7db9c9;--link-hover: #9bcdd9;--info-soft: #142b33;--info-ink: #9bcdd9;--task: #64b183;--good: #64b183;--good-soft: #14291e;--good-ink: #8fcba7;--warn: #d9a44f;--warn-soft: #2e2413;--warn-ink: #e8c383;--danger: #e06a52;--danger-hover: #ea8069;--danger-soft: #331a16;--danger-ink: #f0998a;--not-started: #5b6b6b;--track: #22363a;--row-hover: #1c3034;--focus-ring: color-mix(in srgb, #7db9c9 65%, transparent);--backdrop: color-mix(in srgb, #000000 68%, transparent);--shadow-color: 195 40% 3%;--shadow-xs: 0 1px 2px hsl(var(--shadow-color) / .4);--shadow-sm: 0 1px 2px hsl(var(--shadow-color) / .4), 0 2px 5px -2px hsl(var(--shadow-color) / .45);--shadow-md: 0 2px 4px -2px hsl(var(--shadow-color) / .45), 0 6px 16px -6px hsl(var(--shadow-color) / .6);--shadow-lg: 0 4px 8px -4px hsl(var(--shadow-color) / .5), 0 16px 32px -12px hsl(var(--shadow-color) / .65);--shadow-xl: 0 8px 16px -8px hsl(var(--shadow-color) / .55), 0 32px 64px -20px hsl(var(--shadow-color) / .7);color-scheme:dark}@media (pointer: coarse){:root{--control-h: 40px;--control-h-sm: 34px;--control-h-lg: 46px;--tap-min: 44px}}}@layer base{*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--leading-tight);text-wrap:balance;color:var(--ink-strong);margin:0 0 var(--sp-4);letter-spacing:-.01em}h1{font-size:var(--text-2xl);font-weight:700}h2{font-size:var(--text-xl);font-weight:600}h3{font-size:var(--text-md);font-weight:600}h4{font-size:var(--text-base);font-weight:600}p{margin:0 0 var(--sp-5)}p:last-child{margin-bottom:0}a{color:var(--link);text-decoration-color:color-mix(in srgb,var(--link) 35%,transparent);text-underline-offset:2px;transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out)}a:hover{color:var(--link-hover);text-decoration-color:currentColor}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}::selection{background:color-mix(in srgb,var(--link) 26%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--rule-strong);border:3px solid transparent;background-clip:content-box;border-radius:var(--radius-full)}*::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}img,svg,video{max-width:100%;height:auto}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer layout{.shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.center{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--sp-9) var(--sp-7);padding-block-start:max(var(--sp-9),env(safe-area-inset-top));padding-block-end:max(var(--sp-9),env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-4);min-height:var(--topbar-h);padding:var(--sp-3) var(--sp-7);padding-inline:max(var(--sp-7),env(safe-area-inset-left)) max(var(--sp-7),env(safe-area-inset-right));background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);border-bottom:1px solid var(--rule);transition:box-shadow var(--dur-base) var(--ease-out)}.topbar.is-scrolled{box-shadow:var(--shadow-sm)}.topbar .brand{display:inline-flex;align-items:center;gap:var(--sp-4);font-family:var(--font-display);font-weight:700;font-size:var(--text-md);letter-spacing:-.015em;text-decoration:none;color:var(--ink-strong);white-space:nowrap;border-radius:var(--radius-sm);transition:opacity var(--dur-fast) var(--ease-out)}.topbar .brand:hover{opacity:.78}.nav{display:flex;align-items:center;gap:var(--sp-1)}.nav-link{position:relative;display:inline-flex;align-items:center;min-height:var(--tap-min);padding:var(--sp-3) var(--sp-5);border-radius:var(--radius-sm);color:var(--muted-strong);font-size:var(--text-sm);font-weight:500;text-decoration:none;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.nav-link:hover{color:var(--ink);background:var(--surface-hover)}.nav-link.is-active{color:var(--ink-strong)}.nav-link.is-active:after{content:"";position:absolute;left:var(--sp-5);right:var(--sp-5);bottom:2px;height:2px;border-radius:var(--radius-full);background:var(--accent);animation:nav-underline var(--dur-base) var(--ease-out)}@keyframes nav-underline{0%{transform:scaleX(.2);opacity:0}to{transform:scaleX(1);opacity:1}}.spacer{flex:1}.who{display:flex;align-items:center;gap:var(--sp-4);min-width:0}.who-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}.who-name{font-size:var(--text-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}.who-meta{font-size:var(--text-2xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}.avatar{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:var(--radius-full);background:linear-gradient(140deg,var(--teal-400),var(--teal-600));color:#fff;font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-drawer);background:var(--backdrop);animation:fade-in var(--dur-base) var(--ease-out)}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:calc(var(--z-drawer) + 1);width:min(320px,86vw);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-7);padding-block-start:max(var(--sp-7),env(safe-area-inset-top));padding-block-end:max(var(--sp-7),env(safe-area-inset-bottom));background:var(--surface-overlay);border-left:1px solid var(--rule);box-shadow:var(--shadow-xl);overflow-y:auto;overscroll-behavior:contain;animation:drawer-in var(--dur-slow) var(--ease-out)}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-bottom:var(--sp-5);margin-bottom:var(--sp-3);border-bottom:1px solid var(--rule)}.drawer .nav-link{justify-content:flex-start;width:100%;min-height:44px;padding:var(--sp-5) var(--sp-6);font-size:var(--text-md)}.drawer .nav-link.is-active{background:var(--surface-selected);color:var(--ink-strong)}.drawer .nav-link.is-active:after{left:auto;right:var(--sp-6);top:50%;bottom:auto;width:6px;height:6px;transform:translateY(-50%);border-radius:var(--radius-full);animation:none}.drawer-foot{margin-top:auto;padding-top:var(--sp-6);border-top:1px solid var(--rule);display:grid;gap:var(--sp-5)}main{flex:1;width:100%;max-width:var(--shell-max);margin-inline:auto;padding:var(--sp-9) var(--sp-7) var(--sp-12);padding-inline:max(var(--sp-7),env(safe-area-inset-left)) max(var(--sp-7),env(safe-area-inset-right))}.page{display:flex;flex-direction:column;gap:var(--sp-8);animation:page-in var(--dur-slow) var(--ease-out)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap}.page-head h1,.page-head h2{margin-bottom:var(--sp-2)}.split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--sp-8);align-items:start}.split.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width: 900px){.split,.split.even{grid-template-columns:minmax(0,1fr)}}.boot{display:grid;justify-items:center;gap:var(--sp-6);animation:fade-in var(--dur-slow) var(--ease-out)}.boot-mark{display:inline-flex;align-items:center;gap:var(--sp-4);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--ink-strong)}.boot-bar{position:relative;width:160px;height:3px;border-radius:var(--radius-full);background:var(--track);overflow:hidden}.boot-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:40%;border-radius:inherit;background:var(--accent);animation:boot-sweep 1.15s var(--ease-in-out) infinite}@keyframes boot-sweep{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (max-width: 860px){.topbar .nav,.topbar .who-text{display:none}.drawer .nav,.drawer .who-text{display:flex}}@media (max-width: 560px){:root{--topbar-h: 50px}.topbar{padding-inline:max(var(--sp-5),env(safe-area-inset-left)) max(var(--sp-5),env(safe-area-inset-right));gap:var(--sp-3)}main{padding:var(--sp-7) var(--sp-5) var(--sp-11);padding-inline:max(var(--sp-5),env(safe-area-inset-left)) max(var(--sp-5),env(safe-area-inset-right))}.page{gap:var(--sp-6)}}@media (max-height: 520px) and (orientation: landscape){:root{--topbar-h: 44px}.topbar{padding-block:var(--sp-2)}main{padding-block:var(--sp-6) var(--sp-9)}.page{gap:var(--sp-6)}.center{padding-block:var(--sp-6);align-items:start}}}@layer components{.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-lg);padding:var(--sp-8) var(--sp-8);box-shadow:var(--shadow-xs);transition:box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.card .card{background:var(--bg-sunken);box-shadow:none;border-radius:var(--radius-md);padding:var(--sp-6) var(--sp-7)}.card+.card{margin-top:var(--sp-6)}.card>h2:first-child,.card>h3:first-child{margin-top:0}.card>h2+.muted,.card>h3+.muted{margin-top:calc(var(--sp-2) * -1);max-width:78ch;font-size:var(--text-sm)}.login{width:min(400px,100%);box-shadow:var(--shadow-lg);animation:card-in var(--dur-slower) var(--ease-out)}.login button[type=submit],.login .sso-button{width:100%}@keyframes card-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.stage{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:var(--tracking-wide);text-transform:lowercase;background:var(--accent-soft);color:var(--accent-ink);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);padding:1px var(--sp-3);border-radius:var(--radius-full);vertical-align:middle}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);min-height:var(--control-h);padding:0 var(--sp-6);font:inherit;font-size:var(--text-sm);font-weight:500;line-height:1;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}button:hover,.btn:hover{background:var(--surface-hover);border-color:var(--muted)}button:active,.btn:active{transform:translateY(1px);background:var(--surface-active)}button:disabled,.btn:disabled,button[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none;background:var(--surface);border-color:var(--rule)}button[type=submit]:not(.ghost):not(.danger):not(.linkish),form button:not([type]):not(.ghost):not(.danger):not(.linkish):not(.icon-btn),.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-xs)}button[type=submit]:not(.ghost):not(.danger):not(.linkish):hover,form button:not([type]):not(.ghost):not(.danger):not(.linkish):not(.icon-btn):hover,.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent);box-shadow:var(--shadow-sm)}button[type=submit]:active,form button:not([type]):not(.ghost):not(.danger):not(.linkish):active,.btn-primary:active{background:var(--accent-active);border-color:var(--accent-active)}button[type=submit]:disabled,form button:not([type]):not(.ghost):not(.danger):not(.linkish):disabled,.btn-primary:disabled{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.seg button,.seg button:hover,.seg button:disabled{background:transparent;border-color:transparent;color:var(--muted-strong);box-shadow:none}.seg button:hover{background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink)}button.ghost,.btn-ghost{background:transparent;border-color:var(--rule-strong)}button.ghost:hover,.btn-ghost:hover{background:var(--surface-hover);border-color:var(--muted)}button.danger,.btn-danger{color:var(--danger-ink);background:transparent;border-color:transparent;padding-inline:var(--sp-4)}button.danger:hover,.btn-danger:hover{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 30%,transparent);color:var(--danger-ink)}button.linkish{min-height:auto;border:none;background:none;color:var(--link);padding:var(--sp-1) var(--sp-2);font-weight:500;text-align:left;white-space:normal}button.linkish:hover{background:transparent;color:var(--link-hover);text-decoration:underline;text-underline-offset:2px}button.linkish:active{transform:none}button.small,.btn-sm{min-height:var(--control-h-sm);padding-inline:var(--sp-4);font-size:var(--text-xs)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h-sm);min-width:var(--control-h-sm);padding:0 var(--sp-3);border:1px solid transparent;background:transparent;color:var(--muted);font-size:var(--text-sm);line-height:1;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.icon-btn:hover{color:var(--ink);background:var(--surface-hover);border-color:transparent}.seg{display:inline-flex;flex:none;padding:2px;gap:2px;background:var(--bg-sunken);border:1px solid var(--rule);border-radius:var(--radius-md)}.seg button{min-height:calc(var(--control-h) - 6px);padding:0 var(--sp-5);border:none;border-radius:var(--radius-xs);background:transparent;color:var(--muted-strong);font-size:var(--text-xs);font-weight:500;box-shadow:none}.seg button:hover{background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink);border-color:transparent}.seg button:active{transform:none}.seg button.sel{background:var(--surface);color:var(--ink-strong);box-shadow:var(--shadow-xs)}.seg button:disabled{opacity:.35;background:transparent}input,select,textarea{width:100%;min-height:var(--control-h);padding:var(--sp-3) var(--sp-5);font:inherit;font-size:var(--text-sm);color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}textarea{padding:var(--sp-4) var(--sp-5);line-height:var(--leading-snug);resize:vertical;min-height:calc(var(--control-h) * 2)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--link);box-shadow:0 0 0 3px var(--focus-ring)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input:disabled,select:disabled,textarea:disabled{background:var(--bg-sunken);color:var(--muted);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent);cursor:pointer}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--sp-9);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) calc(50% + 1px),calc(100% - 10px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}label{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-6);font-size:var(--text-xs);font-weight:500;color:var(--muted-strong);letter-spacing:.01em}label:last-child{margin-bottom:0}.row{display:flex;gap:var(--sp-4);align-items:center;margin:var(--sp-5) 0;flex-wrap:wrap}.row:last-child{margin-bottom:0}.row input,.row textarea{width:auto;flex:1 1 220px;min-width:0}.row select{width:auto;flex:0 1 auto;min-width:0;max-width:100%}.row button{flex:none}@media (max-width: 560px){.row{gap:var(--sp-3)}.row>input,.row>textarea,.row>select,.row>button{flex:1 1 100%;width:100%;max-width:none}}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:var(--text-xs);line-height:var(--leading-snug);margin:var(--sp-3) 0 0}.error,.success{display:flex;align-items:flex-start;gap:var(--sp-3);margin:var(--sp-5) 0;padding:var(--sp-4) var(--sp-5);font-size:var(--text-sm);border-radius:var(--radius-sm);border:1px solid transparent;animation:feedback-in var(--dur-base) var(--ease-out)}.error{color:var(--danger-ink);background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 22%,transparent)}.success{color:var(--good-ink);background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 22%,transparent)}@keyframes feedback-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.chip{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;letter-spacing:.02em;padding:2px var(--sp-4);border-radius:var(--radius-full);background:var(--bg-sunken);color:var(--muted-strong);border:1px solid var(--rule-soft);white-space:nowrap}.chip.warn{background:var(--warn-soft);color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 24%,transparent)}.chip.good{background:var(--good-soft);color:var(--good-ink);border-color:color-mix(in srgb,var(--good) 24%,transparent)}.chip.t-project{background:var(--info-soft);color:var(--info-ink);border-color:color-mix(in srgb,var(--link) 24%,transparent)}.chip.t-task{background:var(--good-soft);color:var(--good-ink);border-color:color-mix(in srgb,var(--good) 24%,transparent)}.chip.t-issue{background:var(--warn-soft);color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 24%,transparent)}.chip.removable{padding-right:var(--sp-2)}.chip.removable button{min-height:0;min-width:0;border:none;background:none;padding:0 var(--sp-1);margin:0;color:inherit;opacity:.65;font-size:var(--text-sm);line-height:1;border-radius:var(--radius-full)}.chip.removable button:hover{opacity:1;color:var(--danger-ink);background:transparent}.chips{margin-left:auto;display:flex;gap:var(--sp-3);flex:none}.tag{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--bg-sunken);border:1px solid var(--rule-soft);color:var(--ink);font-size:var(--text-xs);padding:2px var(--sp-2) 2px var(--sp-4);border-radius:var(--radius-full);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.tag:hover{border-color:var(--rule-strong)}.tag button{min-height:0;min-width:0;border:none;background:none;padding:0 var(--sp-2);margin:0;color:var(--muted);opacity:.7;font-size:var(--text-sm);line-height:1;border-radius:var(--radius-full)}.tag button:hover{opacity:1;color:var(--danger-ink);background:transparent}.tag-cell{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);max-width:220px}.tag-add{width:auto;max-width:150px;min-height:var(--control-h-sm);font-size:var(--text-xs);padding:0 var(--sp-5) 0 var(--sp-4);color:var(--muted);border:1px dashed var(--rule-strong);background:transparent;border-radius:var(--radius-full);background-image:none;text-overflow:ellipsis}.tag-add:hover,.tag-add:focus{color:var(--ink);border-color:var(--link);border-style:solid}.compact-tags{position:relative;display:inline-block}.compact-tags-trigger{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--control-h-sm);border:1px solid transparent;background:transparent;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-full);cursor:pointer}.compact-tags-trigger:hover{background:var(--surface-hover);border-color:transparent}.compact-tags-trigger .tag{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.compact-tags-pop{position:absolute;top:calc(100% + var(--sp-3));left:0;z-index:var(--z-popover);display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);min-width:190px;max-width:280px;padding:var(--sp-5);background:var(--surface-overlay);border:1px solid var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);transform-origin:top left;animation:pop-in var(--dur-fast) var(--ease-out)}.compact-tags-pop .tag{max-width:none}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.type-dot{display:inline-block;width:8px;height:8px;border-radius:var(--radius-full);flex:none;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 0%,transparent)}.type-dot.project{background:var(--link)}.type-dot.task{background:var(--task)}.type-dot.issue{background:var(--warn)}.legend{display:flex;align-items:center;gap:var(--sp-6);flex-wrap:wrap;font-size:var(--text-xs);color:var(--muted-strong)}.legend-item{display:inline-flex;align-items:center;gap:var(--sp-3);white-space:nowrap}.worklist{width:100%;border-collapse:collapse;margin:var(--sp-6) 0 0;font-size:var(--text-sm)}.worklist th{position:sticky;top:0;z-index:1;text-align:left;font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--muted);font-weight:500;padding:0 var(--sp-6) var(--sp-5) 0;background:var(--surface);border-bottom:1px solid var(--rule);white-space:nowrap}.worklist th.num{text-align:right}.worklist td{padding:var(--sp-6) var(--sp-6) var(--sp-6) 0;border-bottom:1px solid var(--rule-soft);vertical-align:middle}.worklist tr:last-child td{border-bottom:none}.worklist tbody tr{transition:background var(--dur-fast) var(--ease-out)}.worklist tbody tr:hover td{background:var(--row-hover)}.worklist .name-cell{display:flex;align-items:center;gap:var(--sp-4);min-width:0}.worklist a.name-link,.name-link{font-weight:500;color:var(--ink);text-decoration:none;border-radius:var(--radius-xs)}.worklist a.name-link:hover,.name-link:hover{color:var(--link)}.worklist .date{text-align:right;color:var(--muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.grid{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.grid th,.grid td{text-align:left;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--rule-soft)}.grid tr:last-child td{border-bottom:none}.grid th{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--muted);font-weight:500;white-space:nowrap;border-bottom-color:var(--rule)}.grid tbody tr{transition:background var(--dur-fast) var(--ease-out)}.grid tbody tr:hover td{background:var(--row-hover)}.worklist-scroll,.table-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin-inline:calc(var(--sp-2) * -1);padding-inline:var(--sp-2)}@supports (mask-image: linear-gradient(black,black)){.worklist-scroll,.table-scroll{mask-image:linear-gradient(to right,black calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to right,black calc(100% - 28px),transparent 100%)}.worklist-scroll:not(:has(>*)):where(*),.table-scroll:not(:has(>*)):where(*){-webkit-mask-image:none;mask-image:none}}.bar-cell{display:flex;align-items:center;gap:var(--sp-5);min-width:132px}.track{flex:1;height:6px;min-width:48px;border-radius:var(--radius-full);background:var(--track);overflow:hidden}.fill{height:100%;border-radius:var(--radius-full);transform-origin:left center;transition:width var(--dur-slower) var(--ease-out),background var(--dur-base) var(--ease-out)}@media (prefers-reduced-motion: no-preference){.fill{animation:bar-grow var(--dur-slower) var(--ease-out)}}@keyframes bar-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.pct{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--muted);width:34px;text-align:right;flex:none}@media (max-width: 640px){.worklist.stackable,.grid.stackable{display:block;margin-top:var(--sp-5)}.worklist.stackable thead,.grid.stackable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.worklist.stackable tbody,.grid.stackable tbody{display:flex;flex-direction:column;gap:var(--sp-5)}.worklist.stackable tr,.grid.stackable tr{display:grid;gap:var(--sp-3);padding:var(--sp-6);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.worklist.stackable td,.grid.stackable td{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-5);padding:0;border:none;min-width:0}.worklist.stackable td:before,.grid.stackable td:before{content:attr(data-label);flex:0 0 84px;font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--muted)}.worklist.stackable .bar-cell{flex:1 1 140px;min-width:120px}.worklist.stackable td[data-label=""],.grid.stackable td[data-label=""]{display:block;font-size:var(--text-md);padding-bottom:var(--sp-4);margin-bottom:var(--sp-2);border-bottom:1px solid var(--rule-soft)}.worklist.stackable td[data-label=""]:before,.grid.stackable td[data-label=""]:before{content:none}.worklist.stackable tbody tr:hover td,.grid.stackable tbody tr:hover td{background:transparent}.worklist.stackable .date{text-align:left}.worklist.stackable .truncate{max-width:100%}.worklist-scroll:has(>.worklist.stackable),.table-scroll:has(>.grid.stackable){overflow-x:visible;mask-image:none;-webkit-mask-image:none}}.truncate{display:inline-block;max-width:260px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}@media (hover: hover) and (pointer: fine){.truncate:hover{position:relative;z-index:var(--z-raised);max-width:none;overflow:visible;background:var(--surface-overlay);box-shadow:var(--shadow-md);border-radius:var(--radius-xs);padding:1px var(--sp-2);margin:-1px calc(var(--sp-2) * -1)}}.backlink{display:inline-flex;align-items:center;gap:var(--sp-3);align-self:flex-start;min-height:var(--tap-min);font-size:var(--text-sm);font-weight:500;color:var(--muted-strong);text-decoration:none}.backlink:hover{color:var(--link)}.backlink span{transition:transform var(--dur-fast) var(--ease-out)}.backlink:hover span{transform:translate(-3px)}.projectview{gap:var(--sp-6)}.list{list-style:none;padding:0;margin:var(--sp-6) 0 0}.list li{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--rule-soft);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out)}@media (max-width: 560px){.list li{flex-direction:column;align-items:flex-start;gap:var(--sp-3);padding-inline:var(--sp-4)}.list li .chips{margin-left:0;flex-wrap:wrap}}.list li:last-child{border-bottom:none}.list li:hover{background:var(--row-hover)}.list li>a{font-weight:500}.empty{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-7);text-align:center;color:var(--muted-strong);font-size:var(--text-sm);border:1px dashed var(--rule);border-radius:var(--radius-md);background:var(--bg-sunken)}.skeleton{position:relative;overflow:hidden;background:var(--track);border-radius:var(--radius-sm);min-height:12px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 70%,transparent),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-rows{display:grid;gap:var(--sp-5);margin-top:var(--sp-6)}.skeleton-rows .skeleton:nth-child(1){width:92%}.skeleton-rows .skeleton:nth-child(2){width:78%}.skeleton-rows .skeleton:nth-child(3){width:85%}.impersonation-banner{display:flex;align-items:center;justify-content:center;gap:var(--sp-5);flex-wrap:wrap;padding:var(--sp-4) var(--sp-7);padding-block-start:max(var(--sp-4),env(safe-area-inset-top));background:linear-gradient(90deg,color-mix(in srgb,var(--amber-600) 84%,#000),var(--amber-600));color:#fff;font-size:var(--text-sm);text-align:center}.impersonation-banner .error{color:#fff;background:color-mix(in srgb,#000 22%,transparent);border-color:transparent;font-weight:600;margin:0;padding:var(--sp-2) var(--sp-4)}.impersonation-banner button{background:color-mix(in srgb,#fff 16%,transparent);border-color:color-mix(in srgb,#fff 55%,transparent);color:#fff}.impersonation-banner button:hover{background:color-mix(in srgb,#fff 26%,transparent);border-color:#fff;color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-backdrop);background:var(--backdrop);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:flex-start;padding:var(--sp-11) var(--sp-7);overflow-y:auto;overscroll-behavior:contain;animation:fade-in var(--dur-base) var(--ease-out)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-panel{position:relative;z-index:var(--z-modal);width:min(660px,100%);background:var(--bg);border:1px solid var(--rule);border-radius:var(--radius-xl);padding:var(--sp-9);box-shadow:var(--shadow-xl);animation:modal-in var(--dur-slow) var(--ease-spring)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-panel>.card:not(:last-child){margin-bottom:var(--sp-6)}.modal-close{position:absolute;top:var(--sp-5);right:var(--sp-5);z-index:1;min-height:var(--tap-min);min-width:var(--tap-min);border:none;background:transparent;color:var(--muted);font-size:var(--text-md);line-height:1;border-radius:var(--radius-sm)}.modal-close:hover{color:var(--ink);background:var(--surface-hover);border-color:transparent}@media (max-width: 640px){.modal-backdrop{padding:0;align-items:flex-end}.modal-panel{width:100%;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--sp-8) var(--sp-7);padding-bottom:max(var(--sp-8),env(safe-area-inset-bottom));animation:sheet-in var(--dur-slow) var(--ease-out)}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-height: 520px) and (orientation: landscape){.modal-backdrop{align-items:stretch}.modal-panel{max-height:100dvh;border-radius:0}}}.notes-indicator{position:relative;display:inline-flex}.notes-indicator .icon-btn.has-notes{color:var(--link)}.notes-pop{display:none;position:absolute;top:calc(100% + var(--sp-3));right:0;z-index:var(--z-popover);width:max(230px,100%);max-width:300px;max-height:240px;overflow-y:auto;background:var(--surface-overlay);border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--sp-5) var(--sp-6);box-shadow:var(--shadow-lg);font-size:var(--text-sm);text-align:left;white-space:normal}.notes-indicator:hover .notes-pop,.notes-indicator:focus-within .notes-pop{display:block;animation:pop-in var(--dur-fast) var(--ease-out)}.notes-pop .note-entry+.note-entry{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--rule-soft)}.notes-pop time{display:block;color:var(--muted);font-size:var(--text-2xs);margin-top:var(--sp-1)}.notes{list-style:none;padding:0;margin:0 0 var(--sp-4)}.notes li{display:flex;justify-content:space-between;gap:var(--sp-5);padding:var(--sp-3) 0;border-bottom:1px solid var(--rule-soft);font-size:var(--text-sm)}.notes time{color:var(--muted);font-size:var(--text-xs);white-space:nowrap}.tree-table tbody tr{cursor:pointer}@media (max-width: 640px){.tree-table.stackable tr{margin-left:min(calc(var(--depth, 0) * 14px),42%)}.tree-table.stackable .name-cell{padding-left:0!important}.tree-table.stackable .rowacts{opacity:1}.tree-table.stackable tr.quickadd{background:transparent;border-style:dashed;box-shadow:none}}.tree-table tr.sel td{background:var(--surface-selected)}.tree-table tr.sel td:first-child{box-shadow:inset 2px 0 0 var(--link)}.tree-table .rowacts{display:flex;gap:var(--sp-2);opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}.tree-table tr:hover .rowacts,.tree-table tr.sel .rowacts,.tree-table tr:focus-within .rowacts{opacity:1}@media (hover: none){.tree-table .rowacts{opacity:1}}.date-inline{width:auto;min-width:116px;min-height:var(--control-h-sm);padding:var(--sp-1) var(--sp-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);border-color:transparent;background:transparent}.date-inline:hover:not(:disabled),.date-inline:focus{color:var(--ink);border-color:var(--rule-strong);background:var(--surface)}.date-inline:disabled{opacity:.55;cursor:not-allowed;background:transparent}.tree-table tr.quickadd{cursor:default}.tree-table tr.quickadd:hover td{background:transparent}.quickadd-row{display:flex;align-items:center;gap:var(--sp-3);border-left:2px dashed var(--rule-strong);padding:var(--sp-2) 0 var(--sp-2) var(--sp-5);opacity:.75;transition:opacity var(--dur-fast) var(--ease-out)}.quickadd-row:hover,.quickadd-row:focus-within{opacity:1}.quickadd-input{flex:1 1 auto;width:auto;min-width:120px;border:none;background:transparent;padding:var(--sp-2);font-size:var(--text-sm);color:var(--ink)}.quickadd-input:focus{outline:none;box-shadow:none;border-color:transparent}.quickadd-submit{flex:none;min-height:var(--control-h-sm);padding:0 var(--sp-5);font-size:var(--text-sm);color:var(--muted)}.draft-tree{list-style:none;padding:0;margin:0}.draft-tree li{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;font-size:var(--text-sm);flex-wrap:wrap;border-bottom:1px solid var(--rule-soft)}.draft-tree li:last-child{border-bottom:none}.draft-edit-title{flex:1 1 160px;width:auto;min-width:100px}.group-block{border:1px solid var(--rule);border-radius:var(--radius-md);padding:var(--sp-6) var(--sp-7);margin-top:var(--sp-5);background:var(--bg-sunken);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.group-block:hover{border-color:var(--rule-strong);box-shadow:var(--shadow-xs)}.group-block:first-child{margin-top:0}.group-block .name{font-family:var(--font-display);font-weight:600;font-size:var(--text-base)}.group-members{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-4) 0}.invite-form{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;margin:var(--sp-6) 0 0}.invite-form input{flex:1 1 200px;min-width:0}.invite-form select{flex:0 0 auto;width:auto}.invite-form button{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.invite-form button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}table.grid.people td{vertical-align:top}table.grid.people select{min-width:148px;width:auto}table.grid.people .chips{margin-left:0;flex-wrap:wrap}.group-editor{background:var(--bg-sunken)}.group-editor .chips{margin:0 0 var(--sp-4);flex-wrap:wrap}.checkbox-chip{display:inline-flex;align-items:center;gap:var(--sp-3);font-size:var(--text-sm);min-height:var(--control-h-sm);border:1px solid var(--rule-strong);border-radius:var(--radius-full);padding:var(--sp-1) var(--sp-5) var(--sp-1) var(--sp-4);background:var(--surface);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.checkbox-chip:hover{border-color:var(--link);background:var(--surface-hover)}.checkbox-chip:has(input:checked){border-color:var(--link);background:var(--info-soft);color:var(--info-ink)}.checkbox-chip input{width:auto;margin:0}.auth-card{width:min(460px,100%);text-align:left}.auth-badge{display:inline-block;margin-bottom:var(--sp-5);padding:2px var(--sp-5);border-radius:var(--radius-full);background:var(--info-soft);color:var(--info-ink);border:1px solid color-mix(in srgb,var(--link) 24%,transparent);font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.auth-badge.warn{background:var(--warn-soft);color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 24%,transparent)}.steps{list-style:none;counter-reset:step;padding:0;margin:var(--sp-7) 0;display:grid;gap:var(--sp-7)}.step{counter-increment:step;display:grid;grid-template-columns:26px minmax(0,1fr);gap:var(--sp-5);align-items:start}.step:before{content:counter(step);display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-full);background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600}.step-body{min-width:0}.step-body h3{margin-bottom:var(--sp-2);font-size:var(--text-base)}.step-body>.hint{margin-top:0;margin-bottom:var(--sp-5)}.qr-frame{display:inline-grid;place-items:center;padding:var(--sp-5);background:#fff;border:1px solid var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.qr-frame img{display:block;border-radius:var(--radius-xs)}.manual-key{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-5);padding:var(--sp-4) var(--sp-5);background:var(--bg-sunken);border:1px solid var(--rule-soft);border-radius:var(--radius-sm)}.manual-key code{font-size:var(--text-xs);word-break:break-all;min-width:0;flex:1;color:var(--ink)}.otp-input{width:100%;max-width:260px;min-height:var(--control-h-lg);font-family:var(--font-mono);font-size:var(--text-xl);font-weight:600;letter-spacing:.34em;text-indent:.34em;text-align:center;font-variant-numeric:tabular-nums}.codes-grid{list-style:none;counter-reset:rc;padding:var(--sp-5);margin:var(--sp-6) 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:var(--sp-3) var(--sp-5);background:var(--bg-sunken);border:1px solid var(--rule);border-radius:var(--radius-md)}.codes-grid li{counter-increment:rc;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);letter-spacing:.04em}.codes-grid li:before{content:counter(rc) ".";margin-right:var(--sp-3);color:var(--muted);font-size:var(--text-2xs)}.sso-button{display:flex;align-items:center;justify-content:center;min-height:var(--control-h-lg);text-align:center;text-decoration:none;margin:var(--sp-5) 0 0;padding:var(--sp-4) var(--sp-6);border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);font-size:var(--text-sm);font-weight:600;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.sso-button:hover{opacity:.88;color:var(--bg)}.sso-button:active{transform:translateY(1px)}.or-rule{display:flex;align-items:center;gap:var(--sp-5);margin:var(--sp-7) 0 var(--sp-3);color:var(--muted);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.or-rule:before,.or-rule:after{content:"";flex:1;height:1px;background:var(--rule)}.report-views{flex-wrap:wrap;max-width:100%}.report-views button{flex:1 1 auto}.filter-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-7);margin-top:var(--sp-7);padding:var(--sp-7);background:var(--bg-sunken);border:1px solid var(--rule);border-radius:var(--radius-md);animation:filter-in var(--dur-base) var(--ease-out)}@keyframes filter-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.filter-group{min-width:0}.filter-group h4{margin-bottom:var(--sp-4);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--muted-strong)}.filter-group label{margin-bottom:var(--sp-4)}.filter-chips{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.filter-chips .checkbox-chip{text-transform:capitalize}.filter-field{margin-bottom:var(--sp-5)}.filter-label{display:block;margin-bottom:var(--sp-2);font-size:var(--text-xs);font-weight:500;color:var(--muted-strong)}.filter-field input{min-width:0}.filter-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;padding-top:var(--sp-5);border-top:1px solid var(--rule)}.th-sort{min-height:0;padding:0;border:none;background:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.th-sort:hover{background:none;border-color:transparent;color:var(--ink)}.th-sort:active{transform:none}.report-table td{padding-block:var(--sp-5)}.report-table .num-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.slip-late{color:var(--danger-ink);font-weight:600}.slip-ok{color:var(--muted)}@media (max-width: 640px){.report-table .num-cell{text-align:left}.filter-panel{padding:var(--sp-6);gap:var(--sp-6)}}.gantt-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--surface);padding:var(--sp-7);margin-top:var(--sp-5)}.gantt-scroll.gantt-scroll--clip{overflow-x:hidden}.gantt-ruler{position:relative;height:22px;border-bottom:1px solid var(--rule);margin-bottom:var(--sp-3)}.gantt-tick{position:absolute;top:0;padding-left:var(--sp-2);border-left:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--muted);white-space:nowrap}.gantt-tick.major{color:var(--ink);font-weight:600;border-left-color:var(--rule-strong)}.gantt-zoom button:disabled{opacity:.35;cursor:default}.gantt-zoom button:first-child,.gantt-zoom button:last-child{font-family:var(--font-mono);padding-inline:var(--sp-4)}.gantt-today{position:absolute;top:0;bottom:0;border-left:1.5px dashed var(--accent);pointer-events:none}.gantt-row{position:relative;height:26px}.gantt-row+.gantt-row{border-top:1px solid color-mix(in srgb,var(--rule-soft) 60%,transparent)}.gantt-bar{position:absolute;top:5px;height:16px;border-radius:var(--radius-xs);opacity:.88;transition:opacity var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out)}.gantt-bar.type-project{background:linear-gradient(180deg,var(--teal-400),var(--teal-500))}.gantt-bar.type-task{background:linear-gradient(180deg,var(--green-300),var(--green-500))}.gantt-bar.type-issue{background:linear-gradient(180deg,var(--amber-300),var(--amber-500))}.gantt-bar.critical{background:linear-gradient(180deg,var(--brand-400),var(--brand-500));opacity:1}.gantt-bar.draggable,.gantt-milestone.draggable{cursor:grab;touch-action:none}.gantt-bar.draggable:hover{opacity:1;filter:brightness(1.06);box-shadow:0 0 0 1px var(--ink),var(--shadow-sm)}.gantt-bar.dragging{cursor:grabbing;opacity:1;box-shadow:0 0 0 2px var(--ink),var(--shadow-md);z-index:3}.gantt-bar.saving{opacity:.5;cursor:progress}.gantt-bar.just-moved{box-shadow:0 0 0 2px var(--good);opacity:1}@media (prefers-reduced-motion: no-preference){.gantt-bar.just-moved{animation:gantt-settle var(--dur-slower) var(--ease-out)}}@keyframes gantt-settle{0%{box-shadow:0 0 0 7px color-mix(in srgb,var(--good) 35%,transparent)}to{box-shadow:0 0 0 2px var(--good)}}.gantt-handle{position:absolute;right:-3px;top:-3px;bottom:-3px;width:12px;cursor:ew-resize;touch-action:none;border-radius:0 var(--radius-xs) var(--radius-xs) 0;transition:background var(--dur-fast) var(--ease-out)}.gantt-bar.draggable:hover .gantt-handle{background:color-mix(in srgb,#fff 55%,transparent)}@media (pointer: coarse){.gantt-handle{width:18px;right:-5px}.gantt-row{height:30px}.gantt-bar{height:18px}}.gantt-drag-readout{position:absolute;top:3px;font-family:var(--font-mono);font-size:var(--text-xs);background:var(--ink);color:var(--bg);padding:1px var(--sp-4);border-radius:var(--radius-xs);white-space:nowrap;pointer-events:none;z-index:4;box-shadow:var(--shadow-sm)}.gantt-milestone{position:absolute;top:6px;width:12px;height:12px;background:var(--ink);border-radius:2px;transform:rotate(45deg);transition:box-shadow var(--dur-fast) var(--ease-out)}.gantt-milestone.critical{background:var(--accent)}.gantt-bar-label{position:absolute;left:100%;margin-left:var(--sp-3);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--muted);white-space:nowrap;pointer-events:none}.gantt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}.gantt-status{font-size:var(--text-xs);color:var(--muted);min-width:0}@media (max-width: 560px){.gantt-scroll{padding:var(--sp-5)}.gantt-toolbar{gap:var(--sp-4)}.gantt-toolbar .seg{width:100%;justify-content:space-between;overflow-x:auto}}@media (pointer: coarse){.icon-btn,.seg button,.compact-tags-trigger,.tag button,.chip.removable button,button.danger,button.linkish{position:relative}.icon-btn:after,.seg button:after,.compact-tags-trigger:after,.tag button:after,.chip.removable button:after,.modal-close:after,button.danger:after,button.linkish:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,var(--tap-min));height:max(100%,var(--tap-min));background:transparent}.tag-add,.date-inline{min-height:var(--tap-min)}.name-link,.worklist a,.list li>a{display:inline-block;padding-block:var(--sp-3)}}}@layer utilities{.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.small{font-size:var(--text-xs)}.nowrap{white-space:nowrap}.stack{display:grid;gap:var(--sp-5)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4)}.grow{flex:1;min-width:0}.full{width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.scroll-locked{overflow:hidden;touch-action:none}@media (max-width: 860px){.nav-signout{display:none}}@media (min-width: 861px){.nav-toggle{display:none}}}
