/* NEUROSCAPE v1 — 캡쳐 인터페이스 기반 다크 네온 UI */
:root{
  --bg:#04111c; --bg2:#071a2b; --cyan:#28e0e8; --cyan-dim:#1b7f8a;
  --ink:#bfe9ee; --line:rgba(40,224,232,.25); --glow:0 0 12px rgba(40,224,232,.45);
  --mag:#e056b0;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:radial-gradient(ellipse at 50% 0%, #07223a 0%, var(--bg) 60%, #020a12 100%);
  color:var(--ink); font:14px/1.5 "Segoe UI",-apple-system,system-ui,sans-serif;
  min-height:100%; overflow-x:hidden;
}
.bg-net{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 18% 30%, rgba(40,224,232,.10), transparent 40%),
    radial-gradient(circle at 82% 60%, rgba(224,86,176,.08), transparent 45%);}
header,main,section,aside,details{position:relative;z-index:1}

/* ── 상단바 + 검색 ── */
.topbar{display:flex;align-items:center;gap:24px;padding:18px 28px}
.brand{font-weight:800;letter-spacing:.35em;color:var(--cyan);text-shadow:var(--glow);font-size:20px;text-decoration:none;cursor:pointer}
.brand:hover{filter:brightness(1.25)}
.search{flex:1;display:flex;align-items:center;max-width:680px;margin:0 auto;
  background:rgba(3,20,33,.7);border:1px solid var(--line);border-radius:22px;padding:4px 6px 4px 18px;
  box-shadow:inset 0 0 18px rgba(40,224,232,.08)}
.search input{flex:1;background:transparent;border:0;color:var(--ink);font-size:14px;outline:none}
.search input::placeholder{color:#5e8a93}
.icon{background:transparent;border:0;color:var(--cyan);font-size:16px;cursor:pointer;
  width:34px;height:34px;border-radius:50%;transition:.15s}
.icon:hover{background:rgba(40,224,232,.12);box-shadow:var(--glow)}
.rev{color:var(--mag);font-weight:700;letter-spacing:.1em;font-size:12px}

/* ── 스테이지 레이아웃 (v1.5) ── */
.stage{display:grid;grid-template-columns:1fr 170px;grid-template-rows:auto auto;
  gap:18px 24px;padding:8px 30px 0;align-items:start}

/* Dolby Atmos 듀얼 패널 */
.spatial{grid-column:1;grid-row:1;display:grid;grid-template-columns:0.9fr 1.1fr;gap:18px}
.panel{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  background:#040d16;box-shadow:0 0 36px rgba(40,224,232,.10),inset 0 0 50px rgba(0,0,0,.6)}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:7px 12px;font:10px/1 ui-monospace,monospace;letter-spacing:.12em;color:var(--cyan);
  border-bottom:1px solid var(--line);background:rgba(3,20,33,.6);text-shadow:var(--glow)}
.panel-h span{color:#6f9aa2;letter-spacing:.04em;font-weight:400;text-shadow:none}
.panel canvas{display:block;width:100%;height:340px;cursor:grab;touch-action:none}
.panel canvas:active{cursor:grabbing}

.status{font-size:10.5px;color:var(--cyan);text-shadow:var(--glow);letter-spacing:.04em;
  line-height:1.45;min-height:30px;margin-top:2px}

/* ── 트랜스포트 + INPUT 프리뷰 ── */
.transport{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:11px;padding-top:26px}
.scene-prev{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;
  aspect-ratio:16/10;background:#06151f;display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 24px rgba(0,0,0,.5)}
.scene-prev img{width:100%;height:100%;object-fit:cover;display:none}
.scene-prev img.show{display:block}
.scene-prev .hint{position:absolute;color:#4f7d86;font-size:10px;letter-spacing:.16em}
.tbtn{display:flex;align-items:center;gap:10px;background:rgba(3,20,33,.6);
  border:1px solid var(--line);color:var(--ink);padding:10px 12px;border-radius:6px;cursor:pointer;
  font-size:13px;transition:.15s;letter-spacing:.05em}
.tbtn:hover{border-color:var(--cyan);box-shadow:var(--glow)}
.tbtn.active{border-color:var(--cyan);background:rgba(40,224,232,.1)}
.dot{width:12px;height:12px;border-radius:50%;border:2px solid currentColor}
.dot.rec{color:#ff5b6e} .dot.ens{color:var(--cyan)} .dot.rst{color:#9aa7b0}

/* ── 8 오브젝트 믹서 ── */
.mixer{grid-column:1 / span 2;grid-row:2;display:grid;grid-template-columns:repeat(8,1fr);gap:10px;
  padding:10px 0 18px;border-top:1px solid var(--line);margin-top:4px}
.ch{display:flex;flex-direction:column;align-items:center;gap:7px;padding:5px 3px;border-radius:7px;
  cursor:pointer;transition:background .15s}
.ch:hover{background:rgba(40,224,232,.04)}
.ch.sel{background:rgba(255,210,63,.07);box-shadow:inset 0 0 0 1px rgba(255,210,63,.35)}
.ch.sel .thumb{border-color:#ffd23f;box-shadow:0 0 12px rgba(255,210,63,.55)}
.ch .ledrow{display:flex;align-items:center;gap:6px;justify-content:center}
.swatch{width:9px;height:9px;border-radius:50%;background:#0a2230;box-shadow:0 0 5px rgba(0,0,0,.5)}
.ch .pos{font:8.5px/1.3 ui-monospace,monospace;color:#6f9aa2;letter-spacing:.01em;margin-top:2px}
/* 채널 출처(프로비넌스) */
.ch .src{font:8px/1.3 ui-monospace,monospace;color:#5e8a93;margin-top:2px;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch .src.live-src{color:var(--mag)}
/* 채널 버튼 행 (M / S / ⟳) */
.chbtns{display:flex;align-items:center;justify-content:center;gap:5px}
.cbtn{width:20px;height:20px;border-radius:4px;border:1px solid var(--line);background:rgba(3,20,33,.65);
  color:#7fa9b1;font:9px/1 ui-monospace,monospace;font-weight:700;cursor:pointer;padding:0;transition:.12s}
.cbtn:hover{border-color:var(--cyan);color:var(--cyan)}
.cbtn.mute.on{background:#ff5b6e;border-color:#ff5b6e;color:#160406}
.cbtn.solo.on{background:var(--cyan);border-color:var(--cyan);color:#021018}
.ch.muted .thumb,.ch.muted .cname{opacity:.45}
.ch.dim{opacity:.4}
.fader-wrap{height:120px;display:flex;align-items:center;justify-content:center}
.fader{-webkit-appearance:slider-vertical;appearance:slider-vertical;writing-mode:vertical-lr;
  width:10px;height:120px;direction:rtl;accent-color:var(--cyan);cursor:pointer}
.thumb{width:64px;height:42px;border:1px solid var(--line);border-radius:4px;object-fit:cover;
  background:#06151f;display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb canvas{width:100%;height:100%;display:block}
.thumb .thumbimg{width:100%;height:100%;object-fit:cover;display:block}
.refresh{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);
  background:rgba(3,20,33,.65);color:var(--cyan);font-size:13px;line-height:1;cursor:pointer;
  padding:0;display:flex;align-items:center;justify-content:center;transition:.2s}
.refresh:hover{border-color:var(--cyan);box-shadow:var(--glow);transform:rotate(120deg)}
.refresh:active{transform:rotate(300deg)}
.ch .meta{text-align:center;line-height:1.25}
.ch .rank{color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:.04em}
.ch .cname{font-size:10px;color:var(--ink);max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch .pct{font-size:10px;color:var(--mag)}
.ch.empty{opacity:.28}
.ch.live .thumb{box-shadow:0 0 12px var(--mag),inset 0 0 8px rgba(224,86,176,.4);border-color:var(--mag)}
.ch.live .cname::after{content:"◉ LIVE";display:block;font-size:8px;color:var(--mag);letter-spacing:.08em}

/* ── instruction & settings ── */
.instruction{margin:6px 36px 0;border-top:1px solid var(--line);padding:14px 0;color:#7fa9b1}
.instruction h3{margin:0 0 8px;color:var(--cyan);font-size:13px;letter-spacing:.08em;font-weight:600}
.instruction ol{margin:0;padding-left:18px;font-size:12px}
.instruction li{margin:3px 0}
.settings{margin:8px 36px 40px;color:#9fc6cd}
.settings summary{cursor:pointer;color:var(--cyan);font-size:12px;letter-spacing:.05em}
.setgrid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px 24px;margin-top:12px}
.setgrid label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#79a4ac}
.setgrid select,.setgrid input{background:rgba(3,20,33,.7);border:1px solid var(--line);color:var(--ink);
  padding:6px 8px;border-radius:5px;font-size:12px;outline:none}
.sethint{grid-column:1 / -1;margin:2px 0 0;font-size:10.5px;color:#6f9aa2;line-height:1.5}
.sethint code{background:rgba(40,224,232,.1);padding:1px 5px;border-radius:3px;color:var(--cyan);font-size:10px}

@media(max-width:980px){
  .stage{grid-template-columns:1fr}
  .spatial{grid-column:1;grid-template-columns:1fr}
  .panel canvas{height:300px}
  .transport{grid-column:1;grid-row:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding-top:6px}
  .scene-prev{width:140px}
  .mixer{grid-column:1;grid-template-columns:repeat(4,1fr);grid-row:auto}
}
