/* ═══════════════════════════════════════════════════════════════
   BASE / RESET
   ═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body { min-height: 100%; }

body {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-primary);
  background-color: var(--bg-canvas);
  background-image:
    radial-gradient(ellipse at 50% 0%, rgba(255, 200, 87, 0.05), transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(197, 40, 61, 0.04), transparent 50%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
}

button { font: inherit; color: inherit; cursor: pointer; }

a { color: var(--accent-emphasis); }

/* ═══════════════════════════════════════════════════════════════
   AGENCY CLOCK
   Every date and time in the app is agency time; this states it
   once, in the header, so rosters, forms and the schedule grid can
   stay unlabelled. Quiet by design — it is chrome, not content.
   ═══════════════════════════════════════════════════════════════ */
.agency-clock {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-tertiary);
  white-space: nowrap;
  cursor: help;
}
.agency-clock__sep { opacity: 0.5; }
/* Tabular figures so the minute ticking over doesn't shift the layout. */
.agency-clock__time {
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  color: var(--text-secondary);
}

@media (max-width: 900px) {
  /* Keep the clock, drop the zone name — the title attribute still carries it. */
  .agency-clock__zone, .agency-clock__sep { display: none; }
}
