@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,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(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,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(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,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(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_c8daab{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_c8daab{--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(/_next/static/media/58f386aa6b1a2a92-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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-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-20c0,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(/_next/static/media/d3ebbfd689654d3a-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-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-20c0,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(/_next/static/media/98e207f02528a563-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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-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:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--bg:#f5f4f1;--surface:#ffffff;--surface-2:#eeece7;--surface-3:#e6e3dc;--border:#e2ded6;--border-strong:#cbc6bb;--text:#1b1a17;--text-2:#57544c;--text-3:#8a867c;--accent:#0c6f8c;--accent-strong:#095a72;--accent-soft:#e0eff4;--accent-line:#bfe0ea;--on-accent:#ffffff;--ok:#15803d;--ok-soft:#e4f3ea;--ok-line:#bfe3cc;--warn:#b45309;--warn-soft:#faefdd;--warn-line:#ecd3a8;--danger:#b91c1c;--danger-soft:#fae8e8;--danger-line:#eec5c5;--neutral:#5f6b78;--neutral-soft:#eceef1;--neutral-line:#d4d9df;--shadow-sm:0 1px 2px rgba(26,24,20,0.06),0 1px 1px rgba(26,24,20,0.04);--shadow-md:0 4px 14px rgba(26,24,20,0.09);--shadow-lg:0 18px 44px rgba(26,24,20,0.16);--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-pill:999px;--muted:var(--text-2);--primary:var(--accent);--primary-hover:var(--accent-strong);--primary-soft:var(--accent-soft);--success:var(--ok);--success-soft:var(--ok-soft);--warning:var(--warn);--warning-soft:var(--warn-soft);--radius:var(--r-lg);--shadow:var(--shadow-sm);--sidebar-w:240px}[data-theme=dark]{--bg:#131311;--surface:#1c1c19;--surface-2:#232320;--surface-3:#2c2b26;--border:#34332d;--border-strong:#48463e;--text:#f3f1ea;--text-2:#b7b3a8;--text-3:#827e73;--accent:#37b4d4;--accent-strong:#5ec7e2;--accent-soft:#0f2e39;--accent-line:#1c4a58;--on-accent:#052029;--ok:#4ade80;--ok-soft:#12301e;--ok-line:#1f5236;--warn:#fbbf24;--warn-soft:#33260c;--warn-line:#5c4718;--danger:#f87171;--danger-soft:#391817;--danger-line:#6a2c2b;--neutral:#9aa4b0;--neutral-soft:#26262a;--neutral-line:#3a3b40;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 6px 18px rgba(0,0,0,0.45);--shadow-lg:0 20px 48px rgba(0,0,0,0.55)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131311;--surface:#1c1c19;--surface-2:#232320;--surface-3:#2c2b26;--border:#34332d;--border-strong:#48463e;--text:#f3f1ea;--text-2:#b7b3a8;--text-3:#827e73;--accent:#37b4d4;--accent-strong:#5ec7e2;--accent-soft:#0f2e39;--accent-line:#1c4a58;--on-accent:#052029;--ok:#4ade80;--ok-soft:#12301e;--ok-line:#1f5236;--warn:#fbbf24;--warn-soft:#33260c;--warn-line:#5c4718;--danger:#f87171;--danger-soft:#391817;--danger-line:#6a2c2b;--neutral:#9aa4b0;--neutral-soft:#26262a;--neutral-line:#3a3b40;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 6px 18px rgba(0,0,0,0.45);--shadow-lg:0 20px 48px rgba(0,0,0,0.55)}}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-ui),"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;line-height:1.25;letter-spacing:-.01em}.mono,.num{font-family:var(--font-mono),"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border:1px solid var(--border-strong);border-radius:var(--r-md);font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .14s,border-color .14s,color .14s,box-shadow .14s;background:var(--surface);color:var(--text)}.btn:hover{background:var(--surface-2)}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line)}.btn-danger:hover{background:color-mix(in srgb,var(--danger-soft) 82%,var(--danger))}.btn-ghost{background:transparent;border-color:transparent;color:var(--accent)}.btn-ghost:hover{background:var(--accent-soft)}.btn-sm{padding:.35rem .7rem;font-size:.78rem;border-radius:var(--r-sm)}.btn-lg{padding:.75rem 1.4rem;font-size:1rem}.btn:disabled{background:var(--surface-2);color:var(--text-3);border-color:var(--border);box-shadow:none;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.8rem;font-weight:500;color:var(--text-2)}.input,.select{width:100%;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:var(--r-md);font-family:inherit;font-size:.875rem;background:var(--surface);color:var(--text);transition:border-color .14s,box-shadow .14s}.input::placeholder{color:var(--text-3)}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.9rem}.checkbox-row input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}.card{padding:1.25rem}.card,.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.875rem}table.data td,table.data th{padding:.6rem .8rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.data th{background:var(--surface-2);font-weight:600;color:var(--text-3);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-2)}table.data tr.row-warn td{background:var(--warn-soft)}table.data tr.row-danger td{background:var(--danger-soft)}table.data tr.row-muted td{color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem;border:1px solid transparent;border-radius:var(--r-pill);font-size:.72rem;font-weight:600;line-height:1.4}.badge-green{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.badge-gray{background:var(--neutral-soft);color:var(--neutral);border-color:var(--neutral-line)}.badge-blue{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-line)}.badge-amber{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.badge-red{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line)}.alert{padding:.7rem .9rem;border:1px solid transparent;border-radius:var(--r-md);font-size:.85rem;margin-bottom:.9rem}.alert-error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line)}.alert-success{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}.alert-info{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-line)}.modal-overlay{position:fixed;inset:0;background:rgba(27,24,20,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:4rem 1rem;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;padding:1.5rem}.modal h2{margin-bottom:1rem}.panel{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:var(--surface-2);border-right:1px solid var(--border);color:var(--text-2);padding:1.1rem .8rem;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;gap:.15rem}.sidebar .brand{color:var(--text);font-weight:600;font-size:1rem;padding:.4rem .6rem 1rem}.sidebar .brand small{display:block;color:var(--text-3);font-weight:400;font-size:.72rem;margin-top:2px}.nav-link{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:var(--r-md);color:var(--text-2);font-size:.875rem;font-weight:500;transition:background .14s,color .14s}.nav-link:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.sidebar .spacer{flex:1 1}.content{margin-left:var(--sidebar-w);flex:1 1;min-width:0;padding:1.5rem 2rem}.page-head{justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.page-head,.toolbar{display:flex;align-items:center;flex-wrap:wrap}.toolbar{gap:.6rem;margin-bottom:1rem}.row{display:flex;gap:.8rem;flex-wrap:wrap}.row>*{flex:1 1;min-width:0}.muted{color:var(--text-2)}.right{text-align:right}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.stat .val{font-family:var(--font-mono),"IBM Plex Mono",ui-monospace,monospace;font-size:1.8rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text)}.stat .lbl{color:var(--text-2);font-size:.8rem;font-weight:500}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:radial-gradient(82% 62% at 100% 0,var(--accent-soft),transparent 60%),var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:2.2rem;width:100%;max-width:400px}.login-split{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-form-pane{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;background:var(--surface)}.login-form-inner{width:100%;max-width:380px}.login-aside{position:relative;overflow:hidden;background:var(--accent-strong);color:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:center}@media (max-width:860px){.login-split{grid-template-columns:1fr}.login-aside{display:none}.login-form-pane{padding:32px 20px}}@media (max-width:720px){.sidebar{position:static;width:100%;flex-direction:row;flex-wrap:wrap}.content{margin-left:0;padding:1rem}.panel{flex-direction:column}}.kiosk{min-height:100vh;background:#0f1420;color:#e7e5df;padding:1.5rem;display:flex;flex-direction:column}.kiosk-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem}.kiosk-head h1{color:#fff;font-size:1.4rem;margin:0}.emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:1rem;gap:1rem;overflow-y:auto}.emp-card{background:#172033;border:2px solid #26324a;border-radius:var(--r-lg);padding:.8rem;text-align:center;cursor:pointer;transition:border-color .12s,transform .08s}.emp-card:hover{border-color:var(--primary);transform:translateY(-2px)}.emp-avatar{width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 auto .5rem;background:#26324a;display:flex;align-items:center;justify-content:center;font-size:2.2rem;color:#93a1b8}.emp-card .name{font-weight:600;font-size:.95rem;color:#fff}.emp-card .cat{color:#93a1b8;font-size:.8rem}.keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.7rem;gap:.7rem;max-width:340px;margin:1rem auto}.key{padding:1.1rem;font-size:1.4rem;font-weight:600;background:#172033;color:#fff;border:1px solid #26324a;border-radius:12px;cursor:pointer;transition:background .1s}.key:active{background:var(--primary)}.letters{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.4rem;gap:.4rem;max-width:420px;margin:0 auto}.letters .key{padding:.6rem;font-size:1rem}.kiosk-center{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.big-btn{padding:1.1rem 2.5rem;font-size:1.2rem;font-weight:700;border-radius:var(--r-lg);border:none;cursor:pointer}.dni-display{font-size:2.4rem;letter-spacing:.3rem;font-weight:600;color:#fff;min-height:3rem;font-family:var(--font-mono),"IBM Plex Mono",ui-monospace,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.capture-video{width:420px;max-width:90vw;border-radius:16px;border:3px solid var(--primary);transform:scaleX(-1)}.confirm-icon{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:4rem;margin:0 auto 1rem}.movil{min-height:100vh;background:#0f1420;color:#e7e5df;display:flex;flex-direction:column;padding:1.2rem;max-width:480px;margin:0 auto}.movil-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.movil-head .who{font-weight:600;color:#fff}.status-pill{display:inline-block;padding:.4rem 1rem;border-radius:var(--r-pill);font-weight:700;font-size:1rem}.status-in{background:var(--success-soft);color:var(--success)}.status-out{background:#26324a;color:#c7cedb}.punch-btn{width:220px;height:220px;border-radius:50%;border:none;font-size:1.4rem;font-weight:800;color:#fff;cursor:pointer;margin:2rem auto;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .08s}.punch-btn:active{transform:scale(.96)}.punch-in{background:linear-gradient(160deg,#16a34a,#15803d)}.punch-out{background:linear-gradient(160deg,#dc2626,#b91c1c)}.punch-btn:disabled{opacity:.6}.history-item{display:flex;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid #1c2740;font-size:.9rem}