@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BmRLXWpJ.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DCQwxkRk.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-D_uavGvn.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-RFb1v-CK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-greek-700-normal-wyJ6jzdA.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-CkZN0sRy.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-CkEo6LDy.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-BV5B8Are.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-aMgXseD4.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-DZH6Xh-4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.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}:root{--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem;--fw-regular:400;--fw-medium:550;--fw-bold:700;--lh-tight:1.2;--lh-normal:1.5;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--border:1px solid var(--surface-border);--surface-bg:#f7f8fa;--surface-card:#fff;--surface-raised:#fff;--surface-border:#e3e6ea;--surface-weekend:#f0f1f4;--surface-hover:#eef0f3;--text-strong:#1f2937;--text-muted:#6b7280;--text-inverse:#fff;--status-ok:#2e9e5b;--status-ok-bg:#e6f4ec;--status-missing:#d64545;--status-missing-bg:#fbe9e9;--status-problem:#e08a1e;--status-problem-bg:#fbf1e0;--status-neutral:#9aa2ad;--accent:#3b6fd4;--today-line:#3b6fd4;--focus-ring:0 0 0 3px #3b6fd459;--you-outline:#7c3aed;--you-bg:#f1ecfb;--day-col-min:40px;--row-h:64px;--header-h:96px;--sidebar-w:220px;--sidebar-w-collapsed:56px;--shadow-color:220 40% 12%;--elev-1:0 1px 2px hsl(var(--shadow-color) / .06);--elev-2:0 2px 4px hsl(var(--shadow-color) / .06), 0 8px 16px -8px hsl(var(--shadow-color) / .12);--elev-3:0 4px 8px hsl(var(--shadow-color) / .08), 0 16px 32px -12px hsl(var(--shadow-color) / .18);--elev-4:0 8px 16px hsl(var(--shadow-color) / .1), 0 24px 48px -16px hsl(var(--shadow-color) / .24);--rim:inset 0 1px 0 #fff0;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--z-base:1;--z-sticky:10;--z-dropdown:30;--z-overlay:50;--z-modal:60;--z-toast:70;--fs-2xl:2.25rem;--fs-display:3rem;--tracking-tight:-.02em;--tracking-wide:.06em;--bar-mix:30%;--pc-blauw:#4a7bd1;--pc-turquoise:#3fa8a0;--pc-indigo:#5561c4;--pc-paars:#8a63c9;--pc-zand:#c1a065;--pc-groenblauw:#4795a8;--pc-terracotta:#c47a5a;--pc-leigrijs:#6b7688}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface-bg:#14171c;--surface-card:#1c2027;--surface-raised:#232833;--surface-border:#2e343f;--surface-weekend:#191d23;--surface-hover:#262c35;--text-strong:#f1f3f6;--text-muted:#9aa2ad;--bar-mix:46%;--pc-blauw:#6f9df0;--pc-turquoise:#3fc9bd;--pc-indigo:#8b93ef;--pc-paars:#b184f0;--pc-zand:#e0bd72;--pc-groenblauw:#56bcd4;--pc-terracotta:#ec9a74;--pc-leigrijs:#97a4bb;--shadow-color:220 60% 2%;--elev-1:0 1px 2px hsl(var(--shadow-color) / .12);--elev-2:0 2px 4px hsl(var(--shadow-color) / .12), 0 8px 16px -8px hsl(var(--shadow-color) / .24);--elev-3:0 4px 8px hsl(var(--shadow-color) / .16), 0 16px 32px -12px hsl(var(--shadow-color) / .36);--elev-4:0 8px 16px hsl(var(--shadow-color) / .2), 0 24px 48px -16px hsl(var(--shadow-color) / .48);--rim:inset 0 1px 0 #ffffff0d}}:root[data-theme=dark]{--surface-bg:#14171c;--surface-card:#1c2027;--surface-raised:#232833;--surface-border:#2e343f;--surface-weekend:#191d23;--surface-hover:#262c35;--text-strong:#f1f3f6;--text-muted:#9aa2ad;--bar-mix:46%;--pc-blauw:#6f9df0;--pc-turquoise:#3fc9bd;--pc-indigo:#8b93ef;--pc-paars:#b184f0;--pc-zand:#e0bd72;--pc-groenblauw:#56bcd4;--pc-terracotta:#ec9a74;--pc-leigrijs:#97a4bb;--shadow-color:220 60% 2%;--elev-1:0 1px 2px hsl(var(--shadow-color) / .12);--elev-2:0 2px 4px hsl(var(--shadow-color) / .12), 0 8px 16px -8px hsl(var(--shadow-color) / .24);--elev-3:0 4px 8px hsl(var(--shadow-color) / .16), 0 16px 32px -12px hsl(var(--shadow-color) / .36);--elev-4:0 8px 16px hsl(var(--shadow-color) / .2), 0 24px 48px -16px hsl(var(--shadow-color) / .48);--rim:inset 0 1px 0 #ffffff0d}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:40px;padding:var(--sp-2) var(--sp-4);border:var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), filter var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);line-height:1;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn[data-loading=true]{color:#0000;pointer-events:none;position:relative}.btn[data-loading=true]:after{content:"";width:16px;height:16px;color:var(--text-muted);border:2px solid;border-top-color:#0000;border-radius:999px;animation:.6s linear infinite btn-spin;position:absolute}@media (prefers-reduced-motion:reduce){.btn[data-loading=true]:after{animation:none}}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-primary{background:var(--accent);color:var(--text-inverse);border-color:#0000}.btn-primary:hover{filter:brightness(1.08);background:var(--accent)}.btn-danger{background:var(--status-missing);color:var(--text-inverse);border-color:#0000}.btn-danger:hover{filter:brightness(1.08);background:var(--status-missing)}.btn-warn{background:var(--status-problem);color:var(--text-inverse);border-color:#0000}.btn-warn:hover{filter:brightness(1.08);background:var(--status-problem)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-hover);color:var(--text-strong)}.btn-subtle{background:var(--surface-bg);border-color:var(--surface-border);color:var(--text-strong)}.btn-subtle:hover{background:var(--surface-hover)}.btn-sm{min-height:40px;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs)}.btn-lg{min-height:48px;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-md)}@media (pointer:coarse){.btn,.btn-sm,.btn-lg{min-height:44px}}.card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-1)}.panel{background:var(--surface-raised);border:var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-3)}.chip{padding:3px var(--sp-3);border:var(--border);background:var(--surface-card);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;display:inline-flex}.badge{background:var(--status-problem);min-width:18px;height:18px;color:var(--text-inverse);font-size:10px;font-weight:var(--fw-bold);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;line-height:1;display:inline-flex}.field{gap:var(--sp-1);flex-direction:column;display:flex}.field label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.input,.select{min-height:40px;padding:var(--sp-2) var(--sp-3);border:var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong);font-size:var(--fs-sm);font-family:var(--font-sans);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out)}.input:hover,.select:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--surface-border))}.input:focus-visible,.select:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.input:disabled,.select:disabled{opacity:.6;cursor:not-allowed}@media (pointer:coarse){.input,.select{min-height:44px}}.divider{border:none;border-top:var(--border);margin:var(--sp-3) 0}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text-strong);background:var(--surface-bg);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}a{color:inherit}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes route-fade-lift-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes route-fade-lift-out{0%{opacity:1}to{opacity:0}}::view-transition-old(root){animation:var(--dur-base) var(--ease-out) both route-fade-lift-out}::view-transition-new(root){animation:var(--dur-base) var(--ease-out) both route-fade-lift-in}.route-fade-in{animation:route-fade-lift-in var(--dur-base) var(--ease-out)}@keyframes dialog-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.dialog-pop{animation:dialog-scale-in var(--dur-base) var(--ease-out)}.cv-auto{content-visibility:auto;contain-intrinsic-size:auto 480px}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.error-boundary{height:100%;min-height:240px;padding:var(--sp-6);place-items:center;display:grid}.error-boundary-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);width:100%;max-width:32rem;padding:var(--sp-6);text-align:left}.error-boundary-title{margin:0 0 var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-strong)}.error-boundary-text{margin:0 0 var(--sp-4);font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-muted)}.error-boundary-details{margin:0 0 var(--sp-4);border:var(--border);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);color:var(--status-missing)}.error-boundary-details summary{cursor:pointer;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.error-boundary-details pre{margin:var(--sp-2) 0 0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--status-missing)}.error-boundary-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.skel{background:linear-gradient(100deg, var(--surface-hover) 30%, var(--surface-border) 50%, var(--surface-hover) 70%);background-size:200% 100%;animation:1.4s ease-in-out infinite skel-shimmer;display:block}@keyframes skel-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.skel{background:var(--surface-hover);animation:none}}.skel-text{gap:var(--sp-2);flex-direction:column;display:flex}.skel-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;display:flex}.skel-row-lines{gap:var(--sp-2);flex-direction:column;flex:1;display:flex}.skel-card{gap:var(--sp-3);padding:var(--sp-4);border:var(--border);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--elev-1);flex-direction:column;display:flex}.route-fallback{gap:var(--sp-3);max-width:720px;padding:clamp(14px, 4vw, 44px) var(--sp-4);flex-direction:column;margin:0 auto;display:flex}.bottom-nav{display:none}@media (width<=819px){.bottom-nav{z-index:var(--z-sticky);height:56px;padding-bottom:env(safe-area-inset-bottom);background:var(--surface-card);border-top:var(--border);box-shadow:var(--elev-3);display:flex;position:fixed;bottom:0;left:0;right:0}}.bottom-nav-item{min-height:44px;color:var(--text-muted);font-size:10px;font-weight:var(--fw-medium);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.bottom-nav-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.bottom-nav-icon svg{width:22px;height:22px;display:block}.bottom-nav-on,.bottom-nav-item[aria-current=page]{color:var(--accent)}.bottom-nav-on .bottom-nav-icon,.bottom-nav-item[aria-current=page] .bottom-nav-icon{background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:var(--radius-sm);padding:2px 10px}.sheet-backdrop{z-index:var(--z-overlay);background:hsl(var(--shadow-color) / .45);align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:75vh;box-shadow:var(--elev-4);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.sheet-head{padding:var(--sp-3) var(--sp-4);border-bottom:var(--border);justify-content:space-between;align-items:center;display:flex}.sheet-body{padding:var(--sp-2) var(--sp-3) var(--sp-4);overflow-y:auto}.sheet-section+.sheet-section{margin-top:var(--sp-2)}.sheet-section-title{padding:var(--sp-2) var(--sp-2) 4px;font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted);display:block}.sheet-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sheet-item{align-items:center;gap:var(--sp-3);min-height:44px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-decoration:none;display:flex}.sheet-item:hover{background:var(--surface-bg)}.sheet-item-icon svg{width:20px;height:20px;display:block}.sheet-profile{gap:var(--sp-2);flex-direction:column;align-items:flex-start;display:flex}.sheet-profile-name{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-strong);margin:0}.sheet-profile-role{margin:0 0 var(--sp-2);color:var(--text-muted);font-size:var(--fs-sm)}.cmdp-backdrop{z-index:var(--z-modal);background:hsl(var(--shadow-color) / .45);padding:10vh var(--sp-4) var(--sp-4);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.cmdp-dialog{background:var(--surface-raised);border:var(--border);border-radius:var(--radius-lg);width:min(560px,100%);max-height:70vh;box-shadow:var(--elev-4);flex-direction:column;display:flex;overflow:hidden}.cmdp-search{align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:var(--border);display:flex}.cmdp-input{min-height:40px;color:var(--text-strong);font-size:var(--fs-md);font-family:var(--font-sans);background:0 0;border:none;flex:1}.cmdp-input:focus{outline:none}.cmdp-input::placeholder{color:var(--text-muted)}.cmdp-results{padding:var(--sp-2);overflow-y:auto}.cmdp-empty{padding:var(--sp-4);text-align:center;color:var(--text-muted);font-size:var(--fs-sm);margin:0}.cmdp-group-title{padding:var(--sp-2) var(--sp-2) 4px;font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted);margin:0}.cmdp-list{margin:0 0 var(--sp-1);flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.cmdp-item{text-align:left;width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);color:var(--text-strong);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-direction:column;gap:1px;display:flex}.cmdp-item-label{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.cmdp-item-sub{font-size:var(--fs-xs);color:var(--text-muted)}.cmdp-item:hover,.cmdp-item-active{background:var(--surface-bg)}.cmdp-item-active .cmdp-item-label{color:var(--accent)}.cmdp-hint{gap:var(--sp-4);padding:var(--sp-2) var(--sp-3);border-top:var(--border);font-size:var(--fs-xs);color:var(--text-muted);display:flex}.cmdp-hint kbd{font-family:var(--font-mono);background:var(--surface-bg);border:var(--border);border-radius:4px;padding:1px 5px;font-size:10px}@media (width<=819px){.cmdp-backdrop{padding:var(--sp-3);padding-top:var(--sp-6);align-items:flex-start}.cmdp-dialog{max-height:80vh}}.shell{grid-template-columns:var(--sidebar-w) 1fr;height:100%;transition:grid-template-columns var(--dur-base) var(--ease-out);display:grid}.shell[data-collapsed=true]{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.shell-main{flex-direction:column;min-width:0;height:100%;display:flex}.sidebar{background:var(--surface-card);border-right:2px solid color-mix(in srgb, var(--text-muted) 30%, var(--surface-border));padding:var(--sp-3) var(--sp-2);gap:var(--sp-3);flex-direction:column;display:flex;position:relative;overflow:visible}.sidebar-tab{z-index:20;border:2px solid color-mix(in srgb, var(--text-muted) 30%, var(--surface-border));background:var(--surface-card);width:26px;height:26px;color:var(--text-muted);box-shadow:var(--elev-1);border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:30px;right:-13px}.sidebar-tab:hover{color:var(--accent)}.sidebar-tab svg{width:16px;height:16px}.sidebar-top{align-items:center;gap:var(--sp-2);padding:0 var(--sp-2);min-height:30px;display:flex}.nav-icon svg,.user-signout svg{width:20px;height:20px;display:block}.sidebar-logo{border-radius:var(--radius-md);object-fit:contain;background:0 0;flex:none;width:36px;height:36px;display:block}.sidebar-brand{font-size:var(--fs-md);font-weight:var(--fw-regular);white-space:nowrap;letter-spacing:-.01em}.sidebar-brand b{font-weight:var(--fw-bold)}.sidebar-nav{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-item{align-items:center;gap:var(--sp-3);padding:9px var(--sp-2);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-bg);color:var(--text-strong)}.nav-item.nav-on{background:var(--surface-bg);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.nav-icon{text-align:center;flex:none;width:20px;font-size:16px}.theme-toggle{padding:var(--sp-2);gap:2px;margin-top:auto;display:flex}.theme-toggle+.sidebar-user{margin-top:0}.theme-opt{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 2px;font-size:10px;display:flex}.theme-opt:hover{background:var(--surface-bg);color:var(--text-strong)}.theme-opt-ic svg{width:18px;height:18px;display:block}.theme-on{background:var(--surface-bg);border-color:var(--surface-border);color:var(--accent);font-weight:var(--fw-medium)}.sidebar-user{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-top:var(--border);display:flex}.profile-menu-anchor{flex:none;display:block;position:relative}.user-avatar{background:var(--accent);color:#fff;width:30px;height:30px;font-weight:var(--fw-bold);cursor:pointer;font-size:var(--fs-sm);border:none;border-radius:999px;flex:none;place-items:center;padding:0;line-height:1;display:grid}.user-avatar:hover{filter:brightness(1.08)}.user-avatar:focus-visible{box-shadow:var(--focus-ring);outline:none}.user-meta{white-space:nowrap;flex-direction:column;line-height:1.2;display:flex}.user-meta small{color:var(--text-muted);font-size:var(--fs-xs)}.user-signout{border:var(--border);background:var(--surface-bg);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);flex:none;margin-left:auto;font-size:15px}.user-signout:hover{color:var(--status-missing)}.user-signout:focus-visible{box-shadow:var(--focus-ring);outline:none}.profile-menu{z-index:var(--z-dropdown);background:var(--surface-raised);border:var(--border);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--elev-3);padding:var(--sp-1);flex-direction:column;gap:2px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.profile-menu-item{text-align:left;width:100%;padding:8px var(--sp-2);border-radius:var(--radius-sm);color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;background:0 0;border:none;display:block}.profile-menu-item:hover{background:var(--surface-bg)}.profile-menu-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.profile-menu-item-danger{color:var(--status-missing)}.modal-backdrop{z-index:100;padding:var(--sp-4);background:#0f121873;place-items:center;display:grid;position:fixed;inset:0}.modal-dialog{background:var(--surface-raised);border-radius:var(--radius-lg);border:var(--border);width:min(360px,100%);box-shadow:var(--elev-4);padding:var(--sp-6)}.modal-text{margin:0 0 var(--sp-4);color:var(--text-strong);font-size:var(--fs-md);line-height:var(--lh-normal)}.modal-actions{justify-content:flex-end;gap:var(--sp-2);display:flex}.content{flex:1;min-width:0;min-height:0;overflow:hidden}.shell-mobilebar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:var(--border);background:var(--surface-card);display:none}.shell-search-btn{align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-3);border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-muted);font-size:var(--fs-sm);flex:1;display:flex}.shell-search-btn svg{width:18px;height:18px;display:block}.shell-search-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.shell[data-collapsed=true] .sidebar-brand,.shell[data-collapsed=true] .nav-label,.shell[data-collapsed=true] .user-meta,.shell[data-collapsed=true] .theme-opt-lbl{display:none}.shell[data-collapsed=true] .theme-toggle{flex-direction:column}.shell[data-collapsed=true] .sidebar-top{justify-content:center;padding:0}.shell[data-collapsed=true] .nav-item{justify-content:center}.shell[data-collapsed=true] .sidebar-user{padding:var(--sp-2) 0;flex-direction:column;align-items:center;gap:6px}.shell[data-collapsed=true] .user-signout{display:none}@media (width<=819px){.shell{grid-template-columns:1fr}.sidebar{display:none}.shell-mobilebar{display:flex}main.content{padding-bottom:calc(56px + env(safe-area-inset-bottom))}}@media (pointer:coarse){.sidebar-tab,.user-avatar,.user-signout,.notif-btn{width:44px;height:44px}}.notif-anchor{display:inline-flex;position:relative}.notif-btn{width:30px;height:30px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;place-items:center;display:grid;position:relative}.notif-btn:hover{background:var(--surface-hover);color:var(--text-strong)}.notif-btn svg{width:19px;height:19px}.notif-badge{background:var(--status-problem);color:#fff;min-width:15px;height:15px;font-size:9px;font-weight:var(--fw-bold);border-radius:999px;place-items:center;padding:0 3px;line-height:1;display:grid;position:absolute;top:-1px;right:-1px}.notif-panel{background:var(--surface-card);border:var(--border);width:300px;max-height:380px;box-shadow:var(--elev-3);z-index:40;border-radius:12px;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto}.notif-head{border-bottom:var(--border);background:var(--surface-card);justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.notif-markall{color:var(--accent);font-size:var(--fs-xs);font-weight:var(--fw-medium);background:0 0;border:none}.notif-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:20px 12px}.notif-list{margin:0;padding:0;list-style:none}.notif-item{border-bottom:var(--border);padding:9px 12px}.notif-item:last-child{border-bottom:none}.notif-item p{font-size:var(--fs-xs);color:var(--text-muted);margin:2px 0 0}.notif-item-top{font-size:var(--fs-sm);justify-content:space-between;align-items:baseline;gap:8px;display:flex}.notif-item-top small{color:var(--text-muted);flex:none;font-size:10px}.notif-unread{background:color-mix(in srgb, var(--accent) 6%, transparent)}.notif-unread .notif-item-top b:before{content:"";background:var(--accent);vertical-align:middle;border-radius:999px;width:6px;height:6px;margin-right:5px;display:inline-block}.sidebar-section{list-style:none}.sidebar-section+.sidebar-section{margin-top:6px}.sidebar-section-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}summary.sidebar-section-title{cursor:pointer;font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);opacity:.75;white-space:nowrap;align-items:center;gap:4px;padding:8px 12px 3px;list-style:none;display:flex;overflow:hidden}summary.sidebar-section-title::-webkit-details-marker{display:none}summary.sidebar-section-title:before{content:"";width:8px;height:8px;transition:transform var(--dur-fast) var(--ease-out);border-bottom:1.6px solid;border-right:1.6px solid;flex:none;transform:rotate(-45deg)}.sidebar-section details[open]>summary.sidebar-section-title:before{transform:rotate(45deg)}.shell[data-collapsed=true] .sidebar-section-title{visibility:hidden;height:8px;padding:0}.sidebar-top .notif-anchor{flex:none;margin-left:auto}.shell[data-collapsed=true] .sidebar-top{flex-direction:column;gap:4px}.shell[data-collapsed=true] .sidebar-top .notif-anchor{margin-left:0}.shell[data-collapsed=true] .notif-panel{top:0;left:calc(100% + 8px)}.notif-groups{flex-direction:column;display:flex}.notif-group-title{font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);justify-content:space-between;align-items:center;margin:0;padding:8px 12px 4px;display:flex}.notif-group-title span{font-family:var(--font-mono)}.notif-item-btn{text-align:left;width:100%;color:inherit;background:0 0;border:none;flex-direction:column;gap:2px;padding:0;display:flex}.notif-item-btn:not(:disabled):hover{color:var(--accent)}.notif-item-body{font-size:var(--fs-xs);color:var(--text-muted)}.sidebar-nav{margin-top:var(--sp-4)}.login-split{background:var(--surface-bg);grid-template-columns:1fr;min-height:100%;display:grid}@media (width>=860px){.login-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.login-form-side{padding:var(--sp-4);order:1;place-items:center;display:grid}@media (width>=860px){.login-form-side{padding:var(--sp-8);order:2}}.login-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;padding:var(--sp-8) var(--sp-6);gap:var(--sp-4);box-shadow:var(--elev-4);flex-direction:column;display:flex}.login-card h1{font-size:var(--fs-lg);text-align:center;font-weight:var(--fw-medium);color:var(--text-muted);margin:0}.login-brand-side{justify-content:center;gap:var(--sp-4);padding:var(--sp-8) clamp(var(--sp-6), 6vw, 4rem);color:#f8fbff;background:radial-gradient(circle at 20% 20%,#3b6fd459,#0000 55%),linear-gradient(160deg,#020b15,#061a2e 55%,#0b2c4c);flex-direction:column;order:2;display:none}@media (width>=860px){.login-brand-side{order:1;display:flex}}.login-brand-mark{font-size:var(--fs-display);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight)}.login-brand-mark b{color:#6f9df0;font-weight:var(--fw-bold)}.login-brand-tagline{max-width:26rem;font-size:var(--fs-md);color:#f8fbffc7;line-height:var(--lh-normal);margin:0}.field{font-size:var(--fs-sm);flex-direction:column;gap:4px;display:flex}.field span{color:var(--text-muted)}.field input{border:var(--border);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--surface-bg);padding:10px 12px}.pw{display:flex;position:relative}.pw input{flex:1}.pw-toggle{color:var(--accent);font-size:var(--fs-xs);background:0 0;border:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-error{color:var(--status-missing);font-size:var(--fs-sm);margin:0}.login-submit{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-weight:var(--fw-medium);font-size:var(--fs-md);border:none;padding:11px}.login-submit:disabled{opacity:.6}.req-page{height:100%;padding:var(--sp-6) var(--sp-4) var(--sp-8);max-width:760px;margin:0 auto;overflow-y:auto}.req-head{margin-bottom:var(--sp-5);justify-content:space-between;align-items:center;display:flex}.req-head h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.req-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.req-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.req-card-top{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.req-card-main{flex-direction:column;gap:2px;min-width:0;display:flex}.req-card-name{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-strong)}.req-card-meta{font-size:var(--fs-sm);color:var(--text-muted)}.req-card-date{font-size:var(--fs-xs);color:var(--text-muted)}.req-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);border:var(--border);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;display:inline-flex}.req-badge-open{background:var(--status-problem-bg);color:var(--status-problem);border-color:#0000}.req-badge-approved{background:var(--status-ok-bg);color:var(--status-ok);border-color:#0000}.req-badge-rejected{background:var(--status-missing-bg);color:var(--status-missing);border-color:#0000}.req-badge-fulfilled{background:var(--surface-bg);color:var(--text-muted)}.req-card-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.req-card-note{font-size:var(--fs-sm);color:var(--text-muted)}.req-empty{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.req-state{color:var(--text-muted);font-size:var(--fs-sm);padding:var(--sp-6) 0}.req-modal{background:var(--surface-card);border-radius:var(--radius-lg);width:min(420px,92vw);box-shadow:var(--elev-4)}.req-modal-head{padding:var(--sp-4);border-bottom:var(--border);justify-content:space-between;align-items:center;display:flex}.req-modal-head b{font-size:var(--fs-md)}.req-modal-body{padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.req-modal-actions{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4);border-top:var(--border);display:flex}.req-field{flex-direction:column;gap:4px;display:flex}.req-field label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.req-field input,.req-field select,.req-field textarea{font:inherit;font-family:var(--font-sans);border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);padding:8px 10px}.req-field textarea{resize:vertical;min-height:60px}.req-field input:focus-visible,.req-field select:focus-visible,.req-field textarea:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-card);outline:none}.req-mode-toggle{gap:var(--sp-2);display:flex}.req-mode-btn{border:var(--border);background:var(--surface-bg);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;flex:1;padding:6px 10px}.req-mode-btn.req-mode-on{background:var(--accent);color:var(--text-inverse);border-color:#0000}.req-flash{font-size:var(--fs-sm);color:var(--status-ok);font-weight:var(--fw-medium);margin:0}.req-equiv-list{gap:var(--sp-2);flex-direction:column;display:flex}.req-equiv-row{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);display:flex}.req-equiv-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.req-equiv-note{font-size:var(--fs-xs);color:var(--text-muted)}.req-equiv-remove{color:var(--text-muted);cursor:pointer;font-size:var(--fs-md);background:0 0;border:none;flex:none;line-height:1}.req-equiv-remove:hover{color:var(--status-missing)}.req-equiv-add{gap:var(--sp-2);margin-top:var(--sp-2);flex-direction:column;display:flex}.req-equiv-add-row{gap:var(--sp-2);display:flex}.req-equiv-add-row select,.req-equiv-add-row input{font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);flex:1;padding:6px 8px}.mp-ack-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.mp-ack-main{flex-direction:column;gap:2px;min-width:0;display:flex}.mp-ack-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.mp-ack-meta{font-size:var(--fs-xs);color:var(--text-muted)}.mp-ack-actions{gap:var(--sp-2);flex:none;display:flex}@media (width<=480px){.req-page{padding:var(--sp-4) var(--sp-3) var(--sp-8)}.req-card-actions{gap:var(--sp-1)}.mp-ack-card{flex-direction:column;align-items:stretch}}.empty-state{align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.empty-state-icon{border-radius:var(--radius-lg);background:var(--surface-bg);border:var(--border);width:48px;height:48px;color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.empty-state-message{max-width:32ch;font-size:var(--fs-sm);line-height:var(--lh-normal);margin:0}.myplanning{height:100%;padding:var(--sp-6) var(--sp-4) var(--sp-8);max-width:640px;margin:0 auto;overflow-y:auto}.mp-header{margin-bottom:var(--sp-6)}.mp-header h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.mp-sub{margin:var(--sp-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.mp-tabs{gap:var(--sp-1);margin-bottom:var(--sp-6);background:var(--surface-bg);border:var(--border);border-radius:var(--radius-lg);padding:4px;display:flex}.mp-tab{text-align:center;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);flex:1 1 0;padding:8px 12px;text-decoration:none}.mp-tab:hover{color:var(--text-strong)}.mp-tab:focus-visible{box-shadow:var(--focus-ring);outline:none}.mp-tab-on{background:var(--surface-card);color:var(--text-strong);font-weight:var(--fw-bold);box-shadow:var(--elev-1)}.mp-state{color:var(--text-muted);font-size:var(--fs-sm);padding:var(--sp-6) 0}.mp-state-error{color:var(--status-missing)}.mp-sections{gap:var(--sp-6);flex-direction:column;display:flex}.mp-section h2{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0 0 var(--sp-3)}.mp-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mp-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.mp-card-main{flex-direction:column;gap:2px;display:flex}.mp-card-project{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-strong)}.mp-card-date{font-size:var(--fs-sm);color:var(--accent)}.mp-card-address{font-size:var(--fs-sm);color:var(--text-muted)}.mp-card-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.mp-btn{border:var(--border);background:var(--surface-bg);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong);cursor:pointer;align-items:center;padding:8px 14px;text-decoration:none;display:inline-flex}.mp-btn:hover{border-color:var(--accent);color:var(--accent)}.mp-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.mp-detail{border-top:var(--border);padding-top:var(--sp-3);gap:var(--sp-2);font-size:var(--fs-sm);flex-direction:column;display:flex}.mp-detail-row{flex-direction:column;gap:2px;display:flex}.mp-detail-label{color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.mp-detail-empty{color:var(--text-muted);margin:0}.mp-section-head{margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.mp-btn-primary{background:var(--accent);color:var(--text-inverse);border-color:#0000}.mp-modal-backdrop{background:hsl(var(--shadow-color) / .32);z-index:40;padding:var(--sp-4);place-items:center;display:grid;position:fixed;inset:0}.mp-modal{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:var(--sp-4);box-shadow:var(--elev-4)}.mp-modal-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.mp-modal-field{font-size:var(--fs-sm);margin-bottom:var(--sp-3);flex-direction:column;gap:4px;display:flex}@media (width<=480px){.myplanning{padding:var(--sp-4) var(--sp-3) var(--sp-8)}.mp-card-actions{gap:var(--sp-1)}.mp-btn{flex:auto;justify-content:center}}.system-page{min-height:100%;padding:var(--sp-6);background:var(--surface-bg);place-items:center;display:grid}.system-card{text-align:center;align-items:center;gap:var(--sp-4);width:100%;max-width:30rem;padding:var(--sp-8) var(--sp-6);background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-3);flex-direction:column;display:flex}.system-icon{width:4rem;height:4rem;color:var(--accent);background:var(--surface-hover);border-radius:999px;place-items:center;display:grid}.system-code{font-size:var(--fs-display);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight);color:var(--text-strong);margin:0}.system-title{font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--text-strong);margin:0}.system-text{font-size:var(--fs-sm);line-height:var(--lh-normal);color:var(--text-muted);margin:0}.system-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.start{max-width:720px;margin:0 auto;padding:clamp(14px,4vw,44px) 16px}.start-head{margin-bottom:12px}.start-head h1{letter-spacing:-.01em;margin:0;font-size:clamp(1.2rem,3.6vw,1.6rem)}.start-date{color:var(--text-muted);font-size:var(--fs-sm);margin:2px 0 0}.start-date-day{text-transform:capitalize}.occupancy-strip{border-radius:var(--radius-lg);border:var(--border);background:var(--surface-card);min-height:76px;box-shadow:var(--elev-1);color:var(--text-strong);transition:box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);flex-direction:column;gap:4px;margin-bottom:12px;padding:14px 16px;text-decoration:none;display:flex}a.occupancy-strip:hover{box-shadow:var(--elev-3);border-color:color-mix(in srgb, var(--accent) 45%, var(--surface-border))}.occupancy-strip.is-loading{justify-content:center}.occupancy-figure{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.occupancy-label{color:var(--text-muted);font-size:var(--fs-sm)}.occupancy-bar{background:var(--surface-weekend);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.occupancy-bar-fill{background:var(--accent);height:100%;transition:width var(--dur-slow) var(--ease-out);border-radius:999px}.attention-clear{color:#15803d;font-size:var(--fs-sm);background:#16a34a1a;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;font-weight:500;display:flex}.attention-clear svg{flex-shrink:0;width:15px;height:15px}.attention-panel{border:var(--border);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--elev-2);margin-bottom:12px;padding:4px}.attention-head{justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.attention-title{font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);font-weight:700}.attention-badge{font-size:var(--fs-xs);background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);border-radius:999px;padding:2px 8px;font-weight:600}.attention-list{flex-direction:column;gap:2px;margin:0;padding:4px;list-style:none;display:flex}.attention-row{border-radius:var(--radius-md);min-height:44px;color:var(--text-strong);font-size:var(--fs-sm);align-items:center;gap:10px;padding:6px 10px;display:flex}.attention-label{flex:1;font-weight:500}.attention-count{min-width:20px;height:20px;font-weight:700;font-size:var(--fs-xs);background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-radius:7px;place-items:center;padding:0 6px;display:grid}.attention-action{flex-shrink:0}.start-error{min-height:44px;color:var(--status-missing);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.start-error span:first-child{font-size:var(--fs-sm);font-weight:500}.today-panel{border:var(--border);background:var(--surface-card);box-shadow:var(--elev-2);border-radius:14px;padding:12px 14px}.today-title{font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-weight:700;display:block}.today-empty{color:var(--text-muted);font-size:var(--fs-sm);margin:0}.today-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.today-row{border-radius:var(--radius-md);background:var(--surface-bg);border:var(--border);min-height:64px;padding:8px 10px}.today-row-main{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.today-row-name{font-weight:var(--fw-medium);font-size:var(--fs-sm);color:var(--text-strong)}.today-row-loc{font-size:var(--fs-xs);color:var(--text-muted)}.today-row-meta,.today-row-crew{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.today-chip{font-size:var(--fs-xs);font-weight:var(--fw-medium);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-radius:999px;padding:2px 8px}.today-status-dot{border-radius:999px;flex-shrink:0;align-self:center;width:8px;height:8px}.today-status-dot.is-ok{background:var(--status-ok)}.today-status-dot.is-problem{background:var(--status-problem)}.today-status-dot.is-missing{background:var(--status-missing)}.today-status-label{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.quick-actions{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.quick-actions .btn{flex:auto}.start-cards{flex-direction:row;gap:10px;margin-top:14px;display:flex}.start-card{border:var(--border);background:var(--surface-card);min-width:0;color:var(--text-strong);box-shadow:var(--elev-1);text-align:center;transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border-radius:14px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:12px 6px;text-decoration:none;display:flex}.start-card:hover{box-shadow:var(--elev-3);border-color:color-mix(in srgb, var(--accent) 45%, var(--surface-border));transform:translateY(-1px)}.start-card-title{font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:var(--lh-tight)}.start-card-ico{border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent) 12%, transparent);width:34px;height:34px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.start-card-ico svg{width:18px;height:18px}.pwa-update{left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:1000;width:min(420px,100vw - 24px);animation:.25s ease-out pwa-update-in;position:fixed;transform:translate(-50%)}@keyframes pwa-update-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.pwa-update{animation:none}}.pwa-update-card{background:var(--surface-card,#fff);border:var(--border,1px solid hsl(var(--shadow-color) / .1));box-shadow:var(--elev-4);border-radius:14px;align-items:center;gap:14px;padding:12px 14px;display:flex}.pwa-update-txt{flex-direction:column;gap:2px;min-width:0;display:flex}.pwa-update-txt b{font-size:var(--fs-sm,.9rem);color:var(--text-strong,#111)}.pwa-update-txt span{font-size:var(--fs-xs,.78rem);color:var(--text-muted,#666)}.pwa-update-btn{background:var(--accent,#2563eb);color:#fff;font-weight:var(--fw-bold,700);font-size:var(--fs-sm,.9rem);border:none;border-radius:999px;flex:none;padding:9px 16px}.pwa-update-btn:disabled{opacity:.7}.offline-banner{z-index:900;font-size:var(--fs-xs);font-weight:var(--fw-medium);box-shadow:var(--elev-3);border-radius:999px;align-items:center;gap:12px;max-width:92vw;padding:8px 14px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.ob-offline{background:var(--status-problem,#b4232a);color:#fff}.ob-syncing{background:var(--surface-card);color:var(--text-strong);border:var(--border)}.ob-retry{background:var(--accent);color:#fff;font-size:11px;font-weight:var(--fw-bold);border:none;border-radius:999px;margin-left:8px;padding:2px 10px}
