@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-condensed-vietnamese-600-normal.6d7e2f90.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-vietnamese-600-normal.7f364a4c.woff) format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-condensed-latin-ext-600-normal.646ca2c5.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-ext-600-normal.b10b40bc.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-condensed-latin-600-normal.b506a7ca.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-600-normal.a0aeaff6.woff) format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/barlow-condensed-vietnamese-700-normal.b5cf89c0.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-vietnamese-700-normal.c7b344a0.woff) format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/barlow-condensed-latin-ext-700-normal.e84925df.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-ext-700-normal.73a79c9e.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/barlow-condensed-latin-700-normal.e9811009.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-700-normal.f6cc1247.woff) format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/barlow-condensed-vietnamese-800-normal.e38b3dc4.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-vietnamese-800-normal.8fcde047.woff) format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/barlow-condensed-latin-ext-800-normal.9eab2a14.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-ext-800-normal.3f7f93ed.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/_next/static/media/barlow-condensed-latin-800-normal.17d6e974.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-800-normal.d5e6c36e.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/public-sans-vietnamese-400-normal.e2c36c50.woff2) format("woff2"),url(/_next/static/media/public-sans-vietnamese-400-normal.a3905435.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/public-sans-latin-ext-400-normal.24d5d966.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-ext-400-normal.251d3edf.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/public-sans-latin-400-normal.940dad75.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-400-normal.fe5f3e74.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/public-sans-vietnamese-500-normal.9f7e2eac.woff2) format("woff2"),url(/_next/static/media/public-sans-vietnamese-500-normal.7ff8e9f9.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/public-sans-latin-ext-500-normal.c338d014.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-ext-500-normal.a9adf58e.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/public-sans-latin-500-normal.42240429.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-500-normal.f9f851f7.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/public-sans-vietnamese-600-normal.333b0139.woff2) format("woff2"),url(/_next/static/media/public-sans-vietnamese-600-normal.7fb22cbc.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/public-sans-latin-ext-600-normal.ceedf90e.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-ext-600-normal.5c4a84dd.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/public-sans-latin-600-normal.532b6dda.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-600-normal.498482c9.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/public-sans-vietnamese-700-normal.fb07b2ec.woff2) format("woff2"),url(/_next/static/media/public-sans-vietnamese-700-normal.5e6e72d8.woff) format("woff");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:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/public-sans-latin-ext-700-normal.0b740623.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-ext-700-normal.49b964cd.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/public-sans-latin-700-normal.ffc5116c.woff2) format("woff2"),url(/_next/static/media/public-sans-latin-700-normal.a400cf57.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.7daf4077.woff) format("woff");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-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.29859c59.woff) format("woff");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-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.4a5b0cb1.woff) format("woff");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-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.fd17702b.woff) format("woff");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-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.ef62d646.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.b0c7be19.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.d9de1144.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.02ec8c39.woff) format("woff");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-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.ae6258df.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.00657183.woff) format("woff");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-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-greek-500-normal.89c6cba8.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-500-normal.96a101cf.woff) format("woff");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-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.3bbdce79.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.5b6505bb.woff) format("woff");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-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.b7bedb53.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.d0559b71.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-500-normal.af2e87f5.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-500-normal.24c9023a.woff) format("woff");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}:root{--bg:#eceeea;--panel:#ffffff;--line:#d7dbd5;--line-strong:#c9cec7;--line-soft:#e3e7e1;--ink:#14171a;--muted:#5b6168;--ink-soft:#3d4247;--side:#14171a;--side-active:#262a2e;--side-line:#2e3337;--side-text:#b9bcbf;--yellow:#f5b800;--good:#1d6b4a;--paid:#e3a51c;--bad:#b3261e;--ok-bg:#dcefe4;--ok-fg:#145236;--warn-bg:#fff3cc;--warn-fg:#6b4e00;--err-bg:#f6d5d2;--err-fg:#7a1a14;--neutral-bg:#eceeea;--font-display:"Barlow Condensed","Arial Narrow",sans-serif;--font-text:"Public Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);font-family:var(--font-text);font-size:15px;line-height:1.45;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a,body{color:var(--ink)}a:hover{color:#000}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}h1,h2,h3{margin:0}.h1{font-family:var(--font-display);font-weight:800;font-size:40px;line-height:1.05;text-transform:uppercase;letter-spacing:.01em}.h2{font-size:17px}.h2,.h3{font-weight:700}.h3{font-size:14px}.muted{color:var(--muted)}.mono,.small{font-size:13px}.mono{font-family:var(--font-mono)}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.big-num{font-family:var(--font-display);font-weight:700;font-size:34px;line-height:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.card{background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;gap:14px;min-width:0}.card,.card-dark{border-radius:12px;padding:20px}.card-dark{background:var(--side);color:#e9e8e2}.stack{gap:16px}.stack,.stack-sm{display:flex;flex-direction:column;min-width:0}.stack-sm{gap:8px}.row{align-items:center}.row,.row-between{display:flex;flex-wrap:wrap;gap:8px}.row-between{align-items:baseline;justify-content:space-between}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:14px 16px;gap:14px 16px}.grid-2>.field-wide,.grid-3>.field-wide{grid-column:1/-1}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:14px 16px;gap:14px 16px}.divider{border:0;border-top:1px solid var(--line-soft);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){background:#f6f7f4}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--yellow);border-color:var(--yellow);color:var(--ink);font-weight:700}.btn-primary:hover:not(:disabled){background:#ffc926}.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn-dark:hover:not(:disabled){background:#2a2f33}.btn-danger{color:var(--err-fg);border-color:#e6b3ae}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.btn-icon{width:44px;padding:0}.link-btn{background:none;border:0;padding:0;min-height:24px;color:var(--ink);text-decoration:underline;cursor:pointer;font-weight:600}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap}.chip-ok{background:var(--ok-bg);color:var(--ok-fg)}.chip-warn{background:var(--warn-bg);color:var(--warn-fg)}.chip-err{background:var(--err-bg);color:var(--err-fg)}.chip-neutral{background:var(--neutral-bg);color:var(--ink-soft)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>.label,.field>label{font-size:13px;font-weight:600;color:var(--ink-soft)}.req{color:var(--bad)}.input,.select,.textarea{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel);font-size:15px}.textarea{padding:10px 12px;min-height:96px;resize:vertical}.input:disabled,.select:disabled,.textarea:disabled{background:#f3f4f1;color:var(--muted)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}.input-mono{font-family:var(--font-mono);font-size:14px}.hint{font-size:12.5px;color:var(--muted)}.error-text{color:var(--err-fg)}.error-text,.warn-text{font-size:12.5px;font-weight:600}.warn-text{color:var(--warn-fg)}.switch-row{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.switch-row input{width:22px;height:22px;accent-color:var(--ink)}.radio-card{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;min-height:44px}.radio-card[data-checked=true]{border:2px solid var(--ink);padding:11px;background:#fafaf7}.radio-card[data-disabled=true]{background:#f1f2ee;cursor:not-allowed}.assign-set{gap:8px;border:0;padding:0;margin:0}.assign-body,.assign-set{display:flex;flex-direction:column;min-width:0}.assign-body{gap:4px}.radio-card input{width:20px;height:20px;margin-top:2px;accent-color:var(--ink)}.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;font-size:14px;line-height:1.5}.banner-info{background:var(--neutral-bg);border:1px solid var(--line)}.banner-warn{background:var(--warn-bg);color:var(--warn-fg)}.banner-err{background:var(--err-bg);color:var(--err-fg)}.banner-ok{background:var(--ok-bg);color:var(--ok-fg)}.banner ul{margin:4px 0 0;padding-left:18px}.table-wrap{position:relative;overflow-x:auto;max-width:100%}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.tbl td,.tbl th{padding:10px 8px}.tbl td{border-top:1px solid var(--line-soft);vertical-align:middle}.tbl td.num,.tbl th.num{text-align:right}.tbl tr[data-selected=true] td{background:var(--warn-bg)}.tbl td.row-error,.tbl tr[data-error=true] td{background:#fdeceb}.tbl tr[data-due=near] td{background:var(--warn-bg)}.tbl tr[data-due=past] td{background:#fdeceb}.sticky-col{position:-webkit-sticky;position:sticky;left:0;background:var(--panel);z-index:1}.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line)}.tab{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:0;border-bottom:3px solid transparent;background:none;font-weight:600;color:var(--muted);cursor:pointer;text-decoration:none;white-space:nowrap}.tab[aria-current=page],.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--yellow)}.save-bar{position:-webkit-sticky;position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 12px;padding:12px 32px;margin:0 -32px -48px;background:var(--panel);border-top:1px solid var(--line)}.save-bar .grow{flex:1 1 200px;font-size:13px;color:var(--muted)}@media (max-width:720px){.h1{font-size:32px}.card{padding:14px}.save-bar{margin:0 -16px -32px;padding:12px 16px}.save-bar .btn{flex:1 1 140px}}dialog.dlg{border:1px solid var(--line-strong);border-radius:14px;padding:0;max-width:min(560px,calc(100vw - 24px));width:100%;background:var(--panel);color:var(--ink)}dialog.dlg::-webkit-backdrop{background:rgba(20,23,26,.55)}dialog.dlg::backdrop{background:rgba(20,23,26,.55)}.dlg-body{padding:20px;display:flex;flex-direction:column;gap:14px}.dlg-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.toast-region{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{background:var(--ink);color:#fff;border-radius:10px;padding:12px 14px;font-size:14px;border-left:4px solid var(--yellow)}.toast-err{border-left-color:#ff8a80}.kv{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;grid-gap:8px 16px;gap:8px 16px;margin:0;font-size:14px}.kv dt{color:var(--muted);font-weight:600}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.timeline li{display:grid;grid-template-columns:150px 1fr;grid-gap:4px 14px;gap:4px 14px;align-items:baseline;padding:10px 0 10px 14px;border-left:3px solid var(--line-strong)}.timeline li+li{border-top:0}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}.kpi .label{font-size:13px;color:var(--muted)}.kpi .note{font-size:12px;color:var(--muted)}@media (max-width:720px){.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:8px}.timeline li{grid-template-columns:1fr}}.tbl tbody th[scope=row]{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;color:var(--ink);padding:10px 8px;white-space:nowrap}.dark-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px}.dark-head h2{color:#fff}.dark-head .sub,.dark-row .sub{color:#b9bcbf;font-size:13px}.dark-list{display:flex;flex-direction:column}.dark-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--side-line);font-size:14px}.dark-row .when{flex:0 0 96px;color:#b9bcbf}.dark-row .what{flex:1 1 320px;min-width:0;overflow-wrap:anywhere}.dark-row .acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dark-row .kind{padding:2px 8px;border-radius:6px;color:var(--ink);font-size:12px;font-weight:700}.btn-dark-ghost{border:1px solid #4a5055;background:transparent;color:#fff}.btn-dark-ghost:hover:not(:disabled){background:#262a2e}.btn-dark-yellow{border:1px solid var(--yellow);background:var(--yellow);color:var(--ink);font-weight:700}.btn-dark-yellow:hover:not(:disabled){background:#ffc926}.note-ok{color:var(--good);font-weight:600}.note-err{color:var(--bad);font-weight:600}.kpi .big-num.small-num{font-size:26px}@media (max-width:720px){.dark-row .when{flex-basis:100%}}.sk-bar{display:block;max-width:100%;border-radius:6px;background:var(--line-soft);animation:sk-pulse 1.2s ease-in-out infinite}@keyframes sk-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.sk-bar{animation:none}}.recovery-grid{list-style:none;margin:0;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 16px;gap:8px 16px;background:var(--bg);border:1px solid var(--line);border-radius:8px;font-size:15px;letter-spacing:.06em}.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:14px}.qr-row{display:flex;flex-wrap:wrap;gap:20px;align-items:center}.secret{display:inline-block;padding:8px 10px;font-size:15px;letter-spacing:.08em}.link-box,.secret{background:var(--bg);border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}.link-box{display:block;padding:10px 12px;font-family:var(--font-mono);font-size:13px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.perm-matrix td.role-col,.perm-matrix th.role-col{text-align:center;min-width:96px}.perm-matrix th.role-col{vertical-align:bottom;white-space:normal;text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--ink)}.perm-matrix tr.module-row th{background:var(--bg);color:var(--ink);font-size:12px;padding:6px 8px}.perm-matrix .perm-label{display:block;max-width:340px;white-space:normal;text-transform:none;letter-spacing:0;font-weight:500;font-size:13.5px;color:var(--ink)}.perm-matrix .perm-key{display:block;font-family:var(--font-mono);font-size:11px;font-weight:400;color:var(--muted)}.perm-matrix input[type=checkbox]{width:20px;height:20px;accent-color:var(--ink)}.perm-matrix .on-mark{font-weight:800;color:var(--good)}.perm-matrix .off-mark{color:var(--line-strong)}.preview-frame{width:100%;height:560px;background:#fff}.preview-frame,.preview-text{border:1px solid var(--line);border-radius:10px}.preview-text{margin:0;padding:14px;background:var(--bg);font-family:var(--font-mono);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:560px;overflow:auto}.check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:4px 16px;gap:4px 16px}.auth-card{width:min(460px,100%)}.btn[data-active=true]{border-color:var(--ink);border-width:2px;font-weight:700}