/* ===== DCS Games — Creator Studio shared design system =====
   Tokens + components copied verbatim from the locked studio.html shell.
   Every CW2 page links this; nothing here is reinvented. */
:root{
  --bg:#060B1A;--surface:#0F172A;--card:#131C31;--card-2:#16213a;--border:#22304D;
  --ink:#EAF0FF;--muted:#9FB0D0;--dim:#5f6f92;
  --blue:#2563FF;--blue-2:#3B82F6;--blue-3:#60A5FA;--purple:#7C3AED;--purple-2:#8B5CF6;--purple-3:#A78BFA;
  --cyan:#22D3EE;--success:#10B981;--warn:#F59E0B;--danger:#EF4444;
  --horror:#EF4444;--survival:#F97316;--adventure:#22C55E;--scifi:#22D3EE;--fantasy:#A78BFA;
  --font-h:'Space Grotesk',system-ui,sans-serif;--font:'Inter',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;height:100vh;overflow:hidden}
h1,h2,h3,.h{font-family:var(--font-h);letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
.studio{display:grid;grid-template-columns:228px 1fr 296px;grid-template-rows:58px 1fr;height:100vh}
.studio.no-ctx{grid-template-columns:228px 1fr}

/* top bar */
.topbar{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding:0 18px;border-bottom:1px solid var(--border);background:rgba(15,23,42,.7);backdrop-filter:blur(12px)}
.logo{font-family:var(--font-h);font-weight:700;font-size:17px;display:flex;align-items:center;gap:8px}
.logo .orb{width:22px;height:22px;border-radius:7px;background:radial-gradient(circle at 30% 30%,var(--purple-3),var(--blue) 70%);box-shadow:0 0 14px rgba(124,58,237,.6)}
.studio-tag{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--purple-3);border:1px solid var(--border);padding:4px 10px;border-radius:8px}
.worldsel{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:7px 13px;font-size:13.5px;font-weight:600;cursor:pointer}
.worldsel .v{color:var(--cyan);font-size:11px;display:inline-flex;align-items:center;gap:3px}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.btn{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13.5px;padding:9px 16px;border-radius:10px;cursor:pointer;border:1px solid transparent;font-family:var(--font);transition:.15s}
.btn-ghost{background:rgba(255,255,255,.05);border-color:var(--border);color:var(--ink)}.btn-ghost:hover{border-color:var(--blue-3)}
.btn-primary{background:linear-gradient(100deg,var(--blue),var(--blue-2));color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(37,99,255,.4)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ai{background:linear-gradient(100deg,var(--purple),var(--blue));color:#fff}.btn-ai:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(124,58,237,.45)}
.btn-ai:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--purple));display:grid;place-items:center;font-weight:700;font-size:12px}

/* left rail */
.rail{border-right:1px solid var(--border);background:var(--surface);padding:14px 10px;overflow-y:auto}
.rail .grp{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:10px 12px 6px}
.rail a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;font-size:14px;color:var(--muted);font-weight:500;margin-bottom:2px;transition:.12s;cursor:pointer}
.rail a:hover{background:rgba(255,255,255,.04);color:var(--ink)}
.rail a.on{background:linear-gradient(100deg,rgba(37,99,255,.18),rgba(124,58,237,.14));color:var(--ink);border:1px solid var(--border)}
.rail a .ic{font-size:16px;width:20px;text-align:center}
.rail a .lk{margin-left:auto;font-size:9px;font-weight:700;color:var(--cyan);border:1px solid var(--border);padding:1px 6px;border-radius:99px}
.rail a .soon{margin-left:auto;font-size:8.5px;font-weight:700;color:var(--dim);border:1px solid var(--border);padding:1px 6px;border-radius:99px;letter-spacing:.06em}

/* main canvas */
.main{overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:16px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.page-head h1{font-size:22px;font-weight:700}
.page-head .sub{color:var(--muted);font-size:13.5px;margin-top:3px}
.sec-label{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:8px}
.sec-label::after{content:"";flex:1;height:1px;background:var(--border)}

/* metrics / KPI */
.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.metrics.m5{grid-template-columns:repeat(5,1fr)}.metrics.m4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1200px){.metrics,.metrics.m5,.metrics.m4{grid-template-columns:repeat(3,1fr)}}
.metric{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:13px 14px}
.metric .k{font-size:11px;color:var(--dim);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.metric .v{font-family:var(--font-h);font-weight:700;font-size:22px;margin-top:5px}
.metric .dlt{font-size:11.5px;font-weight:600;margin-top:2px}.up{color:var(--success)}.down{color:var(--danger)}

/* tabs */
.stabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.stab{font-size:13px;font-weight:600;padding:8px 14px;border-radius:10px;white-space:nowrap;color:var(--muted);cursor:pointer;border:1px solid transparent;transition:.12s}
.stab:hover{color:var(--ink)}
.stab.on{background:var(--card);border-color:var(--border);color:var(--ink)}
.stab.on .d{color:var(--purple-3)}

/* prompt + canvas (AI builders) */
.prompt{background:linear-gradient(120deg,rgba(124,58,237,.16),rgba(37,99,255,.08));border:1px solid var(--border);border-radius:16px;padding:16px}
.prompt .lbl{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.prompt .pb{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:7px 7px 7px 16px;margin-top:10px}
.prompt input{flex:1;background:none;border:none;outline:none;color:var(--ink);font-size:14.5px;font-family:var(--font)}
.prompt input::placeholder{color:var(--dim)}
.canvas{flex:1;min-height:300px;border:1px solid var(--border);border-radius:16px;background:radial-gradient(circle at 50% 40%,rgba(124,58,237,.22),rgba(37,99,255,.08) 45%,var(--card) 80%);position:relative;display:grid;place-items:center;overflow:hidden}
.canvas .scan{position:absolute;inset:0;background:linear-gradient(transparent,rgba(34,211,238,.07),transparent);height:40%;animation:scan 3s ease-in-out infinite;opacity:0;transition:opacity .3s}
.canvas.generating .scan{opacity:1}
@keyframes scan{0%,100%{transform:translateY(-120%)}50%{transform:translateY(220%)}}
.canvas .ph{text-align:center;z-index:2;padding:20px}
.canvas .ph .em{font-size:52px}
.canvas.generating .ph .em{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.08)}}
.canvas .ph .t{font-family:var(--font-h);font-weight:700;font-size:20px;margin-top:8px}
.canvas .ph .s{color:var(--muted);font-size:13px;margin-top:4px}
.canvas .gen{position:absolute;bottom:14px;left:14px;right:14px;background:rgba(6,11,26,.82);border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:12px;color:var(--cyan);font-family:ui-monospace,monospace;min-height:38px;display:flex;align-items:center;gap:8px}
.canvas .gen .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.3}}
.steps{position:absolute;top:14px;left:14px;display:flex;flex-direction:column;gap:6px;z-index:3}
.step{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--dim);font-family:ui-monospace,monospace;opacity:.45;transition:.3s}
.step.active{color:var(--cyan);opacity:1}.step.done{color:var(--success);opacity:1}
.step .box{width:15px;height:15px;border-radius:4px;border:1.5px solid currentColor;display:grid;place-items:center;font-size:9px}
.verified-badge{display:none;position:absolute;top:14px;right:14px;z-index:3;align-items:center;gap:6px;background:rgba(34,211,238,.12);border:1px solid var(--cyan);color:var(--cyan);font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:99px}
.verified-badge.show{display:flex}

/* context sidebar */
.ctx{border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;padding:16px 14px}
.ctx .ch{font-family:var(--font-h);font-weight:700;font-size:13px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.panel{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;overflow:hidden}
.panel .ph2{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;font-size:13.5px;font-weight:600;cursor:pointer;background:var(--card)}
.panel .ph2 .ic{font-size:15px;margin-right:8px}
.panel .pc{padding:11px 13px;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:9px}
.ctrl{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ctrl label{font-size:12.5px;color:var(--muted)}
.ctrl input[type=range]{accent-color:var(--blue)}
.chip{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--border);color:var(--muted)}
.ai-sug{background:linear-gradient(120deg,rgba(124,58,237,.16),rgba(37,99,255,.08));border:1px solid var(--border);border-radius:12px;padding:13px;font-size:13px}
.ai-sug .t{font-weight:700;color:var(--purple-3);display:flex;gap:6px;align-items:center;margin-bottom:6px}
.ai-sug .act{margin-top:9px;display:flex;gap:6px}
.ai-sug .mini{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.05);cursor:pointer}
.ai-sug .mini:hover{border-color:var(--blue-3)}

/* management grids (Worlds/Assets/NPCs/etc) */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gcard{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:.15s;cursor:pointer}
.gcard:hover{transform:translateY(-3px);border-color:var(--blue-3);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.gcard .thumb{height:120px;background:linear-gradient(135deg,rgba(124,58,237,.3),rgba(37,99,255,.15));display:grid;place-items:center;font-size:40px;position:relative}
.gcard .vbadge{position:absolute;top:8px;right:8px;font-size:10px;font-weight:700;color:var(--cyan);background:rgba(6,11,26,.7);border:1px solid var(--cyan);padding:2px 7px;border-radius:99px}
.gcard .body{padding:12px 13px}
.gcard .body .nm{font-weight:700;font-size:14px}
.gcard .body .mt{font-size:11.5px;color:var(--muted);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap}
.gcard .body .mt b{color:var(--ink);font-weight:600}

/* data table */
.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--dim);font-weight:700;padding:11px 14px;border-bottom:1px solid var(--border)}
.tbl td{padding:11px 14px;font-size:13.5px;border-bottom:1px solid var(--border)}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:rgba(255,255,255,.02)}

/* charts (CSS-only bar/line/pie placeholders with real-looking data) */
.chart{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}
.chart h3{font-size:14px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}
.bars{display:flex;align-items:flex-end;gap:8px;height:160px}
.bars .bar{flex:1;background:linear-gradient(180deg,var(--blue-3),var(--blue));border-radius:6px 6px 0 0;position:relative;min-height:4px;transition:height .8s cubic-bezier(.2,.8,.2,1)}
.bars .bar span{position:absolute;top:-18px;left:0;right:0;text-align:center;font-size:10.5px;color:var(--muted)}
.bars .lbl{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-size:10px;color:var(--dim)}
.line-wrap{position:relative;height:160px}
.donut{width:150px;height:150px;border-radius:50%;margin:0 auto}
.legend{display:flex;flex-direction:column;gap:7px;margin-top:12px;font-size:12.5px}
.legend .li{display:flex;align-items:center;gap:8px;color:var(--muted)}
.legend .sw{width:11px;height:11px;border-radius:3px}

.soon-block{border:1px dashed var(--border);border-radius:14px;padding:40px;text-align:center;color:var(--dim);background:rgba(255,255,255,.015)}
.soon-block .em{font-size:32px;opacity:.5}
.soon-block .t{font-family:var(--font-h);font-weight:700;font-size:15px;color:var(--muted);margin-top:8px}
.tag{font-size:9px;font-weight:700;color:var(--dim);border:1px solid var(--border);padding:2px 7px;border-radius:99px;letter-spacing:.06em;text-transform:uppercase}

@media(max-width:1080px){.studio,.studio.no-ctx{grid-template-columns:64px 1fr}.ctx{display:none}.rail a .label,.rail .grp{display:none}.rail a{justify-content:center}.rail a .lk,.rail a .soon{display:none}}
