:root{--bg:#0b0f17;--panel:#121826;--line:#243047;--text:#e6e9ef;--muted:#8a94a8;--gold:#c9a227;--gold2:#e3c45a;--ok:#22c55e;--err:#ef4444;--warn:#f59e0b;--info:#3b82f6}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
a{color:var(--gold2);text-decoration:none}
.top{display:flex;align-items:center;gap:24px;padding:12px 24px;background:#0f1522;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;color:var(--text)}
.brand .mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--gold),#8a6d12);color:#111;font-weight:800}
.brand.big{font-size:18px;margin-bottom:18px}.brand.big .mark{width:44px;height:44px}
.top nav{display:flex;gap:16px;align-items:center;flex:1}
.top nav a{color:var(--text)}.top nav a:hover{color:var(--gold2)}
.who{display:flex;gap:10px;align-items:center;color:var(--muted);margin:0}
.wrap{max-width:1280px;margin:0 auto;padding:24px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:24px}
.page-head{margin-bottom:18px}.page-head h1{margin:0 0 4px;font-size:24px}
.page-head.with-logo{display:flex;gap:16px;align-items:center}
.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:Consolas,monospace;font-size:12px}
.btn{display:inline-block;border:1px solid var(--line);background:#1a2233;color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600}
.btn:hover{border-color:var(--gold)}
.btn-gold{background:linear-gradient(135deg,var(--gold),#a5841a);color:#111;border-color:transparent}
.btn-danger{background:#3a1416;border-color:#7f1d1d;color:#fecaca}
.btn.wide,.wide{width:100%}
button.link{background:none;border:0;color:var(--gold2);cursor:pointer;padding:0}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:16px;border:1px solid}
.flash-ok{background:#0f2a1a;border-color:#166534;color:#bbf7d0}.flash-err{background:#2a1012;border-color:#7f1d1d;color:#fecaca}
.empty{padding:40px;text-align:center;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--text);transition:border-color .15s}
.card:hover{border-color:var(--gold)}
.card-head{display:flex;gap:12px;align-items:center}.card-head h2{margin:0;font-size:17px}.card-head .dot{margin-left:auto}
.logo{width:44px;height:44px;object-fit:contain;border-radius:8px;background:#0b0f17;border:1px solid var(--line)}
.logo.lg{width:64px;height:64px}
.swatches{display:flex;gap:6px;align-items:center;margin:12px 0}
.swatches span[data-color],.swatch{display:inline-block;width:22px;height:22px;border-radius:6px;border:1px solid var(--line);vertical-align:middle}
.swatches .pill{margin-left:auto}
.kv{display:grid;grid-template-columns:120px 1fr;gap:6px 10px;margin:0}
.kv.wide{grid-template-columns:200px 1fr}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.card-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--warn);font-size:12px}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#1f2937;color:var(--muted)}
.pill-ok{background:#0f2a1a;color:#86efac}.pill-err{background:#2a1012;color:#fca5a5}.pill-warn{background:#2a1f08;color:#fcd34d}.pill-info{background:#0f1d36;color:#93c5fd}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--muted)}
.dot-online{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot-offline{background:var(--err)}.dot-suspended{background:var(--warn)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px}
.panel h3{margin:0 0 14px;color:var(--gold2)}.panel h4{margin:16px 0 8px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}
label{display:block;margin-bottom:12px;color:var(--muted);font-size:13px}
input,select{display:block;width:100%;margin-top:5px;padding:9px 10px;border-radius:8px;border:1px solid var(--line);background:#0b0f17;color:var(--text);font:inherit}
input[type=color]{height:40px;padding:3px}
input:focus,select:focus{outline:none;border-color:var(--gold)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field-err{color:#fca5a5;font-size:12px;margin:-8px 0 10px}
.note{background:#0f1d36;border:1px solid #1e3a6b;color:#bfdbfe;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:13px}
.tabs{display:flex;gap:6px;margin:0 0 16px}.tabs a{padding:8px 14px;border:1px solid var(--line);border-radius:8px;color:var(--text)}.tabs a:hover{border-color:var(--gold)}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.admin-grid>div{background:#0f1522;border:1px solid var(--line);border-radius:10px;padding:12px}
.admin-grid h4{margin:0 0 10px}
.op-form{display:flex;gap:8px;align-items:center;margin:0 0 8px}.op-form input{margin:0}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}
.steps{list-style:none;padding:0;margin:0}.step{padding:8px 0;border-bottom:1px solid var(--line)}
.step-running strong{color:var(--gold2)}.step-failed strong{color:#fca5a5}
.log{background:#05080e;border:1px solid var(--line);border-radius:8px;padding:12px;max-height:360px;overflow:auto;font-size:12px;white-space:pre-wrap;margin:0}
.login-body{display:grid;place-items:center;min-height:100vh}
.login-card{width:360px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}
@media (max-width:700px){.top{flex-wrap:wrap}.kv.wide{grid-template-columns:1fr}.row2{grid-template-columns:1fr}}
