@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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: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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--c-bg-0: oklch(.15 .008 255);--c-bg-1: oklch(.18 .008 255);--c-surface-1: oklch(.205 .009 255);--c-surface-2: oklch(.235 .01 255);--c-surface-3: oklch(.275 .011 255);--c-border: rgba(255, 255, 255, .08);--c-border-strong: rgba(255, 255, 255, .14);--c-border-accent: color-mix(in oklch, var(--accent) 55%, transparent);--c-ink: oklch(.97 .004 255);--c-ink-muted: oklch(.74 .007 255);--c-ink-subtle: oklch(.56 .007 255);--c-ink-faint: oklch(.44 .007 255);--accent: #fc4c02;--accent-hover: color-mix(in oklch, var(--accent) 88%, white);--accent-press: color-mix(in oklch, var(--accent) 90%, black);--accent-ink: oklch(.16 .02 50);--accent-tint: color-mix(in oklch, var(--accent) 14%, var(--c-surface-1));--accent-glow: color-mix(in oklch, var(--accent) 30%, transparent);--c-success: oklch(.74 .15 150);--c-warn: oklch(.8 .14 80);--c-danger: oklch(.66 .2 25);--c-info: oklch(.72 .1 230);--font-display: "Barlow Condensed", "Arial Narrow", sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Code", monospace;--num: "tnum" 1, "lnum" 1;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .875rem;--fs-lg: 1rem;--fs-xl: 1.25rem;--fs-2xl: 1.75rem;--fs-3xl: 2.5rem;--fs-4xl: 3.5rem;--lh-tight: 1.05;--lh-snug: 1.25;--lh-normal: 1.5;--tracking-display: -.01em;--tracking-caps: .08em;--sp-0: 0;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4rem;--r-sharp: 0;--r-xs: 2px;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--r-pill: 9999px;--shadow-1: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 1px 2px rgba(0, 0, 0, .25);--shadow-2: 0 2px 8px rgba(0, 0, 0, .35), 0 1px 0 rgba(255, 255, 255, .04) inset;--shadow-pop: 0 8px 28px rgba(0, 0, 0, .45);--dur-micro: .14s;--dur-std: .24s;--dur-slow: .32s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-settle: cubic-bezier(.16, 1, .3, 1);--sidebar-w: 264px;--header-h: 56px;--content-max: 1200px}@media (prefers-reduced-motion: reduce){:root{--dur-micro: 0ms;--dur-std: 0ms;--dur-slow: 0ms}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--c-bg-0);color:var(--c-ink);font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-normal);font-feature-settings:var(--num);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-user-select:none;user-select:none;cursor:default;overflow:hidden}input,textarea,[contenteditable],[data-selectable]{-webkit-user-select:text;user-select:text}h1,h2,h3,.display{font-family:var(--font-display);font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--tracking-display)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:var(--accent);text-decoration:none}.tnum{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:var(--num)}.overline{font-family:var(--font-body);font-size:var(--fs-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-ink-subtle)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--c-surface-3);border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#34383e;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}::selection{background:var(--accent-glow);color:var(--c-ink)}@keyframes settle-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.settle{animation:settle-in var(--dur-slow) var(--ease-settle) both}.app{display:flex;flex-direction:column;height:100%;background:radial-gradient(120% 80% at 100% 0%,color-mix(in oklch,var(--accent) 6%,transparent),transparent 60%),var(--c-bg-0)}.app__bar{height:var(--header-h);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-5);border-bottom:1px solid var(--c-border);background:color-mix(in oklch,var(--c-bg-1) 70%,transparent)}.app__brand{display:flex;align-items:baseline;gap:var(--sp-2)}.app__mark{align-self:center;width:12px;height:12px;background:var(--accent);border-radius:var(--r-xs);box-shadow:0 0 14px var(--accent-glow)}.app__wordmark{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);letter-spacing:.04em}.app__version{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.env-badge{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--c-ink-subtle);padding:var(--sp-1) var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-pill)}.env-badge__dot{width:7px;height:7px;border-radius:var(--r-pill)}.env-badge__dot[data-env=native]{background:var(--c-success)}.env-badge__dot[data-env=web]{background:var(--c-warn)}.app__main{flex:1;overflow-y:auto;overflow-x:hidden}.app__fatal{max-width:520px;margin:var(--sp-8) auto;padding:var(--sp-5);border:1px solid var(--c-border-strong);border-left:3px solid var(--c-danger);border-radius:var(--r-md);background:var(--c-surface-1)}.app__fatal h2{margin-bottom:var(--sp-2)}.app__fatal p{color:var(--c-ink-muted);font-family:var(--font-mono);font-size:var(--fs-sm)}.dash{max-width:var(--content-max);margin:0 auto;padding:var(--sp-7) var(--sp-6) var(--sp-8)}.dash__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5)}.dash__title h1{font-size:var(--fs-3xl);margin-top:var(--sp-1)}.dash__stats{display:flex;gap:var(--sp-6);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-6);border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface-1)}.stat{display:flex;flex-direction:column;gap:2px}.stat__value{font-family:var(--font-display);font-weight:700;font-size:var(--fs-2xl);line-height:1}.stat[data-accent] .stat__value{color:var(--accent)}.stat__label{color:var(--c-ink-subtle)}.dash__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:var(--sp-4)}.card{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-5);background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;transition:background var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.card:hover,.card:focus-visible{background:var(--c-surface-2);border-color:var(--c-border-strong);transform:translateY(-2px)}.card:focus-visible{outline:none;border-color:var(--c-border-accent)}.card__stripe{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.card__top{display:flex;align-items:center;justify-content:space-between}.card__emoji{font-size:var(--fs-xl);line-height:1}.card__name{font-size:var(--fs-xl);letter-spacing:0}.card__tagline{color:var(--c-ink-muted);font-size:var(--fs-sm);line-height:var(--lh-snug);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}.card__tagline--empty{color:var(--c-ink-faint);font-style:italic}.card__progress{margin-top:auto;display:flex;flex-direction:column;gap:var(--sp-2)}.card__progress-head{display:flex;align-items:baseline;justify-content:space-between}.card__pct{font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg)}.card__tasks{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.bar{height:6px;border-radius:var(--r-pill);background:var(--c-surface-3);overflow:hidden}.bar__fill{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width var(--dur-std) var(--ease-settle)}.badge{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--c-border);color:var(--c-ink-muted);background:var(--c-surface-2);white-space:nowrap}.badge--idea{color:var(--c-info);border-color:color-mix(in oklch,var(--c-info) 35%,transparent)}.badge--planning{color:var(--c-warn);border-color:color-mix(in oklch,var(--c-warn) 35%,transparent)}.badge--building{color:var(--accent);border-color:var(--c-border-accent)}.badge--live{color:var(--c-success);border-color:color-mix(in oklch,var(--c-success) 35%,transparent)}.badge--archived{color:var(--c-ink-faint)}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-md);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface-2);color:var(--c-ink);transition:background var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.btn:hover{background:var(--c-surface-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn__plus{font-size:1.15em;line-height:1;margin-top:-1px}.btn--accent{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn--accent:hover{background:var(--accent-hover)}.btn--accent:active{background:var(--accent-press)}.btn--ghost{background:transparent;border-color:var(--c-border)}.btn--ghost:hover{background:var(--c-surface-1)}.empty{position:relative;display:grid;place-items:center;text-align:center;min-height:340px;border:1px dashed var(--c-border-strong);border-radius:var(--r-lg);overflow:hidden;background:var(--c-bg-1)}.empty__grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--c-border) 1px,transparent 1px),linear-gradient(90deg,var(--c-border) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(60% 60% at 50% 45%,black,transparent);mask-image:radial-gradient(60% 60% at 50% 45%,black,transparent);opacity:.5}.empty__body{position:relative;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-5)}.empty__body h2{font-size:var(--fs-2xl)}.empty__body p{color:var(--c-ink-muted)}.empty__body .btn{margin-top:var(--sp-2)}@keyframes shimmer{0%{opacity:.5}50%{opacity:.85}to{opacity:.5}}.card--skeleton{pointer-events:none}.sk{display:block;background:var(--c-surface-3);border-radius:var(--r-sm);animation:shimmer 1.4s var(--ease-out) infinite}.sk--row{display:flex;justify-content:space-between;background:none;animation:none}.sk--emoji{width:24px;height:24px;border-radius:var(--r-sm)}.sk--badge{width:56px;height:18px;border-radius:var(--r-sm)}.sk--title{width:70%;height:22px}.sk--line{width:90%;height:13px}.sk--bar{width:100%;height:6px;margin-top:var(--sp-3);border-radius:var(--r-pill)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:var(--sp-5);background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:settle-in var(--dur-std) var(--ease-out) both}.dialog{width:100%;max-width:460px;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);background:var(--c-surface-1);border:1px solid var(--c-border-strong);border-top:3px solid var(--accent);border-radius:var(--r-lg);box-shadow:var(--shadow-pop)}.dialog__head h2{font-size:var(--fs-2xl);margin-top:2px}.dialog__foot{display:flex;justify-content:flex-end;gap:var(--sp-3);margin-top:var(--sp-2)}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field-row{display:flex;gap:var(--sp-4)}.field-row .field{flex:1}.field--status{max-width:150px}.field__label{font-size:var(--fs-xs);font-weight:600;color:var(--c-ink-subtle);letter-spacing:.02em}.input{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-sm);color:var(--c-ink);transition:border-color var(--dur-micro) var(--ease-out)}.input:focus{outline:none;border-color:var(--c-border-accent)}select.input{cursor:pointer}.auth{min-height:100vh;display:grid;place-items:center;padding:var(--sp-5);background:var(--c-bg-0)}.auth__card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);border:1px solid var(--c-border-strong);border-top:3px solid var(--accent);border-radius:var(--r-lg);background:var(--c-surface-1)}.auth__brand{display:flex;align-items:center;gap:var(--sp-2)}.auth__lead{font-size:var(--fs-sm)}.auth__form{display:flex;flex-direction:column;gap:var(--sp-3)}.auth__submit{width:100%;justify-content:center;min-height:44px}.auth__toggle{font-size:var(--fs-sm);color:var(--accent);text-align:center;min-height:44px}.auth__error{color:var(--c-danger);font-size:var(--fs-sm)}.auth__info{color:var(--c-info);font-size:var(--fs-sm)}.app__bar-left{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.app__menu-btn{display:none;min-width:44px;min-height:44px;font-size:var(--fs-xl);border-radius:var(--r-sm)}.app__menu-btn:hover{background:var(--c-surface-1)}.topnav__item--mobile-only{display:none}.topnav__item--desktop-only{display:inline-flex}.env-badge__dot[data-env=cloud]{background:var(--c-info)}@media (max-width: 768px){.app__bar{flex-wrap:wrap;height:auto;min-height:var(--header-h);padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}.app__menu-btn{display:inline-flex;align-items:center;justify-content:center}.app__wordmark{font-size:var(--fs-lg)}.app__version{display:none}.topnav{display:none;order:3;width:100%;flex-direction:column;margin-left:0;padding:var(--sp-2);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface-1)}.topnav--open{display:flex}.topnav__item{min-height:44px;display:flex;align-items:center;padding:var(--sp-2) var(--sp-3)}.topnav__item--mobile-only{display:flex}.topnav__item--desktop-only{display:none}.app__bar-right{margin-left:auto}.env-badge{font-size:.625rem;padding:var(--sp-1) var(--sp-2)}.dash{padding:var(--sp-5) var(--sp-4) var(--sp-6)}.dash__head{flex-direction:column;align-items:stretch}.dash__stats{flex-wrap:wrap;gap:var(--sp-4)}.dash__grid{grid-template-columns:1fr}.dialog{max-width:none}.field-row{flex-direction:column}.btn{min-height:44px}}.emoji-pick{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.emoji-pick__opt{width:34px;height:34px;font-size:var(--fs-lg);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-bg-1);display:grid;place-items:center;transition:border-color var(--dur-micro),background var(--dur-micro)}.emoji-pick__opt:hover{background:var(--c-surface-2)}.emoji-pick__opt[data-active]{border-color:var(--accent);background:var(--accent-tint)}.accent-pick{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.accent-pick__swatch{width:28px;height:28px;border-radius:var(--r-sm);border:2px solid transparent;box-shadow:0 0 0 1px var(--c-border)}.accent-pick__swatch[data-active]{border-color:var(--c-ink);box-shadow:0 0 0 1px var(--c-ink)}.accent-pick__custom{display:inline-flex;align-items:center;gap:var(--sp-2);margin-left:auto;font-size:var(--fs-xs);color:var(--c-ink-subtle);cursor:pointer}.accent-pick__custom input[type=color]{width:28px;height:28px;padding:0;border:1px solid var(--c-border);border-radius:var(--r-sm);background:none;cursor:pointer}.topnav{display:flex;gap:var(--sp-1);margin-left:var(--sp-5)}.app__bar-right{display:flex;align-items:center;gap:var(--sp-3);margin-left:auto}.topnav__item{font-size:var(--fs-sm);font-weight:600;color:var(--c-ink-subtle);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);transition:color var(--dur-micro),background var(--dur-micro)}.topnav__item:hover{color:var(--c-ink);background:var(--c-surface-1)}.topnav__item[data-active]{color:var(--c-ink);background:var(--c-surface-2)}.ws{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100%;overflow:hidden}.ws__main{overflow-y:auto;padding:var(--sp-6) var(--sp-6) var(--sp-8)}.ws-nav{display:flex;flex-direction:column;border-right:1px solid var(--c-border);background:var(--c-bg-1);overflow:hidden}.ws-nav__back{text-align:left;font-size:var(--fs-xs);color:var(--c-ink-subtle);padding:var(--sp-3) var(--sp-4) var(--sp-2)}.ws-nav__back:hover{color:var(--accent)}.ws-nav__project{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-3);border-bottom:1px solid var(--c-border)}.ws-nav__emoji{font-size:var(--fs-xl)}.ws-nav__name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg);line-height:1.1}.ws-nav__scroll{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-2) var(--sp-6)}.ws-nav__group{margin-bottom:var(--sp-3)}.ws-nav__group-label{display:block;padding:var(--sp-2) var(--sp-2) var(--sp-1);color:var(--c-ink-faint)}.ws-nav__item{display:block;width:100%;text-align:left;font-size:var(--fs-sm);color:var(--c-ink-muted);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);position:relative;transition:color var(--dur-micro),background var(--dur-micro)}.ws-nav__item:hover{color:var(--c-ink);background:var(--c-surface-1)}.ws-nav__item[data-active]{color:var(--c-ink);background:var(--c-surface-2)}.ws-nav__item[data-active]:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--accent);border-radius:var(--r-pill)}.ws-nav__item--manage{color:var(--c-ink-subtle);font-style:italic}.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5)}.panel-head__title{font-size:var(--fs-2xl);display:flex;align-items:baseline;gap:var(--sp-2)}.panel-head__count{font-size:var(--fs-md);color:var(--c-ink-faint);font-family:var(--font-body);font-weight:600}.panel-head__actions{display:flex;align-items:center;gap:var(--sp-2)}.empty-hint{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--c-ink-muted)}.empty-hint__title{font-size:var(--fs-lg);color:var(--c-ink)}.empty-hint__hint{max-width:360px;color:var(--c-ink-subtle)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.03em;padding:2px var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--c-border);color:var(--c-ink-muted);background:var(--c-surface-2);white-space:nowrap}.pill--accent{color:var(--accent);border-color:var(--c-border-accent)}.pill--success{color:var(--c-success);border-color:color-mix(in oklch,var(--c-success) 35%,transparent)}.pill--warn{color:var(--c-warn);border-color:color-mix(in oklch,var(--c-warn) 35%,transparent)}.pill--danger{color:var(--c-danger);border-color:color-mix(in oklch,var(--c-danger) 35%,transparent)}.pill--info{color:var(--c-info);border-color:color-mix(in oklch,var(--c-info) 35%,transparent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);align-content:start}.field[data-full],.form-grid__foot[data-full],.links-panel[data-full]{grid-column:1 / -1}.field__help{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.form-grid__foot{display:flex;justify-content:flex-end;padding-top:var(--sp-3);border-top:1px solid var(--c-border)}.range-row{display:flex;align-items:center;gap:var(--sp-3)}.range-row input[type=range]{flex:1}.range-row__val{min-width:1.5em;text-align:right;font-weight:600}.color-row{display:flex;gap:var(--sp-2)}.color-row input[type=color]{width:40px;height:36px;padding:2px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-bg-1)}.check{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-ink-muted)}input[type=range]{accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.md__tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-2)}.md__tab{font-size:var(--fs-xs);font-weight:600;color:var(--c-ink-subtle);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm)}.md__tab[data-active]{color:var(--c-ink);background:var(--c-surface-2)}.md__area{width:100%;font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.6;resize:vertical}.md__preview{border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);background:var(--c-bg-1);min-height:6em}.md__empty{color:var(--c-ink-faint);font-style:italic}.prose{color:var(--c-ink);font-size:var(--fs-sm);line-height:1.6}.prose h1,.prose h2,.prose h3{font-family:var(--font-display);margin:.8em 0 .3em}.prose h1{font-size:var(--fs-2xl)}.prose h2{font-size:var(--fs-xl)}.prose h3{font-size:var(--fs-lg)}.prose p{margin:.5em 0}.prose ul,.prose ol{margin:.4em 0 .4em 1.2em}.prose li{margin:.15em 0}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--c-surface-2);padding:1px 5px;border-radius:var(--r-xs)}.prose pre{background:var(--c-bg-0);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-3);overflow-x:auto}.prose pre code{background:none;padding:0}.prose a{color:var(--accent);text-decoration:underline}.prose blockquote{border-left:3px solid var(--c-border-strong);padding-left:var(--sp-3);color:var(--c-ink-muted);margin:.5em 0}.prose table{border-collapse:collapse;width:100%;margin:.6em 0}.prose th,.prose td{border:1px solid var(--c-border);padding:var(--sp-1) var(--sp-2);text-align:left;font-variant-numeric:tabular-nums}.prose th{background:var(--c-surface-1)}.md-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--sp-5);height:calc(100vh - var(--header-h) - var(--sp-8) - var(--sp-6));min-height:480px}.md-list{display:flex;flex-direction:column;min-height:0}.md-list__add{margin:var(--sp-2) 0 var(--sp-3);justify-content:center}.md-list__search{margin-bottom:var(--sp-2)}.md-list__scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.md-list__item{text-align:left;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid transparent;display:flex;flex-direction:column;gap:2px;transition:background var(--dur-micro)}.md-list__item:hover{background:var(--c-surface-1)}.md-list__item[data-active]{background:var(--c-surface-2);border-color:var(--c-border)}.md-list__title{font-size:var(--fs-sm);font-weight:500;color:var(--c-ink)}.md-list__sub{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.md-list__empty{color:var(--c-ink-faint);font-size:var(--fs-sm);padding:var(--sp-4) var(--sp-2);font-style:italic}.md-detail{overflow-y:auto;padding-right:var(--sp-2)}.feat-row__badges{display:inline-flex;align-items:center;gap:var(--sp-2)}.feat-row__effort,.feat-row__value{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.etable__table{width:100%;border-collapse:collapse}.etable__table th{text-align:left;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--c-ink-faint);padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--c-border)}.etable__table td{padding:3px var(--sp-2);border-bottom:1px solid var(--c-border);vertical-align:middle}.etable__table .input{border-color:transparent;background:transparent;padding:var(--sp-1) var(--sp-2)}.etable__table .input:focus{border-color:var(--c-border-accent);background:var(--c-bg-1)}.etable__table td[data-kind=checkbox]{width:40px;text-align:center}.etable__del-col{width:32px;text-align:right}.icon-btn{color:var(--c-ink-faint);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-sm);transition:color var(--dur-micro),background var(--dur-micro)}.icon-btn:hover{color:var(--c-danger);background:var(--c-surface-2)}.muted{color:var(--c-ink-subtle)}.seg{display:inline-flex;align-items:center;gap:var(--sp-1)}.seg__btn{font-size:var(--fs-xs);font-weight:600;color:var(--c-ink-subtle);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);border:1px solid transparent}.seg__btn:hover{color:var(--c-ink);background:var(--c-surface-1)}.seg__btn[data-active]{color:var(--c-ink);background:var(--c-surface-2);border-color:var(--c-border)}.filter-row{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-3)}.chip{font-size:var(--fs-xs);font-weight:600;color:var(--c-ink-muted);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--c-border);background:var(--c-surface-1);transition:all var(--dur-micro)}.chip:hover{border-color:var(--c-border-strong)}.chip[data-active]{color:var(--accent-ink);background:var(--accent);border-color:transparent}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);align-items:start}.kanban__col{background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-3);min-height:200px;display:flex;flex-direction:column;gap:var(--sp-2)}.kanban__col-head{display:flex;align-items:center;justify-content:space-between}.kanban__col-title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.04em}.kanban__col-count{font-size:var(--fs-xs);color:var(--c-ink-faint)}.kanban__cards{display:flex;flex-direction:column;gap:var(--sp-2);min-height:20px}.kcard{text-align:left;background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);cursor:grab;transition:background var(--dur-micro),transform var(--dur-micro),border-color var(--dur-micro)}.kcard:hover{background:var(--c-surface-2);border-color:var(--c-border-strong)}.kcard[data-dragging]{opacity:.4}.kcard__title{font-size:var(--fs-sm);color:var(--c-ink)}.kcard__meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.kcard__due,.kcard__h{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.kanban__add{font-size:var(--fs-xs);color:var(--c-ink-faint);padding:var(--sp-2);border-radius:var(--r-sm);border:1px dashed var(--c-border);transition:color var(--dur-micro),border-color var(--dur-micro)}.kanban__add:hover{color:var(--accent);border-color:var(--c-border-accent)}.list-view__row{cursor:pointer}.list-view__row:hover td{background:var(--c-surface-1)}.timeline{display:flex;flex-direction:column;border-left:2px solid var(--c-border);margin-left:var(--sp-3)}.timeline__row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-2) var(--sp-4);position:relative;text-align:left}.timeline__dot{position:absolute;left:-7px;width:10px;height:10px;border-radius:var(--r-pill);background:var(--c-surface-3);border:2px solid var(--c-bg-0)}.timeline__dot[data-done]{background:var(--c-success)}.timeline__date{font-size:var(--fs-xs);color:var(--c-ink-faint);min-width:88px}.timeline__label{font-size:var(--fs-sm)}.timeline__row:hover .timeline__label{color:var(--accent)}.cal__head{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-bottom:var(--sp-3)}.cal__title{font-family:var(--font-display);font-size:var(--fs-xl);text-transform:capitalize}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal__dow{text-align:center;padding:var(--sp-1)}.cal__cell{min-height:92px;background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-1);display:flex;flex-direction:column;gap:2px}.cal__cell[data-empty]{background:transparent;border-color:transparent}.cal__num{font-size:var(--fs-2xs);color:var(--c-ink-faint);align-self:flex-end}.cal__task{font-size:var(--fs-2xs);text-align:left;padding:1px var(--sp-1);border-radius:var(--r-xs);border-left:2px solid var(--accent);background:var(--c-surface-1);color:var(--c-ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal__task[data-ms]{color:var(--accent);font-weight:600}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000080;display:flex;justify-content:flex-end}.drawer{width:min(560px,92vw);height:100%;background:var(--c-surface-1);border-left:1px solid var(--c-border-strong);padding:var(--sp-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-4)}.drawer__head{display:flex;align-items:center;gap:var(--sp-3)}.drawer__title-input{flex:1;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;background:transparent;border:none;border-bottom:1px solid transparent}.drawer__title-input:focus{outline:none;border-bottom-color:var(--c-border-accent)}.drawer__section{border-top:1px solid var(--c-border);padding-top:var(--sp-3)}.drawer__foot{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--c-border)}.btn--danger{color:var(--c-danger)}.btn--danger:hover{background:color-mix(in oklch,var(--c-danger) 14%,var(--c-surface-1))}[data-armed]{color:var(--c-danger);border-color:var(--c-danger)!important}.phase-list{display:flex;flex-direction:column;gap:var(--sp-3)}.phase-card{background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.phase-card[data-dragover]{border-color:var(--c-border-accent)}.phase-card[data-dragging]{opacity:.5}.phase-card__head{display:flex;align-items:center;gap:var(--sp-2)}.phase-card__grip{cursor:grab;color:var(--c-ink-faint)}.phase-card__title{flex:1;font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600;background:transparent;border:none}.phase-card__title:focus{outline:none}.phase-card__status{max-width:110px}.phase-card__desc{width:100%;min-height:2.5em;resize:vertical}.phase-card__features{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.nnl{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}.nnl__col{background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-3)}.nnl__head{display:block;margin-bottom:var(--sp-2);text-transform:uppercase}.nnl__card{background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2)}.nnl__title{display:block;font-size:var(--fs-sm)}.nnl__feat{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.nnl__empty{color:var(--c-ink-faint)}.risks{display:flex;flex-direction:column;gap:var(--sp-5)}.heatmap{display:inline-flex;flex-direction:column;gap:var(--sp-2)}.heatmap__grid{display:flex;flex-direction:column;gap:4px}.heatmap__row{display:flex;gap:4px;align-items:center}.heatmap__row--axis{margin-top:2px}.heatmap__axis{width:28px;text-align:center;font-size:var(--fs-2xs);color:var(--c-ink-faint)}.heatmap__cell{width:38px;height:38px;border-radius:var(--r-sm);display:grid;place-items:center}.heatmap__cell[data-tone=cool]{background:color-mix(in oklch,var(--c-success) 22%,var(--c-bg-1))}.heatmap__cell[data-tone=warm]{background:color-mix(in oklch,var(--c-warn) 28%,var(--c-bg-1))}.heatmap__cell[data-tone=hot]{background:color-mix(in oklch,var(--c-danger) 34%,var(--c-bg-1))}.heatmap__dot{font-size:var(--fs-sm);font-weight:700;color:var(--c-ink)}.heatmap__legend{color:var(--c-ink-faint)}.links-panel{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-md)}.links-panel__row{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}.overview__tech{margin-top:var(--sp-6)}.focus{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.focus__section{background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-4)}.focus__section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.focus__task{width:100%;text-align:left;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm);position:relative}.focus__task:hover{background:var(--c-surface-1)}.focus__task-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--accent);flex-shrink:0}.focus__task-title{flex:1;font-size:var(--fs-sm)}.focus__task-proj{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.focus__task-due{font-size:var(--fs-2xs);color:var(--c-warn)}.settings{display:flex;flex-direction:column;gap:var(--sp-4);max-width:640px}.settings__card{background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-5)}.settings__card h3{font-family:var(--font-display);font-size:var(--fs-lg);margin-bottom:var(--sp-2)}.settings__row{display:flex;gap:var(--sp-3);margin:var(--sp-3) 0;flex-wrap:wrap}.settings__stat{color:var(--c-ink-faint);font-size:var(--fs-sm)}.settings__msg{color:var(--c-success);font-size:var(--fs-sm);margin-top:var(--sp-2)}.cmd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000080;display:flex;justify-content:center;padding-top:14vh}.cmd{width:min(620px,92vw);max-height:64vh;background:var(--c-surface-1);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);overflow:hidden;display:flex;flex-direction:column}.cmd__input{font-size:var(--fs-lg);padding:var(--sp-4) var(--sp-5);background:transparent;border:none;border-bottom:1px solid var(--c-border)}.cmd__input:focus{outline:none}.cmd__results{overflow-y:auto;padding:var(--sp-2)}.cmd__group{margin-bottom:var(--sp-2)}.cmd__group .overline{display:block;padding:var(--sp-1) var(--sp-2)}.cmd__item{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm)}.cmd__item:hover{background:var(--c-surface-2)}.cmd__item-table{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.cmd__hint{padding:var(--sp-3);color:var(--c-ink-faint);font-size:var(--fs-sm)}.dash__controls{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5)}.dash__sort{max-width:200px}.card__top-right{display:flex;align-items:center;gap:var(--sp-2)}.card__pin{color:var(--c-ink-faint);font-size:var(--fs-md);transition:color var(--dur-micro),transform var(--dur-micro)}.card__pin:hover{transform:scale(1.15)}.card__pin[data-on]{color:var(--accent)}.placeholder{display:grid;place-items:center;min-height:320px}.ws__nav-toggle,.ws__nav-backdrop{display:none}@media (max-width: 768px){.ws{grid-template-columns:1fr;position:relative}.ws__nav-toggle{display:inline-flex;align-items:center;gap:var(--sp-2);position:sticky;top:0;z-index:4;margin:var(--sp-3) var(--sp-4) 0;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface-1);font-weight:600;font-size:var(--fs-sm)}.ws-nav{position:fixed;top:var(--header-h);left:0;bottom:0;width:min(320px,88vw);z-index:30;transform:translate(-105%);transition:transform var(--dur-std) var(--ease-out);box-shadow:var(--shadow-pop)}.ws--nav-open .ws-nav{transform:translate(0)}.ws__nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;top:var(--header-h);z-index:25;border:none;background:#00000073}.ws__main{padding:var(--sp-4)}.ws-nav__item{min-height:44px;display:flex;align-items:center}.md-layout{grid-template-columns:1fr;height:auto;min-height:0}.md-list{max-height:240px}.md-list__item{min-height:44px}.focus,.nnl{grid-template-columns:1fr}.panel-head{flex-direction:column;align-items:stretch}.overview__grid{grid-template-columns:1fr!important}}.exporter__layout{display:grid;grid-template-columns:240px 1fr;gap:var(--sp-5)}.exporter__controls{display:flex;flex-direction:column;gap:var(--sp-2)}.exporter__templates{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-3)}.exporter__sections{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--sp-3)}.exporter__check{padding:var(--sp-1) 0}.exporter__preview{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-bg-1);padding:var(--sp-3) var(--sp-4);overflow:hidden}.exporter__preview-body{max-height:calc(100vh - 280px);overflow-y:auto;margin-top:var(--sp-2);background:var(--c-bg-0);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-4)}.screens__designer{display:grid;grid-template-columns:180px 1fr;gap:var(--sp-4)}.screens__list{display:flex;flex-direction:column;gap:2px}.screens__edit{display:grid;grid-template-columns:1fr 300px;gap:var(--sp-5)}.screens__name{font-family:var(--font-display);font-size:var(--fs-lg);margin-bottom:var(--sp-3)}.palette{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-4)}.palette__btn{font-size:var(--fs-xs);font-weight:600;color:var(--c-ink-muted);padding:var(--sp-1) var(--sp-2);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface-1)}.palette__btn:hover{border-color:var(--c-border-accent);color:var(--accent)}.block-stack{display:flex;flex-direction:column;gap:var(--sp-2)}.block-row{display:flex;align-items:center;gap:var(--sp-2);background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-2)}.block-row[data-dragover]{border-color:var(--c-border-accent)}.block-row[data-dragging]{opacity:.5}.block-row__grip{cursor:grab;color:var(--c-ink-faint)}.block-row__type{font-weight:600;font-size:var(--fs-xs);min-width:64px}.block-row__label{flex:1}.block-row__variant{max-width:96px}.phone-wrap{position:sticky;top:0;display:flex;justify-content:center}.phone{width:280px;height:580px;background:var(--c-bg-0);border:8px solid oklch(.28 .01 255);border-radius:36px;position:relative;overflow:hidden;box-shadow:var(--shadow-pop)}.phone__notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:120px;height:22px;background:#26292e;border-radius:0 0 14px 14px;z-index:2}.phone__screen{height:100%;overflow-y:auto;display:flex;flex-direction:column;background:var(--c-bg-1)}.phone__empty{color:var(--c-ink-faint);text-align:center;padding-top:40%}.pb{padding:var(--sp-3);font-size:var(--fs-sm)}.pb-appbar{background:var(--c-surface-2);font-family:var(--font-display);font-weight:600;padding-top:28px}.pb-appbar[data-accent]{background:var(--accent);color:var(--accent-ink)}.pb-hero{display:flex;flex-direction:column;gap:4px;padding:var(--sp-5) var(--sp-3)}.pb-hero[data-accent]{background:color-mix(in oklch,var(--accent) 18%,var(--c-bg-1))}.pb-hero__title{font-family:var(--font-display);font-size:var(--fs-2xl)}.pb-hero__sub{color:var(--c-ink-muted);font-size:var(--fs-xs)}.pb-text{color:var(--c-ink-muted)}.pb-list{display:flex;flex-direction:column;gap:1px;padding:0}.pb-list__row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border)}.pb-list__dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.pb-card{margin:var(--sp-2) var(--sp-3);padding:var(--sp-3);background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-md);display:flex;flex-direction:column;gap:2px}.pb-card__title{font-weight:600}.pb-card__sub{font-size:var(--fs-xs);color:var(--c-ink-faint)}.pb-button{margin:var(--sp-2) var(--sp-3);text-align:center;padding:var(--sp-2);border-radius:var(--r-md);background:var(--c-surface-3);font-weight:600}.pb-button[data-accent]{background:var(--accent);color:var(--accent-ink)}.pb-field{margin:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-border-strong);border-radius:var(--r-md);color:var(--c-ink-faint)}.pb-image,.pb-map{margin:var(--sp-2) var(--sp-3);height:90px;display:grid;place-items:center;background:var(--c-surface-2);border-radius:var(--r-md);color:var(--c-ink-subtle)}.pb-tabbar{margin-top:auto;display:flex;justify-content:space-around;padding:var(--sp-3);border-top:1px solid var(--c-border);background:var(--c-surface-1);font-size:var(--fs-2xs)}.pb-stat{display:flex;flex-direction:column;align-items:center;padding:var(--sp-4)}.pb-stat__value{font-family:var(--font-display);font-size:var(--fs-3xl);color:var(--accent)}.pb-stat__label{font-size:var(--fs-xs);color:var(--c-ink-muted)}.pb-spacer{height:var(--sp-5)}.flow-view{display:flex;align-items:center;gap:var(--sp-2);overflow-x:auto;padding:var(--sp-3) 0}.flow-view__item{display:flex;align-items:center;gap:var(--sp-2)}.flow-view__phone{display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;transform:scale(.7);transform-origin:top center}.flow-view__name{font-size:var(--fs-sm);font-weight:600}.flow-view__arrow{font-size:var(--fs-2xl);color:var(--c-ink-faint)}.tokenpanel__layout{display:grid;grid-template-columns:1fr 320px;gap:var(--sp-5)}.tokenpanel__preview{display:flex;flex-direction:column;gap:var(--sp-2)}.tp-card{border:1px solid var(--c-border);border-radius:var(--pr, 8px);overflow:hidden;background:var(--c-surface-1)}.tp-card__bar{background:var(--pa, var(--accent));color:#fff;padding:var(--sp-2) var(--sp-3);font-weight:600}.tp-card__body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.tp-card__title{font-size:var(--fs-2xl)}.tp-card__text{color:var(--c-ink-muted);font-size:var(--fs-sm)}.tp-card__btn{align-self:flex-start;background:var(--pa, var(--accent));color:#fff;padding:var(--sp-2) var(--sp-4);border-radius:var(--pr, 8px);font-weight:600}.palette-mod__section{margin-bottom:var(--sp-6)}.palette-mod__controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);max-width:480px;margin:var(--sp-3) 0}.ramp{display:flex;gap:4px}.ramp__swatch{flex:1;height:64px;border-radius:var(--r-sm);border:1px solid var(--c-border);display:grid;place-items:center;font-size:var(--fs-2xs);font-weight:600}.contrast{max-width:560px}.contrast__inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.contrast__preview{margin:var(--sp-3) 0;padding:var(--sp-5);border-radius:var(--r-md);display:flex;flex-direction:column;gap:var(--sp-2);border:1px solid var(--c-border)}.contrast__ratio{font-family:var(--font-display);font-size:var(--fs-3xl)}.contrast__badges{display:flex;gap:var(--sp-2)}.pill[data-pass]{color:var(--c-success);border-color:color-mix(in oklch,var(--c-success) 40%,transparent)}.datamodel__layout{display:grid;grid-template-columns:1fr 300px;gap:var(--sp-4);align-items:start}.gcanvas{position:relative;width:100%;background:radial-gradient(circle,var(--c-border) 1px,transparent 1px) 0 0 / 22px 22px,var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden}.gcanvas__edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.gcanvas__edge-label{fill:var(--c-ink-subtle);font-size:10px;text-anchor:middle}.gnode{position:absolute;cursor:grab;-webkit-user-select:none;user-select:none}.gnode:active{cursor:grabbing}.er-node{background:var(--c-surface-2);border:1px solid var(--c-border-strong);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:2px}.er-node[data-active]{border-color:var(--accent)}.er-node__name{font-weight:600;font-size:var(--fs-sm)}.er-node__count{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.gnode__box{background:var(--c-surface-2);border:1px solid var(--c-border-strong);border-radius:var(--r-md);padding:var(--sp-3);text-align:center;font-size:var(--fs-sm)}.gnode__box[data-active]{border-color:var(--accent)}.gnode__box[data-link]{border-color:var(--accent);background:var(--accent-tint)}.er-panel{background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.er-panel__name{font-family:var(--font-display);font-size:var(--fs-lg)}.er-panel__rels{display:flex;flex-direction:column;gap:var(--sp-2)}.er-panel__rel{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm)}.er-panel__add-rel{display:flex;gap:var(--sp-2)}.graphmod__toolbar{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.node-editor{display:flex;gap:var(--sp-2);align-items:center;margin-top:var(--sp-3)}.node-editor .input{max-width:280px}.mood-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-3)}.mood-card{position:relative;background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.mood-card__del{position:absolute;top:4px;right:4px}.mood-card__swatch{height:80px;border-radius:var(--r-sm);border:1px solid var(--c-border)}.mood-card__cap{font-size:var(--fs-xs)}.scope{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.scope__col{background:var(--c-bg-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-3)}.scope__col[data-in]{border-left:3px solid var(--c-success)}.scope__col:not([data-in]){border-left:3px solid var(--c-danger)}.scope__col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.scope__item{display:flex;gap:var(--sp-1);align-items:center;margin-bottom:var(--sp-1)}.scope__item .input{flex:1}.matrix{position:relative;aspect-ratio:1.4;max-width:720px;border:1px solid var(--c-border);border-radius:var(--r-lg);background:linear-gradient(var(--c-border),var(--c-border)) center / 1px 100% no-repeat,linear-gradient(var(--c-border),var(--c-border)) center / 100% 1px no-repeat,var(--c-bg-1);margin:var(--sp-3) 0;overflow:hidden}.matrix__quad{position:absolute;font-size:var(--fs-2xs);color:var(--c-ink-faint);text-transform:uppercase;letter-spacing:.05em;padding:var(--sp-2)}.matrix__quad--tl{top:0;left:0}.matrix__quad--tr{top:0;right:0;color:var(--c-success)}.matrix__quad--bl{bottom:0;left:0}.matrix__quad--br{bottom:0;right:0}.matrix__dot{position:absolute;transform:translate(-50%,50%);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-2xs);font-weight:600;padding:3px var(--sp-2);border-radius:var(--r-pill);white-space:nowrap;cursor:grab;max-width:140px;overflow:hidden;text-overflow:ellipsis}.matrix__axes{display:flex;justify-content:space-between;max-width:720px}.timeline-mod__phases{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}.devlog__compose{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5);max-width:720px}.devlog__compose .btn{align-self:flex-start}.devlog__feed{display:flex;flex-direction:column;gap:var(--sp-3);max-width:720px}.devlog__entry{background:var(--c-surface-1);border:1px solid var(--c-border);border-left:3px solid var(--accent);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}.devlog__meta{display:flex;justify-content:space-between;color:var(--c-ink-faint);font-size:var(--fs-2xs);margin-bottom:var(--sp-2)}.snapshots__compose{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);max-width:560px}.snapshots__compose .input{flex:1}.snapshots__list{display:flex;flex-direction:column;gap:var(--sp-2);max-width:720px}.snapshots__item{display:flex;align-items:center;gap:var(--sp-3);background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.snapshots__label{flex:1;font-weight:500}.snapshots__date{font-size:var(--fs-2xs);color:var(--c-ink-faint)}.brief__paper{max-width:720px;background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-6)}.overview__danger{margin-top:var(--sp-7);padding-top:var(--sp-4);border-top:1px solid var(--c-border);display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start}.schema-fields{display:flex;flex-direction:column;gap:var(--sp-2)}.schema-field{display:flex;gap:var(--sp-2);align-items:center}.schema-field .input:first-child{flex:1}.integrations{max-width:760px;display:flex;flex-direction:column;gap:var(--sp-4)}.integ-card{background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-5)}.integ-card h3{font-family:var(--font-display);font-size:var(--fs-lg);margin-bottom:var(--sp-2)}.integ-card__row{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-3);align-items:center}.assistant{display:flex;flex-direction:column;height:calc(100vh - 160px);max-width:820px}.assistant__feed{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) 0}.assistant__msg{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);max-width:90%}.assistant__msg[data-role=user]{align-self:flex-end;background:var(--accent-tint);border:1px solid var(--c-border-accent)}.assistant__msg[data-role=assistant]{align-self:flex-start;background:var(--c-surface-1);border:1px solid var(--c-border)}.assistant__compose{display:flex;gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--c-border)}.assistant__compose textarea{flex:1;min-height:3em}.assistant__warn{color:var(--c-warn);font-size:var(--fs-sm);padding:var(--sp-3)}.integ-card__info{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.integ-list{list-style:none;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);color:var(--c-ink-muted)}.integ-list .tnum{color:var(--c-ink-faint);margin-right:var(--sp-2)}.integ-confirm{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border-accent);border-radius:var(--r-md);background:var(--accent-tint)}.integ-confirm p{margin-bottom:var(--sp-2);font-size:var(--fs-sm)}@media (max-width: 768px){.exporter__layout,.screens__designer,.screens__edit,.tokenpanel__layout,.datamodel__layout,.scope{grid-template-columns:1fr}.palette-mod__controls,.contrast__inputs{grid-template-columns:1fr;max-width:none}.assistant{height:auto;min-height:calc(100vh - 180px)}.graph-canvas{min-height:280px}}
