:root{--bg0: #0b1220;--bg1: #121c2f;--bg2: #1a2740;--line: rgba(212, 196, 160, .18);--gold: #d4c4a0;--gold-strong: #e8d9b5;--text: #f3efe6;--muted: #a9b0c0;--accent: #6ea8ff;--ok: #6bcf8e;--warn: #e0b35a;--bad: #e07a7a;--card: rgba(18, 28, 47, .88);--shadow: 0 18px 50px rgba(0, 0, 0, .35);--radius: 16px;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,rgba(110,168,255,.18),transparent 60%),radial-gradient(900px 500px at 90% 0%,rgba(212,196,160,.12),transparent 55%),linear-gradient(180deg,var(--bg0),#070b14 70%)}a{color:var(--gold-strong);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{padding:1.5rem 1rem;border-right:1px solid var(--line);background:#070b14b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{font-family:var(--font-display);font-size:1.55rem;line-height:1.1;margin:0 0 .25rem;color:var(--gold-strong)}.brand-sub{color:var(--muted);font-size:.8rem;margin-bottom:1.5rem}.nav a{display:block;padding:.55rem .75rem;border-radius:10px;color:var(--muted);margin-bottom:.25rem}.nav a.active,.nav a:hover{background:#d4c4a01a;color:var(--text)}.main{padding:1.5rem 1.75rem 3rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0 0 .5rem}h1{font-size:2rem}.muted{color:var(--muted)}.grid{display:grid;gap:1rem}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow)}.stat{font-size:1.7rem;font-family:var(--font-display);color:var(--gold-strong)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.55rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;border:1px solid var(--line);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.badge.scale,.badge.published,.badge.ready,.badge.ok{color:var(--ok);border-color:#6bcf8e59}.badge.hold,.badge.scheduled,.badge.warn{color:var(--warn);border-color:#e0b35a59}.badge.stop,.badge.failed,.badge.bad{color:var(--bad);border-color:#e07a7a59}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#d4c4a014;color:var(--text);border-radius:999px;padding:.45rem .95rem;cursor:pointer}.btn:hover{background:#d4c4a029}.btn.primary{background:linear-gradient(135deg,#d4c4a059,#6ea8ff40);border-color:#d4c4a066}.btn.danger{color:var(--bad)}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.field label{font-size:.8rem;color:var(--muted)}.field input,.field select,.field textarea{background:#070b148c;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:.55rem .7rem}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(420px,100%)}.error{color:var(--bad);margin:.5rem 0;font-size:.9rem}.phase-row{display:grid;grid-template-columns:56px 1fr auto;gap:.75rem;align-items:start;padding:.75rem 0;border-bottom:1px solid var(--line)}.phase-num{font-family:var(--font-display);font-size:1.4rem;color:var(--gold)}.copy-box{white-space:pre-wrap;background:#070b148c;border:1px solid var(--line);border-radius:12px;padding:.85rem;font-size:.92rem}.row-actions{display:flex;flex-wrap:wrap;gap:.4rem}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}
