/* mindX studio — layered over style.css. Tokens on :root; light mode by preference or by the ◐ toggle. */
:root {
  --scope: #52d98a;
  --spec: #d6b25e;
  --sel: rgba(214, 178, 94, .22);
  --canvas: #0a0d0c;
  --grid: rgba(232, 230, 223, .07);
  --wave: #c9b071;
  --cursor: #e8e6df;
  --marker: #e0a53a;
  --start: #52d98a;
  --topbar: rgba(7, 9, 10, .88);
  color-scheme: dark;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f6f4ee; --panel: #ffffff; --panel2: #f1eee5;
    --line: rgba(140, 104, 30, .28); --line2: rgba(20, 24, 22, .12);
    --text: #16191a; --text2: #4a524e; --text3: #737b76;
    --gold: #8a6416; --green: #17834a; --amber: #a86a0a; --red: #b03d2e;
    --scope: #17834a; --spec: #8a6416; --sel: rgba(138, 100, 22, .18);
    --canvas: #fbfaf6; --grid: rgba(20, 24, 22, .08); --wave: #6b5520;
    --cursor: #16191a; --marker: #a86a0a; --start: #17834a; --topbar: rgba(246, 244, 238, .9);
    color-scheme: light;
  }
}
:root[data-theme="light"] {
  --bg: #f6f4ee; --panel: #ffffff; --panel2: #f1eee5;
  --line: rgba(140, 104, 30, .28); --line2: rgba(20, 24, 22, .12);
  --text: #16191a; --text2: #4a524e; --text3: #737b76;
  --gold: #8a6416; --green: #17834a; --amber: #a86a0a; --red: #b03d2e;
  --scope: #17834a; --spec: #8a6416; --sel: rgba(138, 100, 22, .18);
  --canvas: #fbfaf6; --grid: rgba(20, 24, 22, .08); --wave: #6b5520;
  --cursor: #16191a; --marker: #a86a0a; --start: #17834a; --topbar: rgba(246, 244, 238, .9);
  color-scheme: light;
}
:root[data-theme="dark"] { color-scheme: dark; }

[hidden] { display: none !important; }
body.studio-page { background: var(--bg); color: var(--text); overflow-x: hidden; }
.studio-page .topbar { background: var(--topbar); }
.studio-page .btn { background: var(--panel); }
.theme-btn { font: 1rem var(--sans); background: none; border: 0; color: var(--text2); cursor: pointer; padding: 2px 4px; }
.theme-btn:hover { color: var(--gold); }
.privacy { max-width: 760px; border-left: 2px solid var(--green); padding-left: 12px; margin-top: 4px; color: var(--text2); }

.st-section { padding-top: 40px; }
.st-row { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; margin: 8px 0; }
.st-row.small { margin: 4px 0; }
.st-row .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.mono { font-family: var(--mono); }
.card { min-width: 0; }

/* transport */
.transport { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0 10px; }
.tbtn { font: 500 .84rem var(--sans); color: var(--text); background: var(--panel2); border: 1px solid var(--line2); border-radius: 6px; padding: 7px 12px; cursor: pointer; min-height: 36px; }
.tbtn:hover { border-color: var(--gold); }
.tbtn.primary { background: var(--gold); color: var(--bg); border-color: var(--gold); min-width: 96px; }
.tbtn.stop { color: var(--red); border-color: var(--red); }
.tbtn:disabled, .chip:disabled { opacity: .45; cursor: default; }
.clock { font: .86rem var(--mono); color: var(--text2); margin-left: auto; white-space: nowrap; }
.ov-wrap, .ed-wrap { position: relative; width: 100%; }
canvas.ov, canvas.ed-canvas, canvas.viz-c { display: block; width: 100%; background: var(--canvas); border: 1px solid var(--line2); border-radius: 8px; }
canvas.ov { cursor: pointer; touch-action: pan-y; }
.ov-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.anchor-line { font: italic .92rem/1.5 var(--sans); color: var(--text2); margin: 6px 0 0; border-left: 2px solid var(--start); padding-left: 10px; }
.credit { margin-top: 12px; border-top: 1px solid var(--line2); padding-top: 10px; }
.credit .who { font-weight: 600; color: var(--text); margin: 0 0 4px; font-size: .95rem; }
.credit dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 2px 12px; margin: 6px 0 0; font: .76rem/1.5 var(--mono); }
.credit dt { color: var(--text3); }
.credit dd { margin: 0; color: var(--text2); overflow-wrap: anywhere; }
.st-player audio { display: none; }

/* visuals */
.viz-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.viz { margin: 0; min-width: 0; }
.viz.scope-fig { grid-column: 1 / -1; }
.viz figcaption { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font: 500 .72rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text3); margin-bottom: 6px; }
.viz figcaption .fine { letter-spacing: 0; text-transform: none; }
canvas.pad { touch-action: none; cursor: crosshair; }
.viz-state { margin-top: 8px; }

/* rack */
.rack-host { width: 100%; min-height: 40px; overflow: hidden; }
.rack-host .sr-wrap { display: flex; flex-wrap: wrap; gap: 12px; }
.rack-host .sr-sec { flex: 1 1 260px; min-width: 0; }
.rack-host .sr-knobs { display: flex; flex-wrap: wrap; gap: 10px 6px; justify-content: space-around; }
.rack-host .sr-cell { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 76px; }
.rack-host .sr-cell.sr-wide { flex: 1 1 100%; align-items: stretch; }
.rack-host .sr-cell.sr-wide .sr-map { align-self: center; }
.rack-host .sr-sec:first-child { flex-basis: 340px; }
.sr-map { font: .66rem var(--mono); color: var(--text3); background: none; border: 1px dashed var(--line2); border-radius: 999px; padding: 1px 8px; cursor: pointer; max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sr-map.on { color: var(--green); border-color: var(--green); border-style: solid; }
.sr-map:hover { border-color: var(--gold); }
.rack-fallback { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 16px; background: var(--panel); border: 1px solid var(--line2); border-radius: 10px; padding: 14px; }
.rack-fallback label { display: grid; grid-template-columns: 80px minmax(0, 1fr) 64px; gap: 8px; align-items: center; font: .78rem var(--mono); color: var(--text2); }
.rack-fallback input { width: 100%; accent-color: var(--gold); }
.rack-foot { justify-content: flex-start; }
.tog { font-size: .86rem; color: var(--text2); display: inline-flex; gap: 6px; align-items: center; }

/* senses */
.sense-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.sense p { font-size: .86rem; margin-bottom: 10px; }
.sense.live { border-color: var(--green); }
.sense-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.meters { display: grid; gap: 4px; }
.meter { display: grid; grid-template-columns: 78px minmax(0, 1fr) 62px; gap: 8px; align-items: center; font: .7rem var(--mono); color: var(--text3); }
.meter .bar { height: 6px; background: var(--line2); border-radius: 3px; overflow: hidden; }
.meter .bar i { display: block; height: 100%; width: 0; background: var(--gold); }
.meter.on .bar i { background: var(--green); }
.meter .val { text-align: right; color: var(--text2); white-space: nowrap; overflow: hidden; }
.cam-video { width: 128px; height: 96px; object-fit: cover; transform: scaleX(-1); border-radius: 6px; border: 1px solid var(--line2); margin-bottom: 8px; background: #000; }
.last-gesture { margin-top: 8px; }

/* mappings */
.map-table select, .map-table input { font: .78rem var(--mono); background: var(--bg); color: var(--text); border: 1px solid var(--line2); border-radius: 4px; padding: 3px 4px; max-width: 100%; }
.map-table input[type="number"] { width: 64px; }
.map-table td { padding: 6px 10px; white-space: nowrap; }
.map-table tr.flash td { background: var(--sel); }
.map-table .now { font-family: var(--mono); color: var(--text2); min-width: 64px; }
.map-table tr.live .now { color: var(--green); }

/* editor */
.ed-card { padding: 14px; }
.toolbar { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 6px 0 10px; }
.tgroup { display: inline-flex; flex-wrap: wrap; gap: 3px; padding-right: 8px; border-right: 1px solid var(--line2); }
.tgroup:last-child { border-right: 0; }
.toolbar button { font: .76rem var(--mono); color: var(--text); background: var(--panel2); border: 1px solid var(--line2); border-radius: 5px; padding: 5px 8px; min-height: 32px; cursor: pointer; }
.toolbar button:hover { border-color: var(--gold); }
.toolbar button[aria-pressed="true"] { border-color: var(--green); color: var(--green); }
.gain-in { display: inline-flex; gap: 3px; }
.gain-in input { width: 58px; font: .76rem var(--mono); background: var(--bg); color: var(--text); border: 1px solid var(--line2); border-radius: 5px; padding: 4px; }
canvas.ed-canvas { touch-action: none; cursor: text; }
canvas.ed-canvas:focus { outline: 1px solid var(--gold); outline-offset: 1px; }
.ed-scroll { width: 100%; margin: 6px 0 2px; accent-color: var(--gold); }
.file-btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; }
.file-btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.markers { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.markers li { font: .74rem var(--mono); border: 1px solid var(--marker); color: var(--marker); border-radius: 999px; display: inline-flex; align-items: center; }
.markers button { font: inherit; color: inherit; background: none; border: 0; padding: 3px 8px; cursor: pointer; }
.markers button.x { padding-left: 0; color: var(--text3); }

@media (max-width: 640px) {
  .viz-grid { grid-template-columns: 1fr; }
  .clock { margin-left: 0; width: 100%; }
  .meter { grid-template-columns: 70px minmax(0, 1fr) 56px; }
  .tgroup { border-right: 0; padding-right: 0; }
  .studio-page .toplinks a.current { display: inline; }
}

/* your data */
.limit { margin: 0 0 14px; border-left-color: var(--amber); }
.data-actions { justify-content: flex-start; }
.shred-confirm { border-color: var(--red); margin: 10px 0; }
.shred-confirm p { color: var(--text); margin-bottom: 10px; }
.inv-table td { white-space: normal; }
.inv-table td.sz { font-family: var(--mono); white-space: nowrap; color: var(--text); }
.inv-table tr.empty td { color: var(--text3); }
.inv-table tr.info td { font-style: italic; }
.inv-table td:first-child { font: .74rem var(--mono); color: var(--gold); white-space: nowrap; }
.inv-table button { font: .72rem var(--mono); color: var(--text); background: var(--panel2); border: 1px solid var(--line2); border-radius: 5px; padding: 3px 8px; cursor: pointer; }
.inv-table button:hover { border-color: var(--red); }
.receipt { margin-top: 14px; }
.receipt pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 420px; overflow-y: auto; }
#receipt-hash { overflow-wrap: anywhere; color: var(--green); }
