@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&family=Syne:wght@700;800&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0b0f;--surface:#111318;--border:#1e2130;--border2:#252a3a;--text:#c9d1e0;--muted:#4a5168;--accent:#6366f1;--accent-h:#818cf8;--mono:"JetBrains Mono", monospace;--display:"Syne", sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--mono);min-height:100vh;padding:32px 20px 80px}.container{flex-direction:column;gap:18px;width:100%;max-width:1700px;margin:0 auto;display:flex}.header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.header-logo{align-items:center;gap:10px;display:flex}.logo-text{font-family:var(--display);letter-spacing:.12em;color:#fff;font-size:24px;font-weight:800}.header-sub{letter-spacing:.2em;color:var(--muted);text-transform:uppercase;font-size:11px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;padding:22px;display:flex}.field{flex-direction:column;gap:7px;display:flex}.field label{letter-spacing:.18em;color:var(--muted);text-transform:uppercase;font-size:10px}.field input{background:var(--bg);border:1px solid var(--border2);color:var(--text);font-family:var(--mono);border-radius:8px;outline:none;padding:12px 14px;font-size:13px;transition:all .2s}.field input:focus{border-color:var(--accent)}.field input:disabled{opacity:.45;cursor:not-allowed}.field input::placeholder{color:var(--muted)}.branch-badge{color:var(--muted);background:var(--bg);border:1px solid var(--border2);border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.branch-dot{background:#34d399;border-radius:50%;width:7px;height:7px}.branch-badge b{color:#34d399}.buttons{flex-wrap:wrap;gap:10px;display:flex}.btn{cursor:pointer;min-width:140px;height:42px;font-family:var(--mono);letter-spacing:.08em;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:12px;font-weight:700;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-h)}.btn-secondary{color:var(--text);border-color:var(--border2);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--accent)}.btn-ghost{color:var(--muted);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text)}.spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.deploy-meta{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 28px;padding:18px 22px;display:grid}.meta-row{justify-content:space-between;gap:15px;display:flex}.meta-label{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:10px}.meta-value{color:var(--text);font-size:12px}.meta-value.mono{color:#60a5fa}.status-pill{letter-spacing:.18em;border:1px solid;border-radius:999px;padding:4px 10px;font-size:10px;font-weight:700}.status-pill.pulse{animation:1.4s infinite pillPulse}@keyframes pillPulse{50%{opacity:.45}}.env-toggle{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.env-btn{color:#8b90a0;cursor:pointer;background:#1c2030;border:1px solid #ffffff14;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:12px;transition:all .2s;display:flex}.env-btn:hover:not(:disabled){color:#fff}.env-btn.active{color:#7c6fe0;border-color:#7c6fe0}.env-btn.stg-active{color:#38bdf8;border-color:#38bdf8}.env-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.env-region{opacity:.7;font-size:10px}.terminal-panel{border:1px solid var(--border);background:#0d0f14;border-radius:14px;flex-direction:column;width:100%;min-height:620px;display:flex;overflow:hidden}.terminal-header{border-bottom:1px solid var(--border);background:#13151d;align-items:center;gap:12px;padding:12px 16px;display:flex}.terminal-dots{gap:6px;display:flex}.tdot{border-radius:50%;width:11px;height:11px}.tdot-red{background:#ff5f57}.tdot-yellow{background:#febc2e}.tdot-green{background:#28c840}.terminal-title{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.terminal-right{align-items:center;gap:10px;display:flex}.term-live-badge{color:#f87171;font-size:10px;font-weight:700;animation:1.2s infinite livePulse}@keyframes livePulse{50%{opacity:.35}}.term-line-count{color:var(--muted);font-size:11px}.term-scroll-btn{color:var(--accent-h);cursor:pointer;background:#6366f11a;border:1px solid #6366f159;border-radius:5px;padding:4px 8px;font-size:10px}.term-scroll-btn:hover{background:#6366f133}.terminal-body{flex:1;height:75vh;min-height:500px;max-height:82vh;padding:18px 20px;font-size:12px;overflow-y:auto}.terminal-body::-webkit-scrollbar{width:8px}.terminal-body::-webkit-scrollbar-thumb{background:#232735;border-radius:10px}.term-line{color:#94a3b8;white-space:pre-wrap;word-break:break-word;margin-bottom:2px;font-size:12px;line-height:1.75}.term-line.term-ok{color:#34d399}.term-line.term-error{color:#f87171}.term-line.term-warn{color:#fbbf24}.term-line.term-step{color:#60a5fa;border-top:1px solid #1f2432;margin-top:8px;padding-top:8px;font-weight:700}.term-waiting{color:var(--muted);align-items:center;gap:10px;display:flex}.term-cursor{background:var(--muted);width:8px;height:14px;animation:1s infinite blink}@keyframes blink{50%{opacity:0}}@media (width<=1100px){.container{max-width:100%}.terminal-body{height:65vh}}@media (width<=768px){body{padding:18px 10px 60px}.deploy-meta{grid-template-columns:1fr}.buttons{flex-direction:column}.btn{width:100%}.terminal-header{flex-wrap:wrap;gap:8px}.terminal-right{justify-content:space-between;width:100%}.terminal-body{height:58vh;min-height:380px;padding:14px}.term-line{font-size:11px}}@media (width<=480px){.logo-text{font-size:20px}.env-toggle{grid-template-columns:1fr}.terminal-body{height:52vh}}.status-banner{border:1px solid;border-radius:8px;margin-bottom:10px;padding:12px;font-weight:700}.status-banner.running{color:#818cf8;border-color:#818cf8}.status-banner.success{color:#34d399;border-color:#34d399}.status-banner.failed{color:#f87171;border-color:#f87171}.status-badge{letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;margin-top:10px;padding:7px 12px;font-size:11px;font-weight:700;display:inline-flex}.status-deploying{color:var(--accent-h);background:#6366f11a;border-color:#6366f173;animation:1.4s ease-in-out infinite pulse-badge}.status-success{color:#34d399;background:#34d3991a;border-color:#34d39973}.status-failed{color:#f87171;background:#f871711a;border-color:#f8717173}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.5}}.already-deploying-banner{color:#fbbf24;letter-spacing:.04em;background:#fbbf2414;border:1px solid #fbbf2466;border-radius:8px;margin-top:10px;padding:10px 14px;font-size:11px;font-weight:600}.btn-ghost-alt{border:1px solid var(--border2);color:var(--muted);background:0 0}.btn-ghost-alt:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.stats-bar{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:4px;padding:18px 24px 0;display:flex}.stat-pill{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1.5px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:10px;min-width:180px;padding:12px 22px;transition:transform .15s,box-shadow .15s;display:flex}.stat-pill:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000002e}.stat-pill.stat-active{background:#fb923c1f;border-color:#fb923c73}.stat-pill.stat-success{background:#22c55e1a;border-color:#22c55e66}.stat-pill.stat-failed{background:#ef44441a;border-color:#ef444466}.stat-value{letter-spacing:-.5px;font-size:2rem;font-weight:800;line-height:1}.stat-active .stat-value{color:#fb923c}.stat-success .stat-value{color:#22c55e}.stat-failed .stat-value{color:#ef4444}.stat-label{text-transform:uppercase;letter-spacing:.08em;opacity:.7;max-width:64px;font-size:.7rem;font-weight:600;line-height:1.2}.stat-icon{font-size:1.1rem;font-weight:900}.stat-success .stat-icon{color:#22c55e}.stat-failed .stat-icon{color:#ef4444}.stat-pulse{background:#fb923c;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.6s ease-out infinite pulse-ring;display:inline-block;box-shadow:0 0 #fb923c99}@keyframes pulse-ring{0%{box-shadow:0 0 #fb923ca6}70%{box-shadow:0 0 0 10px #fb923c00}to{box-shadow:0 0 #fb923c00}}@media (width<=480px){.stats-bar{gap:8px;padding:14px 12px 0}.stat-pill{min-width:130px;padding:10px 14px}.stat-value{font-size:1.5rem}}.ecr-note-box{background:#6366f10d;border:1px solid #6366f140;border-radius:12px;flex-direction:column;gap:10px;padding:16px 20px;display:flex}.ecr-note-title{letter-spacing:.18em;text-transform:uppercase;color:var(--accent-h);align-items:center;gap:8px;font-size:10px;font-weight:700;display:flex}.ecr-note-dot{background:var(--accent-h);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.ecr-note-row{flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.ecr-note-label{color:var(--muted);flex-shrink:0}.ecr-note-value{font-size:12px;font-weight:700}.ecr-note-value.ecr-available{color:#34d399}.ecr-note-value.ecr-empty{color:var(--muted);font-style:italic;font-weight:400}.ecr-note-refresh{color:var(--muted);letter-spacing:.05em;margin-top:2px;font-size:10px}@media (width<=600px){.ecr-note-row{flex-direction:column;align-items:flex-start;gap:4px}}.ecr-note-row{border-top:1px solid #1f2a44;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.ecr-env{flex-direction:column;gap:4px;display:flex}.ecr-env-label{color:#cbd5e1;font-size:13px;font-weight:500}.ecr-status{border-radius:999px;width:fit-content;padding:3px 8px;font-size:11px}.ecr-status.live{color:#22c55e;background:#22c55e26;border:1px solid #22c55e}.ecr-status.empty{color:#ef4444;background:#ef44441f;border:1px solid #ef4444}.ecr-time{color:#94a3b8;text-align:right;font-size:12px}.btn-docker{color:#38bdf8;background:#38bdf81a;border:1px solid #38bdf873;margin-left:auto}.btn-docker:hover:not(:disabled){color:#fff;background:#38bdf833;border-color:#38bdf8}.btn-reboot{color:#fb923c;background:#fb923c1f;border:1px solid #fb923c80}.btn-reboot:hover:not(:disabled){color:#fff;background:#fb923c38;border-color:#fb923c}.reboot-banner{letter-spacing:.04em;border:1px solid;border-radius:8px;margin-top:10px;padding:10px 14px;font-size:11px;font-weight:600}.reboot-banner--healthy{color:#34d399;background:#34d39914;border-color:#34d39966}.reboot-banner--rebooting{color:#fb923c;background:#fb923c14;border-color:#fb923c66}.reboot-banner--error{color:#f87171;background:#f8717114;border-color:#f8717166}
