:root{
  color-scheme:dark;
  --bg:#050705;--panel:#0a0d0a;--panel2:#0e120e;--line:#242b24;
  --line2:#343d34;--text:#f2f5f2;--muted:#8f998f;--dim:#5e675e;
  --accent:#76ff8b;--accent2:#c8ffd1;--shadow:rgba(0,0,0,.42);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}
body{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
button,input{font:inherit}.app{max-width:1180px;margin:auto}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:5px 2px 12px}
h1{font-size:18px;letter-spacing:.18em;font-variant:small-caps;margin:0;font-weight:700}.topbar p{margin:5px 0 0;color:var(--muted);font-size:11px;letter-spacing:.06em}
.status{font:10px ui-monospace,Consolas,monospace;color:var(--accent);letter-spacing:.08em;text-align:right;max-width:45%}
.viewer-card,.control-group,.actions{border:1px solid var(--line);background:linear-gradient(180deg,var(--panel2),var(--panel));border-radius:16px;box-shadow:0 14px 50px var(--shadow)}
.viewer-card{padding:10px}.drop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.drop{position:relative;border:1px dashed var(--line2);border-radius:11px;padding:9px 11px;min-width:0;cursor:pointer;background:#070907;transition:.15s}.drop:hover,.drop.drag{border-color:var(--accent);background:#0a100b}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop span,.drop strong,.drop small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-kicker{font-size:9px;color:var(--accent);letter-spacing:.16em}.drop strong{font-size:12px;margin-top:2px}.drop small{font-size:10px;color:var(--muted);margin-top:2px}
.stage-wrap{position:relative;display:flex;justify-content:center;align-items:center;min-height:320px;max-height:72vh;background:#020302;border:1px solid #171c17;border-radius:12px;overflow:hidden}canvas{display:block;max-width:100%;max-height:72vh;width:auto;height:auto}.stage-empty{position:absolute;color:#4c554c;font-variant:small-caps;letter-spacing:.18em;font-size:13px;pointer-events:none}.stage-hud{position:absolute;left:8px;right:8px;bottom:7px;display:flex;justify-content:space-between;color:#dce7dcaa;font:9px ui-monospace,Consolas,monospace;pointer-events:none;text-shadow:0 1px 3px #000}
.transport{display:grid;grid-template-columns:auto minmax(0,1fr) 58px auto;align-items:center;gap:8px;margin-top:9px}.transport output{font:11px ui-monospace,Consolas,monospace;color:var(--accent);text-align:right}.big-range{width:100%}
button{border:1px solid var(--line2);background:#101410;color:var(--text);border-radius:10px;padding:9px 12px;cursor:pointer;transition:.12s}button:hover:not(:disabled){border-color:#556255;background:#151b15}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.3;cursor:not-allowed}.icon{width:40px;padding:9px 0}.playing{border-color:var(--accent)!important;color:#071008!important;background:var(--accent)!important}
input[type=range]{appearance:none;height:28px;background:transparent;margin:0;min-width:0}input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:#252c25;border:1px solid #384138}input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;margin-top:-6px;background:var(--accent);border:2px solid #0b0f0b;box-shadow:0 0 0 1px #76ff8b55}input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:#252c25;border:1px solid #384138}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #0b0f0b}
.toolbar{display:flex;gap:6px;overflow:auto;padding:10px 1px 7px;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.seg{flex:0 0 auto;border-radius:999px;padding:8px 13px;font-size:11px;letter-spacing:.08em;font-variant:small-caps}.seg.active{background:var(--accent);color:#061007;border-color:var(--accent)}
#controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.control-group{padding:11px}.control-group.hidden{display:none}.control-group h2{margin:0 0 8px;font-size:10px;letter-spacing:.16em;font-variant:small-caps;color:var(--accent2)}.control{display:grid;grid-template-columns:132px minmax(0,1fr) 62px;align-items:center;gap:8px;min-height:36px}.control label{font-size:11px;color:#c1c9c1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.control output{font:10px ui-monospace,Consolas,monospace;color:var(--muted);text-align:right}.control select{width:100%;background:#0a0d0a;color:var(--text);border:1px solid var(--line2);border-radius:8px;padding:7px}.control.toggle{grid-template-columns:1fr auto}.control.toggle input{width:19px;height:19px;accent-color:var(--accent)}.control small{grid-column:1/-1;color:var(--dim);font-size:9px;margin:-4px 0 5px}.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;padding:10px}.actions button:last-child{margin-left:auto;background:#172018;border-color:#36513a}
@media(max-width:760px){#controls{grid-template-columns:1fr}.stage-wrap{min-height:240px}.control{grid-template-columns:112px minmax(0,1fr) 56px}}
@media(max-width:470px){body{padding-left:7px;padding-right:7px}.viewer-card,.control-group{border-radius:13px}.drop-grid{grid-template-columns:1fr}.stage-wrap{min-height:220px}.transport{grid-template-columns:auto minmax(0,1fr) 50px auto}.control{grid-template-columns:100px minmax(0,1fr) 52px;gap:6px}.control label{font-size:10px}}
