@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-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;--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;--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{--surface-bg:#14171c;--surface-card:#1c2027;--surface-raised:#232833;--surface-border:#2e343f;--surface-weekend:#191d23;--text-strong:#f1f3f6;--text-muted:#9aa2ad}}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}*,: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}.shell{grid-template-columns:var(--sidebar-w) 1fr;height:100%;transition:grid-template-columns .18s;display:grid}.shell[data-collapsed=true]{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.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);border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:30px;right:-13px;box-shadow:0 1px 4px #0000001f}.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{object-fit:contain;background:0 0;border-radius:10px;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}.sidebar-user{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-top:var(--border);margin-top:auto;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:30;background:var(--surface-raised);border:var(--border);border-radius:var(--radius-md);min-width:180px;padding:var(--sp-1);flex-direction:column;gap:2px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 8px 24px #00000029}.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%);padding:var(--sp-6);box-shadow:0 16px 40px #00000040}.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}.modal-actions .btn-danger{background:var(--status-missing);border-color:var(--status-missing);color:#fff}.modal-actions .btn-danger:hover{filter:brightness(1.08)}.modal-actions .btn:focus-visible,.modal-actions .btn-danger:focus-visible{box-shadow:var(--focus-ring);outline:none}.content{min-width:0;height:100%;overflow:hidden}.shell[data-collapsed=true] .sidebar-brand,.shell[data-collapsed=true] .nav-label,.shell[data-collapsed=true] .user-meta{display:none}.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}.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);z-index:40;border-radius:12px;width:300px;max-height:380px;position:absolute;bottom:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 8px 28px #00000038}.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}.sidebar-section-title{font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);opacity:.75;white-space:nowrap;padding:8px 12px 3px;display:block;overflow:hidden}.shell[data-collapsed=true] .sidebar-section-title{visibility:hidden;height:8px;padding:0}.login{min-height:100%;padding:var(--sp-4);background:var(--surface-bg);place-items:center;display:grid}.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);flex-direction:column;display:flex;box-shadow:0 12px 40px #0000000f}.login-brand{font-size:var(--fs-lg);text-align:center;letter-spacing:-.01em}.login-brand b{font-weight:var(--fw-bold)}.login-card h1{font-size:var(--fs-lg);text-align:center;font-weight:var(--fw-medium);color:var(--text-muted);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}.hourview{flex-direction:column;height:100%;min-height:0;display:flex}.hv-bar{align-items:center;gap:var(--sp-4);border-bottom:var(--border);background:var(--surface-card);grid-template-columns:1fr auto 1fr;padding:6px 10px;display:grid}.hv-wk-side{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted)}.hv-wk-left{justify-self:end}.hv-wk-right{justify-self:start}.hv-nav{align-items:center;gap:4px;display:inline-flex}.hv-nav button{border:var(--border);background:var(--surface-card);border-radius:var(--radius-sm);width:30px;height:30px;font-size:16px;line-height:1}.hv-nav .btn{width:auto;font-size:var(--fs-sm);font-weight:var(--fw-bold);background:var(--accent);color:#fff;border-color:#0000;padding:0 14px}.hv-scroll{flex:1;min-height:0;position:relative;overflow:auto}.hv-grid{width:max-content;display:grid}.hv-day{z-index:4;background:var(--surface-card);border-bottom:var(--border);border-left:1px solid var(--surface-border);height:38px;font-size:var(--fs-xs);font-weight:var(--fw-medium);flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:sticky;top:0}.hv-day.week-start{border-left:2px solid color-mix(in srgb, var(--text-muted) 55%, var(--surface-border))}.hv-day.weekend{background:var(--surface-weekend)}.hv-day.today .hv-day-main{color:var(--accent);font-weight:var(--fw-bold)}.hv-day-wk{color:var(--text-muted);font-size:9px;font-weight:var(--fw-medium);letter-spacing:.02em}.hv-day-main{white-space:nowrap;font-size:11px}.hv-hour{z-index:4;background:var(--surface-card);border-bottom:var(--border);border-left:1px solid var(--surface-border);height:18px;color:var(--text-muted);font-size:9px;font-family:var(--font-mono);justify-content:center;align-items:center;display:flex;position:sticky;top:38px}.hv-hour.week-start{border-left:2px solid color-mix(in srgb, var(--text-muted) 55%, var(--surface-border))}.hv-hour.weekend{background:var(--surface-weekend)}.hv-cell.week-start{border-left:2px solid color-mix(in srgb, var(--text-muted) 40%, var(--surface-border))}.hv-cell{border-bottom:var(--border);border-left:1px solid var(--surface-border)}.hv-cell.weekend{background:var(--surface-weekend)}.hv-block{--bar:var(--pc-blauw);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bar) 82%, transparent);min-height:30px;box-shadow:inset 3px 0 0 var(--bar);z-index:1;flex-direction:column;justify-content:center;align-self:center;margin:3px 1px;padding:0 8px;display:flex;overflow:hidden}.hv-block[data-pc=blauw]{--bar:var(--pc-blauw)}.hv-block[data-pc=turquoise]{--bar:var(--pc-turquoise)}.hv-block[data-pc=indigo]{--bar:var(--pc-indigo)}.hv-block[data-pc=paars]{--bar:var(--pc-paars)}.hv-block[data-pc=zand]{--bar:var(--pc-zand)}.hv-block[data-pc=terracotta]{--bar:var(--pc-terracotta)}.hv-block[data-pc=leigrijs]{--bar:var(--pc-leigrijs)}.hv-block[data-pc=groenblauw]{--bar:var(--pc-groenblauw)}.hv-block[data-tentative=true]{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--bar) 82%, transparent) 0 6px, color-mix(in srgb, var(--bar) 55%, transparent) 6px 12px)}.hv-block-name{font-size:11px;font-weight:var(--fw-bold);color:#fff;white-space:nowrap;text-overflow:ellipsis;line-height:1.15;overflow:hidden}.hv-block-team{color:#ffffffd9;white-space:nowrap;text-overflow:ellipsis;font-size:9px;line-height:1.1;overflow:hidden}.hv-empty{padding:var(--sp-6);color:var(--text-muted)}.context-menu__overlay{z-index:300;background:#00000052;position:fixed;inset:0}.context-menu{z-index:300;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-md);position:fixed;overflow:hidden;box-shadow:0 8px 28px #00000038}.context-menu--popover{min-width:200px;max-width:240px;padding:6px}.context-menu--sheet{border-radius:var(--radius-md) var(--radius-md) 0 0;width:100%;padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));border-bottom:none;animation:.22s ease-out context-menu-slide-up;bottom:0;left:0;right:0}@media (prefers-reduced-motion:reduce){.context-menu--sheet{animation:none}}@keyframes context-menu-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.context-menu__handle{background:var(--surface-border);border-radius:999px;width:36px;height:4px;margin:6px auto 10px}.context-menu__title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-strong);padding:6px 10px}.context-menu--sheet .context-menu__title{padding:0 4px 8px}.context-menu__list{flex-direction:column;display:flex}.context-menu__item{width:100%;color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:left;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.context-menu--sheet .context-menu__item{padding:14px 10px;font-size:1rem}.context-menu__item:hover:not(.context-menu__item--disabled){background:var(--surface-hover)}.context-menu__item--separated{border-top:1px solid var(--surface-border);margin-top:6px;padding-top:12px}.context-menu__item--danger{color:var(--status-problem)}.context-menu__item--disabled{color:var(--text-muted);cursor:not-allowed;opacity:.55}.context-menu__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.context-menu__shortcut{color:var(--text-muted);font-size:var(--fs-sm);text-align:right;flex-shrink:0}.help-tabs{gap:var(--sp-2,8px);border-bottom:1px solid var(--surface-border);margin-bottom:10px;display:flex}.help-tab{color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium,500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 4px}.help-shortcuts{border-top:1px solid var(--surface-border);margin-top:14px;padding-top:10px}.help-shortcuts h4{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 4px}.add-backdrop{z-index:300;position:fixed;inset:0}.add-pop{background:var(--surface-card);border:var(--border);border-radius:12px;flex-direction:column;gap:8px;width:288px;max-height:78vh;padding:10px;display:flex;position:fixed;overflow-y:auto;box-shadow:0 12px 36px #00000042}.add-primary{background:var(--accent);color:#fff;width:100%;font-weight:var(--fw-bold);font-size:var(--fs-sm);border:none;border-radius:8px;padding:9px 12px}.add-primary:disabled{opacity:.55}.add-section-h{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:2px 0 4px}.add-empty{font-size:var(--fs-xs);color:var(--text-muted);padding:4px 2px}.add-list{max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}.add-item{text-align:left;width:100%;font-size:var(--fs-sm);color:var(--text-strong);background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.add-item:hover{background:var(--surface-hover)}.add-tag{font-size:10px;font-weight:var(--fw-bold);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;flex:none;padding:0 6px}.add-divider{background:var(--surface-border);height:1px;margin:2px 0}.add-row{text-align:left;border:var(--border);background:var(--surface-card);width:100%;font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:8px;padding:8px 10px}.add-row:hover{background:var(--surface-hover)}.add-form{flex-direction:column;gap:8px;display:flex}.add-form-h{font-size:var(--fs-md);align-items:center;gap:8px;display:flex}.add-back{border:var(--border);background:var(--surface-card);border-radius:999px;width:26px;height:26px;font-size:16px;line-height:1}.add-form label{font-size:var(--fs-xs);color:var(--text-muted);flex-direction:column;gap:3px;display:flex}.add-form input,.add-form textarea{border:var(--border);font-size:var(--fs-sm);background:var(--surface-bg);color:var(--text-strong);border-radius:7px;padding:7px 9px;font-family:inherit}.add-row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.planning{--proj-w:208px;--day-w:46px;grid-template-columns:1fr;height:100%;display:grid;overflow:hidden}.planning[data-detail=open]{grid-template-columns:1fr}@media (width>=1080px){.planning[data-detail=open]{grid-template-columns:1fr 340px}}.planning-main{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;position:relative}.scroll-hint{z-index:8;border:var(--border);background:var(--surface-card);width:34px;height:34px;color:var(--accent);border-radius:999px;place-items:center;animation:1.3s ease-in-out infinite hint-bounce;display:grid;position:absolute;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #0000002e}.scroll-hint svg{width:20px;height:20px}@keyframes hint-bounce{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,5px)}}@media (prefers-reduced-motion:reduce){.scroll-hint{animation:none}}.toolbar{border-bottom:var(--border);background:var(--surface-card);grid-template-columns:max-content max-content 1fr;align-items:center;gap:6px 8px;padding:6px 10px;display:grid}.toolbar>.seg{grid-area:1/1;justify-self:center}.toolbar>.btn-today{grid-area:1/2}.toolbar>.help{grid-area:1/3;justify-self:end}.tb-autoplan{grid-area:2/1;justify-self:center;display:flex}.autoplan-ctl{border:var(--border);background:var(--surface-card);border-radius:999px;align-items:center;gap:10px;padding:3px 4px 3px 12px;display:inline-flex}.autoplan-ctl-lbl{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.autoplan-ctl:disabled{opacity:.7}.autoplan-ctl.ap-on{border-color:color-mix(in srgb, var(--status-ok) 55%, var(--surface-border))}.ap-switch{border-radius:999px;flex:none;width:58px;height:22px;display:block;position:relative}.ap-on .ap-switch{background:var(--status-ok)}.ap-off .ap-switch{background:var(--status-missing)}.ap-switch-text{color:#fff;height:100%;font-size:var(--fs-xs);font-weight:var(--fw-bold);align-items:center;display:flex;position:absolute;top:0}.ap-on .ap-switch-text{left:9px}.ap-off .ap-switch-text{right:9px}.ap-switch-knob{background:#fff;border-radius:999px;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;box-shadow:0 1px 3px #0000004d}.ap-on .ap-switch-knob{left:38px}.ap-off .ap-switch-knob{left:2px}.seg{border:var(--border);border-radius:var(--radius-sm);flex:none;display:inline-flex;overflow:hidden}.seg button{background:var(--surface-card);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);border:none;padding:5px 12px}.seg button.seg-on{background:var(--accent);color:var(--text-inverse)}.btn{border:var(--border);background:var(--surface-card);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-medium);padding:5px 10px}.btn-primary{background:var(--accent);color:var(--text-inverse);border-color:#0000}.btn-today{flex:none}.chip{border:var(--border);font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;border-radius:999px;margin-left:auto;padding:3px 9px}.chip-warn{color:var(--status-problem);border-color:var(--status-problem);background:var(--status-problem-bg)}.chip-ok{color:var(--status-ok);border-color:var(--status-ok);background:var(--status-ok-bg)}.chip-active{outline:2px solid}.help{border:var(--border);background:var(--surface-card);width:28px;height:28px;font-weight:var(--fw-bold);color:var(--text-muted);border-radius:999px;flex:none}@media (width<=560px){.seg button{padding:5px 10px}}.capacity{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:var(--border);background:var(--surface-bg);display:flex;overflow-x:auto}.cap-cell{min-width:132px}.cap-head{font-size:var(--fs-sm);justify-content:space-between;align-items:baseline;display:flex}.cap-head b{font-size:var(--fs-md)}.cap-bar{background:var(--surface-border);border-radius:3px;height:6px;margin:4px 0;overflow:hidden}.cap-bar span{background:var(--accent);height:100%;display:block}.cap-meta{font-size:var(--fs-xs);color:var(--text-muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.timeline{flex:1;min-height:0;position:relative;overflow:auto}.tl-content{background-image:repeating-linear-gradient(to right, color-mix(in srgb, var(--text-muted) 55%, var(--surface-border)) 0 2px, transparent 2px calc(var(--day-w) * 7)), repeating-linear-gradient(to right, var(--surface-border) 0 1px, transparent 1px var(--day-w)),  repeating-linear-gradient(to right, transparent 0 calc(var(--day-w) * 5), var(--surface-weekend) calc(var(--day-w) * 5) calc(var(--day-w) * 7));align-content:start;width:max-content;min-height:100%;padding-bottom:90px;display:grid;position:relative}.sticky-t{z-index:6;position:sticky;top:0}.sticky-t2{z-index:5;position:sticky;top:20px}.sticky-t3{z-index:5;position:sticky;top:46px}.hdr-month{background:var(--surface-card);border-bottom:var(--border);border-left:2px solid var(--surface-border);font-weight:var(--fw-bold);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;align-items:center;height:20px;display:flex;overflow:visible}.hdr-month-lbl{padding-left:6px;display:inline-block;position:sticky;left:8px}.hdr-week{background:var(--surface-card);border-left:2px solid color-mix(in srgb, var(--text-muted) 55%, var(--surface-border));color:var(--text-muted);height:26px;font-size:var(--fs-xs);align-items:center;padding:0;display:flex;overflow:visible}.hdr-week-inner{white-space:nowrap;align-items:center;gap:6px;padding-left:6px;display:inline-flex;position:sticky;left:8px}.wk-name{font-weight:var(--fw-medium);color:var(--text-strong)}.wk-prog{background:var(--surface-border);border-radius:4px;flex:none;width:40px;height:7px;position:relative;overflow:hidden}.wk-prog-fill{height:100%;position:absolute;top:0;left:0}.wk-under .wk-prog-fill{background:var(--status-missing)}.wk-full .wk-prog-fill{background:var(--status-ok)}.wk-over .wk-prog-fill{background:var(--status-problem)}.wk-val{color:var(--text-muted)}.tl-content[data-mode=month] .wk-val{display:none}.hdr-day{background:var(--surface-card);border-top:var(--border);border-bottom:var(--border);border-left:1px solid var(--surface-border);flex-direction:column;justify-content:center;align-items:center;gap:0;height:32px;display:flex;overflow:hidden}.hdr-day .d-name{color:var(--text-muted);text-transform:uppercase;font-size:9px;line-height:1.1}.hdr-day .d-num{font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1.1}.tl-content[data-mode=month] .hdr-day .d-name{display:none}.tl-content[data-mode=month] .hdr-day .d-num{font-size:9px}.hdr-day.weekend{background:var(--surface-weekend)}.hdr-day.is-today{color:var(--accent)}.hdr-day.is-today .d-num{color:var(--accent);font-weight:var(--fw-bold)}.hdr-day.week-start{border-left:2px solid color-mix(in srgb, var(--text-muted) 55%, var(--surface-border))}.today-line{border-left:2px solid var(--today-line);pointer-events:none;width:0;position:absolute;top:46px;bottom:0}.today-flag{z-index:9;background:var(--today-line);color:var(--text-inverse);font-size:10px;font-weight:var(--fw-bold);border-radius:0 var(--radius-sm) var(--radius-sm) var(--radius-sm);white-space:nowrap;padding:1px 6px;display:inline-block;position:sticky;top:78px;transform:translate(-1px)}.pbar{--bar:var(--pc-blauw);border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bar) 45%, var(--surface-border)), inset 3px 0 0 var(--bar);background:color-mix(in srgb, color-mix(in srgb, var(--bar) 20%, var(--surface-card)) 80%, transparent);z-index:1;flex-direction:column;align-self:start;min-width:0;margin:3px 0;display:flex;position:relative;overflow:hidden}.pbar[data-pc=blauw]{--bar:var(--pc-blauw)}.pbar[data-pc=turquoise]{--bar:var(--pc-turquoise)}.pbar[data-pc=indigo]{--bar:var(--pc-indigo)}.pbar[data-pc=paars]{--bar:var(--pc-paars)}.pbar[data-pc=zand]{--bar:var(--pc-zand)}.pbar[data-pc=terracotta]{--bar:var(--pc-terracotta)}.pbar[data-pc=leigrijs]{--bar:var(--pc-leigrijs)}.pbar[data-pc=groenblauw]{--bar:var(--pc-groenblauw)}.pbar-sel{outline:2px solid var(--accent);outline-offset:0}.clip-l{border-left-style:dashed;border-top-left-radius:0;border-bottom-left-radius:0}.clip-r{border-top-right-radius:0;border-bottom-right-radius:0}.pbar-title{text-align:left;background:0 0;border:none;align-items:center;width:100%;padding:3px 5px 2px;display:flex;overflow:hidden}.pbar-title-inner{z-index:6;align-items:center;gap:4px;min-width:0;max-width:100%;display:inline-flex;position:sticky;left:5px}.pbar-name{min-width:0;font-weight:var(--fw-medium);font-size:var(--fs-sm);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.pstatus{width:16px;height:16px;font-family:var(--font-mono);font-weight:var(--fw-bold);flex:none;justify-content:center;align-items:center;font-size:12px;line-height:1;display:inline-flex}.pstatus-ok{color:var(--status-ok)}.pstatus-missing{color:var(--status-missing)}.pstatus svg{width:16px;height:16px;display:block}.lab{font-size:10px;font-family:var(--font-mono);background:var(--surface-card);border:var(--border);color:var(--text-muted);border-radius:4px;flex:none;padding:1px 5px}.lab-you{background:var(--you-bg);border-color:var(--you-outline);color:var(--you-outline);font-weight:var(--fw-bold)}.lab-warn{background:var(--status-problem-bg);border-color:var(--status-problem);color:var(--status-problem)}.pbar-days{gap:0;padding:0 0 3px;display:grid}.sq{border:none;border-radius:3px;justify-content:center;align-items:center;min-width:0;height:15px;margin:0 2px;padding:0;display:flex;overflow:hidden}.pbar[data-mode=month]{margin:0}.pbar[data-mode=month] .pbar-days{padding:0 0 2px}.pbar[data-mode=month] .sq{border-radius:2px;height:9px;margin:0 1px}.pbar[data-mode=month] .sq-mark{font-size:8px}.pbar[data-mode=month] .pbar-title{padding:2px 5px 1px}.pbar[data-mode=week]{margin:2px 0}.pbar[data-mode=day] .sq{height:16px}.sq-off{background:0 0}.sq-ok{background:color-mix(in srgb, var(--status-ok) 86%, transparent)}.sq-missing{background:color-mix(in srgb, var(--status-missing) 86%, transparent)}.sq-problem{background:color-mix(in srgb, var(--status-problem) 86%, transparent)}.sq-mark{color:#fff;font-weight:var(--fw-bold);font-size:11px;font-family:var(--font-mono);justify-content:center;align-items:center;width:100%;height:100%;line-height:1;display:flex}.sq-team{color:#fff;font-weight:var(--fw-bold);font-size:9px;font-family:var(--font-mono);white-space:nowrap;line-height:1;overflow:hidden}.sq-tri{width:100%;height:100%;display:block}.sq.is-today{outline:1px solid var(--today-line);outline-offset:-1px}.pbar-lanes{flex-direction:column;gap:2px;padding:0 4px 4px;display:flex}.lane{height:22px;display:grid}.run{background:color-mix(in srgb, var(--bar) 26%, var(--surface-card));border:1px solid color-mix(in srgb, var(--bar) 55%, var(--surface-border));border-radius:4px;align-items:center;min-width:0;padding:0;display:flex;overflow:hidden}.run-you{background:var(--you-bg);border-color:var(--you-outline)}.run-lbl{white-space:nowrap;align-items:baseline;gap:6px;max-width:100%;padding:0 6px;display:inline-flex;position:sticky;left:6px;overflow:hidden}.run-lbl b{color:var(--text-strong);font-size:11px}.run-members{color:var(--text-muted);text-overflow:ellipsis;font-size:10px;overflow:hidden}.run-you .run-lbl b{color:var(--you-outline)}.members-pop{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:300px;box-shadow:0 20px 60px #00000040}.members-list{padding:var(--sp-2) var(--sp-4) var(--sp-4);flex-direction:column;gap:4px;margin:0;list-style:none;display:flex}.members-list li{border-radius:var(--radius-sm);background:var(--surface-bg);font-size:var(--fs-sm);padding:6px 8px}.detail{border-left:var(--border);background:var(--surface-card);padding:var(--sp-4);gap:var(--sp-4);flex-direction:column;display:flex;overflow-y:auto}@media (width<=1079px){.detail{z-index:20;position:fixed;inset:0}}.detail-head{align-items:center;gap:var(--sp-2);display:flex}.detail-head h2{font-size:var(--fs-lg);flex:1;margin:0}.detail-swatch{background:var(--pc-blauw);border-radius:3px;width:12px;height:12px}.detail-swatch[data-pc=turquoise]{background:var(--pc-turquoise)}.detail-swatch[data-pc=indigo]{background:var(--pc-indigo)}.detail-swatch[data-pc=zand]{background:var(--pc-zand)}.detail-swatch[data-pc=terracotta]{background:var(--pc-terracotta)}.detail-close{background:var(--surface-bg);border-radius:var(--radius-sm);border:none;width:32px;height:32px;margin-left:auto;font-size:20px}.detail-list{gap:var(--sp-2);flex-direction:column;margin:0;display:flex}.detail-list>div{justify-content:space-between;gap:var(--sp-4);border-bottom:var(--border);padding-bottom:var(--sp-2);display:flex}.detail-list dt{color:var(--text-muted);font-size:var(--fs-sm)}.detail-list dd{font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:right;margin:0}.detail-attention h3{color:var(--status-problem);font-size:var(--fs-sm);margin:0 0 var(--sp-2)}.detail-attention ul{padding-left:var(--sp-4);font-size:var(--fs-sm);margin:0}.detail-ok{color:var(--status-ok);font-weight:var(--fw-medium)}.detail-auto{margin-top:auto}.planning-loading{height:100%;color:var(--text-muted);place-items:center;display:grid}.tl-empty{padding:var(--sp-8);color:var(--text-muted)}.tl-spacer{height:18px}.btn-warn{background:var(--status-problem);color:#fff;border-color:#0000}.picker-backdrop{z-index:40;padding:var(--sp-4);background:#00000052;place-items:center;display:grid;position:fixed;inset:0}.picker{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.picker-head{padding:var(--sp-4);border-bottom:var(--border);background:var(--surface-card);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.picker-date{color:var(--text-muted)}.picker-status{padding:var(--sp-3) var(--sp-4);border-bottom:var(--border);flex-direction:column;gap:2px;display:flex}.picker-status b{font-size:var(--fs-sm)}.picker-status span{font-size:var(--fs-xs);color:var(--text-muted)}.picker-current{align-items:center;gap:var(--sp-2);padding:6px 12px;display:flex}.picker-current .picker-name{flex:1}.btn-sm{border:var(--border);background:var(--surface-card);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:3px 10px}.btn-sm.btn-warn{border-color:#0000}.picker-replacing{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--surface-bg);font-size:var(--fs-sm);display:flex}.help-modal{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:440px;max-height:82vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.help-body{padding:var(--sp-3) var(--sp-4) var(--sp-5);gap:var(--sp-3);flex-direction:column;display:flex}.help-body section h4{font-size:var(--fs-sm);margin:0 0 4px}.help-body ul{padding-left:var(--sp-4);flex-direction:column;gap:3px;margin:0;display:flex}.help-body li{font-size:var(--fs-sm);color:var(--text-strong)}.hk{color:#fff;width:15px;height:15px;font-family:var(--font-mono);font-weight:var(--fw-bold);vertical-align:-2px;border-radius:3px;justify-content:center;align-items:center;margin-right:4px;font-size:10px;display:inline-flex}.hk-ok{background:var(--status-ok)}.hk-miss{background:var(--status-missing)}.hk-prob{background:var(--status-problem)}.hk-part{background:linear-gradient(135deg, var(--status-ok) 0 50%, var(--status-missing) 50% 100%)}.picker-list{padding:var(--sp-2) var(--sp-2) var(--sp-4)}.picker-section-h{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:var(--sp-3) var(--sp-3) var(--sp-1)}.sec-best{color:var(--status-ok)}.sec-problem{color:var(--status-problem)}.picker-item{align-items:center;gap:var(--sp-2);text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;width:100%;padding:10px 12px;display:flex}.picker-item:hover:not(:disabled){background:var(--surface-bg)}.picker-item:disabled{opacity:.5}.picker-mark{text-align:center;width:16px}.picker-name{font-weight:var(--fw-medium);font-size:var(--fs-sm);flex:1}.picker-note{font-size:var(--fs-xs);color:var(--text-muted)}.picker-confirm{padding:var(--sp-6)}.picker-confirm h3{color:var(--status-problem);margin:0 0 var(--sp-2)}.picker-confirm-actions{gap:var(--sp-2);margin-top:var(--sp-4);display:flex}.picker-confirm-actions .btn{flex:1}.undo-toast{bottom:var(--sp-6);z-index:50;align-items:center;gap:var(--sp-4);background:var(--text-strong);color:var(--text-inverse);font-size:var(--fs-sm);border-radius:999px;padding:10px 16px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0000004d}.undo-toast button{color:#8fb4ff;font-weight:var(--fw-bold);background:0 0;border:none}.plan-controls{border-bottom:var(--border);background:var(--surface-bg);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.plan-search{border:var(--border);font-size:var(--fs-sm);background:var(--surface-card);border-radius:999px;min-width:180px;padding:5px 10px}.cap-seg button{font-size:var(--fs-xs);padding:4px 10px}.opt-toggle{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:5px;display:inline-flex}.publish-btn{background:var(--accent);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-sm);border:none;border-radius:999px;margin-left:auto;padding:5px 14px}.publish-btn:disabled{opacity:.7}.publish-ok{font-size:var(--fs-xs);color:var(--status-ok);font-weight:var(--fw-medium);margin-left:auto}.col-blocked{background:color-mix(in srgb, var(--status-problem) 8%, transparent);z-index:0;pointer-events:none}.hdr-day.blocked{background:color-mix(in srgb, var(--status-problem) 12%, var(--surface-card))}.hdr-day .d-exc{color:var(--status-problem);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:7px;line-height:1;overflow:hidden}.pbar[data-tentative=true]{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--bar) 22%, transparent) 0 6px, color-mix(in srgb, var(--bar) 8%, transparent) 6px 12px);opacity:.9}.opt-badge{font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--bar);background:color-mix(in srgb, var(--bar) 18%, var(--surface-card));border-radius:4px;flex:none;padding:0 5px}.detail-option{border:1px dashed var(--bar,var(--accent));background:color-mix(in srgb, var(--accent) 5%, transparent);border-radius:10px;margin:10px 0;padding:10px 12px}.detail-option p{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 8px}.detail-confirm{width:100%}.pbar-grip{z-index:4;cursor:ew-resize;touch-action:none;opacity:0;width:9px;transition:opacity .12s;position:absolute;top:0;bottom:0}.pbar-grip-l{left:0}.pbar-grip-r{right:0}.pbar:hover .pbar-grip,.pbar-sel .pbar-grip{opacity:1}.pbar-grip:before{content:"";background:color-mix(in srgb, var(--bar) 70%, #000 15%);border-radius:2px;width:3px;height:40%;max-height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #fff6}.pbar-title{touch-action:none}.pbar-drag{z-index:12;box-shadow:0 6px 18px #00000047}.pbar-drag-hint{font-size:10px;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;color:#fff;background:#00000059;border-radius:4px;flex:none;padding:0 5px}.toolbar{--ctl-h:34px;--ctl-radius:10px;--ctl-border:1px solid color-mix(in srgb, var(--text-muted) 22%, transparent);--ctl-bg:var(--surface-card);background:var(--surface-card);flex-direction:column;gap:8px;padding:10px 12px 0;display:flex;position:relative}.tb-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tb-grid{grid-template-columns:max-content max-content;justify-content:start;place-items:center stretch;gap:8px;display:grid}.tb-grid .autoplan-ctl{justify-content:space-between;width:100%}.tb-grid .publish-btn{justify-content:center;width:100%}.tb-grid .tb-icons{justify-content:space-between;width:100%}.tb-grid .tb-lastpub{align-items:center;width:100%;display:inline-flex}.tb-publish .publish-btn{flex:none}.tb-publish .tb-lastpub{margin-left:0}.opts-ctl.ap-on{border-color:color-mix(in srgb, var(--status-ok) 55%, var(--surface-border))}.opts-ctl.ap-on .ap-switch{background:var(--status-ok)}.opts-ctl.ap-off .ap-switch{background:var(--status-missing)}.toolbar .seg,.toolbar .btn-today,.toolbar .autoplan-ctl,.toolbar .publish-btn,.toolbar .opts-switch,.toolbar .add-btn,.toolbar .help{height:var(--ctl-h);border-radius:var(--ctl-radius);font-size:var(--fs-sm);box-sizing:border-box}.toolbar .add-btn{background:var(--accent);color:#fff;width:100%;font-weight:var(--fw-bold);border:1px solid #0000;justify-content:center;align-items:center;gap:4px;padding:0 14px;display:inline-flex}.toolbar .seg{border:var(--ctl-border);background:var(--surface-bg);gap:2px;padding:3px}.toolbar .seg button{height:100%;color:var(--text-muted);font-weight:var(--fw-medium);border-radius:7px;align-items:center;padding:0 13px;display:inline-flex}.toolbar .seg button.seg-on{background:var(--accent);color:#fff}.toolbar .btn-today{background:var(--accent);color:#fff;font-weight:var(--fw-bold);border:1px solid #0000;align-items:center;padding:0 15px;display:inline-flex}.toolbar .autoplan-ctl{border:var(--ctl-border);align-items:center;gap:9px;padding:0 4px 0 13px}.toolbar .publish-btn{background:var(--accent);color:#fff;font-weight:var(--fw-bold);border:1px solid #0000;align-items:center;margin-left:0;padding:0 16px;display:inline-flex}.toolbar .publish-btn:disabled{cursor:default}.toolbar .publish-done{background:color-mix(in srgb, var(--status-ok) 12%, var(--surface-card));color:var(--status-ok);border:1px solid color-mix(in srgb, var(--status-ok) 40%, transparent);font-weight:var(--fw-medium)}.toolbar .help{width:var(--ctl-h);border:var(--ctl-border);background:var(--ctl-bg);color:var(--text-muted);font-weight:var(--fw-bold);place-items:center;padding:0;display:grid}.toolbar .help svg{width:17px;height:17px;display:block}.tb-icons{align-items:center;gap:6px;display:flex}.toolbar .opts-switch{border:var(--ctl-border);background:var(--surface-bg);grid-template-columns:1fr 1fr;align-items:stretch;padding:3px;display:inline-grid;position:relative;overflow:hidden}.opts-opt{z-index:1;color:var(--text-muted);font-weight:var(--fw-medium);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;padding:0 16px;transition:color .15s;display:inline-flex;position:relative}.opts-switch.off .opts-opt:first-of-type{color:var(--text-strong);font-weight:var(--fw-bold)}.opts-switch.on .opts-opt:last-of-type{color:#fff;font-weight:var(--fw-bold)}.opts-thumb{z-index:0;background:var(--surface-card);border-radius:7px;width:calc(50% - 3px);transition:transform .16s,background .16s;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 3px #00000029}.opts-switch.on .opts-thumb{background:var(--accent);transform:translate(100%)}.tb-lastpub{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.tb-lastpub b{color:var(--text-strong);font-variant-numeric:tabular-nums}.tb-divider{border-top:1px solid color-mix(in srgb, var(--text-muted) 26%, var(--surface-border));height:0;margin:8px -12px 20px;position:relative}.tb-toggle{border:1px solid color-mix(in srgb, var(--text-muted) 26%, var(--surface-border));background:var(--surface-card);width:34px;height:22px;color:var(--text-muted);z-index:2;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000014}.tb-toggle svg{width:18px;height:18px;display:block}.tb-toggle:hover{color:var(--text-strong)}.search-modal{background:var(--surface-card);border:var(--border);border-radius:14px;flex-direction:column;width:min(440px,92vw);max-height:70vh;margin-top:10vh;display:flex;overflow:hidden;box-shadow:0 16px 48px #00000047}.search-box{border-bottom:var(--border);align-items:center;gap:8px;padding:12px 14px;display:flex}.search-ico{width:18px;height:18px;color:var(--text-muted);flex:none}.search-box input{font-size:var(--fs-md);background:0 0;border:none;outline:none;flex:1}.search-clear{color:var(--text-muted);background:0 0;border:none;width:24px;font-size:20px;line-height:1}.search-results{margin:0;padding:4px;list-style:none;overflow-y:auto}.search-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:16px}.search-item{text-align:left;width:100%;font-size:var(--fs-sm);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.search-item:hover{background:var(--surface-hover)}.search-item-name{font-weight:var(--fw-medium);color:var(--text-strong);align-items:center;gap:6px;display:inline-flex}.search-item-city{color:var(--text-muted);font-size:var(--fs-xs);flex:none}.edit-ctl.ap-on{border-color:color-mix(in srgb, var(--status-ok) 55%, var(--surface-border))}.edit-ctl.ap-on .ap-switch{background:var(--status-ok)}.edit-ctl.ap-off .ap-switch{background:var(--status-missing)}.undo-btn svg,.redo-btn svg{width:17px;height:17px}.undo-btn:disabled,.redo-btn:disabled{opacity:.4;cursor:default}.pbar-glow{animation:1.6s ease-out pbar-glow}@keyframes pbar-glow{0%{box-shadow:0 0 0 3px var(--accent), inset 0 0 0 1px color-mix(in srgb, var(--bar) 45%, var(--surface-border)), inset 3px 0 0 var(--bar)}to{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bar) 45%, var(--surface-border)), inset 3px 0 0 var(--bar)}}@media (prefers-reduced-motion:reduce){.pbar-glow{outline:2px solid var(--accent);animation:none}}.plan-flash{z-index:60;background:var(--text-strong);color:var(--surface-card);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:999px;max-width:90vw;padding:8px 16px;animation:.2s ease-out pwa-update-in;position:fixed;bottom:74px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000047}.presence{align-items:center;margin-left:4px;display:inline-flex}.presence-av{background:var(--accent);color:#fff;width:26px;height:26px;font-size:11px;font-weight:var(--fw-bold);border:2px solid var(--surface-card);border-radius:999px;place-items:center;margin-left:-7px;display:grid}.presence-av:first-child{margin-left:0}.presence-more{background:var(--surface-border);color:var(--text-strong)}.detail-viewers{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text-muted);font-size:var(--fs-xs);border-radius:8px;margin:0 0 8px;padding:6px 10px}@media (width<=560px){.toolbar{--ctl-h:32px;gap:7px;padding:8px 8px 0}.toolbar .seg button{padding:0 9px}.toolbar .btn-today{padding:0 11px}.tb-lastpub{font-size:11px}.presence{margin-left:auto}}.autochange-chip{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent);font-size:var(--fs-xs);font-weight:var(--fw-bold);border-radius:999px;padding:3px 10px}.swaps-page{height:100%;padding:var(--sp-6) var(--sp-4) var(--sp-8);max-width:760px;margin:0 auto;overflow-y:auto}.swaps-head{margin-bottom:var(--sp-5)}.swaps-head h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.swap-state{color:var(--text-muted);font-size:var(--fs-sm);padding:var(--sp-6) 0}.swap-state-error{color:var(--status-missing)}.swap-empty{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.swap-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.swap-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.swap-card-dimmed{opacity:.55}.swap-card-main{flex-direction:column;gap:2px;min-width:0;display:flex}.swap-card-requester{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-strong)}.swap-card-shift{font-size:var(--fs-sm);color:var(--text-muted)}.swap-card-target{font-size:var(--fs-xs);color:var(--text-muted)}.swap-card-note{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic}.swap-card-actions{gap:var(--sp-2);flex-wrap:wrap;flex-shrink:0;display:flex}.swap-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;padding:3px 10px;display:inline-flex}.swap-badge-approved{background:var(--status-ok-bg);color:var(--status-ok)}.swap-badge-rejected{background:var(--status-missing-bg);color:var(--status-missing)}.swap-badge-cancelled{background:var(--surface-bg);color:var(--text-muted)}.swaps-handled{margin-top:var(--sp-6)}.swaps-handled 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)}@media (width<=480px){.swaps-page{padding:var(--sp-4) var(--sp-3) var(--sp-8)}.swap-card{flex-direction:column;align-items:stretch}}.mg-page{grid-template-columns:1fr;height:100%;display:grid;overflow:hidden}.mg-page[data-detail=open]{grid-template-columns:1fr}@media (width>=900px){.mg-page[data-detail=open],.mg-page{grid-template-columns:minmax(280px,380px) 1fr}}.mg-main{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.mg-toolbar{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:var(--border);background:var(--surface-card);display:flex}.mg-toolbar h1{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:-.01em;flex:1;margin:0}.mg-list{padding:var(--sp-2);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.mg-item{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);text-align:left;width:100%;color:var(--text-strong);font-size:var(--fs-sm);background:0 0;border:none;display:flex}.mg-item:hover{background:var(--surface-bg)}.mg-item.mg-item-sel{background:var(--surface-bg);box-shadow:inset 3px 0 0 var(--accent)}.mg-item.mg-item-inactive{opacity:.5}.mg-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mg-item-title{font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mg-item-sub{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:6px;display:flex}.mg-item-swatch{background:var(--pc-blauw);border-radius:3px;flex:none;width:10px;height:10px}.mg-empty{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.mg-detail{border-left:var(--border);background:var(--surface-card);padding:var(--sp-4);gap:var(--sp-4);flex-direction:column;height:100%;display:flex;overflow-y:auto}@media (width<=899px){.mg-detail{z-index:20;position:fixed;inset:0}}.mg-detail-head{align-items:center;gap:var(--sp-2);display:flex}.mg-detail-head h2{font-size:var(--fs-lg);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;overflow:hidden}.mg-detail-close{background:var(--surface-bg);border-radius:var(--radius-sm);border:none;flex:none;width:32px;height:32px;margin-left:auto;font-size:20px}.mg-detail-close:focus-visible,.mg-item:focus-visible,.mg-day:focus-visible,.btn:focus-visible,.mg-swatch:focus-visible,.mg-check:focus-visible input:focus-visible{box-shadow:var(--focus-ring);outline:none}.mg-section{gap:var(--sp-2);flex-direction:column;display:flex}.mg-section h3{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0}.mg-field{flex-direction:column;gap:4px;display:flex}.mg-field label{font-size:var(--fs-xs);color:var(--text-muted)}.mg-field input[type=text],.mg-field input[type=tel],.mg-field input[type=email],.mg-field input[type=number],.mg-field input[type=date],.mg-field select,.mg-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);width:100%;padding:8px 10px}.mg-field textarea{resize:vertical;min-height:64px}.mg-field input:focus-visible,.mg-field select:focus-visible,.mg-field textarea:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-card);outline:none}.mg-row{gap:var(--sp-3);display:flex}.mg-row>*{flex:1;min-width:0}.mg-skills{flex-direction:column;gap:4px;max-height:240px;display:flex;overflow-y:auto}.mg-check{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:6px 4px;display:flex}.mg-check.mg-check-dim{opacity:.5}.mg-check input{width:17px;height:17px;accent-color:var(--accent)}.mg-swatches{flex-wrap:wrap;gap:8px;display:flex}.mg-swatch{cursor:pointer;border:2px solid #0000;border-radius:999px;width:30px;height:30px}.mg-swatch-on{border-color:var(--text-strong);box-shadow:0 0 0 2px var(--surface-card) inset}.mg-swatch[data-pc=blauw]{background:var(--pc-blauw)}.mg-swatch[data-pc=turquoise]{background:var(--pc-turquoise)}.mg-swatch[data-pc=indigo]{background:var(--pc-indigo)}.mg-swatch[data-pc=paars]{background:var(--pc-paars)}.mg-swatch[data-pc=zand]{background:var(--pc-zand)}.mg-swatch[data-pc=groenblauw]{background:var(--pc-groenblauw)}.mg-swatch[data-pc=terracotta]{background:var(--pc-terracotta)}.mg-swatch[data-pc=leigrijs]{background:var(--pc-leigrijs)}.mg-item-swatch[data-pc=blauw]{background:var(--pc-blauw)}.mg-item-swatch[data-pc=turquoise]{background:var(--pc-turquoise)}.mg-item-swatch[data-pc=indigo]{background:var(--pc-indigo)}.mg-item-swatch[data-pc=paars]{background:var(--pc-paars)}.mg-item-swatch[data-pc=zand]{background:var(--pc-zand)}.mg-item-swatch[data-pc=groenblauw]{background:var(--pc-groenblauw)}.mg-item-swatch[data-pc=terracotta]{background:var(--pc-terracotta)}.mg-item-swatch[data-pc=leigrijs]{background:var(--pc-leigrijs)}.mg-footer{gap:var(--sp-2);padding-top:var(--sp-3);border-top:var(--border);margin-top:auto;display:flex}.mg-inline-edit{align-items:center;gap:var(--sp-2);display:flex}.mg-inline-edit input{font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);flex:1;min-width:0;padding:6px 8px}.mg-inline-edit input:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-card);outline:none}.mg-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.mg-error{font-size:var(--fs-xs);color:var(--status-missing);margin:0}.cap-grid{grid-template-columns:1fr 1fr;gap:6px 14px;display:grid}@media (width<=640px){.cap-grid{grid-template-columns:1fr}}.cap-item{font-size:var(--fs-sm);align-items:center;gap:8px;display:flex}.pm-section{gap:var(--sp-3);background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);padding:var(--sp-3);flex-direction:column;display:flex}.pm-head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.pm-head h3{font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0}.pm-flash{font-size:var(--fs-xs);color:var(--status-ok);font-weight:var(--fw-medium)}.pm-status-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.pm-status-count{font-size:var(--fs-sm);color:var(--text-muted)}.pm-status-ok{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--status-ok)}.pm-reserve-all{margin-left:auto}.pm-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.pm-list{gap:var(--sp-2);flex-direction:column;display:flex}.pm-row{padding:var(--sp-2);border-radius:var(--radius-sm);background:var(--surface-bg);flex-direction:column;gap:4px;display:flex}.pm-row-main{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.pm-pick{align-items:center;display:flex}.pm-row-name{font-weight:var(--fw-medium);color:var(--text-strong);flex:1;min-width:8ch}.pm-row-qty{color:var(--text-muted)}.pm-row-margin{color:var(--text-muted);font-size:var(--fs-xs);align-items:center;gap:2px;display:flex}.pm-margin-input{border:var(--border);border-radius:var(--radius-sm);width:4ch;padding:2px 4px}.pm-row-net{color:var(--text-muted)}.pm-row-free{color:var(--status-ok)}.pm-row-free-warn{color:var(--status-problem);font-weight:var(--fw-medium)}.pm-row-del{width:24px;height:24px;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;flex:none;font-size:16px}.pm-row-del:hover{background:var(--surface-card)}.pm-row-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.pm-btn-sm{border:var(--border);background:var(--surface-card);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:3px 8px}.pm-row-consumed{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.pm-reservations{flex-direction:column;gap:4px;display:flex}.pm-reservations h4,.pm-add h4{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0}.pm-reservation-row{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);border-bottom:var(--border);padding:4px 2px;display:flex}.pm-reservation-row>span:last-of-type{flex:none}.pm-reservation-row>span:nth-child(2){color:var(--text-muted);margin-left:auto}.pm-add{gap:var(--sp-2);flex-direction:column;display:flex}.pm-add-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.pm-add-row select,.pm-add-row input{border:var(--border);border-radius:var(--radius-sm);font-size:var(--fs-sm);padding:6px 8px}.pm-add-row input[type=number]{width:8ch}.mono{font-family:var(--font-mono)}.cr-section{gap:var(--sp-3);flex-direction:column;display:flex}.cr-section h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0}.cr-group{background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;display:flex}.cr-group-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-strong);margin:0}.cr-group-rows{flex-direction:column;gap:2px;display:flex}.cr-row{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);border-bottom:var(--border);padding:4px 2px;display:flex}.cr-row-name{color:var(--text-strong);flex:1}.cr-row-qty{color:var(--text-muted)}.cr-add{gap:var(--sp-2);flex-direction:column;display:flex}.cr-add h4{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0}.cr-add-row{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.cr-add-row input,.cr-add-row select{border:var(--border);border-radius:var(--radius-sm);font-size:var(--fs-sm);padding:6px 8px}.cr-add-row input[type=number]{width:8ch}.tpl-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);gap:var(--sp-1);flex-direction:column;display:flex}.tpl-card h2{font-size:var(--fs-md);font-weight:var(--fw-bold);flex:1;margin:0}.tpl-head{align-items:center;gap:var(--sp-3);display:flex}.tpl-hint{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 var(--sp-3)}.tpl-body{gap:var(--sp-4);grid-template-columns:minmax(200px,260px) 1fr;min-height:360px;display:grid}@media (width<=720px){.tpl-body{grid-template-columns:1fr}}.tpl-list{flex-direction:column;gap:2px;max-height:480px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.tpl-item{padding:var(--sp-3);border-radius:var(--radius-md);text-align:left;width:100%;color:var(--text-strong);font-size:var(--fs-sm);background:0 0;border:none;flex-direction:column;gap:2px;display:flex}.tpl-item:hover{background:var(--surface-bg)}.tpl-item.tpl-item-sel{background:var(--surface-bg);box-shadow:inset 3px 0 0 var(--accent)}.tpl-item.tpl-item-inactive{opacity:.5}.tpl-item-title{font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tpl-item-sub{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:6px;display:flex}.tpl-empty{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.tpl-detail{border-left:var(--border);padding-left:var(--sp-4);gap:var(--sp-4);flex-direction:column;display:flex;overflow-y:auto}@media (width<=720px){.tpl-detail{border-left:none;border-top:var(--border);padding-left:0;padding-top:var(--sp-4)}}.tpl-detail-head{align-items:center;gap:var(--sp-2);display:flex}.tpl-detail-head h3{font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;overflow:hidden}.tpl-section{gap:var(--sp-2);flex-direction:column;display:flex}.tpl-section h4{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0}.tpl-field{flex-direction:column;gap:4px;display:flex}.tpl-field label{font-size:var(--fs-xs);color:var(--text-muted)}.tpl-field input[type=text],.tpl-field input[type=number],.tpl-field select,.tpl-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);width:100%;padding:8px 10px}.tpl-field textarea{resize:vertical;min-height:56px}.tpl-field input:focus-visible,.tpl-field select:focus-visible,.tpl-field textarea:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-card);outline:none}.tpl-check-list{flex-direction:column;gap:4px;max-height:220px;display:flex;overflow-y:auto}.tpl-check{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:6px 4px;display:flex}.tpl-check.tpl-check-dim{opacity:.5}.tpl-check input{width:17px;height:17px;accent-color:var(--accent)}.tpl-footer{gap:var(--sp-2);padding-top:var(--sp-3);border-top:var(--border);margin-top:auto;display:flex}.mg-days{flex-wrap:wrap;gap:6px;display:flex}.mg-day{border-radius:var(--radius-sm);border:var(--border);background:var(--surface-bg);width:40px;height:36px;color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-transform:uppercase}.mg-day-on{background:var(--accent);color:var(--text-inverse);border-color:#0000}.mg-day:focus-visible{box-shadow:var(--focus-ring);outline:none}.mg-save{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-medium);white-space:nowrap}.mg-save-saved{color:var(--status-ok)}.tpl-modal-backdrop{padding:var(--sp-4);z-index:50;background:#0f121873;place-items:center;display:grid;position:fixed;inset:0}.tpl-modal{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:80vh;padding:var(--sp-6);gap:var(--sp-3);flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 20px 60px #00000040}.tpl-modal h3{font-size:var(--fs-md);margin:0}.tpl-modal p.tpl-hint{margin:0 0 var(--sp-2)}.tpl-choice-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.tpl-choice{text-align:left;width:100%;padding:var(--sp-3);border:var(--border);border-radius:var(--radius-md);background:var(--surface-bg);color:var(--text-strong);font-size:var(--fs-sm)}.tpl-choice:hover{border-color:var(--accent)}.tpl-choice-title{font-weight:var(--fw-medium);display:block}.tpl-choice-sub{color:var(--text-muted);font-size:var(--fs-xs);margin-top:2px;display:block}.tpl-modal-actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.tpl-menu{position:relative}.tpl-menu-toggle{background:var(--surface-bg);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-strong);border:none;flex:none;font-size:18px;line-height:1}.tpl-menu-toggle:hover{background:var(--surface-border)}.tpl-menu-panel{z-index:10;background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);flex-direction:column;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000002e}.tpl-menu-item{text-align:left;border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-strong);background:0 0;border:none;padding:8px 10px}.tpl-menu-item:hover{background:var(--surface-bg)}.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:0 20px 60px #00000040}.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}}.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-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}@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}}.inv-page{grid-template-columns:1fr;height:100%;display:grid;overflow:hidden}@media (width>=900px){.inv-page{grid-template-columns:minmax(280px,380px) 1fr}}.inv-main{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.inv-toolbar{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:var(--border);background:var(--surface-card);flex-wrap:wrap;display:flex}.inv-toolbar h1{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.inv-search{flex:1;align-items:center;gap:6px;min-width:160px;display:flex}.inv-search input{font:inherit;font-family:var(--font-sans);border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);flex:1;padding:8px 10px}.inv-search input:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-card);outline:none}.inv-scan-btn{border:var(--border);background:var(--surface-bg);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-strong);flex:none;justify-content:center;align-items:center;display:flex}.inv-scan-btn svg{width:18px;height:18px}.inv-scan-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.inv-list{padding:var(--sp-2);flex-direction:column;flex:1;gap:2px;margin:0;list-style:none;display:flex;overflow-y:auto}.inv-item{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);text-align:left;width:100%;color:var(--text-strong);font-size:var(--fs-sm);background:0 0;border:none;display:flex}.inv-item:hover{background:var(--surface-bg)}.inv-item.inv-item-sel{background:var(--surface-bg);box-shadow:inset 3px 0 0 var(--accent)}.inv-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.inv-item-title{font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.inv-item-sub{font-size:var(--fs-xs);color:var(--text-muted)}.inv-item-qty{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap;flex:none}.inv-empty{padding:var(--sp-6);text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.inv-detail{border-left:var(--border);background:var(--surface-card);padding:var(--sp-4);gap:var(--sp-4);flex-direction:column;height:100%;display:flex;overflow-y:auto}@media (width<=899px){.inv-detail{z-index:20;position:fixed;inset:0}}.inv-detail-head{align-items:center;gap:var(--sp-2);display:flex}.inv-detail-head input{font:inherit;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-strong);border-radius:var(--radius-sm);background:0 0;border:none;flex:1;min-width:0;padding:2px 4px}.inv-detail-head input:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-bg);outline:none}.inv-detail-close{background:var(--surface-bg);border-radius:var(--radius-sm);border:none;flex:none;width:32px;height:32px;margin-left:auto;font-size:20px}.inv-detail-close:focus-visible,.inv-item:focus-visible,.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.inv-code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}.inv-field{flex-direction:column;gap:4px;display:flex}.inv-field label{font-size:var(--fs-xs);color:var(--text-muted)}.inv-field input[type=text],.inv-field input[type=number],.inv-field select,.inv-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);width:100%;padding:8px 10px}.inv-field textarea{resize:vertical;min-height:60px}.inv-field input:focus-visible,.inv-field select:focus-visible,.inv-field textarea:focus-visible{box-shadow:var(--focus-ring);background:var(--surface-card);outline:none}.inv-row{gap:var(--sp-3);display:flex}.inv-row>*{flex:1;min-width:0}.inv-section{gap:var(--sp-2);flex-direction:column;display:flex}.inv-section h3{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0}.inv-stock-total{font-size:var(--fs-sm);font-weight:var(--fw-medium);border-bottom:var(--border);justify-content:space-between;padding:6px 0;display:flex}.inv-stock-list{flex-direction:column;gap:2px;max-height:220px;display:flex;overflow-y:auto}.inv-stock-row{font-size:var(--fs-sm);justify-content:space-between;padding:4px 2px;display:flex}.inv-stock-row-name{color:var(--text-strong)}.inv-stock-row-qty{color:var(--text-muted);font-family:var(--font-mono)}.inv-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.inv-actions-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.inv-action-form{gap:var(--sp-2);padding:var(--sp-3);background:var(--surface-bg);border-radius:var(--radius-md);flex-direction:column;display:flex}.inv-action-form-actions{gap:var(--sp-2);justify-content:flex-end;display:flex}.inv-flash{font-size:var(--fs-sm);color:var(--status-ok);font-weight:var(--fw-medium)}.inv-dest-types{gap:var(--sp-2);flex-wrap:wrap;display:flex}.inv-dest-type-btn{border:var(--border);background:var(--surface-card);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:5px 10px}.inv-dest-type-btn.inv-dest-type-on{background:var(--accent);color:var(--text-inverse);border-color:#0000}.inv-movements{flex-direction:column;gap:2px;max-height:220px;display:flex;overflow-y:auto}.inv-movement-row{justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-xs);border-bottom:var(--border);padding:4px 2px;display:flex}.inv-movement-type{color:var(--text-strong);font-weight:var(--fw-medium)}.inv-movement-date{color:var(--text-muted)}.inv-overview{height:100%;padding:var(--sp-4) var(--sp-6);gap:var(--sp-6);flex-direction:column;width:100%;max-width:960px;margin:0 auto;display:flex;overflow-y:auto}.inv-ov-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.inv-ov-head h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.inv-tiles{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.inv-tile{padding:var(--sp-4);background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:4px;display:flex}.inv-tile-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-strong)}.inv-tile-label{font-size:var(--fs-xs);color:var(--text-muted)}.inv-tile-warn .inv-tile-value{color:var(--status-problem)}.inv-tile-dim{opacity:.6}.inv-attention-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.inv-attention-item{justify-content:space-between;align-items:center;gap:var(--sp-3);text-align:left;width:100%;padding:var(--sp-3);background:var(--surface-card);border-radius:var(--radius-md);border:none;border:var(--border);display:flex}.inv-attention-item:hover{background:var(--surface-bg)}.inv-attention-name{font-weight:var(--fw-medium);color:var(--text-strong)}.inv-attention-qty{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--status-problem)}.inv-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.ord-item-right{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.ord-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;background:var(--surface-bg);color:var(--text-muted);border:var(--border);border-radius:999px;padding:3px 8px;display:inline-block}.ord-badge-draft{background:var(--surface-bg);color:var(--text-muted)}.ord-badge-proposed,.ord-badge-approval_required{background:var(--status-warn-bg,var(--surface-bg));color:var(--status-warn,var(--text-strong))}.ord-badge-approved,.ord-badge-ordered{background:var(--accent);color:var(--text-inverse);border-color:#0000}.ord-badge-partially_received{background:var(--status-warn-bg,var(--surface-bg));color:var(--status-warn,var(--text-strong))}.ord-badge-received{background:var(--status-ok-bg,var(--surface-bg));color:var(--status-ok)}.ord-badge-cancelled{background:var(--surface-bg);color:var(--text-muted);text-decoration:line-through}.ord-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0}.ord-lines{gap:var(--sp-2);flex-direction:column;display:flex}.ord-line{gap:var(--sp-2);padding:var(--sp-3);border:var(--border);border-radius:var(--radius-md);background:var(--surface-bg);flex-direction:column;display:flex}.ord-line-main{flex-direction:column;gap:6px;display:flex}.ord-line-name{font-weight:var(--fw-medium);color:var(--text-strong)}.ord-line-fields{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.ord-line-num{width:88px;font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong);padding:6px 8px}.ord-line-received,.ord-line-open{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.ord-line-open{font-weight:var(--fw-medium)}.ord-line-actions{gap:var(--sp-2);justify-content:flex-end;display:flex}.ord-receive-form{margin-top:var(--sp-2)}.ord-add-line{align-items:center;gap:var(--sp-2);padding-top:var(--sp-2);flex-wrap:wrap;display:flex}.ord-add-line select{font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);flex:1;min-width:160px;padding:6px 8px}.ord-total{font-size:var(--fs-sm);font-weight:var(--fw-bold);padding:var(--sp-2) 0;border-top:var(--border);margin-top:var(--sp-2);justify-content:space-between;display:flex}.sup-section{gap:var(--sp-4);flex-direction:column;display:flex}.sup-header{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.sup-header h2{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0}.sup-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sup-item{border:var(--border);border-radius:var(--radius-md);padding:var(--sp-3);gap:var(--sp-3);background:var(--surface-card);flex-direction:column;display:flex}.sup-item-head{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.sup-toggle{align-items:center;gap:var(--sp-2);font:inherit;color:var(--text-strong);background:0 0;border:none;padding:2px;display:flex}.sup-chevron{color:var(--text-muted);transition:transform .15s;display:inline-block}.sup-chevron-open{transform:rotate(90deg)}.sup-name{font-weight:var(--fw-medium)}.sup-active-toggle{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:6px;display:flex}.sup-products{gap:var(--sp-2);padding-top:var(--sp-2);border-top:var(--border);flex-direction:column;display:flex}.sup-products h3{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:var(--fw-bold);margin:0}.sup-product-row{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);border-bottom:var(--border);flex-wrap:wrap;padding:4px 0;display:flex}.sup-product-name{font-weight:var(--fw-medium);color:var(--text-strong);flex:1;min-width:120px}.sup-product-field{width:92px;font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);padding:6px 8px}.sup-product-num{width:76px}.sup-product-static{color:var(--text-muted);background:0 0;border-color:#0000;justify-content:flex-end;align-items:center;display:inline-flex}.sup-add-product{align-items:center;gap:var(--sp-2);padding-top:var(--sp-2);flex-wrap:wrap;display:flex}.sup-add-product select{font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);flex:1;min-width:160px;padding:6px 8px}.pm-addrow{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.pm-addrow input{border:var(--border);font-size:var(--fs-sm);background:var(--surface-bg);color:var(--text-strong);border-radius:8px;padding:7px 10px}.pm-group{border:var(--border);border-radius:var(--radius-md);margin-top:10px;padding:10px 12px}.pm-group-h{margin-bottom:6px}.pm-loclist{font-size:var(--fs-sm);flex-direction:column;gap:3px;margin:0 0 8px;padding:0;list-style:none;display:flex}.pm-muted{color:var(--text-muted)}.settings{height:100%;padding:var(--sp-6) var(--sp-4) var(--sp-8);gap:var(--sp-6);flex-direction:column;max-width:960px;margin:0 auto;display:flex;overflow-y:auto}.set-header h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.set-body{align-items:start;gap:var(--sp-6);grid-template-columns:200px 1fr;display:grid}.set-nav{position:sticky;top:0}.set-nav-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.set-nav-item{align-items:center;gap:var(--sp-3);width:100%;padding:9px var(--sp-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;display:flex}.set-nav-item:hover{background:var(--surface-bg);color:var(--text-strong)}.set-nav-item.set-nav-on{background:var(--surface-bg);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.set-nav-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.set-nav-icon{text-align:center;flex:none;width:20px;font-size:16px}.set-content{gap:var(--sp-6);flex-direction:column;min-width:0;display:flex}.set-card{background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);padding:var(--sp-6)}.set-card h2{font-size:var(--fs-md);font-weight:var(--fw-bold);margin:0 0 var(--sp-1)}.set-hint{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 var(--sp-4)}.set-hint-warn{color:var(--status-problem)}.set-toggle-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.set-toggle-row{border-bottom:var(--border);padding-bottom:var(--sp-3)}.set-toggle-row:last-child{border-bottom:none;padding-bottom:0}.set-switch-label{align-items:center;gap:var(--sp-3);cursor:pointer;display:flex}.set-switch{flex:none;width:40px;height:24px;position:relative}.set-switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.set-switch-track{background:var(--surface-border);border-radius:999px;transition:background-color .15s;position:absolute;inset:0}.set-switch-track:after{content:"";background:#fff;border-radius:999px;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.set-switch input:checked+.set-switch-track{background:var(--accent)}.set-switch input:checked+.set-switch-track:after{transform:translate(16px)}.set-switch input:focus-visible+.set-switch-track{box-shadow:var(--focus-ring)}.set-switch-text{flex-direction:column;display:flex}.set-switch-text b{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.set-switch-text small{color:var(--text-muted);font-size:var(--fs-xs)}.set-reset{margin-top:var(--sp-4);border:var(--border);background:var(--surface-bg);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-muted);padding:8px 14px}.set-reset:hover{color:var(--text-strong);border-color:var(--accent)}.set-saved-flag{margin-left:var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);vertical-align:middle}.set-saved-flag.set-saved-ok{color:var(--status-ok)}.set-row{gap:var(--sp-4);flex-wrap:wrap;display:flex}.set-row .set-field{flex:160px}.set-work-row{margin-bottom:var(--sp-4)}.set-work-toggle{justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.set-work-minutes{flex:none;width:140px}.set-work-minutes input:disabled{opacity:.5;cursor:not-allowed}.set-vehicle-list{margin:0 0 var(--sp-4);gap:var(--sp-3);flex-direction:column;padding:0;list-style:none;display:flex}.set-vehicle-row{gap:var(--sp-3);padding:var(--sp-3);border:var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex}.set-vehicle-row.set-vehicle-inactive{opacity:.6}.set-vehicle-actions{align-items:center;display:flex}.set-holiday-gen{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.set-year-field{flex:none;width:100px}.set-year-field input{width:100%}.set-exception-actions{gap:var(--sp-2);margin:var(--sp-2) 0 var(--sp-4);flex-wrap:wrap;display:flex}.set-inline-form{gap:var(--sp-3);padding:var(--sp-4);border:var(--border);border-radius:var(--radius-md);background:var(--surface-bg);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.set-exception-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.set-exception-row{gap:var(--sp-2);padding:var(--sp-3);border:var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex}.set-exception-row.set-exception-inactive{opacity:.6}.set-exception-period{margin:0}.set-exception-actions{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.set-exception-buttons{gap:var(--sp-2);flex-wrap:wrap;display:flex}.set-field select{border:var(--border);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--surface-bg);color:var(--text-strong);padding:9px 11px}.set-toast{background:var(--status-ok-bg);color:var(--status-ok);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);margin:0 0 var(--sp-4)}.set-access-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.set-access-row{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:var(--border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.set-access-main{flex-direction:column;display:flex}.set-access-main b{font-size:var(--fs-sm);color:var(--text-strong)}.set-access-main small{color:var(--text-muted);font-size:var(--fs-xs)}.set-access-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.set-btn{border:var(--border);background:var(--surface-bg);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-strong);cursor:pointer;padding:7px 12px}.set-btn:hover{border-color:var(--accent);color:var(--accent)}.set-btn-danger:hover{border-color:var(--status-missing);color:var(--status-missing)}.set-btn-primary{background:var(--accent);color:var(--text-inverse);border-color:#0000}.set-btn-primary:hover{color:var(--text-inverse);opacity:.92}.set-btn:disabled{opacity:.5;cursor:not-allowed}.set-modal-backdrop{padding:var(--sp-4);z-index:50;background:#0f121873;place-items:center;display:grid;position:fixed;inset:0}.set-modal{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:400px;padding:var(--sp-6);gap:var(--sp-3);flex-direction:column;display:flex;box-shadow:0 20px 60px #00000040}.set-modal h3{font-size:var(--fs-md);margin:0}.set-modal p{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.set-modal-actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.set-field{font-size:var(--fs-sm);flex-direction:column;gap:4px;display:flex}.set-field span{color:var(--text-muted)}.set-field input{border:var(--border);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--surface-bg);padding:9px 11px}.set-legend{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.set-legend-row{align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-strong);display:flex}.set-swatch{border-radius:4px;flex:none;width:16px;height:16px}.set-swatch-ok{background:var(--status-ok)}.set-swatch-missing{background:var(--status-missing)}.set-swatch-problem{background:var(--status-problem)}.set-swatch-split{background:linear-gradient(90deg, var(--status-ok) 50%, var(--status-missing) 50%)}.set-swatch-you{background:var(--you-bg);border:2px solid var(--you-outline)}@media (width<=720px){.set-body{gap:var(--sp-4);grid-template-columns:1fr}.set-nav{position:static}.set-nav-list{flex-direction:row;gap:4px;padding-bottom:2px;overflow-x:auto}.set-nav-item{flex:none}.set-nav-label{white-space:nowrap}}@media (width<=480px){.settings{padding:var(--sp-4) var(--sp-3) var(--sp-8)}.set-card{padding:var(--sp-4)}.set-access-row{flex-direction:column;align-items:flex-start}.set-nav-item{padding:8px 10px}}.urenstaten{padding:var(--sp-6);height:100%;overflow-y:auto}.urenstaten h1{margin:0 0 var(--sp-2);font-size:var(--fs-xl)}.us-muted{color:var(--text-muted);font-size:var(--fs-sm);max-width:620px;margin:0 0 var(--sp-4)}.us-week{margin-bottom:var(--sp-6)}.us-week h2{font-size:var(--fs-md);margin:0 0 var(--sp-2)}.us-year{color:var(--text-muted);font-weight:var(--fw-regular);font-size:var(--fs-sm)}.us-table-wrap{border:var(--border);border-radius:var(--radius-md);overflow-x:auto}.us-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);background:var(--surface-card)}.us-table th,.us-table td{text-align:left;border-bottom:var(--border);padding:8px 12px}.us-table th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:var(--fw-medium)}.us-table th:not(:first-child),.us-table td:not(:first-child){text-align:right}.us-table tr:last-child td{border-bottom:none}.us-total{font-weight:var(--fw-bold)}.start{max-width:820px;margin:0 auto;padding:clamp(20px,5vw,56px) 20px}.start-head{align-items:center;gap:14px;margin-bottom:28px;display:flex}.start-logo{border-radius:10px}.start-head h1{margin:0;font-size:clamp(1.4rem,4vw,2rem)}.start-head p{color:var(--text-muted);margin:2px 0 0}.start-cards{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=640px){.start-cards{grid-template-columns:1fr}}.start-card{border:var(--border);background:var(--surface-card);color:var(--text-strong);border-radius:16px;flex-direction:column;gap:6px;padding:22px;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.start-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--surface-border));transform:translateY(-2px);box-shadow:0 10px 28px #0000001f}.start-card-ico{background:color-mix(in srgb, var(--accent) 12%, transparent);width:44px;height:44px;color:var(--accent);border-radius:12px;place-items:center;margin-bottom:4px;display:grid}.start-card-ico svg{width:24px;height:24px}.start-card b{font-size:var(--fs-lg,1.1rem)}.start-card-sub{color:var(--text-muted);font-size:var(--fs-sm)}.scan-backdrop{z-index:320;background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.scan-modal{background:var(--surface-card);border-radius:14px;width:min(420px,94vw);overflow:hidden;box-shadow:0 16px 48px #0000004d}.scan-head{border-bottom:var(--border);font-size:var(--fs-md);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.scan-video-wrap{aspect-ratio:4/3;background:#000;position:relative}.scan-video{object-fit:cover;width:100%;height:100%;display:block}.scan-reticle{border:2px solid #ffffffd9;border-radius:12px;position:absolute;inset:22% 12%;box-shadow:0 0 0 100vmax #00000040}.scan-hint{color:var(--text-muted);font-size:var(--fs-sm);text-align:center;padding:20px 16px}.scan-manual{gap:8px;padding:12px 14px;display:flex}.scan-manual input{border:var(--border);font-size:var(--fs-sm);background:var(--surface-bg);color:var(--text-strong);border-radius:8px;flex:1;padding:8px 10px}.help-tabs{border-bottom:var(--border);gap:4px;padding:8px 14px 0;display:flex}.help-tab{color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 12px}.help-tab-on{color:var(--accent);border-bottom-color:var(--accent)}.att-block{border-top:var(--border);margin-top:12px;padding-top:10px}.att-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.att-actions{gap:6px;display:flex}.att-actions .btn{cursor:pointer}.att-hint{font-size:var(--fs-xs);color:var(--text-muted)}.att-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.att-item{justify-content:space-between;align-items:center;gap:8px;display:flex}.att-name{color:var(--accent);text-align:left;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;overflow:hidden}.att-del{color:var(--text-muted);background:0 0;border:none;width:22px;font-size:18px;line-height:1}.qa-modal{background:var(--surface-card);border-radius:14px;width:min(440px,94vw);margin-top:10vh;overflow:hidden;box-shadow:0 16px 48px #0000004d}.qa-body{flex-direction:column;gap:10px;padding:14px;display:flex}.qa-code{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.qa-body label{font-size:var(--fs-xs);color:var(--text-muted);flex-direction:column;gap:4px;display:flex}.qa-body input{border:var(--border);font-size:var(--fs-sm);background:var(--surface-bg);color:var(--text-strong);border-radius:8px;padding:8px 10px}.qa-name-row{gap:8px;display:flex}.qa-name-row input{flex:1}.qa-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.qa-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.qa-save{margin-top:4px}.ao-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.ao-item{border:var(--border);border-radius:var(--radius-md);background:var(--surface-card);gap:12px;padding:12px 14px;display:flex}.ao-item.ao-off{opacity:.5}.ao-check{align-items:flex-start;padding-top:2px;display:flex}.ao-main{flex:1;min-width:0}.ao-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.ao-qty{font-weight:var(--fw-bold);color:var(--accent);white-space:nowrap}.ao-expl{font-size:var(--fs-xs);color:var(--text-muted);margin-top:3px}.ao-sup{font-size:var(--fs-sm);margin-top:3px}.ao-footer{justify-content:flex-end;margin-top:16px;display:flex}.dev-item-title-row{align-items:center;gap:6px;display:flex}.dev-warn{color:var(--status-problem);font-size:var(--fs-sm);line-height:1}.dev-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;border-radius:999px;flex:none;padding:3px 9px}.dev-badge-ok{background:color-mix(in srgb, var(--status-ok) 16%, transparent);color:var(--status-ok)}.dev-badge-info{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.dev-badge-warn{background:color-mix(in srgb, var(--status-problem) 16%, transparent);color:var(--status-problem)}.dev-badge-muted{background:var(--surface-bg);color:var(--text-muted)}.dev-inspection{font-size:var(--fs-sm);color:var(--text-strong);margin:0}.dev-inspection-warn{color:var(--status-problem);font-weight:var(--fw-medium)}.st-page,.rp-page,.imp-page{height:100%;padding:var(--sp-4) var(--sp-6);gap:var(--sp-5);flex-direction:column;width:100%;max-width:960px;margin:0 auto;display:flex;overflow-y:auto}.st-head,.rp-head,.imp-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.st-head h1,.rp-head h1,.imp-head h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0}.st-sub,.rp-sub,.imp-sub{color:var(--text-muted);font-size:var(--fs-sm);margin:0}.st-start-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.st-counts-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.st-count-item{justify-content:space-between;align-items:center;gap:var(--sp-3);text-align:left;width:100%;padding:var(--sp-3);border:var(--border);background:var(--surface-card);border-radius:var(--radius-md);display:flex}.st-count-item:hover{background:var(--surface-bg)}.st-count-item.st-count-open{box-shadow:inset 3px 0 0 var(--accent)}.st-count-main{flex-direction:column;gap:2px;display:flex}.st-count-scope{font-weight:var(--fw-medium);color:var(--text-strong)}.st-count-date{font-size:var(--fs-xs);color:var(--text-muted)}.st-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:999px;padding:3px 8px}.st-badge-open{background:var(--status-warn-bg,#e6a01426);color:var(--status-warn,#a06a00)}.st-badge-done{background:var(--status-ok-bg,#1ea05a26);color:var(--status-ok,#1e8a52)}.st-progress{align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);display:flex}.st-progress-bar{background:var(--surface-bg);border-radius:999px;flex:1;height:6px;overflow:hidden}.st-progress-fill{background:var(--accent);height:100%}.st-lines{flex-direction:column;gap:2px;display:flex}.st-line{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:var(--border);font-size:var(--fs-sm);grid-template-columns:1fr 1fr auto auto auto;align-items:center;display:grid}@media (width<=720px){.st-line{grid-template-columns:1fr}}.st-line-name{font-weight:var(--fw-medium);color:var(--text-strong)}.st-line-loc{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}.st-line input[type=number]{width:90px;font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);padding:6px 8px}.st-line-diff{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.st-diff-ok{color:var(--text-muted)}.st-diff-warn{color:var(--status-problem);font-weight:var(--fw-bold)}.st-diff-pos{color:var(--status-ok,#1e8a52)}.st-line-done{opacity:.55}.rp-locked{padding:var(--sp-6);text-align:center;color:var(--text-muted);background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg)}.rp-section{gap:var(--sp-2);flex-direction:column;display:flex}.rp-section h2{font-size:var(--fs-md);font-weight:var(--fw-bold);margin:0}.rp-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.rp-table th,.rp-table td{text-align:left;border-bottom:var(--border);padding:6px 8px}.rp-table th{color:var(--text-muted);font-weight:var(--fw-medium);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.rp-table td.rp-num{font-family:var(--font-mono);text-align:right}.rp-empty{color:var(--text-muted);font-size:var(--fs-sm);padding:var(--sp-2) 0}.rp-table-wrap{background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);overflow-x:auto}.rp-table-wrap .rp-table{min-width:480px}.imp-drop{gap:var(--sp-2);padding:var(--sp-4);background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.imp-drop input[type=file]{font:inherit}.imp-table-wrap{background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);overflow-x:auto}.imp-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);min-width:720px}.imp-table th,.imp-table td{text-align:left;border-bottom:var(--border);vertical-align:middle;padding:6px 8px}.imp-table th{color:var(--text-muted);font-weight:var(--fw-medium);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.imp-row-nomatch{opacity:.55}.imp-row-nomatch td{color:var(--text-muted)}.imp-table select,.imp-table input[type=number]{font:inherit;border:var(--border);border-radius:var(--radius-sm);background:var(--surface-bg);color:var(--text-strong);width:100%;padding:4px 6px}.imp-result{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--status-ok,#1e8a52)}.imp-footer{align-items:center;gap:var(--sp-3);flex-wrap:wrap;justify-content:space-between;display:flex}.cat-page{gap:var(--sp-4);flex-direction:column;display:flex}.cat-head h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0 0 4px}.cat-sub{color:var(--text-muted);font-size:var(--fs-sm);max-width:68ch;margin:0}.cat-upload{gap:var(--sp-3);padding:var(--sp-4);background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.cat-upload input[type=file]{font:inherit}.cat-source{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.cat-source label{font-size:var(--fs-sm);color:var(--text-muted)}.cat-source input[type=text]{font:inherit;border:var(--border);border-radius:var(--radius-sm);min-width:220px;padding:4px 8px}.cat-mapping{gap:var(--sp-3);padding:var(--sp-4);background:var(--surface-card);border:var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.cat-map-field{flex-direction:column;gap:4px;display:flex}.cat-map-field label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cat-map-field select{font:inherit;border:var(--border);border-radius:var(--radius-sm);padding:4px 8px}.cat-table-wrap{background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);max-height:420px;overflow-x:auto}.cat-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);min-width:720px}.cat-table th,.cat-table td{text-align:left;border-bottom:var(--border);vertical-align:middle;white-space:nowrap;padding:6px 8px}.cat-table th{color:var(--text-muted);font-weight:var(--fw-medium);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-card);position:sticky;top:0}.cat-row-invalid{opacity:.55}.cat-row-invalid td{color:var(--text-muted)}.cat-footer{align-items:center;gap:var(--sp-3);flex-wrap:wrap;justify-content:space-between;display:flex}.cat-summary{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--status-ok,#1e8a52);margin:0}.cat-section h2{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0 0 var(--sp-2)}.cat-conflicts{gap:var(--sp-2);flex-direction:column;display:flex}.cat-conflict{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--surface-card);border:var(--border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.cat-conflict-info{font-size:var(--fs-sm);flex-direction:column;gap:2px;display:flex}.cat-conflict-values{color:var(--text-muted);font-size:var(--fs-xs)}.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 #0000001a);border-radius:14px;align-items:center;gap:14px;padding:12px 14px;display:flex;box-shadow:0 10px 34px #00000047}.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);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%);box-shadow:0 6px 20px #00000040}.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}
