/* Lane 5 Today strip: scoped token-only overrides for the last legacy member
   surface. Strip CHROME only — the protocol item cards themselves are styled
   by protocolItemCard.css (WS-1 shared component). */

#screen-dashboard #view-today {
  display: grid;
  gap: var(--spacing-4);
}

#screen-dashboard #view-today > h3 {
  margin: 0;
  color: var(--color-semantic-text-on-canvas);
  font-family: var(--font-family-display);
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-light);
  line-height: var(--font-line-height-tight);
}

#screen-dashboard .today-activation {
  display: grid;
  gap: var(--spacing-1);
  border-top: var(--stroke-border-default) solid var(--color-semantic-border-subtle);
  padding-block: var(--spacing-3);
}

#screen-dashboard .today-activation p {
  margin: 0;
  color: var(--color-semantic-text-secondary);
  font-size: var(--font-size-sm);
  line-height: var(--font-line-height-normal);
}

/* The strip paragraph rule above is intentionally broad. Keep the activation
   eyebrow on the brand label tokens with a more specific selector so this
   file's source order cannot promote it to body-copy sizing. */
#screen-dashboard .today-activation p.today-activation__eyebrow {
  font-size: var(--font-size-label);
  letter-spacing: var(--font-letter-spacing-label);
  text-transform: uppercase;
}

#screen-dashboard #today-actions {
  display: grid;
  /* This gap is overridden to 0 by styles.css:1271-1273 (the Direction C
     app-shell block), preserving the zero-gap ledger for ungrouped rows. */
  gap: var(--spacing-3);
  /* Section spacing is applied only to .slot-wrap below, so referral,
     read-only-context and tracked-only rows remain zero-gap. */
  --today-section-gap: var(--spacing-4);
}

/* v9.8.0 §06b :1155 — Today's time-block section is the ledger GROUP. The
   shell wrapper owns the outside rhythm and keeps the eyebrow on the canvas;
   the nested section owns the closed contour. Rows inside stay unfilled and
   square-edged (styles.css:1332 — asserted by test/dashboard-css.test.js). */
#screen-dashboard #today-actions > .slot-wrap {
  display: grid;
  gap: 0;
  margin-block: var(--today-section-gap);
}

#screen-dashboard #today-actions > .slot-wrap + .slot-wrap {
  margin-block-start: 0;
}

#screen-dashboard #today-actions > .slot-wrap:first-child {
  margin-block-start: 0;
}

#screen-dashboard #today-actions > .slot-wrap:last-child {
  margin-block-end: 0;
}

#screen-dashboard #today-actions > .slot-wrap > .time-eyebrow {
  display: block;
  padding: 4px 0 8px;
  border: 0;
  margin: 0;
}

#screen-dashboard #today-actions > .slot-wrap > .time-slot {
  display: grid;
  gap: 0;
  padding: 0;
  background: var(--color-semantic-surface-raised);
  border: var(--stroke-border-default) solid var(--color-semantic-border-subtle);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-none);
}

#screen-dashboard #checkin-form {
  display: grid;
  gap: var(--spacing-3);
  margin-top: var(--spacing-1);
}

#screen-dashboard #checkin-form .primary {
  min-height: 48px;
  border-radius: var(--radius-cta);
  background: var(--color-semantic-action-primary);
  color: var(--color-semantic-action-primary-on);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
}

main:has(#screen-dashboard.active) .app-tab-bar {
  position: static;
  bottom: auto;
}

.app-tab-bar {
  background: var(--color-semantic-surface-raised);
  border-color: var(--color-semantic-border-subtle);
  box-shadow: var(--shadow-sm);
}

.app-tab {
  min-height: 44px;
  color: var(--color-semantic-text-secondary);
  border-radius: var(--radius-tab);
}

.app-tab.active {
  background: var(--color-semantic-surface-canvas);
  color: var(--color-semantic-action-primary);
  box-shadow: var(--shadow-xs);
}
