@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-vietnamese-500-normal-FzY9NZwK.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-500-normal-CAK5R6Iy.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-ext-500-normal-DIhLz7G7.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-500-normal-B0ZDNVGf.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-500-normal-DEDBoLFO.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-500-normal-CV-uA8Lw.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-vietnamese-600-normal-Ipewt4hn.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-600-normal-BppAn7jL.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-ext-600-normal-CN5JKkBm.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-600-normal-DF26P3Q7.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.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: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 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{--bg:#f3f5f8;--surface:#fff;--surface-2:#e9edf2;--surface-3:#dde3ea;--line:#d5dbe4;--line-2:#c2cad6;--fg:#172230;--fg-2:#4f5d6d;--fg-3:#7f8b99;--accent:#0f6f7c;--accent-fg:#fff;--accent-soft:#d6ecef;--accent-ink:#0b5660;--ok:#2f8f5b;--ok-soft:#dcefe3;--warn:#c77d12;--warn-soft:#fbead0;--crit:#cf3f55;--crit-soft:#f9dde2;--info:#4f63d2;--info-soft:#e0e4f8;--heat-0:#f6f8fa;--heat-1:#e3f1e8;--heat-2:#c6e4d1;--heat-3:#ffe3b3;--heat-4:#ffcf85;--heat-5:#f5bcc5;--holiday:#eef1f5;--today:#0f6f7c;--absence:#9aa5b4;--absence-soft:#e4e8ee;--shadow:0 10px 30px #17223024, 0 2px 6px #17223014;--font-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--cw:36px;--rh:58px;--lh:200px;--radius:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10161d;--surface:#171f28;--surface-2:#1f2935;--surface-3:#28343f;--line:#2b3642;--line-2:#3a4756;--fg:#e8edf2;--fg-2:#aab5c2;--fg-3:#76828f;--accent:#3fb3c2;--accent-fg:#06252a;--accent-soft:#163e45;--accent-ink:#8fd8e2;--ok:#4fbf80;--ok-soft:#173627;--warn:#e4a23c;--warn-soft:#3d2d12;--crit:#ef6b7f;--crit-soft:#44202a;--info:#8b9cf0;--info-soft:#232a4a;--heat-0:#171f28;--heat-1:#1b3027;--heat-2:#1f4433;--heat-3:#4a3a14;--heat-4:#6b4e12;--heat-5:#5a2430;--holiday:#1c232c;--today:#3fb3c2;--absence:#6b7684;--absence-soft:#2a333e;--shadow:0 10px 30px #00000080, 0 2px 6px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#10161d;--surface:#171f28;--surface-2:#1f2935;--surface-3:#28343f;--line:#2b3642;--line-2:#3a4756;--fg:#e8edf2;--fg-2:#aab5c2;--fg-3:#76828f;--accent:#3fb3c2;--accent-fg:#06252a;--accent-soft:#163e45;--accent-ink:#8fd8e2;--ok:#4fbf80;--ok-soft:#173627;--warn:#e4a23c;--warn-soft:#3d2d12;--crit:#ef6b7f;--crit-soft:#44202a;--info:#8b9cf0;--info-soft:#232a4a;--heat-0:#171f28;--heat-1:#1b3027;--heat-2:#1f4433;--heat-3:#4a3a14;--heat-4:#6b4e12;--heat-5:#5a2430;--holiday:#1c232c;--today:#3fb3c2;--absence:#6b7684;--absence-soft:#2a333e;--shadow:0 10px 30px #00000080, 0 2px 6px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-ink)}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;line-height:1.2}h2{font-size:20px;font-weight:600}h3{font-size:15px;font-weight:600}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--fg-2)}.small{font-size:12px}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}#app{flex-direction:column;height:100%;min-height:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:18px;padding:8px 16px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:9px;font-size:19px;font-weight:700;display:flex}.brand .logo{background:var(--accent);width:28px;height:28px;color:var(--accent-fg);border-radius:7px;place-items:center;font-size:15px;display:grid}.tabs{flex-wrap:wrap;gap:2px;display:flex}.tabs button{color:var(--fg-2);background:0 0;border:0;border-radius:6px;padding:7px 11px;font-weight:500}.tabs button:hover{background:var(--surface-2);color:var(--fg)}.tabs button.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.topbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.who{align-items:center;gap:8px;font-size:13px;display:flex}.who img,.avatar{object-fit:cover;border-radius:50%;flex:none;width:28px;height:28px}.avatar{color:#fff;background:var(--fg-3);place-items:center;font-size:11px;font-weight:600;display:grid}.who .role{color:var(--fg-3);font-size:11px}.banner{background:var(--warn-soft);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex}.banner.info{background:var(--info-soft)}.banner.ok{background:var(--ok-soft)}main{flex-direction:column;flex:1;min-height:0;display:flex}.toolbar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;flex:none;align-items:center;gap:10px;padding:10px 16px;display:flex}.toolbar .sep{background:var(--line);width:1px;height:22px}.toolbar .grow{flex:1}.work{padding:16px;flex:1;min-height:0;padding-block:16px;overflow:auto}.work.tight{padding:0}.btn{border:1px solid var(--line-2);background:var(--surface);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 11px;font-weight:500;line-height:1.2;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--crit);border-color:var(--crit)}.btn.sm{padding:3px 8px;font-size:12px}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:14px;height:14px}#btnTheme svg{width:16px;height:16px}.chip{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.crit{background:var(--crit-soft);color:var(--crit);border-color:#0000}.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.pill{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-block}.pill.confirme{background:var(--ok-soft);color:var(--ok)}.pill.pipeline{background:var(--info-soft);color:var(--info)}.pill.termine{background:var(--surface-3);color:var(--fg-2)}.pill.crit{background:var(--crit-soft);color:var(--crit)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--info-soft);color:var(--info)}input[type=text],input[type=search],input[type=date],input[type=number],input[type=email],select,textarea{border:1px solid var(--line-2);background:var(--surface);border-radius:6px;min-width:0;padding:6px 9px}input[type=search]{width:200px}textarea{resize:vertical;width:100%}label.check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.seg{border:1px solid var(--line-2);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--fg-2);border:0;padding:5px 10px;font-size:12px;font-weight:500}.seg button+button{border-left:1px solid var(--line)}.seg svg{vertical-align:-3px;width:14px;height:14px}.seg button.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>span{color:var(--fg-2);font-size:12px;font-weight:500}.field input,.field select{width:100%}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-grid .full{grid-column:1/-1}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.form-actions .left{margin-right:auto}.grid-wrap{background:var(--bg);flex:1;min-height:0;position:relative;overflow:auto}.grid{min-width:100%;display:inline-block;position:relative}.grid-head{z-index:5;background:var(--surface);border-bottom:1px solid var(--line-2);display:flex;position:sticky;top:0}.grid-head .corner{z-index:6;width:var(--lh);background:var(--surface);border-right:1px solid var(--line-2);color:var(--fg-2);flex-direction:column;flex:none;justify-content:flex-end;padding:6px 12px;font-size:12px;display:flex;position:sticky;left:0}.head-days{flex:none;height:48px;position:relative}.head-week{border-left:1px solid var(--line);height:22px;color:var(--fg-2);white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600;position:absolute;top:0;overflow:hidden}.head-week .num{color:var(--fg-3);font-weight:500}.head-day{height:26px;width:var(--cw);text-align:center;color:var(--fg-2);border-left:1px solid var(--line);padding-top:3px;font-size:11px;line-height:1.1;position:absolute;top:22px}.head-day.monday{border-left-color:var(--line-2)}.head-day b{color:var(--fg);font-weight:600;display:block}.head-day.today,.head-day.today b{color:var(--today)}.head-day.holiday{color:var(--fg-3);background:var(--holiday)}.row{height:var(--rh);border-bottom:1px solid var(--line);display:flex}.row-head{z-index:4;width:var(--lh);background:var(--surface);border-right:1px solid var(--line-2);cursor:pointer;flex:none;align-items:center;gap:9px;padding:0 10px;display:flex;position:sticky;left:0}.row-head:hover{background:var(--surface-2)}.row-head .name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.row-head .role{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.row-head .txt{flex:1;min-width:0}.row-head .util{font-family:var(--font-mono);color:var(--fg-2);text-align:right;flex:none;font-size:11px}.row-head .util.over{color:var(--crit);font-weight:600}.row-head .util .dot{background:var(--crit);border-radius:50%;width:7px;height:7px;margin-left:4px;display:inline-block}.lanes{touch-action:none;-webkit-user-select:none;user-select:none;flex:none;position:relative}.cell{height:100%;width:var(--cw);border-left:1px solid var(--line);background:var(--heat-0);position:absolute;top:0}.cell.monday{border-left-color:var(--line-2)}.cell.h1{background:var(--heat-1)}.cell.h2{background:var(--heat-2)}.cell.h3{background:var(--heat-3)}.cell.h4{background:var(--heat-4)}.cell.over{background:repeating-linear-gradient(135deg,var(--heat-5) 0 6px,transparent 6px 12px),var(--heat-5)}.cell.holiday,.cell.off{background:repeating-linear-gradient(45deg,var(--holiday) 0 4px,transparent 4px 9px),var(--holiday)}.cell.today{box-shadow:inset 2px 0 0 var(--today)}.lane-sep{border-top:1px dashed var(--line);pointer-events:none;position:absolute;top:50%;left:0;right:0}.bar{color:#fff;white-space:nowrap;text-overflow:ellipsis;cursor:grab;z-index:2;border-radius:5px;flex-direction:column;justify-content:center;gap:1px;padding:3px 7px;font-size:11.5px;line-height:1.15;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px 2px #00000026}.bar.half{padding:1px 7px;font-size:11px}.bar b{text-overflow:ellipsis;font-weight:600;overflow:hidden}.bar .sub{opacity:.85;text-overflow:ellipsis;font-size:10px;overflow:hidden}.bar.pipeline{background-image:repeating-linear-gradient(135deg,#ffffff38 0 5px,#0000 5px 11px);border:1.5px dashed #ffffffd9}.bar.absence{background:var(--absence-soft);color:var(--fg-2);border:1px solid var(--absence);cursor:pointer;z-index:3;opacity:.94;background-image:repeating-linear-gradient(135deg,#0000000f 0 4px,#0000 4px 9px)}.bar.conflict{outline:2px solid var(--crit);outline-offset:-1px}.bar .handle{cursor:ew-resize;z-index:3;width:8px;position:absolute;top:0;bottom:0}.bar .handle.l{left:0}.bar .handle.r{right:0}.bar.dragging{opacity:.75;z-index:10;cursor:grabbing;box-shadow:var(--shadow)}.bar.ghost{background:var(--accent);opacity:.6;pointer-events:none}.bar .badge{background:var(--crit);color:#fff;border-radius:50%;place-items:center;width:14px;height:14px;font-size:10px;font-weight:700;line-height:1;display:grid;position:absolute;top:3px;right:4px}.bar.half .badge{top:2px}.legend{color:var(--fg-2);border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;flex:none;gap:14px;padding:8px 16px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border:1px solid var(--line-2);border-radius:2px;width:14px;height:10px;display:inline-block}.empty{text-align:center;color:var(--fg-2);max-width:520px;margin:40px auto;padding:48px 24px}.empty h2{margin-bottom:8px}.empty .actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px}.tile .v{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin-top:2px;font-size:24px;font-weight:600;line-height:1.1}.tile .v small{color:var(--fg-3);font-size:13px;font-weight:500}.tile .meter{background:var(--surface-3);border-radius:3px;height:5px;margin-top:8px;overflow:hidden}.tile .meter i{background:var(--accent);height:100%;display:block}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:7px 10px}th{letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap;background:var(--surface);z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}tr:last-child td{border-bottom:0}tbody tr.click{cursor:pointer}tbody tr.click:hover td{background:var(--surface-2)}td.num,th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.heat td.hc{text-align:center;font-family:var(--font-mono);cursor:pointer;border-left:1px solid var(--line);min-width:56px;font-size:12px}.heat .hc.h0{background:var(--heat-0);color:var(--fg-3)}.heat .hc.h1{background:var(--heat-1)}.heat .hc.h2{background:var(--heat-2)}.heat .hc.h3{background:var(--heat-3)}.heat .hc.h4{background:var(--heat-4)}.heat .hc.over{background:var(--heat-5);color:var(--crit);font-weight:600}.heat th.wk{text-align:center;border-left:1px solid var(--line);min-width:56px}.heat th.wk small{letter-spacing:0;text-transform:none;color:var(--fg-3);font-weight:400;display:block}.heat tfoot td{background:var(--surface-2);font-weight:600}.heat .sticky{background:var(--surface);z-index:2;min-width:180px;position:sticky;left:0}.heat tfoot .sticky{background:var(--surface-2)}.two-col{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}@media (width<=800px){.two-col{grid-template-columns:1fr!important}.form-grid{grid-template-columns:1fr}}@media (width<=700px){:root{--lh:150px}.legend .hint{display:none}.toolbar{gap:6px;padding:8px 12px}.toolbar .sep{display:none}input[type=search]{width:100%}.banner{font-size:12px}.topbar{gap:10px}.tabs button{padding:6px 8px;font-size:13px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.card h3{margin-bottom:8px}.list{flex-direction:column;display:flex}.list .item{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:7px 0;font-size:13px;display:flex}.list .item:last-child{border-bottom:0}.list .item .grow{flex:1;min-width:0}.list .item .grow .t{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.list .item .grow .s{color:var(--fg-2);font-size:12px}.dot{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.avatars{display:flex}.avatars .avatar{border:2px solid var(--surface);width:22px;height:22px;margin-left:-6px;font-size:9px}.avatars .avatar:first-child{margin-left:0}.bar-mini{background:var(--surface-3);border-radius:4px;height:7px;position:relative;overflow:hidden}.bar-mini i{background:var(--accent);height:100%;position:absolute;top:0;left:0}.bar-mini i.p{background:var(--info);opacity:.55}.bar-mini i.over{background:var(--crit)}.pattern{gap:3px;display:inline-flex}.pattern button{border:1px solid var(--line-2);background:var(--surface);border-radius:5px;width:30px;height:26px;padding:0;font-size:10px;font-weight:600;line-height:1.05}.pattern button.c1{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.pattern button.c05{background:var(--heat-3);border-color:#0000}.pattern button.c0{background:var(--surface-3);color:var(--fg-3);border-color:#0000}.pattern button span{color:var(--fg-3);font-size:9px;font-weight:400;display:block}.drawer{background:var(--surface);border-left:1px solid var(--line);width:min(560px,100%);box-shadow:var(--shadow);z-index:40;padding-top:env(safe-area-inset-top,0px);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer .d-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 18px;display:flex}.drawer .d-head .grow{flex:1;min-width:0}.drawer .d-body{flex-direction:column;flex:1;gap:18px;padding:16px 18px;display:flex;overflow:auto}.drawer section h3{align-items:center;gap:8px;margin-bottom:8px;display:flex}.drawer section h3 .count{color:var(--fg-3);font-size:11px;font-weight:500}.scrim{z-index:39;background:#0a101859;position:fixed;inset:0}.popover{z-index:50;background:var(--surface);border:1px solid var(--line);width:min(380px,100vw - 24px);box-shadow:var(--shadow);border-radius:10px;padding:14px 16px;position:fixed}.popover h3{margin-bottom:10px}.popover .close,.drawer .close{color:var(--fg-3);background:0 0;border:0;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1}.popover .close{position:absolute;top:8px;right:8px}.popover .close:hover,.drawer .close:hover{background:var(--surface-2);color:var(--fg)}@media (width<=600px){.popover{width:auto;max-height:85vh;bottom:8px;right:8px;overflow:auto;top:auto!important;left:8px!important}}#toasts{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--fg);color:var(--bg);box-shadow:var(--shadow);pointer-events:auto;border-radius:8px;align-items:center;gap:10px;max-width:min(480px,90vw);padding:8px 14px;font-size:13px;display:flex}.toast.crit{background:var(--crit);color:#fff}.toast.ok{background:var(--ok);color:#fff}.toast button{color:inherit;background:#ffffff2e;border:0;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.conf{border:1px solid var(--line);border-left:4px solid var(--crit);background:var(--surface);border-radius:6px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.conf.warn{border-left-color:var(--warn)}.conf.info{border-left-color:var(--info)}.conf .t{font-size:13px;font-weight:600}.conf .x{color:var(--fg-2);font-size:12.5px}.conf .props{flex-direction:column;gap:4px;margin-top:2px;display:flex}.conf .props button{text-align:left;white-space:normal;justify-content:flex-start;line-height:1.3}.conf .props button .arrow{color:var(--accent);margin-right:4px;font-weight:700}.conf-list{flex-direction:column;gap:8px;display:flex}.data-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.cols{font-family:var(--font-mono);color:var(--fg-2);background:var(--surface-2);word-break:break-word;border-radius:5px;margin:6px 0;padding:6px 8px;font-size:11.5px;line-height:1.5}.cols b{color:var(--fg)}input[type=file]{max-width:100%;font-size:12px}.preview{background:var(--surface-2);border-radius:6px;margin-top:8px;padding:8px 10px;font-size:12.5px}.kv{grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px;display:grid}.kv dt{color:var(--fg-2)}.kv dd{margin:0}.timeline-mini{grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;gap:3px;height:48px;display:grid}.timeline-mini div{background:var(--accent);border-radius:3px 3px 0 0;min-height:2px;position:relative}.timeline-mini div.over{background:var(--crit)}.timeline-mini div.p{background:var(--info);opacity:.5}.tl-labels{color:var(--fg-3);text-align:center;font-size:10px;font-family:var(--font-mono);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;display:grid}.loading{color:var(--fg-2);flex:1;place-items:center;display:grid}.spin{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:0 auto 10px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.inline-confirm{align-items:center;gap:6px;display:inline-flex}kbd{font-family:var(--font-mono);border:1px solid var(--line-2);background:var(--surface-2);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11px}.hint{color:var(--fg-3);font-size:12px}.who-btn{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:3px 8px 3px 4px;font-size:13px;line-height:1.25;display:flex}.who-btn:hover{background:var(--surface-2)}#btnTheme{gap:5px}.seg button{align-items:center;gap:5px;display:inline-flex}.pw-box{letter-spacing:.04em;background:var(--surface-2);border:1px dashed var(--line-2);-webkit-user-select:all;user-select:all;word-break:break-all;border-radius:6px;margin:8px 0;padding:10px 12px;font-size:18px}input[type=password]{border:1px solid var(--line-2);background:var(--surface);border-radius:6px;min-width:0;padding:6px 9px}label.check.full{grid-column:1/-1}.form-actions .inline-confirm.left{margin-right:auto}body.auth{place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);width:min(400px,100%);box-shadow:var(--shadow);border-radius:12px;padding:28px 28px 24px}.auth-card .brand{font-size:22px}.auth-card .brand .logo{border-radius:9px;width:34px;height:34px;font-size:18px}.auth-sub{margin:6px 0 20px;font-size:13px}.auth-card form{flex-direction:column;gap:12px;display:flex}.auth-card h2{font-size:18px}.auth-card .field input{width:100%;padding:9px 11px;font-size:14px}.auth-submit{justify-content:center;margin-top:4px;padding:9px 12px;font-size:14px}.auth-error{background:var(--crit-soft);color:var(--crit);border-radius:6px;padding:8px 10px;font-size:13px}@media (width<=700px){.who-btn>div{display:none}#btnTheme{gap:0;font-size:0}#btnTheme svg{font-size:12px}}
