:root{--ocean-1:#08243d;--ocean-2:#0d3a55;--ocean-3:#12586e;--teal:#26b3c9;--teal-2:#1f95b6;--accent:#2aa8c4;--ink:#0f2a3a;--muted:#5f7482;--line:#e4ebf0;--panel:#fff;--ok:#1f9d57;--ok-bg:#e6f7ee;--danger:#d24747;--danger-bg:#fdecec;--warn:#c98a1a;--warn-bg:#fbf1dc;--sky:#dfeef4;--sky-muted:#9db9c6}*{box-sizing:border-box}body,html{margin:0;min-height:100vh}body{color:var(--ink);font:14px/1.55 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:radial-gradient(1100px 520px at 82% -8%,rgba(38,179,201,.28),transparent 60%),radial-gradient(900px 500px at 8% 4%,rgba(31,149,182,.22),transparent 55%),linear-gradient(165deg,var(--ocean-1) 0,var(--ocean-2) 48%,var(--ocean-3) 100%);background-attachment:fixed}body:after{content:"";position:fixed;left:0;right:0;bottom:0;height:180px;pointer-events:none;z-index:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1440' height='180' viewBox='0 0 1440 180'><path fill='%23ffffff' fill-opacity='0.05' d='M0 90 C 240 20 480 160 720 110 C 960 60 1200 150 1440 80 L1440 180 L0 180 Z'/><path fill='%23ffffff' fill-opacity='0.04' d='M0 130 C 260 70 520 180 760 140 C 1000 100 1220 170 1440 120 L1440 180 L0 180 Z'/></svg>") no-repeat bottom;background-size:cover}h1{font-size:20px;margin:0}code{font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px}.muted{color:var(--muted)}.error{color:var(--danger);font-size:13px;margin-top:4px}a{color:var(--teal-2);text-decoration:none}a:hover{text-decoration:underline}.brand{gap:12px}.brand,.logo{display:flex;align-items:center}.logo{width:40px;height:40px;border-radius:11px;justify-content:center;font-size:21px;background:linear-gradient(150deg,var(--teal),var(--teal-2));color:#04222e;box-shadow:0 6px 16px rgba(38,179,201,.35)}.brand-name{font-weight:700;font-size:17px;letter-spacing:.2px;line-height:1.1}.brand-sub{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-muted)}button{cursor:pointer;border:none;border-radius:9px;padding:9px 15px;font-size:13px;font-weight:600;background:linear-gradient(150deg,var(--teal),var(--teal-2));color:#042028;transition:transform .05s ease,box-shadow .15s ease,opacity .15s ease}button:hover{box-shadow:0 4px 14px rgba(38,179,201,.3)}button:active{transform:translateY(1px)}button.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}button.ghost:hover{border-color:#c7d4dc;box-shadow:0 2px 8px rgba(15,42,58,.06)}button.small{padding:6px 11px;font-size:12px}button.danger{background:#fff;color:var(--danger);border:1px solid #f0cccc;box-shadow:none}button.danger:hover{background:var(--danger-bg)}button:disabled{opacity:.5;cursor:default}.login-wrap{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--panel);border-radius:18px;padding:30px;width:340px;display:flex;flex-direction:column;gap:11px;box-shadow:0 24px 60px rgba(4,20,34,.45);border:1px solid hsla(0,0%,100%,.6)}.card .brand{margin-bottom:6px}.card .brand-sub{color:var(--muted)}.card input{padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px}.card input:focus{outline:none;border-color:var(--teal-2);box-shadow:0 0 0 3px rgba(38,179,201,.18)}.card button{margin-top:4px;padding:11px}.app{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:30px 22px 90px}header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.spacer{flex:1 1}header .brand-name,header h1{color:#fff}.statusbar{color:var(--sky);font-size:12.5px;margin:0 2px 12px;min-height:16px}.panel{background:var(--panel);border-radius:16px;overflow:hidden;box-shadow:0 20px 50px rgba(4,20,34,.35);border:1px solid hsla(0,0%,100%,.5)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);font-size:13px}th{background:#f4f8fa;color:#42606f;font-weight:600;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}tbody tr{transition:background .12s ease}tbody tr:hover{background:#f7fbfc}tr:last-child td{border-bottom:none}td.actions,th.actions{text-align:right;white-space:nowrap}td .a{margin-left:7px}.empty{padding:34px;text-align:center;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:20px;font-size:11px;font-weight:700;text-transform:capitalize}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.state-running{background:var(--ok-bg);color:var(--ok)}.state-stopped,.state-stopping{background:var(--danger-bg);color:var(--danger)}.state-pending{background:var(--warn-bg);color:var(--warn)}