@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_a58de3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_a58de3{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2df0f432c3c27475-s.woff2) format("woff2");unicode-range:u+1780-17ff,u+19e0-19ff,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/e1fc9bb079dc1c14-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Noto Sans Khmer;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1dff1dd9db4a44fb-s.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2df0f432c3c27475-s.woff2) format("woff2");unicode-range:u+1780-17ff,u+19e0-19ff,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/e1fc9bb079dc1c14-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Noto Sans Khmer;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1dff1dd9db4a44fb-s.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2df0f432c3c27475-s.woff2) format("woff2");unicode-range:u+1780-17ff,u+19e0-19ff,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/e1fc9bb079dc1c14-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Noto Sans Khmer;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1dff1dd9db4a44fb-s.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2df0f432c3c27475-s.woff2) format("woff2");unicode-range:u+1780-17ff,u+19e0-19ff,u+200c-200d,u+25cc}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/e1fc9bb079dc1c14-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Noto Sans Khmer;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1dff1dd9db4a44fb-s.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Khmer Fallback;src:local("Arial");ascent-override:100.54%;descent-override:27.56%;line-gap-override:0.00%;size-adjust:106.33%}.__className_0f3cb7{font-family:Noto Sans Khmer,Noto Sans Khmer Fallback;font-style:normal}.__variable_0f3cb7{--font-khmer:"Noto Sans Khmer","Noto Sans Khmer Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7ad3736e903bfaa5-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/3150dd0728fab2c3-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e3db186a51b1f2b3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/3647a4d8cc3a67ad-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ad50a964c4297b83-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/a36735a804b49f85-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_5c3e4e{font-family:JetBrains Mono,JetBrains Mono Fallback;font-weight:500;font-style:normal}.__variable_5c3e4e{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#f3f3f9;--panel:#ffffff;--panel-2:#f3f6f9;--ink:#212529;--muted:#878a99;--line:#e9ebec;--input:#ced4da;--brand:#405189;--brand-ink:#ffffff;--brand-soft:#e2e5ed;--side:#405189;--side-ink:#abb9e8;--side-mute:#8b9bd6;--side-hi:rgba(255,255,255,.09);--side-active:rgba(255,255,255,.14);--ok:#067a6a;--ok-soft:#daf4f0;--warn:#a8721a;--warn-soft:#fef4e4;--bad:#cc4a2f;--bad-soft:#fde8e4;--info:#1f7fb8;--info-soft:#dff0fa;--gray:#6b6e7d;--gray-soft:#eff0f2;--c-pri:#405189;--c-ok:#0ab39c;--c-info:#299cdb;--c-warn:#f7b84b;--c-bad:#f06548;--radius:6px;--radius-sm:4px;--shadow:0 1px 2px rgba(56,65,74,.15);--shadow-lg:0 5px 10px rgba(30,32,37,.12);--f-body:var(--font-inter),"Inter",var(--font-khmer),"Noto Sans Khmer",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-mono:var(--font-mono),"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1a1d21;--panel:#212529;--panel-2:#282b2e;--ink:#ced4da;--muted:#878a99;--line:#32383e;--input:#3a4047;--brand:#7c8de0;--brand-ink:#11162e;--brand-soft:#2a3150;--side:#212529;--side-ink:#7c7f90;--side-mute:#6a6d7c;--side-hi:rgba(255,255,255,.05);--side-active:rgba(124,141,224,.16);--ok:#3fd1bc;--ok-soft:#16352f;--warn:#f7c470;--warn-soft:#3b3122;--bad:#ff8a70;--bad-soft:#3e2420;--info:#6cc0ef;--info-soft:#1d3341;--gray:#a3a6b4;--gray-soft:#2c3034;--shadow:0 1px 2px rgba(0,0,0,.35);--shadow-lg:0 5px 10px rgba(0,0,0,.4);color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}body,html{margin:0;padding:0;min-height:100%}html{text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:600;text-wrap:balance}h1{font-size:22px;margin:0 0 4px}h2{font-size:15px;margin:0 0 14px}h3{font-size:14px;margin:0 0 8px}.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:var(--f-mono);font-size:.92em}.right{text-align:right}.nowrap{white-space:nowrap}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.side{background:var(--side);color:var(--side-ink);position:-webkit-sticky;position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:0 12px 12px;gap:4px;overflow-y:auto;overscroll-behavior:contain;z-index:50}.side .logo{display:flex;align-items:center;gap:10px;color:#fff;padding:0 6px;min-height:70px;flex:none}.side .logo:hover{text-decoration:none}.side .logo i{width:34px;height:34px;border-radius:var(--radius);background:rgba(255,255,255,.16);display:grid;place-items:center;color:#fff;flex:none}.side .logo i svg{width:20px;height:20px}.side .logo b{display:block;font-size:16px;font-weight:700;line-height:1.15;letter-spacing:-.01em}.side .logo small{display:block;color:var(--side-mute);font-size:11.5px;font-weight:400}.side nav{display:flex;flex-direction:column;gap:1px}.side .grp{padding:14px 10px 6px;color:var(--side-mute);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.side nav a{color:var(--side-ink);padding:9px 10px;border-radius:var(--radius);display:flex;gap:10px;align-items:center;font-weight:500;white-space:nowrap}.side nav a svg{width:18px;height:18px;flex:none}.side nav a:hover{color:#fff;text-decoration:none}.side nav a.on{background:var(--side-active);color:#fff}.side .grow{flex:1 1}.side .me{border-top:1px solid rgba(255,255,255,.1);padding:12px 6px 0;display:flex;align-items:center;gap:10px}.side .me .av{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;display:grid;place-items:center;font-weight:600;flex:none}.side .me .who{flex:1 1;min-width:0;color:var(--side-ink)}.side .me .who:hover{text-decoration:none}.side .me .who b{color:#fff;font-size:13px;font-weight:600}.side .me .who b,.side .me .who small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side .me .who small{color:var(--side-mute);font-size:11.5px}.side .me form{margin:0}.iconbtn{background:none;border:0;color:var(--side-ink);cursor:pointer;padding:8px;border-radius:var(--radius);display:grid;place-items:center}.iconbtn:hover{background:var(--side-hi);color:#fff}.iconbtn svg{width:19px;height:19px}.navbtn,.scrim{display:none}.page{min-width:0;display:flex;flex-direction:column}.top{justify-content:space-between;background:var(--panel);box-shadow:var(--shadow);min-height:70px;padding:12px max(24px,env(safe-area-inset-right,0px)) 12px max(24px,env(safe-area-inset-left,0px));position:-webkit-sticky;position:sticky;top:0;z-index:20}.top,.top .crumb{display:flex;align-items:center;gap:12px}.top .crumb{min-width:0}.top .crumb b{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top .crumb small{display:block;color:var(--muted);font-size:12.5px}.top .role{font-size:12px;font-weight:600;color:var(--brand);background:var(--brand-soft);padding:3px 10px;border-radius:99px;white-space:nowrap}.navbtn{background:none;border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px;cursor:pointer;color:var(--ink);place-items:center}.navbtn svg{width:20px;height:20px}.main{padding:22px max(24px,env(safe-area-inset-right,0px)) 48px max(24px,env(safe-area-inset-left,0px));min-width:0}.head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.head h1{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.head .muted{font-size:13px}.card{background:var(--panel);border:0;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card>h2:first-child{margin:-20px -20px 16px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:15px}.grid{display:grid;grid-gap:20px;gap:20px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{position:relative;overflow:hidden}.kpi .l{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.kpi .v{font-size:24px;font-weight:600;margin-top:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .d{font-size:12.5px;color:var(--muted);margin-top:4px}.kpi{border-top:3px solid var(--c-pri)}.grid>.kpi:nth-child(4n+2){border-top-color:var(--c-ok)}.grid>.kpi:nth-child(4n+3){border-top-color:var(--c-warn)}.grid>.kpi:nth-child(4n+4){border-top-color:var(--c-info)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12.5px;color:var(--muted);font-weight:600;background:var(--panel-2);white-space:nowrap}tbody tr:hover td{background:color-mix(in srgb,var(--panel-2) 60%,transparent)}tr:last-child td{border-bottom:0}.tablewrap{overflow-x:auto;border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.card .tablewrap{box-shadow:none;border:1px solid var(--line)}.badge{display:inline-block;padding:3px 9px;border-radius:var(--radius-sm);font-size:11.5px;font-weight:600;white-space:nowrap}.b-pending,.b-trial{background:var(--info-soft);color:var(--info)}.b-active,.b-applied,.b-paid{background:var(--ok-soft);color:var(--ok)}.b-past_due,.b-underpaid,.b-unmatched{background:var(--warn-soft);color:var(--warn)}.b-expired,.b-suspended,.b-void{background:var(--bad-soft);color:var(--bad)}.b-cancelled,.b-ignored{background:var(--gray-soft);color:var(--gray)}.bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden;min-width:60px}.bar>span{display:block;height:100%;background:var(--c-ok)}.bar.hot>span{background:var(--c-warn)}.bar.full>span{background:var(--c-bad)}label{display:block;font-size:13px;font-weight:500;color:var(--ink);margin-bottom:5px}input,select,textarea{width:100%;padding:8px 12px;border:1px solid var(--input);border-radius:var(--radius-sm);font:inherit;background:var(--panel);color:var(--ink)}input:focus,select:focus,textarea:focus{outline:0;border-color:color-mix(in srgb,var(--brand) 55%,var(--input));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}input[type=checkbox]{width:auto;accent-color:var(--brand)}input[type=color]{padding:2px;height:38px}.field{margin-bottom:14px}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.row>.field{flex:1 1;min-width:140px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 15px;border-radius:var(--radius-sm);border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);font:inherit;font-weight:500;line-height:1.4;cursor:pointer;white-space:nowrap;box-shadow:0 2px 6px color-mix(in srgb,var(--brand) 30%,transparent)}.btn:hover{filter:brightness(1.08);text-decoration:none}.btn:disabled{opacity:.6;cursor:wait}.btn.ghost{background:var(--panel);color:var(--ink);border-color:var(--line);box-shadow:none}.btn.ghost:hover{background:var(--panel-2);filter:none}.btn.danger{background:var(--bad-soft);color:var(--bad);border-color:transparent;box-shadow:none}.btn.danger:hover{background:var(--c-bad);color:#fff;filter:none}.btn.warn{background:var(--c-warn);border-color:var(--c-warn);color:#212529;box-shadow:none}.btn.sm{padding:4px 10px;font-size:12.5px}.msg{margin-top:12px;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px}.msg.ok{background:var(--ok-soft);color:var(--ok)}.msg.err{background:var(--bad-soft);color:var(--bad)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap;background:var(--panel);border-radius:var(--radius) var(--radius) 0 0;box-shadow:var(--shadow);padding:0 8px}.tabs a{padding:12px 14px;color:var(--muted);border-bottom:2px solid transparent;font-weight:500}.tabs a:hover{color:var(--brand);text-decoration:none}.tabs a.on{color:var(--brand);border-color:var(--brand)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters input,.filters select{width:auto;min-width:160px}.chart{display:flex;align-items:flex-end;gap:8px;height:160px;padding-top:10px}.chart .col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.chart .col span{width:100%;max-width:34px;background:var(--brand);border-radius:3px 3px 0 0;min-height:2px}.chart .col small{font-size:10.5px;color:var(--muted)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:6px}.kv{display:grid;grid-template-columns:160px 1fr;grid-gap:8px 12px;gap:8px 12px}.kv dt{color:var(--muted)}.kv dd{margin:0}.empty{padding:32px;text-align:center;color:var(--muted)}details.box{border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);padding:14px 20px}details.box summary{cursor:pointer;font-weight:600}.alert{padding:11px 16px;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);margin-bottom:20px;border-left:3px solid var(--c-warn)}.langs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.langs button{border:0;background:none;padding:5px 10px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--muted);cursor:pointer}.langs button:hover{color:var(--ink)}.langs button.on{background:var(--brand);color:var(--brand-ink)}.pub{max-width:1080px;margin:0 auto;padding:32px 20px 64px}.pub header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:40px;flex-wrap:wrap}.hero{text-align:center;margin:24px 0 40px}.hero h1{font-size:34px;letter-spacing:-.01em}.hero p{font-size:17px;color:var(--muted)}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:20px;gap:20px}.plan .price{font-size:26px;font-weight:700;margin:8px 0;color:var(--brand)}.plan ul{padding-left:18px;color:var(--muted)}.auth{max-width:420px;margin:10vh auto;padding:0 16px}.qr{background:#fff;padding:12px;border-radius:8px;border:1px solid var(--line);display:inline-block}@media (max-width:1200px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.side{position:fixed;inset:0 auto 0 0;width:270px;max-width:86vw;transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow-lg)}.nav-open .side{transform:none}.navbtn{display:grid}.scrim{position:fixed;inset:0;background:rgba(0,0,0,.4);border:0;z-index:40}.nav-open .scrim{display:block}.nav-open body{overflow:hidden}.top{padding:10px 16px;min-height:60px}.top .crumb small{display:none}.main{padding:16px 16px 40px}.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.kv{grid-template-columns:120px 1fr}.filters input,.filters select{flex:1 1;min-width:0;width:100%}}@media (prefers-reduced-motion:reduce){.side{transition:none}}