@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2)format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2)format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2)format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2)format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2)format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2)format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2)format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2)format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2)format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2)format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body:"Public Sans", "Inter", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", ui-monospace, monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.12s;--dur-base:.2s;--bg:#f4f2ee;--bg-raised:#fff;--bg-sunken:#ebe8e2;--bg-overlay:#1e1c1873;--ink:#211f1b;--ink-muted:#635e54;--ink-faint:#8c8578;--rule:#d9d4c9;--rule-strong:#b8b2a3;--accent:#1f4d43;--accent-ink:#fff;--accent-soft:#e3ece8;--flag-red:#b3341f;--flag-red-soft:#f7e2dc;--flag-amber:#a86a12;--flag-amber-soft:#f7ecd8;--flag-green:#2f6d3f;--flag-green-soft:#e2ede2;--stamp:#8c2f2f;--shadow-sm:0 1px 2px #211f1b0f, 0 1px 1px #211f1b0a;--shadow-md:0 4px 10px #211f1b14, 0 2px 4px #211f1b0d;--shadow-lg:0 16px 32px #211f1b24, 0 4px 10px #211f1b14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#17181a;--bg-raised:#1f2124;--bg-sunken:#121314;--bg-overlay:#0009;--ink:#ece9e2;--ink-muted:#a8a49a;--ink-faint:#726e64;--rule:#303236;--rule-strong:#45484d;--accent:#6fb89f;--accent-ink:#0d1512;--accent-soft:#1d2b26;--flag-red:#e0725c;--flag-red-soft:#2e1c19;--flag-amber:#d9a24b;--flag-amber-soft:#2e2617;--flag-green:#7ec48f;--flag-green-soft:#1b2a1f;--stamp:#d98a7a;--shadow-sm:0 1px 2px #0000004d, 0 1px 1px #0000003d;--shadow-md:0 4px 10px #0000005c, 0 2px 4px #0000003d;--shadow-lg:0 16px 32px #00000080, 0 4px 10px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17181a;--bg-raised:#1f2124;--bg-sunken:#121314;--bg-overlay:#0009;--ink:#ece9e2;--ink-muted:#a8a49a;--ink-faint:#726e64;--rule:#303236;--rule-strong:#45484d;--accent:#6fb89f;--accent-ink:#0d1512;--accent-soft:#1d2b26;--flag-red:#e0725c;--flag-red-soft:#2e1c19;--flag-amber:#d9a24b;--flag-amber-soft:#2e2617;--flag-green:#7ec48f;--flag-green-soft:#1b2a1f;--stamp:#d98a7a;--shadow-sm:0 1px 2px #0000004d, 0 1px 1px #0000003d;--shadow-md:0 4px 10px #0000005c, 0 2px 4px #0000003d;--shadow-lg:0 16px 32px #00000080, 0 4px 10px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}#root{min-height:100vh}a{color:inherit}button{font-family:inherit}::selection{background:var(--accent-soft);color:var(--ink)}.mono{font-family:var(--font-mono);letter-spacing:.02em}.stamp{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--stamp);font-size:11px}.card{background:var(--bg-raised);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out)}.card--interactive{cursor:pointer}.card--interactive:hover{box-shadow:var(--shadow-md);border-color:var(--rule-strong);transform:translateY(-1px)}.card--interactive:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;padding:9px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn--primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.btn--primary:hover{filter:brightness(1.08);box-shadow:var(--shadow-md)}.btn--primary:active{filter:brightness(.96);box-shadow:var(--shadow-sm);transform:translateY(1px)}.btn--secondary{background:var(--bg-raised);color:var(--ink);border-color:var(--rule-strong)}.btn--secondary:hover{background:var(--bg-sunken);border-color:var(--ink-faint)}.btn--secondary:active{background:var(--bg-sunken);transform:translateY(1px)}.btn--ghost{color:var(--ink-muted);background:0 0}.btn--ghost:hover{background:var(--bg-sunken);color:var(--ink)}.btn--ghost:active{transform:translateY(1px)}.btn--icon{padding:8px}.chip{border-radius:var(--radius-full);align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.chip--red{background:var(--flag-red-soft);color:var(--flag-red)}.chip--amber{background:var(--flag-amber-soft);color:var(--flag-amber)}.chip--green{background:var(--flag-green-soft);color:var(--flag-green)}.chip--neutral{background:var(--bg-sunken);color:var(--ink)}.checkbox{appearance:none;border-radius:var(--radius-sm);border:1.5px solid var(--rule-strong);background:var(--bg-raised);cursor:pointer;width:20px;min-width:20px;height:20px;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);place-content:center;display:grid}.checkbox:hover{border-color:var(--accent)}.checkbox:active{transform:scale(.92)}.checkbox:checked{background:var(--accent);border-color:var(--accent)}.checkbox:checked:after{content:"";border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);width:10px;height:6px;transform:rotate(-45deg)translateY(-1px)}.skeleton{background:var(--bg-sunken);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14 50%,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}:root:not([data-theme=dark]) .skeleton:after{background:linear-gradient(90deg,#0000,#211f1b0f 50%,#0000)}@keyframes shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}.card,.btn,.checkbox{transition:none}}.photo-slot{border-bottom:1px solid var(--rule);background:var(--bg-sunken);width:100%;height:92px;position:relative;overflow:hidden}.photo-slot:after{content:"";background-image:radial-gradient(circle at 1px 1px, var(--ink) 1px, transparent 0);opacity:.05;mix-blend-mode:multiply;pointer-events:none;background-size:5px 5px;position:absolute;inset:0}.photo-slot__art{width:100%;height:100%;display:block}.photo-slot__ground{fill:var(--bg-sunken)}.photo-slot__silhouette{fill:var(--accent);opacity:.88}.photo-slot__stroke-bold{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round}.photo-slot__stroke-faint{fill:none;stroke:var(--ink-faint);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.photo-slot__stroke-light{fill:none;stroke:var(--bg-raised);stroke-width:2px;stroke-linecap:round}.photo-slot__fill-light{fill:var(--bg-raised)}.photo-slot__tape{background:color-mix(in srgb, var(--ink) 14%, transparent);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);z-index:1;width:38px;height:16px;position:absolute;top:-6px;left:16px;transform:rotate(-7deg)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell{grid-template-columns:240px 1fr;grid-template-areas:"sidebar content";min-height:100vh;display:grid}.sidebar{background:var(--bg-raised);border-right:1px solid var(--rule);padding:var(--space-5) var(--space-4);gap:var(--space-6);flex-direction:column;grid-area:sidebar;height:100vh;display:flex;position:sticky;top:0}.sidebar__brand{align-items:center;gap:var(--space-3);display:flex}.sidebar__mark{border-radius:var(--radius-md);background:var(--accent);width:36px;height:36px;color:var(--accent-ink);font-family:var(--font-mono);place-content:center;font-size:13px;font-weight:700;display:grid}.sidebar__title{font-size:15px;font-weight:700}.sidebar__nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar__link{align-items:center;gap:var(--space-3);padding:9px var(--space-3);border-radius:var(--radius-md);color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);font-size:14px;font-weight:600;text-decoration:none;display:flex}.sidebar__link:hover{background:var(--bg-sunken);color:var(--ink)}.sidebar__link--active{background:var(--accent-soft);color:var(--accent)}.theme-toggle{justify-content:flex-start;width:100%}.identity-menu{position:relative}.identity-menu__trigger{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;padding:6px;display:flex}.identity-menu__trigger:hover{background:var(--bg-sunken)}.identity-menu__avatar{border-radius:var(--radius-full);background:var(--accent-soft);width:30px;height:30px;color:var(--accent);flex:none;place-content:center;font-size:12px;font-weight:700;display:grid}.identity-menu__label{flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.identity-menu__name{color:var(--ink);font-size:13.5px;font-weight:600}.identity-menu__badge{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.identity-menu__panel{background:var(--bg-raised);border:1px solid var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-2);z-index:20;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.identity-menu__panel-head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-3);border-bottom:1px solid var(--rule);margin-bottom:var(--space-1);display:flex}.identity-menu__panel-name{font-size:13.5px;font-weight:700}.identity-menu__item{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;padding:8px;font-size:13px;font-weight:600;text-decoration:none;display:block}.identity-menu__item:hover{background:var(--bg-sunken)}.identity-menu__item--link{align-items:center;gap:var(--space-2);color:var(--ink-muted);border-bottom:1px solid var(--rule);border-radius:0;margin-bottom:2px;padding-bottom:10px;display:flex}.identity-menu__item--danger{color:var(--flag-red)}.identity-menu__item--danger:hover{background:var(--flag-red-soft)}.identity-menu--compact .identity-menu__trigger{width:auto;padding:2px}.identity-menu--compact .identity-menu__panel{width:200px;inset:calc(100% + 8px) 0 auto auto}.topbar,.bottom-nav{display:none}.content{padding:var(--space-6) var(--space-7);grid-area:content;max-width:1180px}@media (width<=880px){.app-shell{grid-template:"topbar""content"1fr/1fr}.sidebar{display:none}.topbar{align-items:center;gap:var(--space-3);z-index:10;background:var(--bg-raised);border-bottom:1px solid var(--rule);padding:var(--space-3) var(--space-4);grid-area:topbar;display:flex;position:sticky;top:0}.sidebar__mark--sm{width:28px;height:28px;font-size:11px}.topbar__title{flex:1;font-size:15px;font-weight:700}.content{padding:var(--space-4) var(--space-4) calc(var(--space-8) + var(--space-4));max-width:none}.bottom-nav{background:var(--bg-raised);border-top:1px solid var(--rule);padding:var(--space-2) var(--space-1) calc(var(--space-2) + env(safe-area-inset-bottom));z-index:10;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav__link{color:var(--ink-faint);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease-out);flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.bottom-nav__link:active{background:var(--bg-sunken)}.bottom-nav__link--active{color:var(--accent)}}.page-title{letter-spacing:-.01em;margin:0;font-size:26px;font-weight:700}.page-meta{margin-top:var(--space-2)}.report-header{justify-content:space-between;align-items:flex-end;gap:var(--space-5);padding-bottom:var(--space-5);margin-bottom:var(--space-6);border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex}.stat-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.stat-tile{min-width:108px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--rule);background:var(--bg-raised);box-shadow:var(--shadow-sm);flex-direction:column;gap:2px;display:flex}.stat-tile__value{font-size:22px;font-weight:700;line-height:1}.stat-tile__label{color:var(--ink-muted);font-size:11.5px;font-weight:600}.stat-tile--red .stat-tile__value{color:var(--flag-red)}.stat-tile--amber .stat-tile__value{color:var(--flag-amber)}.system-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.system-card{color:inherit;text-decoration:none;display:block;overflow:hidden}.system-card__body{padding:var(--space-5)}.system-card__head{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.system-card__head .chip,.system-card__head .row-actions{margin-top:1px}.system-card__name{flex:1;font-size:15px;font-weight:700}.system-card__next{margin-bottom:var(--space-4);flex-direction:column;gap:2px;min-height:36px;display:flex}.system-card__due{color:var(--ink-muted);font-size:11px}.system-card__next-title{font-size:14px;font-weight:600}.system-card__next--empty{color:var(--ink-faint);padding-top:var(--space-2);font-size:13px}.system-card__counts{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=880px){.page-title{font-size:21px}.report-header{flex-direction:column;align-items:flex-start}.stat-row{width:100%}.stat-tile{flex:1;min-width:0}}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.filter-row{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.filter-chip{border:1px solid var(--rule);background:var(--bg-raised);color:var(--ink-muted);border-radius:var(--radius-full);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);padding:6px 14px;font-size:13px;font-weight:600}.filter-chip:hover{border-color:var(--rule-strong);color:var(--ink)}.filter-chip:active{transform:translateY(1px)}.filter-chip--active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.row-list{gap:var(--space-2);flex-direction:column;display:flex}.task-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);display:flex}.task-row__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.task-row__title{font-size:14px;font-weight:600}.task-row__meta{color:var(--ink-muted);font-size:12px}.task-row--done .task-row__title{color:var(--ink-faint);text-decoration:line-through}.reminder-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);display:flex}.reminder-row__body{flex-direction:column;gap:2px;display:flex}.empty-state{padding:var(--space-7) var(--space-4);text-align:center;color:var(--ink-muted);border:1px dashed var(--rule-strong);border-radius:var(--radius-lg);font-size:14px}@media (width<=880px){.page-head{align-items:flex-start;gap:var(--space-2);flex-direction:column}}.project-card{padding:var(--space-5)}.project-card__desc{margin:0 0 var(--space-4);color:var(--ink-muted);font-size:13.5px;line-height:1.5}.progress-track{border-radius:var(--radius-full);background:var(--bg-sunken);height:8px;margin-bottom:var(--space-3);overflow:hidden}.progress-track__fill{background:var(--accent);border-radius:var(--radius-full);transform-origin:0;width:100%;height:100%;transition:transform .4s var(--ease-out)}.project-card__foot{color:var(--ink-muted);justify-content:space-between;font-size:12px;display:flex}.kb-card{overflow:hidden}.kb-card__body{padding:var(--space-5)}.kb-card__specs{gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-3);background:var(--bg-sunken);border-radius:var(--radius-md);border:1px solid var(--rule);grid-template-columns:repeat(3,1fr);display:grid}.kb-card__specs dt{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:2px;font-size:10.5px}.kb-card__specs dd{color:var(--ink);margin:0;font-size:12.5px}.kb-card__notes{color:var(--ink-muted);margin:0;font-size:13.5px;line-height:1.5}@media (width<=480px){.kb-card__specs{grid-template-columns:1fr 1fr}}.modal-overlay{background:var(--bg-overlay);padding:var(--space-6) var(--space-4);z-index:50;animation:overlay-in .16s var(--ease-out);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes overlay-in{0%{opacity:0}}.modal-dialog{width:100%;padding:var(--space-5);box-shadow:var(--shadow-lg);animation:dialog-in .18s var(--ease-out)}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-dialog__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.modal-dialog__title{margin:2px 0 0;font-size:15px;font-weight:700}.confirm-dialog{max-width:400px}.confirm-dialog__body{color:var(--ink-muted);margin:var(--space-2) 0 var(--space-5);font-size:14px;line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.btn--danger{background:var(--flag-red);color:#fff;box-shadow:var(--shadow-sm)}.btn--danger:hover{filter:brightness(1.08);box-shadow:var(--shadow-md)}.btn--danger:active{filter:brightness(.96);transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:default;pointer-events:none}.field-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}.field-grid--cols-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{color:var(--ink-muted);font-size:12px;font-weight:600}.field__input,.field__select,.field__textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg-raised);border:1px solid var(--rule-strong);border-radius:var(--radius-md);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:9px 12px;font-size:16px}.field__textarea{resize:vertical;min-height:72px;font-family:var(--font-body)}.field__input:hover,.field__select:hover,.field__textarea:hover{border-color:var(--ink-faint)}.field__input:focus,.field__select:focus,.field__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field__hint{color:var(--ink-faint);font-size:11.5px}.member-form__admin-row{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--bg-sunken);cursor:pointer;display:flex}.member-form__admin-row .checkbox{margin-top:2px}.form-actions{justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--rule);margin-top:var(--space-1);padding-top:var(--space-4);display:flex}.admin-settings{padding:var(--space-5);margin-bottom:var(--space-6)}.admin-settings__success{color:var(--flag-green);background:var(--flag-green-soft);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4);font-size:13px}.admin-section-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.admin-section-title{margin:0;font-size:15px;font-weight:700}.row-actions{flex:none;gap:2px;display:flex}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--ink-faint);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;place-content:center;display:grid}.icon-btn:hover{background:var(--bg-sunken);color:var(--ink)}.icon-btn:active{transform:translateY(1px)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn--danger:hover{background:var(--flag-red-soft);color:var(--flag-red)}@media (width<=480px){.field-grid--cols-2{grid-template-columns:1fr}}.auth-loading{background:var(--bg);place-content:center;min-height:100vh;display:grid}.auth-loading__mark{border-radius:var(--radius-md);background:var(--accent);width:48px;height:48px;color:var(--accent-ink);font-family:var(--font-mono);place-content:center;font-size:15px;font-weight:700;animation:1.2s ease-in-out infinite auth-pulse;display:grid}@keyframes auth-pulse{0%,to{opacity:1}50%{opacity:.5}}.auth-screen{background:var(--bg);min-height:100vh;padding:var(--space-5);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:380px;padding:var(--space-6) var(--space-6) var(--space-5);box-shadow:var(--shadow-lg)}.auth-card__brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);display:flex}.auth-card__brand-mark{border-radius:var(--radius-md);background:var(--accent);width:40px;height:40px;color:var(--accent-ink);font-family:var(--font-mono);place-content:center;font-size:14px;font-weight:700;display:grid}.auth-card__brand-name{font-size:15px;font-weight:700}.auth-card__title{margin:0 0 4px;font-size:15px;font-weight:700}.auth-card__subtitle{color:var(--ink-muted);margin:0 0 var(--space-5);font-size:13.5px;line-height:1.5}.auth-card__error{color:var(--flag-red);background:var(--flag-red-soft);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4);font-size:13px}.auth-card .btn--primary{width:100%;padding-top:11px;padding-bottom:11px}.auth-card__foot{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--rule);color:var(--ink-faint);text-align:center;font-size:12px}.identity-screen{background:var(--bg);min-height:100vh;padding:var(--space-6) var(--space-5);flex-direction:column;justify-content:center;align-items:center;display:flex}.identity-screen__head{text-align:center;margin-bottom:var(--space-6)}.identity-screen__title{margin:var(--space-2) 0 0;font-size:15px;font-weight:700}.identity-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));width:100%;max-width:520px;display:grid}.identity-card{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-3);cursor:pointer;font:inherit;color:inherit;border:none;flex-direction:column;display:flex}.identity-card__avatar{border-radius:var(--radius-full);background:var(--accent-soft);width:56px;height:56px;color:var(--accent);transition:background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);place-content:center;font-size:22px;font-weight:700;display:grid}.identity-card:hover .identity-card__avatar{background:var(--accent);color:var(--accent-ink)}.identity-card__name{text-align:center;font-size:14px;font-weight:600}.identity-card__badge{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}@media (width<=480px){.auth-card{padding:var(--space-5) var(--space-4)}}
