/* ==========================================================================
   /demo — the guided tour (answer 306c)

   Loaded via extra_sheets, so it lands after skin.css and can win on equal
   specificity. Every rule is prefixed `#page-root #app-root` for the reason
   static/dashboard.css writes out at length: two IDs beat one at any number
   of classes, which clears both of skin.css's purges at once.
   ========================================================================== */

#page-root #app-root .dmoPlayer {
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  padding: 0 0 18px;
  margin: 8px 0 22px;
  overflow: hidden;
  border: 1px solid var(--mi-hair) !important;
  border-radius: var(--mi-radius-small) !important;
  background-color: var(--mi-panel-bg) !important;
}

/* The step clock. At rest it is scaleX(0) at the LEFT, so a timer that never
   ticks leaves an empty bar rather than a full one claiming the step is over. */
#page-root #app-root .dmoBar {
  height: 2px;
  background-color: var(--mi-hair) !important;
}

#page-root #app-root .dmoBarFill {
  display: block;
  height: 100%;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background-color: var(--i-accent) !important;
}

#page-root #app-root .dmoTop {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 18px 0;
}

#page-root #app-root .dmoHeading {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

#page-root #app-root .dmoTitle {
  margin: 0;
  font: 400 22px/1.15 "Instrument Serif", Georgia, serif;
  color: var(--mi-ink-1) !important;
}

#page-root #app-root .dmoRoute {
  font: 400 10.5px/1.2 "IBM Plex Mono", ui-monospace, monospace;
  letter-spacing: 0.04em;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoCaption {
  margin: 0;
  padding: 0 18px;
  max-width: 78ch;
  font: 400 13.5px/1.65 Barlow, system-ui, sans-serif;
  color: var(--mi-ink-2) !important;
}

#page-root #app-root .dmoControls {
  display: flex;
  align-items: center;
  gap: 6px;
}

#page-root #app-root .dmoPlay,
#page-root #app-root .dmoStep {
  padding: 5px 13px;
  font: 500 11.5px/1 Barlow, system-ui, sans-serif;
  cursor: pointer;
  border: 1px solid var(--mi-hair) !important;
  border-radius: var(--mi-radius-pill) !important;
  background-color: transparent !important;
  color: var(--mi-ink-2) !important;
}

#page-root #app-root .dmoPlay {
  min-width: 62px;
  border-color: var(--i-accent-edge) !important;
  color: var(--i-accent) !important;
}

#page-root #app-root .dmoStep {
  min-width: 30px;
  font-size: 15px;
  line-height: 0.9;
}

#page-root #app-root .dmoPlay:hover,
#page-root #app-root .dmoStep:hover {
  background-color: var(--mi-control-bg-hover) !important;
}

#page-root #app-root .dmoExhibit {
  padding: 0 18px;
  min-height: 260px;
}

#page-root #app-root .dmoStamp {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  padding: 0 18px;
}

#page-root #app-root .dmoDots {
  display: flex;
  gap: 6px;
  padding: 0 18px;
}

#page-root #app-root .dmoDot {
  width: 26px;
  height: 26px;
  font: 500 11px/1 "IBM Plex Mono", ui-monospace, monospace;
  cursor: pointer;
  border: 1px solid var(--mi-hair) !important;
  border-radius: 999px !important;
  background-color: transparent !important;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoDot.is-on,
#page-root #app-root .dmoDot.is-done {
  border-color: var(--i-accent) !important;
  color: var(--i-accent) !important;
}

#page-root #app-root .dmoDot.is-on {
  background-color: var(--i-accent) !important;
  color: var(--mi-black, #000) !important;
}

/* ---- exhibits ------------------------------------------------------------ */

#page-root #app-root .dmoRail {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 9px;
}

#page-root #app-root .dmoQuote {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 11px 13px;
  border: 1px solid var(--mi-hair) !important;
  border-radius: var(--mi-radius-small) !important;
  background-color: rgba(255, 255, 255, 0.02) !important;
}

#page-root #app-root .dmoQuoteSym {
  font: 400 10px/1.2 "IBM Plex Mono", ui-monospace, monospace;
  letter-spacing: 0.08em;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoQuotePx {
  font: 500 18px/1 "IBM Plex Mono", ui-monospace, monospace;
  font-variant-numeric: tabular-nums;
  color: var(--mi-ink-1) !important;
}

#page-root #app-root .dmoQuotePct {
  font: 500 11.5px/1 "IBM Plex Mono", ui-monospace, monospace;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoQuotePct[data-sign="up"] { color: var(--i-bull) !important; }
#page-root #app-root .dmoQuotePct[data-sign="down"] { color: var(--i-bear) !important; }

#page-root #app-root .dmoChartHost {
  position: relative;
  height: 300px;
  border-radius: var(--mi-radius-small) !important;
  background-color: var(--mi-chart-well, #000) !important;
  overflow: hidden;
}

#page-root #app-root .dmoProv {
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

#page-root #app-root .dmoProvFig {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#page-root #app-root .dmoProvNum {
  font: 500 42px/1 "IBM Plex Mono", ui-monospace, monospace;
  font-variant-numeric: tabular-nums;
  color: var(--i-accent) !important;
}

#page-root #app-root .dmoProvLabel {
  font: 400 11px/1.3 Barlow, system-ui, sans-serif;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoProvChain {
  display: flex;
  flex-direction: column;
}

#page-root #app-root .dmoProvRow {
  display: flex;
  gap: 14px;
  padding: 7px 0;
  border-bottom: 1px solid var(--mi-hair) !important;
}

#page-root #app-root .dmoProvKey {
  flex: 0 0 128px;
  font: 400 10.5px/1.4 Barlow, system-ui, sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoProvVal {
  font: 400 12px/1.4 "IBM Plex Mono", ui-monospace, monospace;
  color: var(--mi-ink-1) !important;
  word-break: break-all;
}

#page-root #app-root .dmoFilings {
  list-style: none;
  margin: 0;
  padding: 0;
}

#page-root #app-root .dmoFiling {
  display: grid;
  grid-template-columns: 100px 80px minmax(0, 1fr);
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid var(--mi-hair) !important;
  text-decoration: none;
}

#page-root #app-root .dmoFilingDate,
#page-root #app-root .dmoFilingWhat {
  font: 400 12px/1.4 Barlow, system-ui, sans-serif;
  color: var(--mi-ink-3) !important;
}

#page-root #app-root .dmoFilingForm {
  font: 500 12px/1.4 "IBM Plex Mono", ui-monospace, monospace;
  color: var(--i-accent) !important;
}

#page-root #app-root .dmoHonest {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

#page-root #app-root .dmoRules {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 0;
  padding: 0 0 0 18px;
}

#page-root #app-root .dmoRules li {
  font: 400 12.5px/1.55 Barlow, system-ui, sans-serif;
  color: var(--mi-ink-2) !important;
}

@media (max-width: 860px) {
  #page-root #app-root .dmoProv { grid-template-columns: minmax(0, 1fr); }
  #page-root #app-root .dmoChartHost { height: 220px; }
  #page-root #app-root .dmoFiling { grid-template-columns: 92px minmax(0, 1fr); }
  #page-root #app-root .dmoFilingWhat { grid-column: 1 / -1; }
}
