@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.3bjsqkuy1d2v8.woff2)format("woff2");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-weight:400;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.p.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.3bjsqkuy1d2v8.woff2)format("woff2");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-weight:500;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.p.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");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-weight:600;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");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-weight:600;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");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-weight:600;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");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-weight:600;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.3bjsqkuy1d2v8.woff2)format("woff2");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-weight:600;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.p.0xluf1kzv7x5w.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.z6pKKa_className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.z6pKKa_variable{--font-ui:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/faab88e4be272d29-s.3zhtymus0wdqb.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/a45aa1001bf9176f-s.3nkuoiize4urq.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/41ba59f553543ecf-s.1da667lu-u79a.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/67bba87670b402d1-s.p.1i05ju5aeyhye.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d6c1ff7e86974212-s.p.1dgcou5jor5q_.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/49b1d53681a91a99-s.31-2bzhq1gx_9.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/123d516c9baeb953-s.3xauquyg2sixn.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/a74d2542cc4c775f-s.2taws-qdxmzlf.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/7ac0b1cd3e695dd0-s.p.0htwiiqufp3l9.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/916cd8a3bde3edf8-s.p.28xcb7557rbh2.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.urapFq_className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.urapFq_variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/edb5f85793adc1bb-s.0v2ipp7s07_p9.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/92b6de9cb55945e2-s.p.44ks8kcggj012.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/237858b39a32779d-s.p.1ii7211jqpzi_.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/edb5f85793adc1bb-s.0v2ipp7s07_p9.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/92b6de9cb55945e2-s.p.44ks8kcggj012.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/237858b39a32779d-s.p.1ii7211jqpzi_.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/edb5f85793adc1bb-s.0v2ipp7s07_p9.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/92b6de9cb55945e2-s.p.44ks8kcggj012.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/237858b39a32779d-s.p.1ii7211jqpzi_.woff2)format("woff2");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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.gjaAVq_className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.gjaAVq_variable{--font-head:"Space Grotesk", "Space Grotesk Fallback"}
:root{--bg:#f2f5f6;--surface:#fff;--surface-2:#f6f9fa;--sunken:#e8eef0;--line:#dbe3e6;--line-2:#c4d0d5;--fg:#0f2129;--fg-2:#465963;--fg-3:#6f8189;--accent:#0a6c7d;--accent-hover:#085a68;--accent-fg:#fff;--accent-soft:#dff0f2;--accent-ink:#075664;--good:#12763a;--good-soft:#e1f2e6;--warn:#7f5300;--warn-dot:#d89a00;--warn-soft:#fbefd2;--serious:#a8460f;--serious-soft:#fbe6da;--crit:#b42c2c;--crit-soft:#f9e1e1;--neutral-soft:#e8edef;--code-bg:#0e1b21;--code-fg:#d3e5ea;--overlay:#09161c6b;--shadow:0 1px 2px #0f21290f, 0 2px 8px #0f21290d;--shadow-lg:0 12px 40px #0f21292e;--f-ui:var(--font-ui), system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-head:var(--font-head), var(--font-ui), system-ui, sans-serif;--f-mono:var(--font-mono), ui-monospace, "Cascadia Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b1316;--surface:#111b1f;--surface-2:#152126;--sunken:#0d171a;--line:#213038;--line-2:#2e3f48;--fg:#e2ebee;--fg-2:#a2b3ba;--fg-3:#75878f;--accent:#3cb0c2;--accent-hover:#5ec3d2;--accent-fg:#04232a;--accent-soft:#0f3239;--accent-ink:#86d4e0;--good:#5fca80;--good-soft:#11301c;--warn:#f1c058;--warn-dot:#f1c058;--warn-soft:#33280e;--serious:#f29464;--serious-soft:#371f10;--crit:#f27676;--crit-soft:#3a1717;--neutral-soft:#1b272c;--code-bg:#070f12;--code-fg:#cfe3e8;--overlay:#0000009e;--shadow:0 1px 2px #00000059, 0 2px 10px #00000040;--shadow-lg:0 16px 48px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--f-ui);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--f-head);text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:21px}h2{font-size:15px}h3{font-size:16px}.mono{font-family:var(--f-mono);font-size:.93em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--fg-3)}.small{color:var(--fg-3);font-size:12.5px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:500}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:18px;min-width:0;display:flex}.col{flex-direction:column;gap:12px;min-width:0;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{min-height:100vh;display:flex}.side{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;flex:none;gap:2px;width:232px;height:100vh;padding:16px;display:flex;position:sticky;top:0;overflow:auto}.brand{align-items:center;gap:10px;padding:4px 6px 18px;display:flex}.brand-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-fg);border-radius:8px;flex:none;place-items:center;display:grid}.brand b{font-family:var(--f-head);font-size:15.5px;line-height:1.15;display:block}.brand span{color:var(--fg-3);font-size:11.5px}.nav-btn{width:100%;color:var(--fg-2);text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.nav-btn:hover{background:var(--surface-2);color:var(--fg)}.nav-btn.on{background:var(--accent-soft);color:var(--accent-ink)}.nav-btn .cnt{background:var(--sunken);min-width:20px;height:19px;color:var(--fg-2);font-variant-numeric:tabular-nums;border-radius:99px;place-items:center;margin-left:auto;padding:0 6px;font-size:11.5px;display:grid}.nav-btn .cnt.hot{background:var(--crit-soft);color:var(--crit)}.nav-btn .dotc{border-radius:50%;width:8px;height:8px;margin-left:auto}.side-sep{background:var(--line);height:1px;margin:10px 4px}.side-foot{flex-direction:column;gap:6px;margin-top:auto;padding:10px 6px 0;display:flex}.work{flex-direction:column;flex:1;min-width:0;display:flex}.top{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);padding:12px max(28px, env(safe-area-inset-right,0px)) 12px max(28px, env(safe-area-inset-left,0px));flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:sticky;top:0}.top .ttl{min-width:0}.main{padding:22px max(28px, env(safe-area-inset-right,0px)) 48px max(28px, env(safe-area-inset-left,0px));flex-direction:column;gap:18px;width:100%;max-width:1380px;display:flex}.bnav{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px));justify-content:space-between;display:none;position:fixed;bottom:0;left:0;right:0}.bnav a,.bnav button{color:var(--fg-3);background:0 0;border:0;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 2px;font-size:10.5px;text-decoration:none;display:flex;position:relative}.bnav .on{color:var(--accent-ink)}.bnav .pip{background:var(--crit);color:#fff;border-radius:99px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;display:grid;position:absolute;top:3px;left:calc(50% + 7px)}@media (max-width:899px){.side{display:none}.bnav{display:flex}.top,.main{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}.main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.hide-m{display:none!important}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:0}.panel-h{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:13px 16px;display:flex}.panel-h .sub{color:var(--fg-3);font-size:12.5px}.panel-b{padding:14px 16px}.grid-main{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (max-width:1100px){.grid-main{grid-template-columns:minmax(0,1fr)}}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (max-width:640px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}.btn{border:1px solid var(--line-2);background:var(--surface);white-space:nowrap;height:34px;color:var(--fg);border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .12s;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{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{color:var(--crit)}.btn.danger-fill{background:var(--crit);border-color:var(--crit);color:#fff}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--sunken)}.btn.sm{border-radius:6px;height:28px;padding:0 9px;font-size:12.5px}.btn.icon{width:30px;padding:0}.btn.sm.icon{width:28px}.btn:disabled{opacity:.5;cursor:not-allowed}.chip{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;height:22px;padding:0 8px 0 6px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.t-good{background:var(--good-soft);color:var(--good)}.t-warn{background:var(--warn-soft);color:var(--warn)}.t-serious{background:var(--serious-soft);color:var(--serious)}.t-crit{background:var(--crit-soft);color:var(--crit)}.t-info{background:var(--accent-soft);color:var(--accent-ink)}.t-neutral{background:var(--neutral-soft);color:var(--fg-2)}.seg{background:var(--sunken);border-radius:8px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button,.seg a{height:28px;color:var(--fg-2);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.seg .on{background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow);font-weight:600}.seg .on .c{color:inherit;opacity:.85}.seg .cur{background:var(--surface);color:var(--fg);box-shadow:var(--shadow);height:28px;font-size:13px;font-weight:600}.seg .c{color:var(--fg-3);font-variant-numeric:tabular-nums;font-size:11.5px}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>label,.lbl{color:var(--fg-2);font-size:12.5px;font-weight:500}.field .hint{color:var(--fg-3);font-size:12px}.err{color:var(--crit);font-size:12.5px}.input{border:1px solid var(--line-2);background:var(--surface);border-radius:7px;width:100%;min-width:0;height:36px;padding:0 10px}.input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}textarea.input{resize:vertical;height:auto;min-height:74px;padding:8px 10px;line-height:1.45}.input.mono{font-family:var(--f-mono);font-size:13px}.search{flex:1;min-width:200px;max-width:360px;position:relative}.search svg{color:var(--fg-3);position:absolute;top:9px;left:10px}.search .input{padding-left:34px}.check{cursor:pointer;align-items:flex-start;gap:9px;font-size:13.5px;display:flex}.check input{accent-color:var(--accent);flex:none;width:15px;height:15px;margin-top:3px}.note{background:var(--surface-2);border:1px solid var(--line);color:var(--fg-2);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.note svg{flex:none;margin-top:1px}.note.good{background:var(--good-soft);color:var(--good);border-color:#0000}.note.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.note.crit{background:var(--crit-soft);color:var(--crit);border-color:#0000}.note.info{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.note b{font-weight:600}.tbl-wrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:13.5px}.tbl th{text-transform:uppercase;letter-spacing:.07em;color:var(--fg-3);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);padding:9px 12px;font-size:11px;font-weight:500}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-2)}.tbl .r{text-align:right}.tbl .nowrap{white-space:nowrap}.tbl .name{font-weight:600}.tbl a.name{color:var(--fg);text-decoration:none}.tbl tr.void td{color:var(--fg-3);text-decoration:line-through}.tbl tr.void td.keep{text-decoration:none}.cards{flex-direction:column;gap:10px;display:none}.ccard{background:var(--surface);border:1px solid var(--line);color:var(--fg);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;text-decoration:none;display:flex}.ccard .l1{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ccard .l1 b{font-size:15px}@media (max-width:760px){.desk-only{display:none!important}.cards{display:flex}}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;min-width:0;padding:14px 16px;display:flex}.kpi .v{font-family:var(--f-head);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:25px;font-weight:600;line-height:1.1}.kpi .v small{color:var(--fg-3);margin-left:3px;font-size:14px;font-weight:500}.kpi .s{color:var(--fg-3);font-size:12.5px}.bar{background:var(--sunken);border-radius:99px;height:6px;overflow:hidden}.bar>i{background:var(--accent);border-radius:99px;height:100%;display:block}@media (max-width:420px){.kpi .v{font-size:21px}}.list{flex-direction:column;display:flex}.li{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:10px 0;display:flex}.li:last-child{border-bottom:0}.li .main-c{flex:1;min-width:0}.li .nm{color:var(--fg);font-weight:600;text-decoration:none}.li .nm:hover{color:var(--accent)}.li .meta{color:var(--fg-3);margin-top:2px;font-size:12.5px}.li .acts{flex:none;align-items:center;gap:6px;display:flex}@media (max-width:520px){.li{flex-wrap:wrap}.li .acts{justify-content:flex-end;width:100%}}.health{align-items:flex-start;gap:14px;padding:16px;display:flex}.health .hi{border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.health .ht{flex:1;min-width:0}.health .ht b{font-family:var(--f-head);margin-bottom:2px;font-size:16.5px;display:block}.health .ht p{color:var(--fg-2);margin:0;font-size:13px}.facts{background:var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.facts>div{background:var(--surface);flex-direction:column;gap:3px;min-width:0;padding:11px 16px;display:flex}.facts .k{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);font-size:11px}.facts .val{font-variant-numeric:tabular-nums;font-weight:600}.facts.two{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}.kv{flex-direction:column;display:flex}.kv>div{border-bottom:1px dashed var(--line);justify-content:space-between;gap:16px;padding:7px 0;font-size:13.5px;display:flex}.kv>div:last-child{border-bottom:0}.kv>div>span:first-child{color:var(--fg-3);flex:none}.kv>div>span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0}.code{background:var(--code-bg);color:var(--code-fg);font:12.5px/1.6 var(--f-mono);white-space:pre;border-radius:8px;margin:0;padding:12px 14px;overflow-x:auto}.code-wrap{min-width:0;position:relative}.code-wrap>.btn{position:absolute;top:8px;right:8px}.chart{grid-template-rows:200px auto;grid-template-columns:auto minmax(0,1fr);column-gap:8px;display:grid}.yax{width:50px;position:relative}.yax span{color:var(--fg-3);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;right:0;transform:translateY(50%)}.plot{border-bottom:1px solid var(--line-2);position:relative}.gl{border-top:1px solid var(--line);height:0;position:absolute;left:0;right:0}.ref{border-top:1.5px dashed var(--fg-3);z-index:2;pointer-events:none;height:0;position:absolute;left:0;right:0}.ref span{color:var(--fg-2);background:var(--surface);border-radius:3px;padding:0 4px;font-size:11px;position:absolute;bottom:3px;right:0}.cols{gap:2px;display:flex;position:absolute;inset:0}.colb{flex:1;justify-content:center;align-items:flex-end;display:flex;position:relative}.colb .bv{background:var(--accent);opacity:.55;border-radius:4px 4px 0 0;width:min(46px,56%)}.colb.cur .bv{opacity:1}.colb:hover .bv{opacity:.9}.colb .tip{z-index:5;background:var(--fg);color:var(--bg);white-space:nowrap;pointer-events:none;border-radius:6px;padding:6px 9px;font-size:12px;display:none;position:absolute;left:50%;transform:translate(-50%)}.colb:hover .tip,.colb:focus-within .tip{display:block}.xax{grid-column:2;gap:2px;padding-top:6px;display:flex}.xax span{text-align:center;color:var(--fg-3);flex:1;font-size:11.5px}.xax span.cur{color:var(--fg);font-weight:600}details.tview summary{cursor:pointer;color:var(--fg-3);margin-top:12px;font-size:12.5px}.overlay{background:var(--overlay);z-index:60;overscroll-behavior:contain;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}html:has(.overlay){overflow:hidden}html:has(.overlay) body{overflow:hidden}html:has(.overlay){scrollbar-gutter:stable}.modal{background:var(--surface);width:100%;max-width:540px;max-height:calc(100dvh - 32px);box-shadow:var(--shadow-lg);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex}.modal.wide{max-width:720px}.modal.tall{height:min(680px,100dvh - 32px)}.modal-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 14px;display:flex}.modal-h .sub{color:var(--fg-3);margin-top:2px;font-size:12.5px}.modal-b{overscroll-behavior:contain;flex-direction:column;gap:14px;padding:16px 18px;display:flex;overflow:auto}.modal-f{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}@media (max-width:600px){.overlay{align-items:flex-end;padding:0}.modal,.modal.wide{max-width:none;max-height:94dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:14px 14px 0 0}.modal.tall{height:88vh;max-height:88vh}}.ph{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:12px;padding:16px 18px 0;display:flex}.ph h2{margin:2px 0 6px;font-size:22px}.ph-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.ph-stats>div{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;min-width:0;padding:9px 11px}.ph-stats .k{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);font-size:11px}.ph-stats .val{font-family:var(--f-head);font-variant-numeric:tabular-nums;margin-top:2px;font-size:17px;font-weight:600}.ph-stats .s{color:var(--fg-3);font-size:12px}@media (max-width:760px){.ph-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.tabs{gap:2px;margin:0 -4px;display:flex;overflow-x:auto}.tabs a{color:var(--fg-2);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 10px 11px;font-weight:500;text-decoration:none}.tabs a.on{color:var(--fg);border-bottom-color:var(--accent)}.tabs a .c{color:var(--fg-3);margin-left:4px;font-size:11.5px}.dev{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.dev:last-child{border-bottom:0}.dev .di{background:var(--sunken);width:34px;height:34px;color:var(--fg-2);border-radius:8px;flex:none;place-items:center;display:grid}.logrow{border-bottom:1px solid var(--line);grid-template-columns:128px 70px minmax(0,1fr);align-items:start;gap:10px;padding:9px 0;font-size:13px;display:grid}.logrow:last-child{border-bottom:0}.logrow .ts{font-family:var(--f-mono);color:var(--fg-3);font-size:12px}.logrow.two{grid-template-columns:128px minmax(0,1fr)}@media (max-width:560px){.logrow,.logrow.two{grid-template-columns:minmax(0,1fr) auto}.logrow .txt{grid-column:1/-1}}.toasts{right:max(16px, env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed}.toast{background:var(--fg);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:8px;align-items:center;gap:8px;max-width:min(420px,100vw - 32px);padding:10px 14px;font-size:13px;display:flex}.toast.bad{background:var(--crit);color:#fff}@media (max-width:899px){.toasts{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}.sms-text{white-space:pre-wrap;color:var(--fg-2);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;margin-top:6px;padding:8px 10px;font-size:13px;line-height:1.45}.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:640px){.mode-grid{grid-template-columns:minmax(0,1fr)}}.mode{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:5px;padding:12px;display:flex}.mode b{font-family:var(--f-mono);font-size:13px}.mode span{color:var(--fg-2);font-size:12.5px;line-height:1.45}.linkish{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500;text-decoration:none}.linkish:hover{text-decoration:underline}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .panel{width:100%;max-width:380px}.months{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}@media (max-width:900px){.months{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:460px){.months{grid-template-columns:repeat(3,minmax(0,1fr))}}.mt{border:1px solid var(--line);background:var(--surface);border-radius:9px;flex-direction:column;gap:2px;min-width:0;min-height:66px;padding:8px 10px;display:flex}.mt .mn{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:600}.mt .ms{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:13.5px;font-weight:600;display:flex;overflow:hidden}.mt .md{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.mt-paid{background:var(--good-soft);border-color:#0000}.mt-paid .ms{color:var(--good)}.mt-ahead{background:var(--good-soft);border:1px dashed var(--good)}.mt-ahead .ms{color:var(--good)}.mt-partial{background:var(--warn-soft);border-color:#0000}.mt-partial .ms,.mt-partial .md{color:var(--warn)}.mt-late{background:var(--crit-soft);border-color:#0000}.mt-late .ms,.mt-late .md{color:var(--crit)}.mt-open{border-color:var(--line-2)}.mt-open .ms{color:var(--fg)}.mt-current{border:1px dashed var(--accent)}.mt-current .ms{color:var(--accent-ink)}.mt-future,.mt-none{background:0 0}.mt-none{opacity:.55}.skel{background:linear-gradient(90deg, var(--sunken) 25%, var(--line) 50%, var(--sunken) 75%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.1s ease-in-out infinite skel;display:block}.skel.lg{height:22px}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}
