/* =====================================================================
   tokens.css — Single source of truth for Memori Universiti UI
   Loaded BEFORE landing.css / admin.css on every real page so the
   palette and shared interaction styles stay consistent.
   ===================================================================== */

:root{
  /* Brand palette (canonical) */
  --uitm-purple:#4b146f;
  --uitm-purple-dark:#2a0b3f;
  --uitm-purple-deep:#17051f;
  --uitm-gold:#f4c430;
  --uitm-gold-dark:#c89516;
  --teal:#087d81;

  /* Neutrals */
  --ink:#23152e;
  --muted:#586074;            /* darkened one step for small-text contrast */
  --line:#e7dcec;
  --soft:#f7f4f8;
  --white:#ffffff;

  /* Elevation */
  --shadow:0 18px 45px rgba(42, 11, 63, .13);
  --shadow-soft:0 12px 30px rgba(42, 11, 63, .07);

  /* Radius */
  --radius:8px;

  /* Font weight scale (use these instead of arbitrary 750/840/850) */
  --fw-normal:400;
  --fw-medium:600;
  --fw-bold:700;
  --fw-heavy:800;
}

/* =========================
   Accessibility: visible keyboard focus (WCAG 2.4.7)
========================= */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.collection-card:focus-visible,
.collection-directory-card:focus-visible,
.record-card:focus-visible,
.record-row:focus-visible,
.search-result-card:focus-visible,
.screen-links-grid a:focus-visible{
  outline:3px solid var(--uitm-gold);
  outline-offset:2px;
  border-radius:var(--radius);
}

/* Keep focus visible even on dark surfaces */
.corp-strip a:focus-visible,
.site-footer a:focus-visible,
.admin-sidebar a:focus-visible,
.hero-actions .btn:focus-visible{
  outline-color:#ffe28a;
}

/* =========================
   Mobile touch targets (>= 40px tap height)
========================= */
@media (max-width: 575.98px){
  .quick-links a,
  .corp-strip a,
  .main-nav .nav-link{
    min-height:40px;
    display:inline-flex;
    align-items:center;
  }
}

/* =========================
   Required field marker
========================= */
.req{
  color:#c0392b;
  font-weight:700;
}

/* =========================
   Submit button busy state (real loading feedback)
========================= */

.is-submitting{
  pointer-events:none;
  opacity:.75;
}

.is-submitting .btn-inline-spinner{
  display:inline-block;
  width:1rem;
  height:1rem;
  margin-right:.4rem;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  vertical-align:-2px;
  animation:memori-spin .6s linear infinite;
}

@keyframes memori-spin{
  to{ transform:rotate(360deg); }
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
