:root{color:#edf3ef;font-synthesis:none;background:#090c0b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% -10%,#1c3b2b 0,#0b100e 34%,#080a09 75%);min-width:320px;min-height:100vh;margin:0}main{width:min(1440px,100% - 32px);margin:0 auto;padding:28px 0 64px}.topbar{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}h1{letter-spacing:-.055em;margin:3px 0 0;font-size:clamp(28px,4vw,48px);line-height:1}h2{color:#b5c2ba;text-transform:uppercase;letter-spacing:.11em;margin:0 0 15px;font-size:13px}.subtitle{color:#77847d;margin:9px 0 0;font-size:13px}.eyebrow{color:#70ec9b;letter-spacing:.18em;font:750 10px ui-monospace,monospace}.connection-strip{gap:8px;display:flex}.pill{color:#89958e;background:#171c19;border:1px solid #303833;border-radius:99px;padding:8px 11px;font:700 10px ui-monospace,monospace}.pill[data-state=connected]{color:#70ec9b;background:#12281a;border-color:#285b3a}.pill[data-state=connecting]{color:#f4cf64}.pill[data-state=error]{color:#ff8a8a;border-color:#673434}.panel{background:#121714eb;border:1px solid #262d29;border-radius:14px;min-width:0;box-shadow:0 18px 55px #00000038}.playground{margin-bottom:14px;padding:17px}.playground-head{justify-content:space-between;align-items:start;gap:16px;margin-bottom:12px;display:flex}.playground-head h2{margin-bottom:4px}.playground-head p{margin:0}.world-actions,.actions{flex-wrap:wrap;gap:8px;display:flex}.world-shell{background:#101713;border:1px solid #303b35;border-radius:11px;height:clamp(360px,52vh,620px);position:relative;overflow:hidden}#world{cursor:crosshair;outline:none;width:100%;height:100%;display:block}#world:focus{box-shadow:inset 0 0 0 2px #70ec9b8c}.world-overlay{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;color:#8f9b94;background:#080c0ac7;border:1px solid #667c7040;border-radius:8px;padding:8px 10px;font:10px ui-monospace,monospace;position:absolute}.world-overlay strong,.world-overlay span{display:block}.world-overlay strong{color:#dce7e0;margin-bottom:4px}.world-overlay.top-left{top:12px;left:12px}.world-overlay.bottom-left{align-items:center;gap:6px;display:flex;bottom:12px;left:12px}.world-overlay.bottom-left span{display:inline-block}.legend-dot{border-radius:50%;width:7px;height:7px;margin-left:5px}.legend-dot.self{background:#70ec9b}.legend-dot.remote{background:#69b8ff}.legend-dot.npc{background:#f7a8d8}.focus-hint{color:#d7dfda;letter-spacing:.12em;pointer-events:none;background:#050806c2;border:1px solid #ffffff24;border-radius:8px;padding:10px 14px;font:800 11px ui-monospace,monospace;transition:opacity .15s;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.focus-hint.hidden{opacity:0}.dashboard{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.dashboard>.panel{padding:18px}.routes-panel,.log-panel{grid-column:1/-1}dl{grid-template-columns:72px 1fr;gap:9px;margin:0 0 18px;font-size:12px;display:grid}dt{color:#717e77}dd{overflow-wrap:anywhere;margin:0;font-family:ui-monospace,monospace}label{color:#aeb9b2;grid-template-columns:100px minmax(0,1fr) 48px;align-items:center;gap:9px;margin:10px 0;font-size:12px;display:grid}:is(label:has(select),label:has(input[type=number])){grid-template-columns:100px minmax(0,1fr)}input[type=number],select{color:#edf3ef;background:#0c100e;border:1px solid #333d37;border-radius:7px;width:100%;min-width:0;padding:8px}input[type=range]{accent-color:#70ec9b;width:100%}input:disabled,select:disabled{opacity:.45;cursor:not-allowed}output{color:#8f9b94;text-align:right;font:10px ui-monospace,monospace}button{color:#07120b;cursor:pointer;background:#70ec9b;border:0;border-radius:8px;padding:10px 13px;font-weight:750}button.secondary{color:#d7dfda;background:#29312d}button.secondary.active{color:#07120b;background:#f7a8d8}button.small{padding:7px 10px;font-size:11px}.ptt-panel{gap:9px;display:grid}.ptt{touch-action:none;-webkit-user-select:none;user-select:none;min-height:49px;font-size:14px}.ptt:active{filter:brightness(.8);transform:translateY(1px)}.ptt.radio{background:#69b8ff}kbd{background:#00000038;border-radius:4px;margin-left:6px;padding:2px 6px;font:700 11px ui-monospace,monospace}.meter{color:#f18c8c;text-align:center;background:#281818;border-radius:7px;padding:9px;font:700 11px ui-monospace,monospace}.meter.active{color:#70ec9b;background:#143021}.hint{color:#77847d;font-size:11px;line-height:1.5}.level-row{color:#94a098;grid-template-columns:68px 1fr;align-items:center;gap:10px;margin:13px 0;font-size:11px;display:grid}.input-meter{background:#252d29;border-radius:99px;height:8px;overflow:hidden;box-shadow:inset 0 1px 3px #00000080}.input-meter i{border-radius:inherit;background:linear-gradient(90deg,#70ec9b 0 72%,#f4cf64 86%,#ef6b6b 100%);width:0;height:100%;transition:width 50ms linear;display:block}#playback-state[data-state=running]{color:#70ec9b}#playback-state[data-state=suspended]{color:#f4cf64}.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats-grid div{background:#0e1310;border-radius:8px;padding:9px}.stats-grid span,.stats-grid strong{display:block}.stats-grid span{color:#69766e;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px;font-size:9px}.stats-grid strong{color:#dce7e0;font:700 12px ui-monospace,monospace}.route{border-bottom:1px solid #282f2b;grid-template-columns:150px 1fr auto;gap:12px;padding:10px 0;font:11px ui-monospace,monospace;display:grid}.route:last-child{border-bottom:0}.live-dot{color:#70ec9b}details summary{cursor:pointer;color:#aeb9b2;text-transform:uppercase;letter-spacing:.08em;font-size:12px}pre{color:#91a097;white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;margin:16px 0 0;font-size:10px;overflow:auto}@media (width<=1050px){.dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){main{width:min(100% - 18px,1440px);padding-top:16px}.topbar,.playground-head{flex-direction:column;align-items:start}.dashboard{grid-template-columns:1fr}.routes-panel,.log-panel{grid-column:auto}.world-shell{height:400px}.route{grid-template-columns:1fr}.connection-strip{flex-wrap:wrap}}
