/* ============================================================================================
   VOLURR — SOVEREIGN UI · V2-F · the INTELLIGENCE LAYER, the STAGE queues, the REPLAY player,
   LIVE mode   (app/static/css/sovereign-intel.css — loads after sovereign-lab.css; tokens only)
   ============================================================================================
   ANALYSIS — NOT SIGNALS. The room's AGI tab returns prose a model wrote over the room's own log.
   This file makes the KIND of statement visible before the statement: a caption says it is an AI
   EXPLANATION and where it came from, the pending and unavailable states look like what they are,
   and the standing law is printed under every answer. Nothing here changes what is asked of the
   model or what comes back. The stage queues and the replay player get the same grammar as the
   rest of the room, and the colour law holds: --up / --down mean price direction, so approve /
   deny, join / leave and "granted" read in success / danger, never in the candle colours.       */

/* ── AI · the report chips ────────────────────────────────────────────────────────────────── */
#lrdDock .lrd-aibtns{ display:flex; flex-wrap:wrap; gap:var(--sv-2); margin-bottom:var(--sv-4); }
#lrdDock .lrd-aib{ display:inline-flex; align-items:center; justify-content:center; min-height:var(--sv-target); padding:0 var(--sv-4);
  font:var(--sv-t-label); color:var(--sv-text-secondary); background:var(--sv-surface-1); border:1px solid var(--sv-border-subtle);
  border-radius:var(--sv-r-pill); cursor:pointer;
  transition:color var(--sv-fast) var(--sv-ease), border-color var(--sv-fast) var(--sv-ease), background var(--sv-fast) var(--sv-ease); }
#lrdDock .lrd-aib:hover{ color:var(--sv-text-primary); border-color:var(--sv-border-active); background:var(--sv-surface-2); }
#lrdDock .lrd-aib.on{ color:var(--sv-red); border-color:var(--sv-red-line); background:var(--sv-red-soft); }
#lrdDock .lrd-aib:focus-visible{ outline:none; box-shadow:var(--sv-focus); }
#lrdDock #lrdReplayBtn.lrd-aib{ border-radius:var(--sv-r-m); }

/* ── AI · the statement's kind, before the statement ─────────────────────────────────────── */
#lrdDock .lrd-aihd{ display:flex; align-items:center; gap:var(--sv-3); flex-wrap:wrap; margin-bottom:var(--sv-3); }
#lrdDock .lrd-aikind{ display:inline-flex; align-items:center; gap:6px; font:var(--sv-t-caption); letter-spacing:var(--sv-caption-track); text-transform:uppercase;
  padding:3px 8px; border-radius:var(--sv-r-pill); border:1px solid color-mix(in srgb, var(--sv-info) 40%, transparent); color:var(--sv-info); background:var(--sv-info-soft); }
#lrdDock .lrd-aikind::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
#lrdDock .lrd-aisrc{ font:var(--sv-t-meta); color:var(--sv-text-muted); font-variant-numeric:tabular-nums; }
#lrdDock .lrd-aiout{ font:var(--sv-t-body); color:var(--sv-text-primary); white-space:pre-wrap; padding:var(--sv-4); min-height:44px;
  border-radius:var(--sv-r-m); background:var(--sv-surface-1); border:1px solid var(--sv-border-subtle); border-inline-start:2px solid var(--sv-info); }
#lrdDock .lrd-aiout[data-kind="idle"]{ border-inline-start-color:var(--sv-border-subtle); }
#lrdDock .lrd-aiout[data-kind="pending"]{ color:var(--sv-text-muted); border-inline-start-color:var(--sv-warning); }
#lrdDock .lrd-aiout[data-kind="unavailable"]{ color:var(--sv-text-secondary); border-inline-start-color:var(--sv-danger); }
#lrdDock .lrd-aiout .lrd-ev{ font:var(--sv-t-secondary); color:var(--sv-text-muted); padding:0; text-align:start; }
#lrdDock .lrd-ailaw{ display:block; margin-top:var(--sv-3); font:var(--sv-t-caption); letter-spacing:var(--sv-caption-track); text-transform:uppercase; color:var(--sv-text-muted); }

/* ── STAGE · the queues: raised hands, presenting requests, join requests ─────────────────── */
#lrdDock .lrd-reqs, #lrdDock .lrd-handq{ margin-bottom:var(--sv-4); padding:var(--sv-3) var(--sv-4); border-radius:var(--sv-r-m);
  border:1px solid var(--sv-red-line); background:var(--sv-red-soft); }
#lrdDock .lrd-reqh, #lrdDock .lrd-handqh{ font:var(--sv-t-caption); letter-spacing:var(--sv-caption-track); text-transform:uppercase; color:var(--sv-red); margin-bottom:var(--sv-2); }
#lrdDock .lrd-reqn, #lrdDock .lrd-handqh b{ font:var(--sv-t-caption); font-variant-numeric:tabular-nums; background:var(--sv-red); color:var(--sv-text-on-red);
  min-width:18px; height:18px; border-radius:var(--sv-r-pill); }
#lrdDock .lrd-req, #lrdDock .lrd-handrow{ min-height:var(--sv-target); gap:var(--sv-3); padding:var(--sv-1) 0; }
#lrdDock .lrd-reqnm, #lrdDock .lrd-handnm{ font:var(--sv-t-card); color:var(--sv-text-primary); }
#lrdDock .lrd-reqbtn{ min-height:var(--sv-target); padding:0 var(--sv-4); font:var(--sv-t-label); color:var(--sv-text-secondary);
  background:var(--sv-surface-1); border:1px solid var(--sv-border-subtle); border-radius:var(--sv-r-m);
  transition:color var(--sv-fast) var(--sv-ease), border-color var(--sv-fast) var(--sv-ease), background var(--sv-fast) var(--sv-ease); }
#lrdDock .lrd-reqbtn.ok:hover{ color:var(--sv-success); border-color:color-mix(in srgb, var(--sv-success) 45%, transparent); background:var(--sv-success-soft); }
#lrdDock .lrd-reqbtn.no:hover{ color:var(--sv-danger); border-color:color-mix(in srgb, var(--sv-danger) 45%, transparent); background:var(--sv-danger-soft); }
#lrdDock .lrd-handgrant{ min-height:var(--sv-target); padding:0 var(--sv-4); font:var(--sv-t-label); border-radius:var(--sv-r-m);
  background:var(--sv-red); border:1px solid var(--sv-red); color:var(--sv-text-on-red); transition:background var(--sv-fast) var(--sv-ease); }
#lrdDock .lrd-handgrant:hover{ filter:none; background:var(--sv-red-hover); border-color:var(--sv-red-hover); }
#lrdDock .lrd-handgrant svg, #lrdDock .lrd-handqh svg{ width:var(--sv-ic-s); height:var(--sv-ic-s); }
#lrdDock .lrd-reqbtn:focus-visible, #lrdDock .lrd-handgrant:focus-visible, #lrdDock .lrd-mbtn:focus-visible{ outline:none; box-shadow:var(--sv-focus); }
/* the roster's "granted" state and its caution / danger actions follow the same law */
#lrdDock .lrd-mbtn.on{ color:var(--sv-success); border-color:color-mix(in srgb, var(--sv-success) 40%, transparent); background:var(--sv-success-soft); }
#lrdDock .lrd-mbtn.warn:hover{ color:var(--sv-warning); border-color:color-mix(in srgb, var(--sv-warning) 45%, transparent); background:var(--sv-warning-soft); }
#lrdDock .lrd-mbtn.danger:hover{ color:var(--sv-danger); border-color:color-mix(in srgb, var(--sv-danger) 45%, transparent); background:var(--sv-danger-soft); }
@media (pointer:coarse){ #lrdDock .lrd-aib, #lrdDock .lrd-reqbtn, #lrdDock .lrd-handgrant{ min-height:var(--sv-target-touch); } }

/* ── REPLAY · a timeline over the real log ───────────────────────────────────────────────── */
#lrdDock .lrd-rp-note{ font:var(--sv-t-secondary); color:var(--sv-text-muted); padding:var(--sv-2) var(--sv-4); border-inline-start:2px solid var(--sv-border-subtle); margin-bottom:var(--sv-3); }
#lrdDock .lrd-rp-note:empty{ display:none; }
#lrdDock .lrd-rp{ gap:var(--sv-3); }
#lrdDock .lrd-rp-feed{ max-height:min(300px, 42vh); gap:2px; }
#lrdDock .lrd-rpe{ font:var(--sv-t-secondary); color:var(--sv-text-secondary); padding:3px 0; border-bottom:1px solid var(--sv-border-subtle); }
#lrdDock .lrd-rpe:last-child{ border-bottom:0; }
#lrdDock .lrd-rpe b{ color:var(--sv-text-primary); font-weight:600; }
#lrdDock .lrd-rpt{ font:var(--sv-t-numeric); font-variant-numeric:tabular-nums; color:var(--sv-text-muted); margin-inline-end:6px; }
#lrdDock .lrd-rptag{ font:var(--sv-t-caption); letter-spacing:var(--sv-caption-track); text-transform:uppercase; padding:1px 6px;
  border-radius:var(--sv-r-pill); border:1px solid var(--sv-border-subtle); color:var(--sv-text-muted); }
#lrdDock .lrd-rptag.draw{ color:var(--sv-red); border-color:var(--sv-red-line); }
#lrdDock .lrd-rptag.note{ color:var(--sv-warning); border-color:color-mix(in srgb, var(--sv-warning) 40%, transparent); }
#lrdDock .lrd-rptag.join{ color:var(--sv-success); border-color:color-mix(in srgb, var(--sv-success) 40%, transparent); }
#lrdDock .lrd-rptag.leave{ color:var(--sv-danger); border-color:color-mix(in srgb, var(--sv-danger) 40%, transparent); }
#lrdDock .lrd-rp-ctl{ gap:var(--sv-3); padding-top:var(--sv-3); border-top:1px solid var(--sv-border-subtle); }
#lrdDock .lrd-rp-pp{ width:36px; height:36px; border-radius:var(--sv-r-m); background:var(--sv-red); border:1px solid var(--sv-red); color:var(--sv-text-on-red);
  transition:background var(--sv-fast) var(--sv-ease), transform var(--sv-fast) var(--sv-ease); }
#lrdDock .lrd-rp-pp:hover{ background:var(--sv-red-hover); border-color:var(--sv-red-hover); }
#lrdDock .lrd-rp-pp:active{ transform:scale(.96); }
#lrdDock .lrd-rp-pp svg{ width:var(--sv-ic-m); height:var(--sv-ic-m); }
#lrdDock .lrd-rp-scrub{ accent-color:var(--sv-red); height:24px; margin:0; }
#lrdDock .lrd-rp-t{ font:var(--sv-t-numeric); font-variant-numeric:tabular-nums; color:var(--sv-text-secondary); }
#lrdDock .lrd-rp-spd{ min-height:var(--sv-target); min-width:40px; padding:0 var(--sv-3); font:var(--sv-t-label); font-variant-numeric:tabular-nums; color:var(--sv-text-secondary);
  background:var(--sv-surface-1); border:1px solid var(--sv-border-subtle); border-radius:var(--sv-r-m); }
#lrdDock .lrd-rp-spd:hover{ color:var(--sv-text-primary); border-color:var(--sv-border-active); }
#lrdDock .lrd-rp-pp:focus-visible, #lrdDock .lrd-rp-spd:focus-visible, #lrdDock .lrd-rp-scrub:focus-visible{ outline:none; box-shadow:var(--sv-focus); }
@media (pointer:coarse){ #lrdDock .lrd-rp-pp{ width:var(--sv-target-touch); height:var(--sv-target-touch); } #lrdDock .lrd-rp-spd{ min-height:var(--sv-target-touch); } }

/* ── LIVE mode · the session on stage: the platform sidebar away, the room docked ─────────── */
.sv-rail .sv-rail-it[data-mode="live"]{ position:relative; }
.sv-rail .sv-rail-it[data-mode="live"].on{ color:var(--sv-red); }
.sv-rail .sv-rail-it[data-mode="live"].on .sv-rail-lbl::after{ content:""; display:inline-block; width:6px; height:6px; margin-inline-start:6px; border-radius:50%;
  background:var(--sv-red); box-shadow:0 0 0 3px var(--sv-red-soft); vertical-align:middle; }
body[data-sv-mode="live"] .lrd-fab{ opacity:.85; }
