/* ============================================================
 * R&K Kelas Inggris — Theme Tokens
 * Palette: "Royal British Blue × Coral Warmth"
 * Goal: profesional, modern, hangat, fun untuk segala usia
 * ============================================================ */

:root {
  /* ===== Backgrounds ===== */
  --bg-primary:      #f4f9ff;   /* sky cream — bersih, friendly */
  --bg-secondary:    #e3effd;   /* soft blue tint */
  --bg-card:         #ffffff;
  --bg-soft:         #eef6ff;

  /* ===== Brand: Royal Blue ===== */
  --primary:         #1e3a8a;   /* royal blue — trustworthy, profesional */
  --primary-hover:   #1e40af;
  --primary-light:   #dbeafe;
  --primary-dark:    #1e293b;

  /* ===== Accent: Warm Coral ===== */
  --secondary:       #f97056;   /* coral — energetic, friendly */
  --secondary-hover: #ea580c;
  --secondary-light: #fed7c8;
  --secondary-dark:  #c2410c;

  /* ===== Highlight: Sunny Yellow ===== */
  --accent:          #fbbf24;   /* warm yellow */
  --accent-hover:    #f59e0b;
  --accent-light:    #fef3c7;

  /* ===== Text ===== */
  --text:            #1e293b;
  --text-secondary:  #475569;
  --text-muted:      #94a3b8;

  /* ===== Borders & Shadows ===== */
  --border:          #cbd5e1;
  --border-soft:     #e2e8f0;
  --shadow-sm:       0 2px 10px rgba(30, 58, 138, 0.08);
  --shadow:          0 6px 22px rgba(30, 58, 138, 0.12);
  --shadow-lg:       0 12px 32px rgba(30, 58, 138, 0.16);

  /* ===== Semantic ===== */
  --success:         #22c55e;
  --warning:         #f59e0b;
  --error:           #ef4444;
  --overlay:         rgba(15, 23, 42, 0.62);

  /* ===== Legacy aliases ===== */
  --blue:            var(--primary);
  --blue-light:      var(--primary-light);
  --coral:           var(--secondary);
  --coral-light:     var(--secondary-light);
  --gold:            var(--accent);
  --gold-light:      var(--accent-light);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  background: var(--bg-primary);
  color: var(--text);
  margin: 0;
  padding: 0;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

/* Header gradient: royal blue → coral */
.header,
.topbar {
  background: linear-gradient(135deg, #1e3a8a 0%, #f97056 100%) !important;
  color: white;
}

/* Auth pages */
body.auth-bg,
body.register-bg {
  background: linear-gradient(135deg, #dbeafe 0%, #f4f9ff 100%) !important;
}

/* Primary CTA buttons */
.btn-primary,
.cta-primary,
.start-btn {
  background: linear-gradient(135deg, var(--primary), var(--secondary)) !important;
  color: white !important;
  box-shadow: 0 8px 22px rgba(249, 112, 86, 0.32) !important;
  border: none !important;
  font-weight: 700;
}

/* Skip link (accessibility) */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: var(--primary);
  color: white;
  padding: 12px 20px;
  z-index: 10000;
  text-decoration: none;
  border-radius: 0 0 8px 0;
}
.skip-link:focus { top: 0; }

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