/* ================================================================
   PURPLE UX POLISH — collegemap/web/purple.css  (2026-05-17)
   Separate stylesheet; linked as last <link> = merge-proof.
   Purple lane only — no logic or data changes.
   ================================================================ */

/* ── skip link (keyboard / screen-reader a11y) ─────────────────── */
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  background: #58a6ff;
  color: #0d1117;
  text-decoration: none;
  font: 600 .9rem system-ui, sans-serif;
  padding: 10px 18px;
  border-radius: 0 0 6px 0;
  z-index: 9999;
  white-space: nowrap;
}
.skip-link:focus {
  position: fixed;
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  clip: auto;
  outline: none;
}

/* ── focus rings (WCAG 2.4.7 — every focusable element) ───────── */
*:focus-visible {
  outline: 2px solid #58a6ff !important;
  outline-offset: 2px !important;
}

/* ── minimum touch targets (WCAG 2.5.5 — 44×44 dp) ─────────────── */
#reset-btn    { min-height: 44px !important; min-width: 72px !important; }
#state-toggle { min-height: 36px !important; }
.pg-grp       { min-height: 28px !important; min-width: 28px !important; }
.dep-btn      { min-height: 28px !important; }
.tab-btn      { min-height: 36px !important; min-width: 64px !important; }
.sort-btn     { min-height: 28px !important; }
.branch-btn   { min-height: 26px !important; }
.ctrl-btn     { min-height: 30px !important; }
.ab-view-btn  { min-height: 30px !important; }

/* ── 5-project nav: touch targets + current-page indicator ─────── */
#proj-nav a { min-height: 36px; display: inline-flex !important; align-items: center !important; }
#proj-nav a[aria-current="page"] { outline: 2px solid currentColor !important; outline-offset: 2px !important; }

/* ── view-switcher buttons (Map / Scatter / Rankings) ───────────── */
.vbtn { min-height: 36px !important; min-width: 72px !important; }

/* ── cachebust stamp ────────────────────────────────────────────── */
#purple-build { font-size: 9px; color: #484f58; margin-left: auto; white-space: nowrap; cursor: help; user-select: none; }

/* ── contrast fixes: bump #484f58 → #6e7681 (≥4.5:1 on #0d1117) */
.section-meta, .hdr-badge, .sl-label,
.card .tag, #footer, #attrib, #attrib a { color: #6e7681 !important; }
