:root{--case: #dcd8ce;--panel: #ece9e1;--panel-hi: #f6f4ee;--panel-edge: #c7c2b4;--paper: #f8f6f1;--ink: #26241f;--sub: #767163;--line: #d3cec1;--agent: #1d6fe0;--agent-soft: #dbe8fb;--danger: #c92a2a;--led-off: #d0cbbe;--c-orange: #e8590c;--c-amber: #e0a106;--c-teal: #0ca678;--c-pink: #d6336c;--c-violet: #7048e8;--c-green: #66a80f;--cell: 34px;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "Archivo", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--case);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input{font:inherit}.wrap{max-width:1280px;margin:0 auto;padding:20px 24px 90px}header.top{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:6px 2px 18px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:38px;border-radius:9px;background:var(--ink);display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:6px}.brand-mark i{border-radius:2px;background:#4a463c}.brand-mark i.lit{background:var(--c-orange)}.brand-mark i.blue{background:var(--agent)}.brand h1{margin:0;font-size:22px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.brand small{display:block;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.08em;color:var(--sub);text-transform:none}.song-title{border:1px solid transparent;background:transparent;color:var(--ink);font-family:var(--mono);font-size:14px;font-weight:600;padding:7px 10px;border-radius:8px;width:180px}.song-title:hover{border-color:var(--line);background:var(--paper)}.song-title:focus{outline:2px solid var(--ink);border-color:transparent;background:var(--paper)}.transport{display:flex;align-items:center;gap:14px;margin-left:auto;flex-wrap:wrap}.btn-play{width:56px;height:44px;border-radius:10px;border:1px solid #14120e;background:linear-gradient(180deg,#35322a,#211f1a);color:#f2efe6;font-size:17px;letter-spacing:.02em;box-shadow:0 2px #0d0c09,inset 0 1px #ffffff24}.btn-play:active{transform:translateY(1px);box-shadow:0 1px #0d0c09}.btn-play.playing{background:linear-gradient(180deg,#e8590c,#c94a08);border-color:#a03c06}.knob{display:flex;flex-direction:column;gap:3px;align-items:center}.knob label{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--sub);text-transform:uppercase}.bpm-box{display:flex;align-items:center;gap:2px}.bpm-box input{width:56px;text-align:center;font-family:var(--mono);font-weight:600;border:1px solid var(--panel-edge);border-radius:7px;padding:6px 2px;background:var(--paper);color:var(--ink)}.bpm-box button{width:24px;height:30px;border:1px solid var(--panel-edge);background:var(--panel-hi);border-radius:7px;color:var(--ink);font-family:var(--mono)}.bpm-box button:hover{background:#fff}input[type=range]{accent-color:var(--ink)}.bridge-chip{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--sub);border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--paper)}.bridge-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--sub)}.bridge-chip.native .dot{background:#2f9e44;box-shadow:0 0 6px #2f9e4488}.bridge-chip.shim .dot{background:var(--agent);box-shadow:0 0 6px #1d6fe088}.hint-line{font-family:var(--mono);font-size:11.5px;color:var(--sub);padding:0 2px 14px}.hint-line b{color:var(--ink);font-weight:600}main.cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}@media(max-width:1080px){main.cols{grid-template-columns:1fr}}.machine{background:linear-gradient(180deg,var(--panel-hi),var(--panel));border:1px solid var(--panel-edge);border-radius:16px;box-shadow:0 1px #fffc inset,0 10px 24px -18px #26241f80;padding:18px 18px 12px;overflow-x:auto}.rows{display:flex;flex-direction:column;gap:9px;min-width:fit-content}.trow{display:flex;align-items:center;gap:16px}.tctrl{display:flex;align-items:center;gap:8px;width:224px;flex:none}.tled{width:10px;height:10px;border-radius:50%;flex:none;background:var(--tc);box-shadow:0 0 5px var(--tc)}.tname{display:flex;flex-direction:column;min-width:0;width:86px}.tname b{font-size:13px;font-weight:700;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tname span{font-family:var(--mono);font-size:9px;color:var(--sub);letter-spacing:.1em;text-transform:uppercase}.tmute{width:24px;height:24px;border-radius:6px;border:1px solid var(--panel-edge);background:var(--panel-hi);font-family:var(--mono);font-size:10px;color:var(--sub)}.tmute.on{background:var(--ink);color:var(--case);border-color:var(--ink)}.tvol{width:62px;height:22px}.tdel{width:22px;height:22px;border:none;background:none;color:var(--sub);font-size:13px;border-radius:6px;line-height:1}.tdel:hover{color:var(--danger);background:#f5e3e3}.cells{display:flex;gap:13px}.cgroup{display:flex;gap:5px}.cell{width:var(--cell);height:var(--cell);border-radius:8px;border:1px solid #bdb7a8;background:linear-gradient(180deg,#d8d3c6,var(--led-off));box-shadow:inset 0 2px 3px #26241f2e;padding:0;position:relative;font-family:var(--mono);font-size:8.5px;font-weight:600;color:transparent}.cell:hover{filter:brightness(1.06)}.cell.on{background:color-mix(in srgb,var(--tc) 74%,#fff 8%);border-color:color-mix(in srgb,var(--tc) 70%,#000 20%);box-shadow:inset 0 1px 2px #ffffff59,0 0 7px color-mix(in srgb,var(--tc) 55%,transparent);color:#fff}.cell.accent{background:var(--tc);box-shadow:inset 0 1px 2px #fff6,0 0 12px var(--tc)}.cell.beathead:not(.on){background:linear-gradient(180deg,#cfcaba,#c5bfb0)}.cell.playing{filter:brightness(1.28) saturate(1.15)}.cell.playing:not(.on){background:#e9e5da}@keyframes agentflash{0%{box-shadow:0 0 0 3px var(--agent),0 0 16px var(--agent)}to{box-shadow:0 0 #1d6fe000,inset 0 2px 3px #26241f2e}}.cell.flash-agent{animation:agentflash .9s ease-out}@keyframes humanflash{0%{box-shadow:0 0 0 3px var(--ink)}to{box-shadow:0 0 #0000}}.cell.flash-human{animation:humanflash .5s ease-out}.trow.flash-agent .tled{animation:ledblink .9s ease-out}@keyframes ledblink{0%,40%{background:var(--agent);box-shadow:0 0 10px var(--agent)}}.lamps{display:flex;align-items:center;gap:16px;margin:2px 0 8px}.lamps .spacer{width:224px;flex:none}.lamp{width:var(--cell);height:5px;border-radius:3px;background:#c8c3b4;box-shadow:inset 0 1px 1px #26241f33}.lamp.lit{background:var(--c-orange);box-shadow:0 0 6px var(--c-orange)}.addbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.addbar span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--sub);text-transform:uppercase;margin-right:4px}.addbtn{font-family:var(--mono);font-size:11.5px;padding:6px 11px;border:1px solid var(--panel-edge);border-radius:999px;background:var(--panel-hi);color:var(--ink)}.addbtn:hover{background:#fff;border-color:var(--tc);color:var(--tc)}.addbtn:disabled{opacity:.4;cursor:default}.addbar .limit{margin-left:auto;margin-right:0}.engrave{margin-top:10px;text-align:right;font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:#a49e8d;text-transform:uppercase}.feed{background:var(--paper);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;max-height:560px}.feed h2{margin:0;padding:12px 14px 10px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sub);border-bottom:1px solid var(--line)}.feed ul{list-style:none;margin:0;padding:8px 6px;overflow-y:auto}.feed li{display:flex;gap:8px;align-items:baseline;font-family:var(--mono);font-size:11.5px;line-height:1.5;padding:4px 8px;border-radius:7px;color:var(--ink)}.feed li+li{margin-top:1px}.feed li.agent{background:var(--agent-soft)}.feed .chip{flex:none;font-size:8.5px;font-weight:700;letter-spacing:.08em;padding:2px 6px;border-radius:4px;background:var(--line);color:var(--ink)}.feed li.agent .chip{background:var(--agent);color:#fff}.feed li.system .chip{background:transparent;color:var(--sub);border:1px solid var(--line)}.feed .empty{color:var(--sub);font-style:italic}footer.foot{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:22px 2px 0;font-family:var(--mono);font-size:10.5px;color:var(--sub)}footer.foot button{border:none;background:none;color:var(--sub);font:inherit;text-decoration:underline;padding:0}footer.foot button:hover{color:var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#26241f73;display:flex;align-items:center;justify-content:center;z-index:60}.confirm{width:min(420px,calc(100vw - 40px));background:var(--paper);border-radius:16px;padding:22px 22px 18px;border-top:4px solid var(--agent);box-shadow:0 30px 60px -20px #00000080}.confirm .who{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--agent);text-transform:uppercase;margin-bottom:8px}.confirm h3{margin:0 0 6px;font-size:19px;font-weight:800}.confirm p{margin:0 0 18px;color:var(--sub);font-size:13.5px;line-height:1.5}.confirm .row{display:flex;gap:10px;align-items:center}.confirm .countdown{font-family:var(--mono);font-size:11px;color:var(--sub);margin-right:auto}.confirm button{border-radius:9px;padding:9px 16px;font-weight:600;font-size:13.5px}.btn-decline{border:1px solid var(--line);background:transparent;color:var(--ink)}.btn-decline:hover{background:var(--line)}.btn-approve{border:1px solid var(--ink);background:var(--ink);color:var(--case)}.btn-approve:hover{background:#000}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--ink);color:var(--case);font-family:var(--mono);font-size:12px;padding:10px 18px;border-radius:999px;z-index:70;box-shadow:0 10px 30px -10px #00000080}.insp-fab{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;align-items:center;gap:8px;background:#1f2733;color:#dbe4f0;border:1px solid #34404f;font-family:var(--mono);font-size:11.5px;padding:10px 15px;border-radius:999px;box-shadow:0 12px 30px -12px #0009}.insp-fab .n{color:#6ea8ff;font-weight:700}.insp-fab:hover{border-color:#6ea8ff}.inspector[hidden]{display:none!important}.inspector{position:fixed;right:20px;bottom:72px;z-index:50;width:min(380px,calc(100vw - 40px));max-height:min(64vh,640px);display:flex;flex-direction:column;background:#1f2733;color:#c6d2e2;border:1px solid #34404f;border-radius:14px;box-shadow:0 24px 50px -18px #000000a6;font-family:var(--mono);font-size:12px}.inspector header{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid #34404f}.inspector header b{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#eef3fa}.inspector header .via{color:#7a8aa0;font-size:10px;margin-left:auto}.inspector header .close{background:none;border:none;color:#7a8aa0;font-size:14px;padding:0 0 0 8px}.inspector header .close:hover{color:#fff}.insp-list{overflow-y:auto;padding:8px}.insp-tool{border:1px solid #2c3745;border-radius:9px;margin-bottom:7px;background:#242e3c}.insp-tool>button.head{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none;color:#dbe4f0;font:inherit;padding:9px 11px;text-align:left}.insp-tool .tag{font-size:8.5px;letter-spacing:.06em;padding:2px 6px;border-radius:4px;background:#34404f;color:#9fb3cc;text-transform:uppercase;flex:none}.insp-tool .tag.ro{background:#14532d;color:#86efac}.insp-tool .tag.destr{background:#58151c;color:#fca5a5}.insp-body{padding:0 11px 11px;border-top:1px solid #2c3745}.insp-body .desc{color:#8fa1b8;font-size:11px;line-height:1.5;margin:9px 0}.insp-body textarea{width:100%;min-height:56px;resize:vertical;background:#171e28;color:#d7e2f0;border:1px solid #34404f;border-radius:7px;font-family:var(--mono);font-size:11px;padding:8px}.insp-body .runrow{display:flex;gap:8px;margin-top:8px;align-items:center}.insp-run{background:#1d6fe0;color:#fff;border:none;border-radius:7px;padding:6px 14px;font-family:var(--mono);font-size:11.5px;font-weight:600}.insp-run:hover{background:#2f80f2}.insp-result{margin:8px 0 0;padding:8px;border-radius:7px;background:#171e28;color:#9ddba8;font-size:10.5px;white-space:pre-wrap;word-break:break-word;max-height:140px;overflow-y:auto}.insp-result.err{color:#fca5a5}.insp-note{padding:9px 14px;border-top:1px solid #34404f;color:#7a8aa0;font-size:10px;line-height:1.5}@media(prefers-reduced-motion:reduce){*{animation-duration:1ms!important;transition:none!important}}
