@font-face{font-family:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c5f10e9e72d35c52-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:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/3dc379dc9b5dec12-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:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c5f10e9e72d35c52-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:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/3dc379dc9b5dec12-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:Sora Fallback;src:local("Arial");ascent-override:85.29%;descent-override:25.50%;line-gap-override:0.00%;size-adjust:113.73%}.__className_30779f{font-family:Sora,Sora Fallback;font-style:normal}.__variable_30779f{--font-display:"Sora","Sora Fallback"}@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.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-20c0,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.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-20c0,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.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-20c0,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 Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_37ef13{font-family:Inter,Inter Fallback;font-style:normal}.__variable_37ef13{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-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:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-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:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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/ac0e76ddaeeb7981-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/64d784ea54a4acde-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/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg-void:#0A0E14;--bg-iron:#11161F;--bg-steel:#1A2230;--surface-alt:#151B26;--bg:#0A0E14;--bg-subtle:#1A2230;--surface:#11161F;--surface-hover:#1A2230;--surface-secondary:#0A0E14;--surface-muted:rgba(21,27,38,0.6);--border:#232C3D;--border-hover:#2E3A4F;--border-strong:#2E3A4F;--text:#E5EAF2;--text-secondary:#94A3B8;--text-muted:#94A3B8;--text-dim:#7E899A;--muted:#7E899A;--text-mono:#CBD5E1;--primary:#22D3EE;--primary-hover:#67E8F9;--primary-contrast:#06121A;--primary-muted:rgba(34,211,238,0.12);--primary-glow:rgba(34,211,238,0.2);--accent:#FBBF24;--accent-contrast:#1A1206;--success:#34D399;--success-bg:rgba(52,211,153,0.12);--success-muted:rgba(52,211,153,0.12);--warning:#FBBF24;--warning-bg:rgba(251,191,36,0.12);--warning-fg:#FCD34D;--warning-muted:rgba(251,191,36,0.12);--danger:#F87171;--danger-bg:rgba(248,113,113,0.12);--danger-muted:rgba(248,113,113,0.12);--danger-hover:rgba(248,113,113,0.22);--info:#38BDF8;--info-muted:rgba(56,189,248,0.12);--neutral-muted:rgba(100,116,139,0.12);--neutral-muted-weak:rgba(100,116,139,0.08);--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius:10px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow:0 2px 8px rgba(0,0,0,0.3),0 1px 2px rgba(0,0,0,0.2);--shadow-lg:0 8px 24px rgba(0,0,0,0.4),0 2px 8px rgba(0,0,0,0.2);--shadow-modal:0 16px 48px rgba(0,0,0,0.55);--shadow-glow:0 0 20px var(--primary-glow);--glow-primary:0 0 0 1px rgba(34,211,238,0.45),0 0 18px rgba(34,211,238,0.14);--transition-fast:100ms ease;--transition:140ms ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-void);color:var(--text);font-family:var(--font-sans),system-ui,sans-serif;font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-family:var(--font-display),system-ui,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}::selection{background:rgba(34,211,238,.2);color:var(--primary-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-void)}::-webkit-scrollbar-thumb{background:var(--bg-steel);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-layout{display:flex;min-height:100vh}.app-content{flex:1 1;min-width:0;margin-left:220px}.page-shell{max-width:1400px;margin:0 auto;padding:var(--space-6) var(--space-8)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.page-title{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;color:var(--text)}.page-subtitle{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-1)}.card{background:var(--bg-iron);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition)}.card:hover{border-color:var(--border-hover)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-strong)}.input{background:var(--bg-steel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);padding:.5rem .75rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.input:focus{border-color:var(--primary);box-shadow:var(--glow-primary)}.input::placeholder{color:var(--text-dim)}.input-native{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--text-sm);padding:.25rem .5rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.input-native:focus{border-color:var(--primary);box-shadow:var(--glow-primary)}.input-native::placeholder{color:var(--text-dim)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem 1rem;font-size:var(--text-sm);font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-steel);color:var(--text-secondary);cursor:pointer;transition:color var(--transition),background-color var(--transition),border-color var(--transition);white-space:nowrap}.btn:hover{border-color:var(--border-hover);color:var(--text)}.btn:focus-visible{outline:none;box-shadow:var(--glow-primary)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);font-weight:600}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--primary-contrast)}.btn-secondary{background:var(--bg-steel);border-color:var(--border);color:var(--text-secondary)}.btn-secondary:hover{border-color:var(--border-hover);color:var(--text)}.btn-danger{background:var(--danger-bg)}.btn-danger,.btn-danger:hover{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-steel);border-color:transparent;color:var(--text)}.btn-sm{padding:.3rem .625rem;border-radius:var(--radius-sm)}.badge,.btn-sm{font-size:var(--text-xs)}.badge{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .625rem;font-weight:600;border-radius:var(--radius-pill);letter-spacing:.02em;text-transform:capitalize}.badge-success{background:var(--success-muted);color:var(--success)}.badge-danger{background:var(--danger-muted);color:var(--danger)}.badge-warning{background:var(--warning-muted);color:var(--warning-fg)}.badge-info{background:var(--info-muted);color:var(--info)}.badge-neutral{background:var(--neutral-muted);color:var(--text-secondary)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot-healthy,.status-dot-online,.status-dot-success{background:var(--success);box-shadow:0 0 6px var(--success-muted)}.status-dot-failed,.status-dot-offline,.status-dot-unhealthy{background:var(--danger);box-shadow:0 0 6px var(--danger-muted)}.status-dot-deploying,.status-dot-running{background:var(--info);box-shadow:0 0 6px var(--info-muted);animation:pulse 2s ease-in-out infinite}.status-dot-no-relay,.status-dot-rolled_back{background:var(--warning)}.status-dot-pending,.status-dot-unknown{background:var(--muted)}.tag{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:var(--text-xs);font-weight:500;border-radius:100px;letter-spacing:.01em}.tag-production{background:var(--primary-muted);color:var(--primary)}.tag-development{background:var(--neutral-muted);color:var(--text-secondary)}.tag-ignored{background:var(--neutral-muted-weak);color:var(--text-dim)}.table{width:100%;border-collapse:separate;border-spacing:0}.table th{font-size:var(--text-xs);font-weight:600;color:var(--text-dim);text-align:left;text-transform:uppercase;letter-spacing:.05em}.table td,.table th{padding:var(--space-3);border-bottom:1px solid var(--border)}.table td{font-size:var(--text-sm)}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:nth-child(2n){background:var(--surface-alt)}.table tbody tr:hover{background:var(--bg-steel)}.table tbody tr.row-expanded,.table tbody tr.row-expanded:hover{background:var(--primary-muted)}.table tbody tr:last-child td{border-bottom:none}.log-panel{margin-top:var(--space-3);padding:var(--space-4);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono,monospace);font-size:var(--text-xs);line-height:1.7;overflow:auto;max-height:360px;white-space:pre-wrap;color:var(--text-mono)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-4);text-align:center;color:var(--text-dim)}.empty-state-icon{font-size:2.5rem;margin-bottom:var(--space-4);opacity:.3}.empty-state-title{font-size:var(--text-md);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--text-sm);color:var(--muted);max-width:320px}.stat-card{padding:var(--space-5)}.stat-value{font-family:var(--font-display),system-ui,sans-serif;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:var(--space-1)}.stat-label{font-size:var(--text-sm);color:var(--muted);font-weight:500}.stat-sub{font-size:var(--text-xs);margin-top:var(--space-1)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:200;overflow-y:auto}.sidebar-top{flex:1 1;padding:var(--space-4) var(--space-3)}.sidebar-bottom{padding:var(--space-3);border-top:1px solid var(--border)}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-5);text-decoration:none}.sidebar-brand,.sidebar-brand:hover{color:var(--text)}.sidebar-logo{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border-radius:var(--radius);flex-shrink:0}.sidebar-brand-text{font-weight:700;font-size:var(--text-md);letter-spacing:-.02em}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:inherit;font-weight:500;color:var(--muted);text-decoration:none;border-radius:var(--radius);border:none;background:none;cursor:pointer;transition:color var(--transition),background-color var(--transition),box-shadow var(--transition);width:100%;text-align:left}.sidebar-link:hover{color:var(--text);background:var(--bg-subtle)}.sidebar-link-active{color:var(--primary);background:var(--primary-muted)}.sidebar-link-active:hover{color:var(--primary-hover);background:var(--primary-muted)}.sidebar-logout{color:var(--muted);font-size:var(--text-xs)}.sidebar-logout:hover{color:var(--danger);background:var(--danger-muted)}.sidebar-brand-row{display:flex;align-items:center;justify-content:space-between}.mobile-close-btn{display:none;background:none;border:none;color:var(--muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm)}.mobile-close-btn:hover{color:var(--text)}.mobile-bar{display:none}.mobile-menu-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:var(--space-2);border-radius:var(--radius)}.mobile-menu-btn:hover{background:var(--surface)}.mobile-bar-title{font-weight:700;font-size:var(--text-md)}.sidebar-overlay{display:none}.login-bg{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:var(--space-4);background:radial-gradient(ellipse 80% 60% at 50% -20%,var(--primary-muted),transparent),var(--bg)}.login-card{width:100%;max-width:400px;padding:var(--space-10)}.login-logo{margin-bottom:var(--space-6)}.login-logo,.login-logo-mark{display:flex;justify-content:center}.login-logo-mark{width:72px;height:72px;align-items:center;background:var(--primary);color:#fff;border-radius:var(--radius-xl)}.login-title{font-size:var(--text-xl);font-weight:700;text-align:center;margin-bottom:var(--space-1);letter-spacing:-.02em}.login-subtitle{font-size:var(--text-sm);color:var(--muted);text-align:center;margin-bottom:var(--space-6)}.form-error{padding:var(--space-3);background:var(--danger-muted);color:var(--danger);font-size:var(--text-sm);border-radius:var(--radius);border:1px solid rgba(239,68,68,.2)}.deploy-step{gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--text-sm)}.deploy-step,.deploy-step-icon{display:flex;align-items:center}.deploy-step-icon{width:18px;height:18px;justify-content:center;font-size:var(--text-xs);border-radius:50%;flex-shrink:0}.deploy-step-success .deploy-step-icon{background:var(--success-muted);color:var(--success)}.deploy-step-failed .deploy-step-icon{background:var(--danger-muted);color:var(--danger)}.deploy-step-skipped .deploy-step-icon{background:rgba(100,116,139,.12);color:var(--muted)}.deploy-step-duration{color:var(--muted);font-size:var(--text-xs);margin-left:auto}.action-group-secondary{display:flex;align-items:center;gap:var(--space-1);padding-left:var(--space-2);border-left:1px solid var(--border);margin-left:var(--space-1)}.select-native{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-subtle) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' fill='none' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right .5rem center;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:var(--text-xs);padding:.3rem 1.5rem .3rem .5rem;cursor:pointer;outline:none;transition:border-color var(--transition)}.select-native:hover{border-color:var(--border-hover)}.select-native:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.skeleton{background:linear-gradient(90deg,var(--bg-steel) 25%,var(--surface-alt) 50%,var(--bg-steel) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--bg-steel)}}.modal-backdrop{position:fixed;inset:0;background:rgba(10,14,20,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:999}.dialog-panel{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-modal)}.alert,.dialog-panel{background:var(--bg-iron)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:var(--text-sm);line-height:1.6;border-style:solid;border-width:1px 1px 1px 3px;border-color:var(--border)}.alert-warning{background:var(--warning-bg);color:var(--warning-fg);border-color:var(--warning)}.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.alert-info{background:var(--info-muted);color:var(--info);border-color:var(--info)}.alert-success{background:var(--success-bg);color:var(--success);border-color:var(--success)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in .2s ease-out}.animate-slide-up{animation:slide-up .3s ease-out}.grid-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-3);gap:var(--space-3)}.grid-two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-6);gap:var(--space-6)}.grid-form{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3)}.filter-group{display:flex;gap:var(--space-1);flex-wrap:wrap}@media (max-width:768px){.sidebar{transform:translateX(-100%);transition:transform var(--transition);box-shadow:none}.sidebar-open{transform:translateX(0);box-shadow:var(--shadow-lg)}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199}.mobile-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0;z-index:100}.mobile-bar,.mobile-close-btn{display:flex}.app-content{margin-left:0;padding-top:52px}.page-shell{padding:var(--space-4) var(--space-3)}.page-title{font-size:var(--text-lg)}.stat-value{font-size:var(--text-xl)}.grid-form,.grid-stats,.grid-two-col{grid-template-columns:1fr}.table td:nth-child(4),.table td:nth-child(5),.table th:nth-child(4),.table th:nth-child(5){display:none}.action-group-secondary{border-left:none;padding-left:0;margin-left:0}.page-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}}