:root{color-scheme:dark;--bg:#0d1117;--bg-soft:#111820;--panel:#161b22;--panel-strong:#1f2630;--panel-hover:#202936;--text:#e6edf3;--muted:#8b949e;--soft:#c9d1d9;--border:#30363d;--border-strong:#3d444d;--accent:#3fb950;--accent-strong:#56d364;--blue:#58a6ff;--purple:#bc8cff;--orange:#f2cc60;--danger:#ff7b72;--shadow:0 18px 44px rgba(0,0,0,0.32)}*{box-sizing:border-box}body{background:radial-gradient(circle at 18% 0,rgba(88,166,255,.13),transparent 28rem),radial-gradient(circle at 82% 4%,rgba(63,185,80,.11),transparent 26rem),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:rgba(13,17,23,.86);border-bottom:1px solid var(--border);color:var(--text);gap:20px;justify-content:space-between;padding:14px clamp(18px,4vw,42px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand,.topbar{align-items:center;display:flex}.brand{gap:12px;font-weight:800}.brand-mark{background:linear-gradient(135deg,#238636,#58a6ff);border-radius:8px;color:#ffffff;display:inline-flex;height:34px;justify-content:center;width:34px}.brand-mark,.nav{align-items:center}.nav{display:flex;flex-wrap:wrap;gap:9px}.button,.nav a,.nav button{align-items:center;background:#238636;border:1px solid rgba(240,246,252,.1);border-radius:7px;color:#ffffff;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:38px;padding:8px 13px;transition:background .14s ease,border-color .14s ease,transform .14s ease}.button:hover,.nav a:hover,.nav button:hover{background:#2ea043;transform:translateY(-1px)}.button.secondary,.button.subtle,.nav a.secondary,.nav button.secondary{background:#21262d;border-color:var(--border-strong);color:var(--soft)}.button.secondary:hover,.button.subtle:hover,.nav a.secondary:hover,.nav button.secondary:hover{background:#30363d}.button.danger{background:rgba(248,81,73,.12);border-color:rgba(248,81,73,.42);color:var(--danger)}.button.danger:hover{background:rgba(248,81,73,.22);border-color:rgba(248,81,73,.66)}.main{margin:0 auto;max-width:1220px;padding:30px clamp(18px,4vw,42px) 64px}.page-title{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:22px}.eyebrow{color:var(--accent-strong);font-size:12px;font-weight:800;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}h1{font-size:clamp(30px,4vw,46px);letter-spacing:0;line-height:1.05;margin:0 0 8px}h2{font-size:18px;margin:0 0 14px}h3{font-size:16px}h3,p{margin:0}p{color:var(--muted);line-height:1.6}.grid{display:grid;grid-gap:16px;gap:16px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stat{background:linear-gradient(180deg,rgba(22,27,34,.95),rgba(17,24,32,.95));border:1px solid var(--border);border-radius:8px;padding:16px}.stat span{color:var(--muted);display:block;font-size:13px;margin-bottom:8px}.stat strong{color:var(--text);font-size:26px}.deployments{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card,.form-panel,.login-panel,.operation-panel,.worker-panel{background:rgba(22,27,34,.94);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.card{display:grid;grid-gap:16px;gap:16px;padding:18px;transition:background .14s ease,border-color .14s ease,transform .14s ease}.card:hover{background:var(--panel-hover);border-color:#4d5662;transform:translateY(-2px)}.card header,.panel-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.target{color:var(--blue);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px}.badge-row{display:flex;flex-wrap:wrap;gap:8px}.badge{align-items:center;background:#21262d;border:1px solid var(--border-strong);border-radius:999px;color:var(--soft);display:inline-flex;font-size:12px;font-weight:800;gap:6px;padding:5px 9px;text-transform:uppercase}.badge.green{background:rgba(46,160,67,.16);border-color:rgba(63,185,80,.38);color:var(--accent-strong)}.badge.blue{background:rgba(88,166,255,.14);border-color:rgba(88,166,255,.34);color:var(--blue)}.badge.orange{background:rgba(242,204,96,.14);border-color:rgba(242,204,96,.34);color:var(--orange)}.meta{color:var(--muted);display:grid;font-size:14px;grid-gap:7px;gap:7px}.kv-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.kv{background:#0d1117;border:1px solid var(--border);border-radius:7px;padding:12px}.kv span{color:var(--muted);display:block;font-size:12px;margin-bottom:5px}.kv strong{color:var(--text);font-size:14px;overflow-wrap:anywhere}.form-panel,.operation-panel,.worker-panel{display:grid;grid-gap:22px;gap:22px;padding:22px}.operation-panel{margin-bottom:18px}.detail-grid{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr)}.worker-list{display:grid;grid-gap:10px;gap:10px}.worker-row{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:0}.worker-row summary{align-items:center;cursor:pointer;display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr auto;list-style:none;padding:13px}.worker-row summary::-webkit-details-marker{display:none}.worker-details{border-top:1px solid var(--border);display:grid;grid-gap:12px;gap:12px;padding:13px}.worker-name{color:var(--text);font-weight:800}.worker-sub{color:var(--muted);font-size:13px;margin-top:3px}.status-dot{background:var(--accent);border-radius:999px;box-shadow:0 0 0 4px rgba(63,185,80,.13);display:inline-flex;height:9px;width:9px}.log-summary{background:#0d1117;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;overflow:hidden;padding:10px;text-overflow:ellipsis;white-space:nowrap}.empty-state{background:#0d1117;border:1px dashed var(--border-strong);border-radius:8px;padding:18px}.form-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;grid-gap:7px;gap:7px}.field.full{grid-column:1/-1}label{color:var(--soft);font-size:13px;font-weight:800}input,select,textarea{background:#0d1117;border:1px solid var(--border);border-radius:7px;color:var(--text);min-height:42px;padding:10px 12px;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(88,166,255,.14);outline:none}input::placeholder,textarea::placeholder{color:#6e7681}textarea{min-height:86px;resize:vertical}.checkbox{align-items:center;background:#0d1117;border:1px solid var(--border);border-radius:7px;display:flex;gap:10px;padding:12px}.checkbox input{accent-color:var(--accent);min-height:auto;width:auto}.readonly-field{background:#0d1117;border:1px solid var(--border);border-radius:7px;color:var(--muted);min-height:42px;padding:11px 12px}.advanced-panel{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:0}.advanced-panel>summary{color:var(--soft);cursor:pointer;font-weight:800;list-style:none;padding:15px 16px}.advanced-panel>summary::-webkit-details-marker{display:none}.advanced-panel>summary:after{color:var(--muted);content:"+";float:right}.advanced-panel[open]>summary{border-bottom:1px solid var(--border)}.advanced-panel[open]>summary:after{content:"-"}.advanced-panel>.form-grid{padding:16px}.actions{display:flex;flex-wrap:wrap;gap:10px}.message{border-radius:7px;margin-bottom:16px;padding:12px 14px}.message.error{background:rgba(248,81,73,.12);border:1px solid rgba(248,81,73,.38);color:var(--danger)}.message.ok{background:rgba(46,160,67,.13);border:1px solid rgba(63,185,80,.36);color:var(--accent-strong)}.login-wrap{align-items:center;display:grid;min-height:100vh;padding:22px}.login-panel{margin:auto;max-width:440px;padding:26px;width:100%}pre{background:#06090f;border:1px solid var(--border);border-radius:8px;color:#d1d7e0;font-size:13px;line-height:1.55;max-height:520px;overflow:auto;padding:16px}.compact-log{max-height:220px;white-space:pre-wrap}@media (max-width:880px){.detail-grid,.stats-grid{grid-template-columns:1fr}}@media (max-width:720px){.form-grid,.page-title{display:grid}.form-grid,.kv-grid,.page-title{grid-template-columns:1fr}}