/* Crew office app: workspaces (Event, Stage, Shows, Show day) with a side list and a full-width work area
   (tables are edited in place). Printed pages exist only in the Print window (and #doc while printing). */
.print-only{display:none}
.ws-nav{display:flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px}
.ws-nav button{border:0;background:none;color:var(--muted);font:600 14px var(--f-body);padding:6px 14px;border-radius:7px;cursor:pointer;white-space:nowrap}
.ws-nav button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0002}
.bar-mid{display:flex;gap:8px;align-items:center}
.ws{display:grid;grid-template-columns:230px minmax(0,1fr);height:calc(100vh - var(--bar-h, 57px));min-height:0}
.ws-side{border-right:1px solid var(--line);background:var(--surface);overflow:auto;padding:10px 8px}
.ws-side .sh{font:600 11px var(--f-body);text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:12px 8px 6px}
.ws-side .sh:first-child{margin-top:2px}
.side-i{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;color:var(--ink);font:500 14px var(--f-body);text-align:left;padding:7px 10px;border-radius:8px;cursor:pointer}
.side-i small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.side-i .grow{flex:1;min-width:0}
.side-i:hover{background:var(--bg)}
.side-i[aria-current="true"]{background:var(--accent-soft);color:var(--ink)}
.side-i .badge{font:600 11px var(--f-body);background:#c0392b;color:#fff;border-radius:999px;padding:1px 7px}
.side-i .badge.ok{background:var(--ok)}
.side-i .badge.dim{background:var(--line);color:var(--muted)}
.ws-main{overflow:auto;padding:18px 24px 80px;min-width:0;background:var(--bg)}
.ws-main > h1{font:600 26px var(--f-cond);text-transform:uppercase;letter-spacing:.3px;margin:0 0 4px}
.ws-main > .lede{color:var(--muted);margin:0 0 14px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.cols.wide-left{grid-template-columns:minmax(380px,520px) minmax(0,1fr)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-items:start}
.tiles .card{margin:0}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 14px}
.chips .chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:13px}
.chips .chip.bad{border-color:#c0392b;color:#c0392b;font-weight:600}
.card > h2{font:600 17px var(--f-cond);text-transform:uppercase;letter-spacing:.3px;margin:0 0 8px;display:flex;align-items:center;gap:8px}
.card > h2 small{font:400 13px var(--f-body);text-transform:none;color:var(--muted)}

/* screen tables */
table.grid{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface)}
table.grid th{font:600 11.5px var(--f-body);text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}
table.grid td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
table.grid td.n,table.grid th.n{text-align:right;font-variant-numeric:tabular-nums}
table.grid tr.sel td{background:var(--accent-soft)}
table.grid tr.click{cursor:pointer}
table.grid tr.click:hover td{background:var(--bg)}
table.grid tr.boxrow td{font-weight:600;color:#111;padding:8px}
table.grid tr.boxrow td small{font-weight:400;color:#444;margin-left:8px}
table.grid .muted{color:var(--muted)}
.grid-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:auto;max-height:calc(100vh - 190px)}
.lc{display:inline-flex;align-items:center;gap:6px;font:600 13px var(--f-mono)}
.lc i{width:12px;height:12px;border-radius:3px;border:1px solid #0005;display:inline-block}
.use{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12.5px}
.use b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;font:600 11px var(--f-body);padding:0 4px}
.use.x{color:var(--muted)}
.tt-now td{background:#e7f2ee}
.tight{color:#c0392b;font-weight:600}
.sub-in{display:inline-flex;align-items:center;gap:6px}
.sub-in select{font:13px var(--f-body);max-width:220px}
.plan-box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:8px}
.plan-box svg{width:100%;height:auto;max-height:520px}

/* show day checklist */
.co-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.co-head h1{font:600 26px var(--f-cond);text-transform:uppercase;margin:0}
.co-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-items:start}
.co-grid .card{margin:0}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line);font-size:14px}
.ticks li:first-child{border-top:0}
.ticks input{width:18px;height:18px;margin-top:1px;flex:none}
.ticks li.done span{color:var(--muted);text-decoration:line-through}
.ticks .op{flex:none;display:inline-flex}
.prog{height:6px;border-radius:99px;background:var(--line);overflow:hidden;width:160px}
.prog i{display:block;height:100%;background:var(--ok)}

@media (max-width: 1100px){
  .ws{grid-template-columns:190px minmax(0,1fr)}
  .cols,.cols.wide-left{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 720px){
  .ws{grid-template-columns:minmax(0,1fr);height:auto}
  .ws-side{border-right:0;border-bottom:1px solid var(--line);display:flex;gap:4px;overflow-x:auto;padding:6px}
  .ws-side .sh{display:none}
  .side-i{width:auto;white-space:nowrap}
  .ws-main{padding:14px 12px 60px}
  .ws-nav{order:5;width:100%;overflow-x:auto}
}
@media print{
  .ws,.ws-nav{display:none !important}
  .print-only{display:block !important}
}
table.hpg td{white-space:nowrap}
.inv-wide{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:0 16px;align-items:start}
.inv-wide > .ph,.inv-wide > .hint{grid-column:1/-1}
@media (max-width: 720px){
  .app-bar{flex-wrap:wrap !important}
  .ws-nav{order:10;flex:1 1 100%;justify-content:space-between}
  .ws-nav button{flex:1;padding:6px 6px}
  .bar-mid{flex:1;min-width:0}
  .bar-mid select{min-width:0;max-width:100%}
}
table.inv-bl select,table.inv-bl input[type=text]{width:100%;min-width:0}
table.inv-bl td:nth-child(2){min-width:240px}
.use i{width:10px;height:10px;border-radius:999px;display:inline-block;border:1px solid #0004;flex:none}
table.hpg td.cell{cursor:pointer}
table.hpg td.cell:hover{box-shadow:inset 0 0 0 2px var(--accent-soft)}
table.hpg td.pinned .use{font-weight:700}
table.hpg td.pinned .use::after{content:"•";color:var(--accent);margin-left:2px}
table.hpg td.cell-edit select{font:13px var(--f-body);max-width:220px}
table.hpg td.cell-edit input{font:13px var(--f-body);width:100%;min-width:90px;padding:3px 6px}
table.hpg td.cell-edit input[size]{min-width:0;width:auto}
table.hpg td.cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* console */
.con-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.con-head h1{font:600 26px var(--f-cond);text-transform:uppercase;margin:0}
.con-head select{font:14px var(--f-body);max-width:280px}
.con-banks{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:14px}
.bank{background:#1d2320;border-radius:10px;padding:8px 8px 10px}
.bank-h{color:#9aa69f;font:600 11px var(--f-body);letter-spacing:.5px;margin:0 2px 6px}
.strips{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}
.strip{background:#2a322e;border-radius:6px;padding:5px 4px;display:flex;flex-direction:column;gap:4px;align-items:stretch;min-width:0;border:2px solid transparent;color:#dfe6e2}
.strip .sn{font:600 12px var(--f-mono);text-align:center;color:#9aa69f}
.strip .scr{height:30px;border-radius:4px;background:#111;display:grid;place-items:center;font:700 11.5px var(--f-mono);text-align:center;overflow:hidden;white-space:nowrap;padding:0 2px}
.strip .scr s{color:#777}
.strip .src{display:flex;align-items:center;justify-content:center;gap:3px;font-size:11px;min-height:16px}
.strip .src .lc{font-size:11px;color:#dfe6e2}
.strip .src small{color:#9aa69f}
.strip .dev{font-size:10.5px;text-align:center;color:#b9c3be;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:14px}
.strip .p48{font:700 10px var(--f-body);color:#ff6b5a;text-align:center;min-height:13px}
.strip.st-idle{opacity:.45}
.strip.st-on{border-color:#3fb37f}
.strip.st-off{border-color:#e05a4a}
.strip.st-new{border-color:#f0b429}
.con-key{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;margin:10px 0}
.con-key .k{width:12px;height:12px;border-radius:3px;border:2px solid;display:inline-block}
.con-key .k.on{border-color:#3fb37f}.con-key .k.off{border-color:#e05a4a}.con-key .k.new{border-color:#f0b429}
.buses{display:flex;flex-wrap:wrap;gap:6px}
.bus{border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13px}
.bus small{color:var(--muted)}
@media (max-width: 720px){ .con-banks{grid-template-columns:1fr} .strips{grid-template-columns:repeat(4,1fr)} }
/* full-screen stage plan */
dialog.plan-dlg{max-width:98vw;width:98vw;height:96vh}
dialog.plan-dlg .dlg.pl{height:100%;display:flex;flex-direction:column;gap:8px;box-sizing:border-box}
.pl .dlg-head{gap:12px}
.pl .dlg-head h2{flex:0 0 auto}
.pl-body{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:8px}
.pl-body svg{flex:1;width:100%;height:100%;min-height:0}
.pl-body .hint{margin:0 0 6px}
.card > h2 .grow{flex:1}
table.grid tr.bad td{background:#fde8e5;color:#9b2a1c}
/* console surface */
.surface{background:linear-gradient(#3a3f3c,#2b302d);border-radius:16px;padding:14px;box-shadow:inset 0 1px 0 #ffffff14,0 6px 18px #0003;overflow-x:auto;color:#d9e0dc}
.surface.app{background:linear-gradient(#2f3a44,#232b33)}
.s-top{display:flex;justify-content:flex-end;margin-bottom:12px}
.cscreen{background:#0d1418;border:6px solid #1a1f1d;border-radius:8px;color:#cfe8ff;font:12.5px var(--f-mono);padding:8px 10px;min-width:320px;max-width:460px;box-shadow:inset 0 0 0 1px #3c6e91}
.cscreen .scr-h{background:#1d4f74;color:#fff;font-weight:600;margin:-8px -10px 6px;padding:4px 10px;letter-spacing:.4px}
.cscreen table{width:100%;border-collapse:collapse}
.cscreen td{padding:2px 4px;border-bottom:1px solid #1d2a33}
.cscreen td:first-child{color:#8fb3cf;white-space:nowrap}
.cscreen tr.bad td{color:#ff8a7a}
.ws-main .card .cscreen{max-width:none}
.s-faders{display:flex;gap:14px;align-items:flex-end;min-width:max-content}
.csec{display:flex;gap:6px;align-items:stretch;background:#262b28;border-radius:10px;padding:8px}
.csec.master{background:#2f2a26}
.layers{display:flex;flex-direction:column;gap:4px;width:86px}
.layers button{border:1px solid #111;background:#4a504c;color:#e3e8e5;font:600 9.5px var(--f-body);text-transform:uppercase;padding:5px 4px;border-radius:4px;cursor:pointer;text-align:left;line-height:1.15}
.layers button.lit{background:#40d6a8;color:#06231a;box-shadow:0 0 8px #40d6a888}
.cbanks{display:flex;gap:10px}
.cbank{display:flex;gap:3px}
.cs{width:54px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 2px;border-radius:6px;cursor:default}
.cs[data-a]{cursor:pointer}
.cs.sel{background:#ffffff14}
.cs .btn-sel{width:34px;height:14px;border-radius:3px;background:#4a504c;border:1px solid #111}
.cs.sel .btn-sel{background:#40d6a8}
.cs .led{font:700 8px var(--f-body);color:#5b625e}
.cs .led.lit{color:#ff5a46;text-shadow:0 0 5px #ff5a46}
.cs .lcd{width:50px;height:38px;border-radius:3px;background:var(--c,#1c2a33);color:var(--t,#6e8796);display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 9.5px var(--f-mono);border:2px solid #0b0e0d;overflow:hidden;line-height:1.2}
.cs .lcd b{font-size:9px;opacity:.85}
.cs .lcd i{font-style:normal;white-space:nowrap;max-width:48px;overflow:hidden}
.cs.st-on .lcd{outline:2px solid #3fb37f;outline-offset:1px}
.cs.st-off .lcd{outline:2px solid #e05a4a;outline-offset:1px}
.cs.st-new .lcd{outline:2px solid #f0b429;outline-offset:1px}
.cs .btn-mute{font:700 8px var(--f-body);width:34px;text-align:center;padding:2px 0;border-radius:3px;background:#4a504c;color:#cfd5d2;border:1px solid #111}
.cs .btn-mute.lit{background:#e0473a;color:#fff}
.cs .fader{position:relative;width:8px;height:120px;background:#0c0f0e;border-radius:4px;margin-top:2px}
.cs .fader .cap{position:absolute;left:-11px;width:30px;height:16px;border-radius:3px;background:linear-gradient(#f1f1f1,#9a9a9a);border:1px solid #333}
@media (max-width: 720px){ .s-top{justify-content:flex-start} .cscreen{min-width:0} }
.s-faders.wrap{flex-wrap:wrap;min-width:0}
.layers{width:76px}
.s-top{justify-content:space-between;gap:14px;align-items:flex-start}
.cpanel{background:#262b28;border-radius:10px;padding:8px 12px;min-width:260px;max-width:420px;font-size:12.5px;position:relative;align-self:stretch}
.cp-h{font:600 12px var(--f-mono);color:#40d6a8;letter-spacing:.4px;margin-bottom:6px}
.cpanel dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0}
.cpanel dt{color:#9aa69f}.cpanel dd{margin:0;color:#e3e8e5}
.cpanel p{margin:0;color:#9aa69f}
.cpanel .led48{position:absolute;right:12px;top:8px;font:700 10px var(--f-body);color:#5b625e;border:1px solid #444;border-radius:4px;padding:1px 5px}
.cpanel .led48.lit{color:#fff;background:#e0473a;border-color:#e0473a}
.cs{width:48px}.cs .lcd{width:45px}.cs .lcd i{max-width:43px}.cs .fader{height:104px}
.s-faders{align-items:stretch}
/* console at full size: readable, scrolls sideways */
.surface{zoom:1 !important;overflow-x:auto;padding:16px}
.s-top{position:sticky;left:0}
.s-faders,.s-faders.wrap{flex-wrap:nowrap;min-width:max-content}
.layers{width:104px;gap:5px}
.layers button{font-size:11px;padding:7px 6px}
.cs{width:66px;gap:6px}
.cs .btn-sel{width:42px;height:16px}
.cs .led{font-size:10px}
.cs .lcd{width:62px;height:50px;font-size:12px}
.cs .lcd b{font-size:11px}
.cs .lcd i{max-width:58px}
.cs .btn-mute{width:44px;font-size:10px;padding:3px 0}
.cs .fader{height:150px;width:10px}
.cs .fader .cap{left:-12px;width:34px;height:20px}
.cpanel{font-size:14px;min-width:320px}
.cp-h{font-size:14px}
.cscreen{font-size:14px;min-width:380px}
/* console: every channel at once, rows of 16 in banks of 8 */
.surface{overflow-x:visible}
.crows{display:flex;flex-direction:column;gap:10px}
.crow{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:stretch}
.crow-h{font:600 12px var(--f-mono);color:#9aa69f;align-self:center;letter-spacing:.3px}
.crow-c{display:flex;gap:5px;min-width:0}
.crow-c .gap{flex:0 0 10px}
.crow-sep{height:1px;background:#ffffff1a;margin:4px 0}
.ct{position:relative;flex:1 1 0;min-width:0;background:#1f2421;border-radius:7px;padding:9px 6px 7px;display:flex;flex-direction:column;gap:2px;border:2px solid transparent;cursor:default;overflow:hidden}
.ct[data-a]{cursor:pointer}
.ct[data-a]:hover{background:#2a302c}
.ct .cbar{position:absolute;left:0;right:0;top:0;height:5px;background:#3a403c}
.ct .no{font:700 13px var(--f-mono);color:#7f8a84}
.ct.on .no{color:#e9eeeb}
.ct .nm{font:600 13px var(--f-body);color:#e9eeeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct .sub{font-size:11px;color:#8f9a94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct .b48{position:absolute;right:5px;top:9px;font:700 9px var(--f-body);color:#ff6b5a}
.ct:not(.on){opacity:.55}
.ct.st-off{opacity:.85}
.ct.st-off .nm{color:#c98b83;text-decoration:line-through}
.ct.st-on{border-color:#3fb37f}
.ct.st-off{border-color:#e05a4a}
.ct.st-new{border-color:#f0b429}
.ct.sel{background:#2f3a35;box-shadow:inset 0 0 0 1px #40d6a8}
.ct.out .no{font-size:12px}
.ct.main{flex:1.4 1 0}
@media (max-width: 1100px){ .crow{grid-template-columns:1fr} .crow-c{flex-wrap:wrap} .ct{flex:0 0 calc(12.5% - 5px)} .crow-c .gap{display:none} }
@media (max-width: 720px){ .ct{flex:0 0 calc(25% - 5px)} }
.ct .nm{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;min-height:2.4em;word-break:break-word}
.ct .nm{font:600 14.5px var(--f-cond);letter-spacing:.2px;word-break:normal;overflow-wrap:normal}
/* console matrix (DAW-style): a column per channel, rows for source, line, role, input, mic, stand, 48V */
table.cmx{width:100%;border-collapse:separate;border-spacing:3px 2px;table-layout:fixed;margin-bottom:8px}
table.cmx th:first-child{width:78px;text-align:left;font:600 11px var(--f-mono);color:#9aa69f;text-transform:uppercase;letter-spacing:.3px;padding-right:6px;white-space:nowrap}
table.cmx td,table.cmx tr.hd th:not(:first-child){padding:0}
table.cmx .bk{border-left:8px solid transparent;background-clip:padding-box}
table.cmx td{background:#1f2421;color:#dfe6e2;font-size:12px;height:24px;padding:3px 5px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.cmx tr:nth-child(odd) td{background:#232925}
table.cmx td.ed{cursor:pointer}
table.cmx td.ed:hover{background:#34403a;box-shadow:inset 0 0 0 1px #40d6a8}
table.cmx td select{width:100%;font:12px var(--f-body);padding:1px 2px}
table.cmx tr.r-input td{font-weight:600;color:#fff}
table.cmx tr.r-src td,table.cmx tr.r-role td{color:#9fb0a8}
.chd{position:relative;background:#1a1e1c;border-radius:5px;padding:8px 4px 5px;border:2px solid transparent;min-height:44px;text-align:left}
.chd .cbar{position:absolute;left:0;right:0;top:0;height:5px;background:#3a403c;border-radius:4px 4px 0 0}
.chd b{display:block;font:700 12px var(--f-mono);color:#7f8a84}
.chd.on b{color:#e9eeeb}
.chd .nm{display:block;font:600 14px var(--f-cond);color:#e9eeeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chd:not(.on){opacity:.6}
.chd.st-on{border-color:#3fb37f}.chd.st-off{border-color:#e05a4a}.chd.st-new{border-color:#f0b429}
.chd.st-off .nm{color:#c98b83;text-decoration:line-through}
table.cmx .b48{font:700 10px var(--f-body);color:#fff;background:#d8402f;border-radius:3px;padding:1px 4px}
.s-top{justify-content:flex-end}
@media (max-width: 1100px){ .surface{overflow-x:auto} table.cmx{min-width:1000px} }
.s-top{justify-content:space-between;align-items:flex-end}
.surface .con-key{color:#c9d1cd;margin:0}
.surface .con-key .muted{color:#8f9a94}
/* DAW-style name strips at the bottom of each column */
table.cmx tr.nmrow td{background:none !important;padding:3px 0 0;height:auto}
.nstrip{background:#2a302c;border-radius:4px;padding:4px 5px 5px;min-height:40px;display:flex;flex-direction:column;justify-content:space-between;color:#7f8a84}
.nstrip b{font:700 11px var(--f-mono);opacity:.85}
.nstrip span{font:600 14px var(--f-cond);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px}
.nstrip.on{background:var(--c,#3a403c);color:var(--t,#fff)}
.nstrip.st-on{box-shadow:0 0 0 2px #3fb37f}
.nstrip.st-off{box-shadow:0 0 0 2px #e05a4a}
.nstrip.st-off span{text-decoration:line-through;color:#c98b83}
.nstrip.st-new{box-shadow:0 0 0 2px #f0b429}
table.cmx.out{margin-top:2px}
.crows{gap:16px}
/* linear mixer: one row of columns, scrolls sideways; matrix on top, channel strip, name strip at the bottom */
.mixer{overflow-x:auto;padding-bottom:8px}
table.cmx.lin{width:max-content;table-layout:fixed;border-spacing:3px 2px}
table.cmx.lin td{width:74px;max-width:74px}
table.cmx.lin td.bk{border-left:10px solid transparent}
table.cmx.lin td.sec{border-left:26px solid transparent}
table.cmx.lin th:first-child{position:sticky;left:0;z-index:2;background:#2f3431;width:78px;min-width:78px}
table.cmx.lin td.nx{background:#1b1f1d}
table.cmx.lin tr.r-strip td{background:none !important;padding:4px 0;height:auto}
.cs2{display:flex;flex-direction:column;align-items:center;gap:6px;background:#262b28;border-radius:6px;padding:6px 0 8px}
.cs2 .led{font:700 9px var(--f-body);color:#5b625e}
.cs2 .led.lit{color:#ff5a46;text-shadow:0 0 5px #ff5a46}
.cs2 .btn-sel{width:44px;height:15px;border-radius:3px;background:#4a504c;border:1px solid #111}
.cs2 .btn-mute{font:700 9px var(--f-body);width:44px;text-align:center;padding:3px 0;border-radius:3px;background:#4a504c;color:#cfd5d2;border:1px solid #111}
.cs2 .btn-mute.lit{background:#e0473a;color:#fff}
.cs2 .fader{position:relative;width:9px;height:150px;background:#0c0f0e;border-radius:4px;margin-top:4px}
.cs2 .fader .cap{position:absolute;left:-13px;width:35px;height:20px;border-radius:3px;background:linear-gradient(#f1f1f1,#9a9a9a);border:1px solid #333}
.surface{overflow-x:visible}
.drum-plan{display:flex;flex-wrap:wrap;gap:4px 12px;margin:8px 0 0;font-size:13px}
.drum-plan b{font-family:var(--f-mono);color:var(--muted);margin-right:3px}
/* desk sections over the columns */
table.cmx.lin tr.grp th:not(:first-child){padding:0 0 4px;text-align:left}
table.cmx.lin tr.grp th span{display:block;font:700 11px var(--f-body);letter-spacing:.6px;text-transform:uppercase;color:#cfd5d2;border-bottom:2px solid #ffffff30;padding:0 4px 3px}
table.cmx.lin tr.grp th.sec{border-left:26px solid transparent}
table.cmx.lin tr.grp th:first-child{background:none}
.cs2{position:relative;overflow:hidden}
.cs2 .lbar{display:none}
.cs2 .btn-sel{font:700 8px var(--f-body);color:#cfd5d2;display:grid;place-items:center;letter-spacing:.3px}

/* Behringer / Midas X32 & M32: grey body, grey keys, silver caps, backlit colour LCD scribble strips */
.surface.b-bx{background:linear-gradient(#4a4d4b,#363836)}
.b-bx .cs2{background:#2b2d2c}
.b-bx .cs2 .btn-sel{background:#8c8f8d;color:#1b1b1b;border-color:#222}
.b-bx .cs2 .btn-mute{background:#8c8f8d;color:#1b1b1b;border-color:#222}
.b-bx .cs2 .btn-mute.lit{background:#ff5b4a;color:#fff}
.b-bx .nstrip{font-family:var(--f-mono)}
.b-bx .nstrip.on{background:var(--c);color:#0d0d0d}
.b-bx .nstrip span{font:700 13px var(--f-mono)}

/* Behringer Wing: black, banks of 4, a colour light bar over each strip, white caps */
.surface.b-wing{background:linear-gradient(#202322,#141615)}
.b-wing .cs2{background:#1a1c1b;padding-top:12px}
.b-wing .cs2 .lbar{display:block;position:absolute;left:6px;right:6px;top:4px;height:4px;border-radius:2px;background:#333}
.b-wing .cs2.on .lbar{background:var(--c);box-shadow:0 0 6px var(--c)}
.b-wing .cs2 .btn-sel,.b-wing .cs2 .btn-mute{background:#d9dcda;color:#111;border-color:#000}
.b-wing .cs2 .btn-mute.lit{background:#ff3b3b;color:#fff}
.b-wing .cs2 .fader .cap{background:linear-gradient(#ffffff,#c9c9c9)}
.b-wing .nstrip{background:#0d1012;color:#9fb4c4}
.b-wing .nstrip.on{background:#0d1012;color:#e8f2fa;box-shadow:inset 0 3px 0 var(--c)}

/* Yamaha CL / QL / TF: black, ON keys, colour bar + name display, black caps with a white line */
.surface.b-yam{background:linear-gradient(#25272b,#17181b)}
.b-yam .cs2{background:#1e2024}
.b-yam .cs2 .btn-sel{background:#3a3d44;color:#c8ccd4;border-color:#000}
.b-yam .cs2 .btn-mute{background:#3a3d44;color:#c8ccd4;border-color:#000}
.b-yam .cs2 .btn-mute.on-key.lit{background:#f4a62a;color:#1a1200}
.b-yam .cs2 .fader .cap{background:linear-gradient(#3a3a3a,#111);border-color:#000;box-shadow:inset 0 9px 0 -7px #fff}
.b-yam .nstrip{background:#101216;color:#8d939c}
.b-yam .nstrip.on{background:#101216;color:#f2f4f7;border-top:6px solid var(--c)}

/* Allen & Heath: dark grey, blue select, red mute */
.surface.b-ah{background:linear-gradient(#2d3033,#1d1f21)}
.b-ah .cs2 .btn-sel{background:#2f6fd6;color:#fff;border-color:#000}
.b-ah .cs2 .btn-mute.lit{background:#e0302a}
.b-ah .nstrip.on{background:#0c0e10;color:#fff;border-left:6px solid var(--c)}

/* DiGiCo: dark blue-grey, touch-screen channel names */
.surface.b-dg{background:linear-gradient(#1f2a33,#141b21)}
.b-dg .cs2{background:#18212a}
.b-dg .nstrip.on{background:var(--c);color:#06121c}

/* Soundcraft Ui (tablet) and analogue */
.surface.b-sc{background:linear-gradient(#2c3540,#1e252e)}
.surface.b-an{background:linear-gradient(#5a5f63,#41454a)}
table.cmx.lin td.bk{width:84px;max-width:84px}
table.cmx.lin td.sec{width:100px;max-width:100px}
/* in-place editors lie over the cell: the table never changes size when a cell is clicked */
table.grid td.cell-edit{position:relative}
table.grid td.cell-edit .keep{visibility:hidden}
table.grid td.cell-edit .ovl{position:absolute;inset:2px 3px;display:flex;gap:3px}
table.grid td.cell-edit .ovl select,table.grid td.cell-edit .ovl input{flex:1 1 0;min-width:0;width:100% !important;height:100%;box-sizing:border-box;margin:0;padding:0 4px;font:inherit;font-size:13px;border:1px solid var(--accent);border-radius:4px;background:var(--surface);color:var(--ink)}
table.hpg tr.idle td:not(:first-child){color:var(--muted)}
table.hpg tr.idle td b{font-weight:500}
@keyframes swapflash{0%{background:#fff3b0}100%{background:transparent}}
table.hpg tr.flash td{animation:swapflash 1.6s ease-out}
#main .cols .card td.muted{white-space:nowrap}
.con-more{display:inline-flex;gap:4px;margin-left:6px}
/* name strips can be dragged to reorder the band's channels */
.nstrip[draggable="true"]{cursor:grab}
.nstrip.dragging{opacity:.4}
.nstrip.drop-l{box-shadow:-4px 0 0 #40d6a8}
.nstrip.drop-r{box-shadow:4px 0 0 #40d6a8}
/* mixes, DCAs and mains: a compact row under the channels */
.outs{display:flex;gap:4px;align-items:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid #ffffff1a;overflow-x:auto}
.os{width:72px;flex:none;display:flex;flex-direction:column;align-items:center;gap:5px;background:#262b28;border-radius:6px;padding:6px 3px 4px}
.os.sec{margin-left:18px}
.os .btn-mute{font:700 9px var(--f-body);width:44px;text-align:center;padding:2px 0;border-radius:3px;background:#4a504c;color:#cfd5d2;border:1px solid #111}
.os .btn-mute.lit{background:#e0473a;color:#fff}
.os .fader{position:relative;width:8px;height:56px;background:#0c0f0e;border-radius:4px}
.os .fader .cap{position:absolute;left:-11px;width:30px;height:14px;border-radius:3px;background:linear-gradient(#f1f1f1,#9a9a9a);border:1px solid #333}
.os .nstrip{width:100%;min-height:34px;box-sizing:border-box}
.os .nstrip span{font-size:12.5px}
.b-yam .os .fader .cap{background:linear-gradient(#3a3a3a,#111)}
.os{width:84px}
.nstrip .who{display:block;font:600 10.5px var(--f-body);letter-spacing:.3px;text-transform:uppercase;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.2em}
.hist{display:inline-flex;gap:4px}
.hist .ibtn{font-size:18px;line-height:1}
.hist .ibtn:disabled{opacity:.35;cursor:default}
table.hpg .use b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;font:700 11px var(--f-body);padding:0 4px;box-shadow:inset 0 0 0 1.5px #0005}
/* Rider from a PDF (rider-import.js): progress, review, notes on the slot */
.import-body{display:flex;flex-direction:column;gap:10px;min-width:min(640px,86vw)}
.import-status{display:flex;align-items:center;gap:10px;margin:8px 0;font-weight:600}
.import-status .spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line,#ccc);border-top-color:var(--accent,#2c6a55);animation:importspin .8s linear infinite;flex:none}
@keyframes importspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.import-status .spin{animation:none}}
.import-claude{border-left:3px solid var(--accent,#2c6a55);padding:4px 10px}
.import-claude h3,.import-cols h3{margin:0 0 4px;font-size:13px}
.import-claude p,.import-notes p{white-space:pre-wrap;margin:0 0 6px;font-size:13px}
.import-cols{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;max-height:45vh;overflow:auto}
@media (max-width:640px){.import-cols{grid-template-columns:1fr}}
.import-list{margin:0;padding-left:18px;font-size:13px}
.import-ch{width:100%;border-collapse:collapse;font-size:12px}
.import-ch td{padding:2px 6px;border-bottom:1px solid var(--line,#e5e5e5)}
.import-ch td.n{text-align:right;width:2em}
.import-notes{margin-top:6px;font-size:13px}
.import-notes summary{cursor:pointer;color:#8a5a00}
