@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_49a339{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_49a339{--font-display:"Space Grotesk","Space Grotesk Fallback"}@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 Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_1bc20f{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_1bc20f{--font-sans:"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:#EEF3FA;--surface:#FFFFFF;--surface-2:#EAF1FB;--hairline:#D3DEEC;--hairline-soft:#E4EBF4;--text:#12233B;--muted:#5A6B85;--muted-dim:#93A1B8;--brand:#2563EB;--brand-dark:#1D4ED8;--sky:#0EA5E9;--running:#16A34A;--stopped:#DC2626;--transition:#D97706;--shadow:0 12px 30px -14px rgba(37,99,235,.28);--r:14px}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans),"IBM Plex Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}.display,h1,h2,h3{font-family:var(--font-display),"Space Grotesk",sans-serif;letter-spacing:-.01em}.mono{font-family:var(--font-mono),"IBM Plex Mono",ui-monospace,monospace}a{color:inherit;text-decoration:none}.eyebrow{font-family:var(--font-mono),monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brand)}.btn{font-family:var(--font-display),sans-serif;font-weight:600;font-size:13.5px;border:1px solid var(--hairline);background:var(--surface);color:var(--text);padding:9px 15px;border-radius:9px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:7px;text-decoration:none}.btn:hover:not(:disabled){border-color:var(--brand);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark)}.btn-danger{color:var(--stopped)}.btn-danger:hover:not(:disabled){border-color:var(--stopped)}.btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.brand-mark{display:flex;align-items:center;gap:11px}.brand-dot{width:28px;height:28px;border-radius:8px;background:var(--brand);position:relative;flex:none}.brand-dot:after{content:"";position:absolute;inset:7px;border-radius:3px;border:2px solid #fff}.brand-name{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.02em}.tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);border:1px solid var(--brand);border-radius:5px;padding:2px 6px;margin-left:2px}.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:var(--surface);border-right:1px solid var(--hairline);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-head{padding:20px 20px 14px;border-bottom:1px solid var(--hairline-soft)}.sidebar-section{padding:16px 12px 6px}.sidebar-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-dim);padding:0 10px 8px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--muted);cursor:pointer;transition:.13s}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);font-weight:600}.nav-item svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav-item .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-dot{width:7px;height:7px;border-radius:50%;background:var(--muted-dim);margin-left:auto;flex:none}.nav-dot.on{background:var(--running)}.nav-dot.off{background:var(--stopped)}.nav-dot.warn{background:var(--transition)}.sidebar-foot{margin-top:auto;padding:14px;border-top:1px solid var(--hairline-soft)}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{justify-content:space-between;padding:14px 26px;border-bottom:1px solid var(--hairline);position:-webkit-sticky;position:sticky;top:0;background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5}.topbar,.who{display:flex;align-items:center}.who{gap:12px}.who-meta{line-height:1.3;text-align:right}.who-meta .n{font-size:13px;font-weight:600}.who-meta .e{font-size:11.5px;color:var(--muted)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);display:grid;place-items:center;font-weight:600;font-size:13px;color:#fff;font-family:var(--font-display);flex:none}.avatar.dark{background:var(--text)}.wrap{max-width:1120px;margin:0 auto;padding:30px 26px 70px;width:100%}.page-head{margin-bottom:22px}.page-head h1{font-size:25px;font-weight:600;margin:7px 0 4px}.page-head p{color:var(--muted);font-size:14px}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r);box-shadow:0 1px 2px rgba(18,35,59,.04)}.card-pad{padding:22px 24px}.card-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--hairline-soft)}.card-head h2{font-size:15px;font-weight:600}.card-head .sub{font-size:12px;color:var(--muted);margin-top:2px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:12px 24px}td,th{border-bottom:1px solid var(--hairline-soft)}td{padding:14px 24px;font-size:13.5px;vertical-align:middle}tr:last-child td{border-bottom:none}.cell-name{font-weight:600}.cell-sub,.pill{font-size:12px;color:var(--muted);font-family:var(--font-mono)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:20px;background:var(--surface-2)}.pill .d{width:6px;height:6px;border-radius:50%;background:var(--muted)}.pill.on{color:var(--running);background:color-mix(in srgb,var(--running) 10%,#fff)}.pill.on .d{background:var(--running)}.pill.off{color:var(--stopped);background:color-mix(in srgb,var(--stopped) 10%,#fff)}.pill.off .d{background:var(--stopped)}.pill.warn{color:var(--transition);background:color-mix(in srgb,var(--transition) 10%,#fff)}.pill.warn .d{background:var(--transition)}.chip{display:inline-block;font-size:11.5px;font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--hairline);border-radius:6px;padding:2px 7px;margin:2px 3px 2px 0;color:var(--text)}.chip.muted{color:var(--muted-dim)}.link{color:var(--brand);cursor:pointer;font-weight:600;font-size:13px;background:none;border:none;padding:0;font-family:inherit}.link:hover{text-decoration:underline}.row-actions{display:flex;gap:8px;justify-content:flex-end}.icon-btn{background:none;border:none;cursor:pointer;color:var(--muted);padding:5px;border-radius:6px;display:grid;place-items:center}.icon-btn:hover{color:var(--stopped);background:var(--surface-2)}.icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.field{margin-bottom:15px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:500}.field input,.field select{width:100%;background:var(--surface);border:1px solid var(--hairline);border-radius:9px;color:var(--text);padding:11px 12px;font-size:13.5px;font-family:var(--font-mono);transition:.15s}.field input:focus,.field select:focus{border-color:var(--brand);outline:none}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 16px;gap:0 16px}@media(max-width:640px){.grid2{grid-template-columns:1fr}}.hint{font-size:11.5px;color:var(--muted-dim);margin-top:8px;line-height:1.5}.status-line{display:flex;align-items:center;gap:8px;font-size:12.5px;margin-top:12px;font-family:var(--font-mono)}.status-line .d{width:7px;height:7px;border-radius:50%}.status-line.ok{color:var(--running)}.status-line.ok .d{background:var(--running)}.status-line.warn{color:var(--transition)}.status-line.warn .d{background:var(--transition)}.status-line.err{color:var(--stopped)}.status-line.err .d{background:var(--stopped)}.status-line.idle{color:var(--muted)}.status-line.idle .d{background:var(--muted-dim)}.overlay{position:fixed;inset:0;background:rgba(18,35,59,.4);display:grid;place-items:center;z-index:30;padding:20px}.modal{background:var(--surface);border-radius:var(--r);width:100%;max-width:440px;box-shadow:var(--shadow);overflow:hidden}.modal-head{padding:20px 24px;border-bottom:1px solid var(--hairline-soft)}.modal-head h3{font-size:17px;font-weight:600}.modal-head p{font-size:12.5px;color:var(--muted);margin-top:3px}.modal-body{padding:22px 24px}.modal-foot{padding:16px 24px;border-top:1px solid var(--hairline-soft);display:flex;justify-content:flex-end;gap:10px}.check-list{max-height:260px;overflow:auto;border:1px solid var(--hairline);border-radius:10px}.check-row{display:flex;align-items:center;gap:11px;padding:11px 14px;border-bottom:1px solid var(--hairline-soft);cursor:pointer}.check-row:last-child{border-bottom:none}.check-row:hover{background:var(--surface-2)}.check-row input{width:16px;height:16px;accent-color:var(--brand)}.check-row .nm{font-size:13px;font-weight:600}.check-row .mt{font-size:11.5px;color:var(--muted);font-family:var(--font-mono)}.empty{padding:40px 24px;text-align:center;color:var(--muted)}.empty .big{font-family:var(--font-display);font-weight:600;color:var(--text);margin-bottom:5px}.spinner{width:14px;height:14px;border-radius:50%;flex:none;display:inline-block;border:2px solid color-mix(in srgb,currentColor 28%,transparent);border-top-color:currentcolor;animation:spin .7s linear infinite}.updating{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);font-family:var(--font-mono)}.tbl-pending{opacity:.5;transition:opacity .15s;pointer-events:none}.inline-note{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-family:var(--font-mono)}.inline-note.warn{color:var(--transition)}@keyframes shimmer{0%{background-position:-450px 0}to{background-position:450px 0}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--hairline-soft) 40%,var(--surface-2) 60%);background-size:900px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:7px}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}.spinner{animation-duration:1.4s}}.sk-row{display:flex;gap:16px;align-items:center;padding:15px 24px;border-bottom:1px solid var(--hairline-soft)}.sk-row:last-child{border-bottom:none}.refresh-btn{background:none;border:none;cursor:pointer;color:var(--muted-dim);padding:3px;border-radius:6px;display:inline-grid;place-items:center;vertical-align:middle}.refresh-btn:hover:not(:disabled){color:var(--brand);background:var(--surface-2)}.refresh-btn:disabled{opacity:.5;cursor:default}.refresh-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.refresh-btn svg.spin{animation:spin .7s linear infinite}.log-pager{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline-soft)}.act-wrap{height:300px;overflow:hidden;margin-top:6px}.act-table{width:100%;border-collapse:collapse}.act-table th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:left;padding:8px}.act-table td,.act-table th{border-bottom:1px solid var(--hairline-soft)}.act-table td{padding:10px 8px;font-size:12.5px;vertical-align:middle}.act-table tbody tr:last-child td{border-bottom:none}.act-time{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;width:1%}.act-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:8px;background:var(--muted-dim);vertical-align:middle}.act-dot.ok{background:var(--running)}.act-dot.warn{background:var(--transition)}.act-dot.err{background:var(--stopped)}.act-dot.start{background:var(--running)}.act-dot.restart{background:var(--transition)}.act-dot.stop{background:var(--stopped)}.act-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center;padding:0 16px}.pager{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline-soft);flex-wrap:wrap}.pager button{min-width:30px;height:30px;padding:0 7px;border:1px solid var(--hairline);background:var(--surface);color:var(--text);border-radius:7px;font-size:12.5px;font-family:var(--font-mono);cursor:pointer;display:grid;place-items:center}.pager button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.pager button:disabled{opacity:.4;cursor:not-allowed}.pager button.active{background:var(--brand);border-color:var(--brand);color:#fff}.pager .pager-gap{padding:0 3px;color:var(--muted-dim)}.imp-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:color-mix(in srgb,var(--transition) 13%,#fff);border-bottom:1px solid color-mix(in srgb,var(--transition) 35%,#fff);color:var(--text);padding:10px 26px;font-size:13px}.mobile-nav{display:none;position:relative;padding:12px 16px 0}.mobile-nav-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:11px 14px;font-family:var(--font-display);font-weight:600;font-size:14px;color:var(--text);cursor:pointer}.mobile-nav-trigger svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:.15s}.mobile-nav-trigger svg.flip{transform:rotate(180deg)}.mobile-nav-panel{position:absolute;left:16px;right:16px;top:calc(100% - 2px);z-index:15;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}.mobile-nav-search{width:100%;border:none;border-bottom:1px solid var(--hairline-soft);padding:11px 14px;font-size:13.5px;font-family:var(--font-mono);outline:none;background:var(--surface);color:var(--text)}.mobile-nav-list{max-height:280px;overflow:auto}.mobile-nav-group-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dim);padding:10px 14px 5px;background:var(--surface-2)}.mobile-nav-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:none;border:none;border-bottom:1px solid var(--hairline-soft);font-size:13.5px;color:var(--text);cursor:pointer;text-align:left;text-decoration:none}.mobile-nav-item:last-child{border-bottom:none}.mobile-nav-item:hover{background:var(--surface-2)}.mobile-nav-item.active{color:var(--brand);font-weight:600}.mobile-nav-empty{padding:14px;color:var(--muted);font-size:13px;text-align:center}.grid{display:grid;grid-template-columns:1.15fr 1fr;grid-gap:20px;gap:20px;align-items:start}@media(max-width:900px){.grid{grid-template-columns:1fr}}.core-wrap{display:flex;flex-direction:column;align-items:center;padding:8px 0 22px;text-align:center}.core{position:relative;width:186px;height:186px;display:grid;place-items:center;margin-bottom:6px}.ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--state,var(--muted));opacity:.4}.ring.pulse{animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{transform:scale(.72);opacity:.45}70%{opacity:0}to{transform:scale(1.08);opacity:0}}.core-disc{width:128px;height:128px;border-radius:50%;background:color-mix(in srgb,var(--state,#5A6B85) 8%,#fff);border:1.5px solid var(--state,var(--muted));display:grid;place-items:center;box-shadow:0 6px 22px -10px color-mix(in srgb,var(--state,#5A6B85) 60%,transparent);transition:.4s}.core-disc svg{width:40px;height:40px;stroke:var(--state,var(--muted));fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.status-word{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:.02em;margin-top:14px;color:var(--state,var(--muted))}.status-sub{font-size:12.5px;color:var(--muted);margin-top:3px}.controls{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.controls,.ctl{justify-content:center}.ctl{flex:1 1;min-width:96px}.ctl svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ctl.start{color:var(--running)}.ctl.start:hover:not(:disabled){border-color:var(--running)}.ctl.restart{color:var(--transition)}.ctl.restart:hover:not(:disabled){border-color:var(--transition)}.ctl.stop{color:var(--stopped)}.ctl.stop:hover:not(:disabled){border-color:var(--stopped)}.specs{border-top:1px solid var(--hairline-soft);margin-top:24px;padding-top:20px;display:grid;grid-template-columns:1fr 1fr;grid-gap:16px 22px;gap:16px 22px}.spec .k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.spec .v{font-family:var(--font-mono);font-size:13.5px;color:var(--text);font-weight:500}.copyable{cursor:pointer;display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;color:inherit;font:inherit}.copyable:hover{color:var(--brand)}.copyable svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8;opacity:.55}.spec-table{border-top:1px solid var(--hairline-soft);margin-top:22px}.spec-row{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--hairline-soft)}.spec-row:last-child{border-bottom:none}.spec-ico{width:30px;height:30px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;flex:none;color:var(--brand)}.spec-ico svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.spec-label{font-size:12.5px;color:var(--muted);font-weight:500}.spec-val{margin-left:auto;font-family:var(--font-mono);font-size:13.5px;font-weight:500;color:var(--text);text-align:right}button.spec-val{background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px}button.spec-val:hover{color:var(--brand)}button.spec-val svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;opacity:.55}.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.card-title h2{font-size:15px;font-weight:600}.log{list-style:none;font-family:var(--font-mono);font-size:12px;line-height:1.9;max-height:220px;overflow:auto}.log li{display:flex;gap:10px;color:var(--muted)}.log .t{color:var(--muted-dim);flex:none}.log .dot{width:6px;height:6px;border-radius:50%;margin-top:7px;flex:none;background:var(--muted)}.log .ok .dot{background:var(--running)}.log .warn .dot{background:var(--transition)}.log .err .dot{background:var(--stopped)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;background:#0a1424;overflow:hidden}.login-screen:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,15,30,.5),rgba(8,15,30,.82)),url(/login-bg.jpg) 50%/cover no-repeat}.login-card{position:relative;z-index:1;width:100%;max-width:400px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r);padding:38px 34px;box-shadow:0 24px 60px -20px rgba(0,0,0,.6)}.login-sub{color:var(--muted);font-size:13.5px;margin-top:4px;margin-bottom:26px;line-height:1.5}.login-error{background:color-mix(in srgb,var(--stopped) 8%,#fff);border:1px solid color-mix(in srgb,var(--stopped) 30%,#fff);color:var(--stopped);font-size:12.5px;border-radius:9px;padding:10px 12px;margin-bottom:16px}.login-note{margin-top:20px;font-size:11.5px;color:var(--muted-dim);text-align:center;line-height:1.5}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:#fff;border-radius:10px;padding:12px 18px;font-size:13px;box-shadow:var(--shadow);opacity:0;transition:.28s;pointer-events:none;z-index:40;display:flex;align-items:center;gap:10px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#toast .d{width:8px;height:8px;border-radius:50%;background:var(--brand)}@keyframes spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.ring.pulse{animation:none;opacity:.3}}@media(max-width:720px){.sidebar{display:none}.mobile-nav{display:block}.wrap{padding:18px 16px 60px}.grid{grid-template-columns:1fr}.topbar{padding:12px 16px}.who-meta{display:none}.imp-banner{padding:10px 16px}table:not(.act-table){display:block;overflow-x:auto;white-space:nowrap}}