/* sspt-b.css — #4500 UX cook (DH #557 lineage, REV 3 brief). Rides tokens.css +
   sfxsel.css + sspt-a-window.css. .sxb-* namespace. PT-native: hairlines, 0-2px
   radii, teal = meaning only, mono numerics. No glow, no cards. */

/* ═══ one-pool row v2 — honest targets, preselected-first ═══ */
.sxb-row { display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 8px 0 10px;
  border-bottom: 1px solid var(--line-soft); position: relative; cursor: pointer; }
.sxb-row:hover { background: var(--bg-row-hover); }
.sxb-row.dense { height: 28px; gap: 6px; }
.sxb-row .nm { flex: 1; min-width: 0; font-family: var(--mono); font-size: 10px; color: var(--fg-strong);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sxb-row .cid { font-family: var(--mono); font-size: 8.5px; color: var(--fg-mute); letter-spacing: .04em; width: 60px; flex-shrink: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sxb-row .rt { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); width: 74px; flex-shrink: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sxb-row .dur { font-family: var(--mono); font-size: 8.5px; color: var(--fg-dim); width: 28px; text-align: right; flex-shrink: 0; }
.sxb-row .top { font-family: var(--mono); font-size: 7px; letter-spacing: .16em; color: var(--fg-dim);
  border: 1px solid var(--line); border-radius: 2px; padding: 1px 3px; flex-shrink: 0; }
/* inline waveform overview (founder redline 07-16 — supersedes the per-row wall):
   long + NORMALIZED — every duration stretches to the same width; length reads
   from the duration number beside it, shape from the bars */
.sxb-row .wv { width: 150px; flex-shrink: 0; opacity: .75; }
.sxb-row.dense .wv { width: 90px; }
.sxb-row:hover .wv, .sxb-row.focused .wv { opacity: 1; }
.sxb-row .favmk { flex-shrink: 0; color: var(--teal); display: inline-flex; }
.sxb-row .times { font-family: var(--mono); font-size: 7px; letter-spacing: .1em; color: var(--teal);
  border: 1px solid var(--teal-deep); border-radius: 2px; padding: 1px 3px; flex-shrink: 0; }
.sxb-row.focused { background: var(--bg-row-hover); box-shadow: inset 0 0 0 1px var(--line-strong); }
.sxb-row.focused .sx-play { border-color: var(--teal-deep); color: var(--teal); }
.sxb-row.msel { background: var(--teal-bg); }

/* preselected — ordering + BADGE, never a zone. Row tint + rail + role tag +
   the select control in its ON state = the unmistakable marking. */
.sxb-row.pre { background: var(--bg-row-sel); }
.sxb-row.pre::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--teal); }
.sxb-row.pre.layer::before { opacity: .4; }
.sxb-role { font-family: var(--mono); font-size: 7px; letter-spacing: .14em; color: var(--teal); width: 40px; flex-shrink: 0; }
.sxb-row.layer .sxb-role { color: var(--fg-mute); }
.sxb-auto { font-family: var(--mono); font-size: 7px; letter-spacing: .12em; color: var(--fg-mute);
  border: 1px solid var(--line); border-radius: 2px; padding: 1px 4px; flex-shrink: 0; }
/* #4531: pulled-not-yet-spotted marker on lay-capable rows (rows arriving
   blessed from the browser/queue included) — teal like the pull state */
.sxb-pulled { font-family: var(--mono); font-size: 7px; letter-spacing: .12em; color: var(--teal);
  border: 1px solid var(--teal-deep); border-radius: 2px; padding: 1px 4px; flex-shrink: 0; }
.sxb-crop { display: inline-flex; align-items: center; gap: 3px; flex-shrink: 0; font-family: var(--mono); font-size: 8px;
  color: var(--teal); border: 1px solid var(--teal-deep); border-radius: var(--r-1); padding: 1px 5px; letter-spacing: .02em; }
.sxb-crop svg { color: var(--teal); }
.sxb-crop.whole { color: var(--fg-dim); border-color: var(--line); letter-spacing: .04em; }

/* favorite */
.sxb-row.fav { background: linear-gradient(90deg, rgba(53,197,199,.05), transparent 60%); }
.sxb-row.fav::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--teal-deep); }

/* unlinked */
.sxb-row.unlinked { background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(255,255,255,.012) 6px 7px); }
.sxb-row.unlinked .nm { color: var(--fg-mute); }
.sxb-row.unlinked .sx-play[disabled] { color: var(--fg-faint); border-color: var(--line-soft); cursor: not-allowed; }

/* scan-state chips (R2 · C5 fold) — queued is quiet, failed is a retry affordance */
.sxb-scan { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; font-family: var(--mono);
  font-size: 7px; letter-spacing: .1em; text-transform: uppercase; border-radius: 2px; padding: 1px 5px; }
.sxb-scan.queued { color: var(--fg-mute); border: 1px dashed var(--line-strong); }
.sxb-scan.queued .d { width: 5px; height: 5px; border-radius: 50%; border: 1px solid var(--fg-dim); }
.sxb-scan.failed { color: var(--st-danger); border: 1px solid rgba(180,104,104,.5); cursor: pointer; }
.sxb-scan.failed:hover { background: var(--st-danger-bg); }

/* THE action — a real button now (~24×96, was 56×20 = the 8%-of-row bug) */
.sxb-selbtn { display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  height: 24px; padding: 0 10px; flex-shrink: 0; min-width: 84px;
  border: 1px solid var(--line); border-radius: var(--r-1);
  background: var(--btn-grad); color: var(--fg); box-shadow: var(--inset-panel);
  cursor: pointer; font-family: var(--ui); font-size: 11px; white-space: nowrap; }
.sxb-selbtn:hover { color: var(--fg-strong); background: var(--btn-grad-h); border-color: var(--line-strong); }
.sxb-selbtn.on { border-color: var(--teal-deep); background: var(--teal-bg); color: var(--teal); box-shadow: none; }
/* quiet pre-selected state (canLay=false surfaces) — the row tint carries it */
.sxb-selbtn.on2 { border-color: var(--teal-deep); background: transparent; color: var(--teal); box-shadow: none; opacity: .8; cursor: default; }
.sxb-selbtn.on .b { display: none; }
.sxb-selbtn.on:hover .a { display: none; }
.sxb-selbtn.on:hover .b { display: inline-flex; align-items: center; gap: 5px; color: var(--fg-mute); }
.sxb-row.dense .sxb-selbtn { height: 21px; min-width: 78px; font-size: 10.5px; }
.sxb-row.dense .sxb-role { width: auto; }
.sxb-row.dense .sxb-crop { padding: 1px 4px; }
.sxb-row.dense .dur { display: none; }
.sxb-spot1 { display: inline-flex; align-items: center; justify-content: center; gap: 4px; height: 24px; padding: 0 9px; flex-shrink: 0; min-width: 84px;
  border: 1px solid var(--teal-deep); border-radius: var(--r-1); background: var(--btn-grad); color: var(--teal);
  box-shadow: var(--inset-panel); cursor: pointer; font-family: var(--ui); font-size: 11px; white-space: nowrap; }
.sxb-spot1:hover { border-color: var(--teal); }
.sxb-spot1.re { border-color: var(--line); color: var(--fg-mute); }
.sxb-spot1[disabled] { color: var(--fg-faint); border-color: var(--line-soft); cursor: not-allowed; }

/* per-row overflow — the CLICK path to the hold panel (grammar: every hold has one) */
.sxb-dots { width: 22px; height: 22px; flex-shrink: 0; border: 1px solid transparent; border-radius: var(--r-1);
  background: transparent; color: var(--fg-dim); cursor: pointer; display: none; align-items: center; justify-content: center; }
.sxb-row:hover .sxb-dots, .sxb-dots.open { display: inline-flex; }
.sxb-dots:hover, .sxb-dots.open { background: var(--bg-sub); color: var(--fg); border-color: var(--line); }

/* pool dividers — super-subtle micro-rows (founder redline): faint 6.5px label,
   no fills, no teal — the row tint + rail carry the meaning; users learn them */
.sxb-grp { display: flex; align-items: center; gap: 5px; height: 15px; padding: 0 10px; background: transparent; border-bottom: 1px solid var(--line-soft); }
.sxb-grp .l { font-family: var(--mono); font-size: 6.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-dim); opacity: .75; }
.sxb-grp.pre { background: transparent; }
.sxb-grp.pre .l { color: var(--fg-dim); }
.sxb-grp .n { font-family: var(--mono); font-size: 6.5px; color: var(--fg-dim); opacity: .75; }
.sxb-grp .n b { color: var(--fg-dim); font-weight: 400; }
.sxb-grp .note { margin-left: auto; font-family: var(--mono); font-size: 6.5px; letter-spacing: .04em; color: var(--fg-dim); opacity: .6; }
.sxb-grp svg { color: var(--fg-dim); flex-shrink: 0; }

/* outcome chips on preselected rows (B1/B2 designed feedback) */
.sxb-out { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; font-family: var(--mono);
  font-size: 7px; letter-spacing: .1em; text-transform: uppercase; border-radius: 2px; padding: 1px 5px; }
.sxb-out.skipped { color: var(--cue-amber); border: 1px solid color-mix(in srgb, var(--cue-amber) 45%, transparent); }
.sxb-out.failed { color: var(--st-danger); border: 1px solid rgba(180,104,104,.5); }

/* cue-row coverage — a tiny learnable symbol, never the written word (C9 redline):
   hollow amber = needs sound · teal dot = pre-selected · green dot = spotted */
.sxb-covdot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.sxb-covdot.needs { border: 1px solid var(--cue-amber); }
.sxb-covdot.preselected { background: var(--teal); }
.sxb-covdot.spotted { background: var(--st-resolved); }
.sxb-cuewrap .ci-l2:empty { display: none; }

/* ═══ hold options panel (R3) — transient popover, .sx-ovfmenu lineage ═══ */
.sxb-optscrim { position: absolute; inset: 0; z-index: 58; background: transparent; }
.sxb-menu { position: absolute; z-index: 60; width: 272px; background: var(--bg-panel); border: 1px solid var(--line-strong);
  border-radius: var(--r-3); box-shadow: var(--float); display: flex; flex-direction: column; overflow: hidden; }
.sxb-menu-h { display: flex; align-items: center; gap: 7px; padding: 8px 10px 7px; border-bottom: 1px solid var(--line-soft); min-width: 0; }
.sxb-menu-h .nm { flex: 1; min-width: 0; font-family: var(--mono); font-size: 10px; color: var(--fg-strong);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sxb-menu-h .tc { font-family: var(--mono); font-size: 9.5px; color: var(--tc-green); flex-shrink: 0; }
.sxb-menu-h .cid { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); flex-shrink: 0; }
.sxb-menu-h .x { width: 18px; height: 18px; flex-shrink: 0; border: 0; background: transparent; color: var(--fg-dim);
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-1); }
.sxb-menu-h .x:hover { color: var(--fg); background: var(--bg-sub); }
.sxb-menu-b { overflow-y: auto; max-height: calc(100vh - 64px); } /* founder 2026-07-19: fill the window before scrolling */
.sxb-menu-b::-webkit-scrollbar { width: 7px; }
.sxb-menu-b::-webkit-scrollbar-thumb { background: var(--line-strong); }
.sxb-sec { padding: 7px 10px 3px; display: flex; align-items: center; gap: 6px; min-width: 0; }
.sxb-sec .l { font-family: var(--mono); font-size: 7.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-dim); flex-shrink: 0; }
.sxb-sec .canon { font-family: var(--mono); font-size: 7.5px; color: var(--fg-mute); border: 1px solid var(--line); border-radius: 2px;
  padding: 1px 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.sxb-sec .canon.none { border-style: dashed; color: var(--fg-dim); }
.sxb-item { width: 100%; display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 0; background: transparent;
  color: var(--fg); cursor: pointer; font-family: var(--ui); font-size: 11.5px; text-align: left; position: relative; overflow: hidden; }
.sxb-item:hover { background: var(--bg-row-hover); }
.sxb-item svg { flex-shrink: 0; color: var(--fg-dim); }
.sxb-item .t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.sxb-item .s { font-size: 9.5px; color: var(--fg-dim); line-height: 1.35; }
.sxb-item .st { margin-left: auto; flex-shrink: 0; font-family: var(--mono); font-size: 7px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--teal); border: 1px solid var(--teal-deep); border-radius: 2px; padding: 1px 4px; }
.sxb-item.on { color: var(--teal); }
.sxb-item.on svg { color: var(--teal); }
.sxb-item.danger { color: var(--st-danger); }
.sxb-item.danger svg { color: var(--st-danger); }
.sxb-item.danger:hover { background: var(--st-danger-bg); }
.sxb-item.dis { color: var(--fg-faint); cursor: not-allowed; }
.sxb-item.dis svg { color: var(--fg-faint); }
.sxb-item.dis .s { color: var(--fg-faint); }
.sxb-hr { border-top: 1px solid var(--line-soft); margin: 3px 0; }
.sxb-gate { margin: 2px 10px 8px; padding: 7px 9px; border: 1px dashed var(--line-strong); border-radius: var(--r-1); background: var(--bg-deep); }
.sxb-gate .t { font-size: 10px; color: var(--fg-mute); line-height: 1.45; }
.sxb-gate .t b { color: var(--fg); font-weight: 500; }
.sxb-gate .sx-btn { margin-top: 6px; }
.sxb-toast { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-top: 1px solid var(--line-soft); background: var(--bg-deep); }
.sxb-toast .t { flex: 1; min-width: 0; font-size: 10.5px; color: var(--fg-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sxb-toast .t b { color: var(--fg); font-weight: 500; }
.sxb-toast .u { border: 0; background: transparent; color: var(--teal); cursor: pointer; font-family: var(--ui); font-size: 11px; padding: 0; flex-shrink: 0; }
.sxb-toast .u:hover { text-decoration: underline; }

/* cue panel fields */
.sxb-field { padding: 3px 10px 8px; display: flex; flex-direction: column; gap: 5px; }
.sxb-seg { display: inline-flex; height: 22px; border: 1px solid var(--line); border-radius: var(--r-1); overflow: hidden; background: var(--bg-deep); align-self: flex-start; }
.sxb-seg button { border: 0; background: transparent; cursor: pointer; padding: 0 9px; color: var(--fg-dim);
  display: inline-flex; align-items: center; gap: 4px; font-family: var(--ui); font-size: 10.5px; }
.sxb-seg button + button { border-left: 1px solid var(--line); }
.sxb-seg button:hover { color: var(--fg-mute); }
.sxb-seg button.on { background: var(--bg-sub); color: var(--fg-strong); }
.sxb-seg button.on.flagged { color: var(--st-flagged); }
.sxb-seg button.on.resolved { color: var(--st-resolved); }
.sxb-as-row { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.sxb-as { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  font-size: 8px; font-family: var(--ui); font-weight: 600; color: rgba(0,0,0,.65); cursor: pointer; border: 2px solid transparent; }
.sxb-as.on { border-color: var(--fg-strong); }
.sxb-cats { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.sxb-cat { display: inline-flex; align-items: center; gap: 4px; height: 19px; padding: 0 7px; border: 1px solid var(--line);
  border-radius: var(--r-1); background: var(--bg-deep); color: var(--fg-mute); cursor: pointer; font-family: var(--ui); font-size: 10px; }
.sxb-cat .d { width: 3px; height: 9px; border-radius: 1px; }
.sxb-cat:hover { color: var(--fg); border-color: var(--line-strong); }
.sxb-cat.on { color: var(--fg-strong); border-color: var(--line-strong); background: var(--bg-sub); }
.sxb-name { width: 100%; min-height: 40px; resize: vertical; background: var(--bg-deep); border: 1px solid var(--line);
  border-radius: var(--r-1); color: var(--fg); font-family: var(--ui); font-size: 11.5px; line-height: 1.4; padding: 6px 8px; outline: none; box-shadow: inset 0 1px 2px rgba(0,0,0,.35); }
.sxb-name:focus { border-color: var(--teal-deep); }
.sxb-frow { display: flex; align-items: center; gap: 6px; }
.sxb-consq { font-family: var(--mono); font-size: 7.5px; letter-spacing: .03em; color: var(--fg-dim); line-height: 1.5; }
.sxb-work { display: flex; align-items: center; gap: 7px; }
.sxb-work .t { font-family: var(--mono); font-size: 8px; color: var(--fg-mute); }
.sxb-work .bar { flex: 1; height: 2px; background: var(--bg-deep); border: 1px solid var(--line-soft); position: relative; }
.sxb-work .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--teal); }
.sxb-work .ok { font-family: var(--mono); font-size: 8px; color: var(--st-resolved); }

/* ═══ masked TC input (I2) — fps-aware, invalid impossible ═══ */
.sxb-tcin { display: inline-flex; align-items: center; gap: 0; height: 26px; padding: 0 7px; background: var(--bg-deep);
  border: 1px solid var(--line); border-radius: var(--r-1); box-shadow: inset 0 1px 2px rgba(0,0,0,.35); cursor: text; }
.sxb-tcin:focus-within { border-color: var(--teal-deep); }
.sxb-tcin input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sxb-tcin .g { font-family: var(--mono); font-size: 11px; color: var(--tc-green); letter-spacing: .04em; font-feature-settings: "tnum" 1; }
.sxb-tcin .g.ghost { color: var(--fg-dim); }
.sxb-tcin .g.cur { background: var(--teal-bg); box-shadow: 0 1px 0 var(--teal); }
.sxb-tcin .c { font-family: var(--mono); font-size: 11px; color: var(--fg-dim); padding: 0 1px; }
.sxb-tcin.sm { height: 22px; }
.sxb-tcin.sm .g, .sxb-tcin.sm .c { font-size: 10px; }
.sxb-fps { font-family: var(--mono); font-size: 7.5px; letter-spacing: .1em; color: var(--fg-dim); border: 1px solid var(--line);
  border-radius: 2px; padding: 1px 4px; flex-shrink: 0; }
.sxb-tcdef { font-family: var(--mono); font-size: 7px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-dim); }
.sxb-tcdef b { color: var(--fg-mute); font-weight: 500; }

/* ═══ spot strip v2 (F1 · #4514 · B8) ═══ */
.sxb-reason { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 8px; letter-spacing: .04em; color: var(--fg-dim); }
.sxb-reason svg { flex-shrink: 0; color: var(--fg-dim); }
.sxb-reason b { color: var(--fg-mute); font-weight: 500; }
.sxb-prog { display: flex; align-items: center; gap: 8px; }
.sxb-prog .ct { font-family: var(--mono); font-size: 8.5px; color: var(--fg-mute); flex-shrink: 0; }
.sxb-prog .ct b { color: var(--fg-strong); font-weight: 600; }
.sxb-prog .cue { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); flex-shrink: 0; max-width: 190px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sxb-prog .bar { flex: 1; height: 3px; background: var(--bg-deep); border: 1px solid var(--line-soft); position: relative; }
.sxb-prog .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--teal); }
.sxb-result { display: flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 8.5px; letter-spacing: .02em; color: var(--fg-dim); flex-wrap: wrap; }
.sxb-result .ok { color: var(--st-resolved); }
.sxb-result .warn { color: var(--cue-amber); }
.sxb-result .bad { color: var(--st-danger); }
.sxb-result b { font-weight: 600; }
.sxb-result .why { color: var(--fg-dim); }
.sxb-result .act { border: 0; background: transparent; color: var(--teal); cursor: pointer; font-family: var(--ui); font-size: 10px; padding: 0; }
.sxb-result .act:hover { text-decoration: underline; }

/* NOT-LINKED — first-class BLOCKED state (murphy #892). Amber = setup decision,
   distinct from MISMATCH danger. A blocked state is not a processing state. */
.sxb-block { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--cue-amber) 45%, transparent);
  border-left: 3px solid var(--cue-amber); border-radius: var(--r-1); background: var(--st-flagged-bg); }
.sxb-block .gi { color: var(--cue-amber); flex-shrink: 0; display: inline-flex; }
.sxb-block .gt { flex: 1; min-width: 0; }
.sxb-block .g1 { font-size: 11.5px; color: var(--fg-strong); font-weight: 500; }
.sxb-block .g2 { font-size: 10px; color: var(--fg-mute); margin-top: 1px; }
.sx-match.nolink { border-color: color-mix(in srgb, var(--cue-amber) 55%, transparent); color: var(--cue-amber); }
.sx-match.nolink .d { background: var(--cue-amber); }
/* PT pill carries the session-guard state (founder redline — MATCH pill folded in) */
/* #4522: pre-first-poll state — neutral, pulsing dot; asserts nothing */
.sx-pt.wait { border-color: var(--line); color: var(--fg-mute); }
.sx-pt.wait .d { background: var(--fg-mute); animation: sxb-waitpulse 1.1s ease-in-out infinite; }
@keyframes sxb-waitpulse { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
.sx-pt.nolink { border-color: color-mix(in srgb, var(--cue-amber) 55%, transparent); color: var(--cue-amber); }
.sx-pt.nolink .d { background: var(--cue-amber); }
.sx-pt.bad { border-color: rgba(180,104,104,.55); color: var(--st-danger); }
.sx-pt.bad .d { background: var(--st-danger); }

/* ═══ R2 — true progress ═══ */
/* hero pane: queued (real scan-queue numbers) / failed (retry, no fake bar) */
.sxb-scanhero { flex-shrink: 0; background: var(--bg-deep); border-top: 1px solid var(--line-strong); padding: 7px 10px 8px;
  display: flex; flex-direction: column; gap: 6px; }
.sxb-scanhero .bed { position: relative; height: 60px; border: 1px solid var(--line); border-radius: var(--r-1); background: var(--bg-app);
  display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sxb-scanhero .bed .hatch { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, transparent 0 5px, rgba(255,255,255,.02) 5px 6px); }
.sxb-scanhero .mid { position: relative; display: flex; flex-direction: column; gap: 5px; width: min(420px, 78%); }
.sxb-scanhero .r1 { display: flex; align-items: baseline; gap: 8px; }
.sxb-scanhero .st8 { font-family: var(--mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); }
.sxb-scanhero .ct { font-family: var(--mono); font-size: 9px; color: var(--fg-strong); margin-left: auto; }
.sxb-scanhero .ct b { color: var(--teal); font-weight: 600; }
.sxb-scanhero .bar { height: 3px; background: var(--bg-deep); border: 1px solid var(--line-soft); position: relative; }
.sxb-scanhero .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--teal); transition: width .3s linear; }
.sxb-scanhero .r2 { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 7.5px; letter-spacing: .03em; color: var(--fg-dim); }
.sxb-scanhero .fail { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.sxb-scanhero .fail .t { font-size: 11px; color: var(--fg-mute); }
.sxb-scanhero .fail .t b { color: var(--st-danger); font-weight: 500; }
.sxb-scanhero .fail .s { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); }
.sxb-scanhero .fnote { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 8px; color: var(--fg-dim); }
.sxb-scanhero .fnote .nm2 { color: var(--fg-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }

/* nav Library chip — scanning variant (C6 fold): count + mini bar, click = drawer */
.sxb-libchip { align-self: center; display: inline-flex; align-items: center; gap: 6px; height: 19px; padding: 0 7px;
  border: 1px solid var(--line); border-radius: var(--r-1); background: var(--bg-panel); cursor: pointer;
  color: var(--fg-mute); font-family: var(--ui); font-size: 10px; flex-shrink: 0; }
.sxb-libchip:hover { border-color: var(--line-strong); color: var(--fg); }
.sxb-libchip .ct { font-family: var(--mono); font-size: 8px; color: var(--teal); }
.sxb-libchip .bar { width: 34px; height: 3px; background: var(--bg-deep); border: 1px solid var(--line-soft); position: relative; }
.sxb-libchip .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--teal); transition: width .3s linear; }

/* empty-pool hero (a decision state — no fake progress) */
.sxb-emptyhero { flex-shrink: 0; background: var(--bg-deep); border-top: 1px solid var(--line-strong); padding: 14px 10px;
  display: flex; flex-direction: column; align-items: center; gap: 4px; }
.sxb-emptyhero .t { font-size: 11px; color: var(--fg-mute); }
.sxb-emptyhero .s { font-size: 10px; color: var(--fg-dim); }

/* hero AUTO-FOCUS marker (#4516) */
.sxb-af { font-family: var(--mono); font-size: 7px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-dim);
  border: 1px dashed var(--line-strong); border-radius: 2px; padding: 1px 4px; flex-shrink: 0; }

/* ═══ mobile sheet presentation of the options panel ═══ */
.sxb-sheetscrim { position: absolute; inset: 0; z-index: 58; background: rgba(8,10,12,.5); }
.sxb-sheet { position: absolute; z-index: 60; left: 0; right: 0; bottom: 0; background: var(--bg-panel);
  border-top: 1px solid var(--line-strong); border-radius: 8px 8px 0 0; box-shadow: var(--float); overflow: hidden; }
.sxb-sheet .grab { width: 34px; height: 4px; border-radius: 2px; background: var(--line-strong); margin: 6px auto 2px; }
.sxb-sheet .sxb-menu-b { max-height: 85vh; }

/* C9 redline — no sort control: cues ALWAYS sort by timecode. Hidden here (v2
   mounts only); the real removal from the shared bar IS #4484, riding GATE Q5. */
.sx-cfb .cfb-sort { display: none; }

/* cue-row hold wrapper — hold opens cue options; ⋯ = the click path */
.sxb-cuewrap { position: relative; }
.sxb-cuewrap .sxb-dots.cue { position: absolute; z-index: 4; right: 4px; top: 4px; background: var(--bg-panel); border-color: var(--line); }
.sxb-cuewrap:hover .sxb-dots.cue { display: inline-flex; }

/* ═══ galleries ═══ */
.sxb-gal { overflow: auto; background: var(--bg-app); padding: 14px; }
.sxb-galgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.sxb-galgrid.three { grid-template-columns: repeat(3, 1fr); }
.sxb-tile { border: 1px solid var(--line); border-radius: var(--r-3); background: var(--bg-panel); overflow: hidden; display: flex; flex-direction: column; }
.sxb-tt { font-family: var(--mono); font-size: 8.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-dim);
  padding: 7px 10px; border-bottom: 1px solid var(--line-soft); background: var(--bg-app); display: flex; align-items: center; gap: 7px; }
.sxb-tt .ok { color: var(--st-resolved); }
.sxb-tt .cut { margin-left: auto; color: var(--cue-amber); letter-spacing: .08em; }
.sxb-tbody { flex: 1; min-height: 64px; display: flex; flex-direction: column; justify-content: center; }
.sxb-cap { padding: 6px 10px 8px; border-top: 1px dashed var(--line-soft); font-size: 9.5px; color: var(--fg-dim); line-height: 1.5; }
.sxb-cap b { color: var(--fg-mute); font-weight: 500; }
.sxb-cap .tl2 { color: var(--teal); }

/* boot phases */
.sxb-boot { padding: 10px; display: flex; flex-direction: column; gap: 7px; }
.sxb-boot .ph { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 8.5px; color: var(--fg-mute); }
.sxb-boot .ph b { color: var(--fg-strong); }
.sxb-boot .segs { display: flex; gap: 3px; flex: 1; }
.sxb-boot .segs i { flex: 1; height: 3px; background: var(--bg-deep); border: 1px solid var(--line-soft); }
.sxb-boot .segs i.done { background: var(--teal); border-color: var(--teal-deep); }
.sxb-boot .segs i.run { background: linear-gradient(90deg, var(--teal) 55%, var(--bg-deep) 55%); border-color: var(--teal-deep); }

/* elapsed-honest candidates loading */
.sxb-elapsed { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); letter-spacing: .04em; }
.sxb-elapsed b { color: var(--fg-mute); }

/* ═══════════════════════════════════════════════════════════════════════
   PORT ADDITIONS (slt-sspt-port, #4500 / DH #558, 2026-07-17) — rules the
   new window needs that live in the CD *shared* css (sfxsel.css, DH #536
   hold grammar + AM-02 multi-select) but predate the local ui twins. Copied
   1:1 from the CD project; remove if/when the local shared css is synced. */
.sx-holdfill { position: absolute; left: 0; bottom: 0; height: 2px; background: var(--teal); opacity: .85; pointer-events: none; z-index: 2; }
.sx-holdfill.row { height: 1.5px; }
.sx-holdhint { position: absolute; bottom: calc(100% + 5px); left: 0; white-space: nowrap; z-index: 30;
  font-family: var(--mono); font-size: 9px; letter-spacing: .06em; color: var(--fg);
  background: var(--bg-deep); border: 1px solid var(--line-strong); border-radius: 2px; padding: 3px 7px; }
.sx-holdhint.row { left: 10px; bottom: auto; top: -9px; }
.sx-mcheck { width: 13px; height: 13px; flex-shrink: 0; border: 1.5px solid var(--line-strong); border-radius: 2px;
  display: inline-flex; align-items: center; justify-content: center; color: transparent; }
.sx-mcheck.on { background: var(--teal); border-color: var(--teal); color: var(--on-teal); }
.sx-mselbar { display: flex; align-items: center; gap: 8px; padding: 5px 10px; border-bottom: 1px solid var(--line);
  background: var(--bg-deep); flex-shrink: 0; }
.sx-mselbar .n { font-family: var(--mono); font-size: 9.5px; letter-spacing: .06em; color: var(--fg-mute); }
.sx-mselbar .n b { color: var(--teal); font-weight: 600; }
.sx-mselbar .dv { width: 1px; height: 14px; background: var(--line); }
.sx-mselbar .sp { flex: 1; }

/* founder 2026-07-17: MISMATCH shares the NO-LINK strip-block treatment — red variant */
.sxb-block.bad { border-color: color-mix(in srgb, var(--st-danger, #e5484d) 50%, transparent);
  background: color-mix(in srgb, var(--st-danger, #e5484d) 8%, transparent); }
.sxb-block.bad .gi { color: var(--st-danger, #e5484d); }


/* ═══════════ DH #559 chapter-1 port (slt-port-ch1, 2026-07-17) — §1 batch panel (.sxb-opt/.sxb-dryrun/.sxb-stepper/.sxb-sw/.sx-spotall-wrap) · §2 assignee chips (.sxb-idchip/.sxb-lbl/.sxb-as*) · §3 registry drawer (.ssv-reg-*) + provenance (.sxb-prov) · §4 Settings drawer (.ssv-set-*/.ssv-export). 1:1 from CD sspt-b.css (project 019e3049). ═══════════ */

.sxb-sw { position: relative; width: 30px; height: 17px; flex-shrink: 0; border-radius: var(--r-pill); border: 1px solid var(--line-strong);
  background: var(--bg-deep); cursor: pointer; transition: background .15s, border-color .15s; }
.sxb-sw i { position: absolute; top: 1px; left: 1px; width: 13px; height: 13px; border-radius: 50%; background: var(--fg-mute); transition: transform .15s, background .15s; }
.sxb-sw.on { border-color: var(--teal-deep); background: var(--teal-bg); }
.sxb-sw.on i { transform: translateX(13px); background: var(--teal); }
.sxb-sw[disabled] { cursor: not-allowed; opacity: .5; }
.sxb-opt { display: flex; align-items: center; gap: 10px; padding: 7px 10px; min-width: 0; }
.sxb-opt .ol { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sxb-opt .ol .k { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--fg); }
.sxb-opt .ol .s { font-size: 9.5px; color: var(--fg-dim); line-height: 1.4; }
.sxb-opt .oc { flex-shrink: 0; display: flex; align-items: center; gap: 6px; }
.sxb-opt.col { flex-direction: column; align-items: stretch; gap: 6px; }
.sxb-opt.col .oc { justify-content: flex-start; }
.sxb-diffdot { width: 5px; height: 5px; border-radius: 50%; background: var(--teal); flex-shrink: 0; }
.sxb-diffdot.ghost { background: var(--line-strong); }
.sxb-holdbtn { position: relative; overflow: hidden; }
.sx-spotall-wrap { display: flex; gap: 0; }
.sx-spotall-wrap .sxb-holdbtn { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.sx-spot-more { width: 28px; flex-shrink: 0; border: 1px solid var(--line); border-left: 0; border-radius: 0 var(--r-1) var(--r-1) 0;
  background: var(--btn-grad); color: var(--fg-dim); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--inset-panel); }
.sx-spot-more:hover { color: var(--fg-strong); background: var(--btn-grad-h); border-color: var(--line-strong); }
.sx-spot-more.on { border-color: var(--teal-deep); color: var(--teal); background: var(--teal-bg); }
.sx-spot-more[disabled] { color: var(--fg-faint); cursor: not-allowed; }
.sxb-batchhead { display: flex; align-items: center; gap: 7px; padding: 6px 10px 7px; }
.sxb-batchhead .l { font-family: var(--mono); font-size: 7.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-dim); }
.sxb-batchhead .over { font-family: var(--mono); font-size: 7.5px; color: var(--fg-mute); }
.sxb-batchhead .rst { margin-left: auto; border: 0; background: transparent; color: var(--teal); cursor: pointer; font-family: var(--ui); font-size: 10px; padding: 0; }
.sxb-batchhead .rst:hover { text-decoration: underline; }
.sxb-batchhead .rst[disabled] { color: var(--fg-faint); cursor: default; text-decoration: none; }
.sxb-stepper { display: inline-flex; align-items: center; height: 22px; border: 1px solid var(--line); border-radius: var(--r-1); background: var(--bg-deep); overflow: hidden; }
.sxb-stepper button { width: 21px; height: 100%; border: 0; background: transparent; color: var(--fg-mute); cursor: pointer; font-family: var(--mono); font-size: 12px; line-height: 1; }
.sxb-stepper button:hover { background: var(--bg-sub); color: var(--fg-strong); }
.sxb-stepper button[disabled] { color: var(--fg-faint); cursor: not-allowed; background: transparent; }
.sxb-stepper .v { min-width: 46px; text-align: center; font-family: var(--mono); font-size: 9.5px; color: var(--fg-strong);
  border-left: 1px solid var(--line); border-right: 1px solid var(--line); height: 100%; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.sxb-dryrun { border-top: 1px solid var(--line-soft); background: var(--bg-deep); padding: 9px 10px; display: flex; flex-direction: column; gap: 7px; }
.sxb-dryrun .ln { font-size: 11px; color: var(--fg-mute); line-height: 1.5; }
.sxb-dryrun .ln b { color: var(--fg-strong); font-weight: 600; }
.sxb-dryrun .comp { display: flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: 8px; letter-spacing: .02em; color: var(--fg-dim); flex-wrap: wrap; }
.sxb-dryrun .comp .q { color: var(--teal); }
.sxb-dryrun .comp .au { color: var(--cue-amber); }
.sxb-dryrun .comp .sk { color: var(--fg-mute); }
.sxb-dryrun .comp b { color: var(--fg-strong); font-weight: 600; }
.sxb-dryrun .arow { display: flex; align-items: center; gap: 7px; }
.sxb-dryrun .arow .sx-btn { flex: 1; justify-content: center; }
.sxb-dryrun .none { font-size: 10.5px; color: var(--fg-dim); }
.sxb-batch-seg { flex-wrap: wrap; }
.sxb-idchip { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px 0 3px; flex-shrink: 0;
  border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--bg-sub); }
.sxb-idchip .av { width: 17px; height: 17px; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--ui); font-size: 7.5px; font-weight: 600; color: rgba(0,0,0,.65); }
.sxb-idchip .nm { font-size: 10.5px; color: var(--fg); white-space: nowrap; }
.sxb-idchip.sm { height: 18px; }
.sxb-idchip.sm .av { width: 14px; height: 14px; font-size: 6.5px; }
.sxb-idchip.sm .nm { font-size: 9.5px; }
.sxb-lbl { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 7px; flex-shrink: 0; cursor: default;
  border: 1px dashed var(--line-strong); border-radius: var(--r-1); background: transparent; }
.sxb-lbl svg { color: var(--fg-dim); flex-shrink: 0; }
.sxb-lbl .tx { font-family: var(--mono); font-size: 9.5px; color: var(--fg-mute); letter-spacing: .02em; }
.sxb-lbl .x { width: 13px; height: 13px; margin-left: 1px; border: 0; background: transparent; color: var(--fg-dim); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; border-radius: 2px; }
.sxb-lbl .x:hover { color: var(--fg); background: var(--bg-sub); }
.sxb-lbl.sm { height: 17px; }
.sxb-lbl.sm .tx { font-size: 8.5px; }
.sxb-asfield { display: flex; flex-direction: column; gap: 7px; }
.sxb-as-labels { display: flex; flex-direction: column; gap: 4px; }
.sxb-as-labels .ll { font-family: var(--mono); font-size: 7px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-dim); }
.sxb-as-labels .ls { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.sxb-ascombo { position: relative; }
.sxb-asinput { display: flex; align-items: center; gap: 6px; height: 26px; padding: 0 8px; border: 1px solid var(--line); border-radius: var(--r-1);
  background: var(--bg-deep); box-shadow: inset 0 1px 2px rgba(0,0,0,.35); }
.sxb-asinput:focus-within { border-color: var(--teal-deep); }
.sxb-asinput svg { color: var(--fg-dim); flex-shrink: 0; }
.sxb-asinput input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--fg); font-family: var(--ui); font-size: 11px; outline: none; }
.sxb-asinput input::placeholder { color: var(--fg-dim); }
.sxb-asmenu { position: absolute; z-index: 62; left: 0; right: 0; top: calc(100% + 4px); background: var(--bg-panel); border: 1px solid var(--line-strong);
  border-radius: var(--r-2); box-shadow: var(--float); padding: 4px; max-height: 210px; overflow-y: auto; }
.sxb-assec { font-family: var(--mono); font-size: 7px; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-dim); padding: 5px 7px 3px; }
.sxb-asopt { width: 100%; display: flex; align-items: center; gap: 8px; padding: 6px 7px; border: 0; border-radius: var(--r-1); background: transparent;
  color: var(--fg); cursor: pointer; font-family: var(--ui); font-size: 11px; text-align: left; }
.sxb-asopt:hover { background: var(--bg-row-hover); }
.sxb-asopt .av { width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 7.5px; font-weight: 600; color: rgba(0,0,0,.65); }
.sxb-asopt .nm { flex: 1; min-width: 0; }
.sxb-asopt svg { color: var(--fg-dim); flex-shrink: 0; }
.sxb-asopt.lbl .nm { font-family: var(--mono); font-size: 10px; color: var(--fg-mute); }
.sxb-asopt .warn { flex-shrink: 0; font-family: var(--mono); font-size: 7px; letter-spacing: .06em; text-transform: uppercase; color: var(--cue-amber);
  border: 1px dashed color-mix(in srgb, var(--cue-amber) 45%, transparent); border-radius: 2px; padding: 1px 4px; }
.sxb-asnone { padding: 6px 8px; font-size: 10px; color: var(--fg-dim); }
.sxb-ashr { border-top: 1px solid var(--line-soft); margin: 3px 2px; }
.sxb-people { border: 1px solid var(--line); border-radius: var(--r-3); overflow: hidden; background: var(--bg-panel); }
.sxb-people .pgrp { display: flex; align-items: center; gap: 6px; height: 20px; padding: 0 10px; background: var(--bg-app); border-bottom: 1px solid var(--line-soft);
  font-family: var(--mono); font-size: 7px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-dim); }
.sxb-people .pgrp .n { color: var(--fg-mute); }
.sxb-people .prow { display: flex; align-items: center; gap: 9px; height: 34px; padding: 0 10px; border-bottom: 1px solid var(--line-soft); cursor: pointer; }
.sxb-people .prow:last-child { border-bottom: 0; }
.sxb-people .prow:hover { background: var(--bg-row-hover); }
.sxb-people .prow .ct { margin-left: auto; font-family: var(--mono); font-size: 9px; color: var(--fg-dim); flex-shrink: 0; }
.sxb-people .prow .ct b { color: var(--fg-mute); font-weight: 600; }
.ssv-reg { display: flex; flex-direction: column; gap: 12px; }
.ssv-reg-ver { display: flex; flex-direction: column; gap: 6px; }
.ssv-reg-verh { display: flex; align-items: baseline; gap: 8px; padding: 0 1px; }
.ssv-reg-verh .vlbl { font-family: var(--mono); font-size: 8.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-mute); }
.ssv-reg-verh .vnote { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); }
.ssv-reg-verh .vspan { margin-left: auto; font-family: var(--mono); font-size: 8px; color: var(--fg-dim); }
.ssv-reg-row { position: relative; display: flex; align-items: flex-start; gap: 9px; padding: 8px 8px 8px 9px; border: 1px solid var(--line); border-radius: var(--r-2); background: var(--bg-deep); }
.ssv-reg-row.active { border-color: var(--teal-deep); background: var(--teal-bg); }
.ssv-reg-row .rl { flex: 1; min-width: 0; }
.ssv-reg-row .role { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--fg-strong); }
.ssv-reg-row .fn { font-family: var(--mono); font-size: 8.5px; color: var(--fg-mute); margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ssv-reg-row .meta { font-family: var(--mono); font-size: 7.5px; letter-spacing: .02em; color: var(--fg-dim); margin-top: 3px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ssv-reg-row .meta .plumb { color: var(--cue-amber); border: 1px dashed color-mix(in srgb, var(--cue-amber) 40%, transparent); border-radius: 2px; padding: 0 3px; }
.ssv-reg-st { font-family: var(--mono); font-size: 7px; letter-spacing: .1em; text-transform: uppercase; border-radius: 2px; padding: 1px 5px; flex-shrink: 0; }
.ssv-reg-st.active { color: var(--teal); border: 1px solid var(--teal-deep); }
.ssv-reg-st.open { color: var(--st-resolved); border: 1px solid rgba(122,154,134,.5); }
.ssv-reg-st.idle { color: var(--fg-dim); border: 1px solid var(--line); }
.ssv-reg-row .sx-ovf { width: 24px; height: 24px; flex-shrink: 0; }
.ssv-reg-unreg { display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border: 1px solid color-mix(in srgb, var(--cue-amber) 45%, transparent);
  border-left: 3px solid var(--cue-amber); border-radius: var(--r-1); background: var(--st-flagged-bg); }
.ssv-reg-unreg .gi { color: var(--cue-amber); flex-shrink: 0; margin-top: 1px; }
.ssv-reg-unreg .gt { flex: 1; min-width: 0; }
.ssv-reg-unreg .g1 { font-size: 11.5px; color: var(--fg-strong); }
.ssv-reg-unreg .g2 { font-family: var(--mono); font-size: 8.5px; color: var(--fg-mute); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ssv-reg-unreg .g3 { font-size: 10px; color: var(--fg-mute); margin-top: 4px; line-height: 1.45; }
.ssv-reg-regrow { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.ssv-reg-regrow .rl2 { font-family: var(--mono); font-size: 8px; letter-spacing: .06em; text-transform: uppercase; color: var(--fg-dim); }
.ssv-reg-sim { display: flex; align-items: center; gap: 7px; }
.ssv-reg-sim .l { font-family: var(--mono); font-size: 7.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-dim); flex-shrink: 0; }
.sxb-prov { display: inline-flex; align-items: center; gap: 5px; font-family: var(--mono); font-size: 8px; letter-spacing: .02em; color: var(--fg-dim); }
.sxb-prov svg { color: var(--st-resolved); flex-shrink: 0; }
.sxb-prov .who { color: var(--fg-mute); }
.sxb-prov .sess { color: var(--tc-green); }
.sxb-prov.legacy svg { color: var(--fg-dim); }
.sxb-prov.legacy { font-style: italic; }
.ssv-set-grp { font-family: var(--mono); font-size: 8px; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-dim); padding: 2px 1px 0; display: flex; align-items: center; gap: 7px; }
.ssv-set-grp .gn { color: var(--fg-mute); }
.ssv-set-card { border: 1px solid var(--line); border-radius: var(--r-2); background: var(--bg-deep); overflow: hidden; flex-shrink: 0; }
.ssv-set-grp { flex-shrink: 0; }
.ssv-set-row { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-bottom: 1px solid var(--line-soft); }
.ssv-set-row:last-child { border-bottom: 0; }
.ssv-set-row .rl { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ssv-set-row .rl .k { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--fg); }
.ssv-set-row .rl .s { font-size: 9.5px; color: var(--fg-dim); line-height: 1.45; }
.ssv-set-row .rc { flex-shrink: 0; display: flex; align-items: center; gap: 6px; }
.ssv-set-sub { padding: 0 10px 10px; display: flex; flex-direction: column; gap: 7px; border-bottom: 1px solid var(--line-soft); }
.ssv-set-card > .ssv-set-sub:last-child { border-bottom: 0; }
.ssv-set-sub .fl { font-family: var(--mono); font-size: 7.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-dim); }
.ssv-set-note { font-family: var(--mono); font-size: 7.5px; letter-spacing: .02em; color: var(--fg-dim); line-height: 1.5; }
.ssv-set-note b { color: var(--fg-mute); font-weight: 500; }
.ssv-set-note.warn { color: var(--cue-amber); }
.ssv-set-swatch { width: 15px; height: 15px; border-radius: 3px; flex-shrink: 0; border: 1px solid rgba(0,0,0,.35); cursor: pointer; }
.ssv-set-swatch.on { box-shadow: 0 0 0 2px var(--bg-deep), 0 0 0 3px var(--fg-strong); }
.ssv-set-kbdph { border: 1px dashed var(--line-strong); border-radius: var(--r-1); background: var(--bg-app); padding: 9px 10px; display: flex; flex-direction: column; gap: 4px; }
.ssv-set-kbdph .t { font-size: 10.5px; color: var(--fg-mute); }
.ssv-set-kbdph .s { font-family: var(--mono); font-size: 8px; letter-spacing: .02em; color: var(--fg-dim); line-height: 1.5; }
.ssv-export { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-bottom: 1px solid var(--line-soft); }
.ssv-export:last-child { border-bottom: 0; }
.ssv-export .xl { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ssv-export .xl .k { font-size: 11.5px; color: var(--fg); }
.ssv-export .xl .s { font-family: var(--mono); font-size: 8px; color: var(--fg-dim); }
.ssv-export .xprog { flex: 1; display: flex; align-items: center; gap: 8px; }
.ssv-export .xprog .bar { flex: 1; height: 3px; background: var(--bg-app); border: 1px solid var(--line-soft); position: relative; }
.ssv-export .xprog .bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--teal); transition: width .16s linear; }
.ssv-export .xprog .ct { font-family: var(--mono); font-size: 8px; color: var(--fg-mute); flex-shrink: 0; }
.ssv-export .done { font-family: var(--mono); font-size: 8.5px; color: var(--st-resolved); }
.ssv-set-seg { display: inline-flex; height: 24px; border: 1px solid var(--line); border-radius: var(--r-1); overflow: hidden; background: var(--bg-app); }
.ssv-set-seg button { border: 0; background: transparent; cursor: pointer; padding: 0 10px; color: var(--fg-dim); font-family: var(--ui); font-size: 10.5px; }
.ssv-set-seg button + button { border-left: 1px solid var(--line); }
.ssv-set-seg button:hover { color: var(--fg-mute); }
.ssv-set-seg button.on { background: var(--bg-sub); color: var(--fg-strong); }
.ssv-set-select { height: 24px; border: 1px solid var(--line); border-radius: var(--r-1); background: var(--bg-app); color: var(--fg);
  font-family: var(--ui); font-size: 10.5px; padding: 0 6px; outline: none; cursor: pointer; max-width: 156px; }
.ssv-set-select:focus { border-color: var(--teal-deep); }
.ssv-reg-sim { justify-content: flex-end; }

/* port-local additions (slt-port-ch1): identity-chip clear ×; disabled color swatch (marker color = demanded plumbing) */
.sxb-idchip .x { display: inline-flex; align-items: center; border: 0; background: transparent; color: var(--fg-dim); cursor: pointer; padding: 0 1px; }
.sxb-idchip .x:hover { color: var(--fg-strong); }
.ssv-set-swatch.dis { opacity: .38; cursor: not-allowed; }

/* ═══ #4682 cue-pack chip family (buy-once canonical pack, bound+indexed) ═══ */
/* pool-row provenance badge — same family as .sxb-auto/.sxb-pulled */
.sxb-packb { font-family: var(--mono); font-size: 7px; letter-spacing: .12em; color: var(--teal);
  border: 1px solid var(--teal-deep); border-radius: 2px; padding: 1px 4px; flex-shrink: 0; }
/* cue-row scoped dot — lights ONLY when the cue's canonical has a bound+indexed pack */
.sxb-packdot { width: 7px; height: 7px; border-radius: 2px; background: var(--teal); opacity: .85;
  flex-shrink: 0; display: inline-block; margin-right: 4px; }
/* pool-header chip — names the pack(s) feeding this cue's pool */
.sxb-packhdr { display: flex; align-items: center; gap: 6px; margin: 6px 10px 2px; padding: 4px 8px;
  border: 1px solid var(--teal-deep); border-radius: var(--r-1); background: color-mix(in srgb, var(--teal) 7%, transparent);
  font-family: var(--mono); font-size: 9px; color: var(--fg-dim); letter-spacing: .03em; }
.sxb-packhdr b { color: var(--teal); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: 8px; }
.sxb-packhdr .d { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); flex-shrink: 0; }
