:root{color-scheme:dark;--bg:#101514;--panel:#171d1b;--muted:#89978d;--line:#354339;--ink:#eeeee0;--accent:#c8f77d;--cyan:#54dce4;--amber:#f3ba5b;--magenta:#e278d9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px system-ui,sans-serif}header,main{max-width:1280px;margin:auto}header{padding:30px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}h1{font-size:56px;line-height:1;margin:0;letter-spacing:-3px}h1 span{font:12px monospace;vertical-align:top;letter-spacing:0;color:var(--accent);margin-left:9px}header p{font:11px monospace;letter-spacing:3px;color:var(--muted);margin-bottom:0}.brand{text-align:right;line-height:1.8;letter-spacing:2px;font-size:12px}.brand small{color:var(--muted);font-size:10px}main{padding:28px}.instrument{display:grid;grid-template-columns:minmax(620px,1.5fr) minmax(300px,.7fr);gap:28px}.fm1-surface{background:#1a1d1c;border:1px solid #4a514d;box-shadow:0 0 0 5px #0c100f;padding:18px;border-radius:12px;min-width:0}.surface-top{display:grid;grid-template-columns:150px 320px 1fr;gap:16px;align-items:start}.display{background:#080e0d;border:1px solid #43523f;padding:12px;box-shadow:inset 0 0 0 4px #141b17;aspect-ratio:1;max-width:320px}.display canvas{width:100%;height:100%;image-rendering:pixelated;touch-action:none}.left-hardware,.right-hardware{min-width:0}.left-hardware{display:grid;gap:12px}.master-control{font:10px monospace;color:var(--muted);display:grid;gap:6px}.master-control input{width:100%}.encoder{border:1px solid #343b37;padding:9px;background:#141817}.encoder>span{display:block;font:9px monospace;letter-spacing:1px;color:#b0b9b2;margin-bottom:6px}.encoder>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.encoder button,.octave-buttons button{padding:8px}.octave-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}#octaveState{font:10px monospace;color:var(--accent);text-align:center}.knob-headings{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:6px;font:9px monospace;color:#c2cbc4;text-align:center}.live-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-height:120px}.live-controls label,.live-controls .pending-control{font:9px monospace;color:var(--muted);display:grid;align-content:start;gap:6px;border:1px solid #343b37;background:#121716;padding:8px;min-width:0}.live-controls label>span{display:flex;justify-content:space-between;gap:5px}.live-controls output{color:var(--ink);font-size:9px}.live-controls select,.live-controls input{min-width:0;width:100%;padding:7px}.pending-control b{color:#cfd6d0;font-weight:500}.pending-control small{color:#6f7972;line-height:1.35}.function-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:10px}.function-grid button{padding:10px 3px;font-size:9px}.function-grid button.active{border-color:var(--accent);color:var(--accent);background:#243124}.fm1-keyboard{display:flex;gap:3px;height:88px;margin-top:16px;align-items:flex-start}.fm1-keyboard button{flex:1;min-width:0;background:#d7d7c7;color:#273022;padding:6px 1px;height:86px;font-size:8px;display:flex;align-items:end;justify-content:center}.fm1-keyboard button.black{background:#2a302c;color:#c9d1cb;height:58px}.fm1-keyboard button.down{background:var(--accent);color:#16200f}.fm1-keyboard button.seq-hold:not(.down){background:var(--amber);color:#241a08}.fm1-keyboard button.seq-trigger:not(.down){background:var(--cyan);color:#071719}.fm1-keyboard button.seq-hold.seq-trigger:not(.down){box-shadow:inset 0 0 0 3px var(--amber)}.fm1-keyboard button.scale:not(.down):not(.seq-hold):not(.seq-trigger){box-shadow:inset 0 0 0 2px var(--cyan)}.panel{min-width:0}.headline{margin:0 0 10px;display:flex;justify-content:space-between;font:12px monospace;letter-spacing:2px}.headline #state{color:var(--accent);font-size:10px}.hardware-hint{font:11px monospace;line-height:1.55;color:var(--muted);padding:10px;border:1px solid var(--line);margin:0 0 14px}.direction{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.direction button{font-size:20px;display:grid;gap:4px}.direction b{font:9px monospace;color:var(--muted)}.tools{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}#drawToolMenu>label{display:inline-grid;margin:8px 8px 8px 0}label{font:11px monospace;color:var(--muted);display:grid;gap:8px;min-width:0}button,select,input{font:11px monospace;background:#202a23;border:1px solid #465644;color:var(--ink);padding:10px;border-radius:2px}button{cursor:pointer}button:hover,button.active{border-color:var(--accent);color:var(--accent);background:#2a3927}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--cyan)}input[type=range]{padding:0;accent-color:var(--accent)}.save{display:grid;grid-template-columns:1fr 80px auto;gap:6px;margin:18px 0 12px}.save input{min-width:0}.library{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.library button{grid-column:1/-1}.library select{width:100%}.library .edit-source{grid-column:1/-1;display:flex;align-items:center;gap:12px}.library .edit-source select{width:80px}.performance{margin-top:28px;padding:20px 0;border-top:1px solid var(--line)}.performance-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#power{background:var(--accent);color:#101b0c;font-weight:bold}#transportState{font:10px monospace;color:var(--muted);padding:10px}.midi{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.midi label{min-width:120px}.midi label:first-of-type{min-width:190px}.midi select{width:100%}#midiState,#clockState{font:10px monospace;color:var(--muted);padding:10px 0}.hint,footer,.files p{font-size:11px;color:var(--muted);line-height:1.5}.midi-map{margin:8px 0 0}.files{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);gap:20px;padding:20px 0}.files>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.files h2{font:11px monospace;letter-spacing:2px;width:100%;color:var(--muted);text-transform:uppercase}.files input{width:120px}.files p{width:100%}.transfer label{min-width:100px;flex:1}.transfer select{width:100%}.transfer button{white-space:nowrap}#status{padding:15px 0;color:var(--accent);font:12px monospace;min-height:45px}footer{padding:15px 0;border-top:1px solid var(--line)}dialog{max-width:min(430px,90vw);background:#17201a;color:var(--ink);border:1px solid var(--accent);padding:24px}dialog::backdrop{background:#000a}dialog h2{font:16px monospace;letter-spacing:2px}dialog p{line-height:1.7;font-size:13px}#dialogActions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:1020px){.instrument{grid-template-columns:1fr}.surface-top{grid-template-columns:140px 300px 1fr}.files{grid-template-columns:1fr 1fr}.transfer{grid-column:1/-1}}
@media(max-width:760px){header,main{padding:18px}.brand{font-size:10px}h1{font-size:44px}.surface-top{grid-template-columns:1fr}.display{width:min(100%,300px);justify-self:center}.left-hardware{grid-template-columns:repeat(2,1fr)}.master-control,.octave-buttons,#octaveState{grid-column:1/-1}.function-grid{grid-template-columns:repeat(3,1fr)}.live-controls{grid-template-columns:1fr 1fr}.knob-headings{display:none}.fm1-keyboard{overflow-x:auto}.fm1-keyboard button{min-width:26px}.files{grid-template-columns:1fr}.transfer{grid-column:auto}}

/* V0.20 target battery telemetry preview. Simulator-only controls; TFT indicator is the target UI. */
.battery-sim{display:flex;align-items:center;gap:.55rem;margin-left:auto;font-size:.72rem;letter-spacing:.04em}.battery-sim label{display:flex;align-items:center;gap:.35rem}.battery-sim input[type=range]{width:86px}.battery-sim #batteryValue{min-width:76px;text-align:right;font-weight:700}

.memory-line{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin:.35rem 0}.memory-line strong{min-width:5.5rem}.memory-line input{max-width:8rem}.memory-line select{max-width:11rem}

/* ETCH V1.41: compact, legible Wave Sculpt panel. */
.sculpt-panel{border:1px solid #555;margin:8px 0;padding:10px 12px;background:#151518;color:#dedede;font:12px/1.4 monospace}
.sculpt-panel h3{font-size:13px;margin:0 0 5px;color:#fda0d0}
.sculpt-panel p{margin:3px 0 8px;color:#aaa}
.sculpt-controls{display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.sculpt-controls label{display:flex;flex-direction:column;gap:4px;min-width:80px;flex:1}
.sculpt-controls input{width:100%;accent-color:#e69b63}
.sculpt-controls select{width:100%;background:#18181b;color:#eee;border:1px solid #666}
#sculptApply{font-weight:700;white-space:nowrap}
#sculptPreview{display:block;width:100%;max-width:100%;height:92px;margin-top:10px;border:1px solid #333;background:#0d0d10;image-rendering:pixelated}
