/* =============================================================================
   dashboard.css — Cover3.mx daily dashboard components
   Design source: cover3mx-dashboard-design-recipe.md
   Loads after tokens.css + base.css + components.css.
   ============================================================================= */

/* ============================================================================
   Engine identity strip (dashboard header)
   ============================================================================ */

.dash-engine-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: var(--sp-3);
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}

.dash-engine-strip__item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.dash-engine-strip__item img {
  vertical-align: middle;
  border-radius: 50%;
  object-fit: cover;
}

.dash-engine-strip__sep {
  color: var(--c-text-3);
  font-size: 10px;
}

/* ============================================================================
   Zone 1 — Slate header + Quick Reference Card
   ============================================================================ */

.dash-slate-header {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--c-text-3);
  margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--c-border);
}

/* Quick Reference Card — fits one mobile screen */
.dash-qr {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  padding: 12px 16px;
  margin-bottom: 20px;
}

.dash-qr__label {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--c-text-3);
  margin-bottom: 10px;
}

.dash-qr__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--f-mono);
  font-size: 13px;
  font-weight: 500;
}

.dash-qr__table th {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--c-text-3);
  text-align: left;
  padding: 4px 0;
  border-bottom: 1px solid var(--c-border);
}

.dash-qr__table td {
  padding: 6px 0;
  border-bottom: 1px solid rgba(28, 34, 48, 0.5);
  color: var(--c-text);
  vertical-align: middle;
}

.dash-qr__table tr:last-child td {
  border-bottom: none;
}

.dash-qr__table .qr-pick {
  font-weight: 500;
  color: var(--c-text);
}

.dash-qr__table .qr-game {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--c-text-3);
  line-height: 1.3;
  margin-bottom: 2px;
}

.dash-qr__table .qr-units {
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: var(--c-text-2);
  font-size: 11px;
}

.dash-qr__table .qr-time {
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: var(--c-text-3);
  font-size: 11px;
}

/* ============================================================================
   Section labels — between zones
   ============================================================================ */

.dash-section-label {
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--c-text-2);
  margin: 24px 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border);
}

.dash-section-label:first-child {
  margin-top: 0;
}

/* ============================================================================
   Confidence badges
   ============================================================================ */

.dash-badge {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.02em;
  white-space: nowrap;
  vertical-align: middle;
}

.dash-badge--low {
  background: var(--c-conf-low-bg);
  color: var(--c-conf-low-text);
}
.dash-badge--medium {
  background: var(--c-conf-med-bg);
  color: var(--c-conf-med-text);
}
.dash-badge--high {
  background: var(--c-conf-high-bg);
  color: var(--c-conf-high-text);
}
.dash-badge--elite {
  background: var(--c-conf-elite-bg);
  color: var(--c-conf-elite-text);
}

/* ============================================================================
   Alert chips
   ============================================================================ */

.dash-chip {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 11px;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 4px;
  white-space: nowrap;
}

.dash-chip--trap {
  background: var(--c-chip-trap-bg);
  color: var(--c-chip-trap-text);
}
.dash-chip--injury {
  background: var(--c-chip-injury-bg);
  color: var(--c-chip-injury-text);
}
.dash-chip--upset {
  background: var(--c-chip-upset-bg);
  color: var(--c-chip-upset-text);
}
.dash-chip--hook {
  background: var(--c-chip-hook-bg);
  color: var(--c-chip-hook-text);
}

/* ============================================================================
   Zone 2 — Lead Play / POTD card
   ============================================================================ */

.dash-card {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  padding: 14px 16px;
  margin-bottom: 10px;
}

/* POTD — visually dominant */
.dash-card--potd {
  border: 1px solid var(--c-3w-arbiter-border);
  box-shadow: 0 0 20px rgba(239, 159, 39, 0.12);
  padding: 0;
  overflow: hidden;
}

.dash-card--potd .dash-card__inner {
  padding: 16px;
}

.dash-crown {
  background: linear-gradient(135deg, var(--c-3w-arbiter-border), #d4880f);
  padding: 6px 16px;
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: #fff;
}

.dash-card__subtitle {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--c-text-3);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  margin-bottom: 4px;
}

.dash-card__time {
  color: var(--c-text-2);
  font-weight: 500;
  margin-left: 6px;
}

.dash-card__chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

/* Pick name — varies by tier */
.dash-card__pick--potd {
  font-family: var(--f-display);
  font-size: 20px;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.2;
  margin: 8px 0;
}

.dash-card__pick--bet {
  font-family: var(--f-display);
  font-size: 17px;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.2;
  margin: 6px 0;
}

.dash-card__pick--lean {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.3;
  margin: 4px 0;
}

.dash-card__pick--pass {
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 400;
  color: var(--c-text-2);
  text-decoration: line-through;
  line-height: 1.3;
  margin: 4px 0;
}

/* Stake + confidence row */
.dash-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 8px 0;
}

.dash-card__stake {
  font-family: var(--f-mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--c-text-2);
  letter-spacing: var(--tracking-wide);
}

/* ============================================================================
   Three-way engine view
   ============================================================================ */

.dash-3w {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  margin-top: 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  overflow: hidden;
}

.dash-3w__col {
  padding: 10px 14px;
  border-left: 3px solid transparent;
  font-size: 12px;
  line-height: 1.5;
  color: var(--c-text-2);
}

.dash-3w__col {
  position: relative;
}

/* Column dividers on desktop — thin line between columns, inset from edges */
.dash-3w__col + .dash-3w__col::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--c-border);
}

.dash-3w__col--cortex {
  border-left: 3px solid var(--c-3w-cortex-border);
}
.dash-3w__col--oracle {
  border-left: 3px solid var(--c-3w-oracle-border);
}
.dash-3w__col--arbiter {
  border-left: 3px solid var(--c-3w-arbiter-border);
}

/* Engine head — avatar + badge + nickname in a row */
.dash-3w__engine-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.dash-3w__avatar {
  flex-shrink: 0;
  border-radius: 50%;
  object-fit: cover;
}

.dash-3w__engine-nick {
  font-family: var(--f-mono);
  font-size: 9px;
  color: var(--c-text-3);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  margin-top: 1px;
}

.dash-3w__engine-badge {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 3px;
  margin-bottom: 0;
}

.dash-3w__engine-badge--cortex {
  background: var(--c-3w-cortex-bg);
  color: var(--c-3w-cortex-text);
}
.dash-3w__engine-badge--oracle {
  background: var(--c-3w-oracle-bg);
  color: var(--c-3w-oracle-text);
}
.dash-3w__engine-badge--arbiter {
  background: var(--c-3w-arbiter-bg);
  color: var(--c-3w-arbiter-text);
}

.dash-3w__text {
  font-size: 12px;
  font-weight: 400;
  color: var(--c-text-2);
  line-height: 1.5;
}

.dash-3w__text strong {
  color: var(--c-text);
  font-weight: 600;
}

/* Mobile: stack columns vertically */
@media (max-width: 640px) {
  .dash-3w {
    grid-template-columns: 1fr;
  }
  /* Hide desktop column divider pseudo-elements when stacked */
  .dash-3w__col + .dash-3w__col::before {
    display: none;
  }
  /* Gap between stacked columns */
  .dash-3w__col + .dash-3w__col {
    margin-top: 8px;
  }
}

/* ============================================================================
   Zone 3 — Official Bets + Leans
   ============================================================================ */

/* Official Bet card — standard weight */
.dash-card--bet {
  border-left: 3px solid var(--c-3w-arbiter-border);
}

/* Lean card — lighter treatment */
.dash-card--lean {
  border-left: 3px solid var(--c-3w-oracle-border);
  padding: 10px 14px;
}

.dash-card--lean .dash-3w__col {
  padding: 8px 10px;
}

.dash-card--lean .dash-3w__text {
  font-size: 12px;
}

/* Conditional play — dashed border */
.dash-card--conditional {
  border-style: dashed;
}

.dash-conditional-flag {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--c-warn);
  padding: 2px 6px;
  border: 1px solid var(--c-warn);
  border-radius: 3px;
}

/* ============================================================================
   Zone 4 — Passes
   ============================================================================ */

.dash-card--pass {
  border-left: 3px solid var(--c-text-3);
  opacity: 0.75;
}

.dash-card--pass .dash-3w__col--cortex,
.dash-card--pass .dash-3w__col--oracle {
  opacity: 0.5;
}

/* ============================================================================
   Structural pass callout (entire slate is a pass)
   ============================================================================ */

.dash-full-pass {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-left: 3px solid var(--c-text-3);
  border-radius: var(--r-md);
  padding: 20px;
  margin-bottom: 20px;
}

.dash-full-pass__title {
  font-family: var(--f-display);
  font-size: var(--fs-xl);
  color: var(--c-text);
  margin: 0 0 8px;
}

.dash-full-pass__sub {
  font-size: var(--fs-sm);
  color: var(--c-text-2);
  line-height: 1.6;
  margin: 0;
}

/* ============================================================================
   Capital summary bar
   ============================================================================ */

.dash-capital {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--c-text-3);
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--c-border);
}

.dash-capital__item {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}

.dash-capital__value {
  color: var(--c-text-2);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

/* ============================================================================
   Disclaimer (always last, always present)
   ============================================================================ */

.dash-disclaimer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--c-border);
  font-size: 11px;
  color: var(--c-text-3);
  text-align: center;
  line-height: 1.6;
}

.dash-disclaimer a {
  color: var(--c-text-3);
  text-decoration: underline;
}

/* ============================================================================
   Meta line (edition, engine versions)
   ============================================================================ */

.dash-meta {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: var(--tracking-wide);
  color: var(--c-text-3);
  text-transform: uppercase;
  text-align: center;
  margin-top: 16px;
}

/* ============================================================================
   Mobile adjustments
   ============================================================================ */

@media (max-width: 640px) {
  .dash-card {
    padding: 12px 14px;
  }

  .dash-card--potd .dash-card__inner {
    padding: 14px;
  }

  .dash-card__pick--potd {
    font-size: 18px;
  }

  .dash-card__pick--bet {
    font-size: 15px;
  }

  .dash-qr__table {
    font-size: 12px;
  }

  .dash-qr__table .qr-conf {
    display: none;
  }

  .dash-capital {
    gap: 8px 16px;
  }
}
