/* ===================================
   BLUE TRADES — GLOBAL STYLESHEET v2
   Dark Mode + Glow System
   =================================== */

/* Custom Properties — Light Mode */
:root {
  /* Layout heights — defined once, used everywhere via var() */
  --header-h: 64px;
  --tabs-h: 56px;
  --ticker-h: 36px;

  /* Brand */
  --blue: #1E56E8;
  --blue-dark: #1644C8;
  --blue-light: #EEF3FD;
  --blue-glow: rgba(30, 86, 232, 0.35);
  --purple: #4F46E5;
  --purple-dark: #3B35C3;
  --purple-light: #EEECFD;
  --purple-glow: rgba(79, 70, 229, 0.35);
  --green: #10B981;
  --green-dark: #0E9A6C;
  --green-light: #ECFDF5;
  --green-glow: rgba(16, 185, 129, 0.35);

  /* Light surfaces */
  --bg-page: #F9F9FB;
  --bg-surface: #FFFFFF;
  --bg-raised: #F3F4F8;
  --bg-card: #FFFFFF;
  --border: #E4E4EC;
  --border-strong: #C8C8D8;

  /* Text */
  --text-primary: #1A1A2E;
  --text-secondary: #5C5C78;
  --text-muted: #9090A8;
  --text-inverse: #FFFFFF;

  /* Navy */
  --navy: #1A1A2E;

  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(26,26,46,0.08);
  --shadow-md: 0 4px 16px rgba(26,26,46,0.10);
  --shadow-lg: 0 12px 40px rgba(26,26,46,0.12);
  --shadow-xl: 0 24px 64px rgba(26,26,46,0.16);

  /* Radii */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --transition: 240ms ease-out;
}

/* Dark Mode Variables */
[data-theme="dark"] {
  --bg-page: #0D0D14;
  --bg-surface: #1A1A2E;
  --bg-raised: #2D2D44;
  --bg-card: #1A1A2E;
  --border: rgba(255,255,255,0.08);
  --border-strong: rgba(255,255,255,0.15);

  --text-primary: #E8E8F0;
  --text-secondary: #9090B8;
  --text-muted: #5C5C7A;
  --text-inverse: #0D0D14;

  --blue-light: rgba(30, 86, 232, 0.15);
  --purple-light: rgba(79, 70, 229, 0.15);
  --green-light: rgba(16, 185, 129, 0.15);

  --shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.5);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.6);
  --shadow-xl: 0 24px 64px rgba(0,0,0,0.7);
}

/* Reset & Base */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  font-size: 16px;
  /* NO overflow-x here — setting it on html breaks vertical scroll on mobile */
}
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: var(--bg-page);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  transition: background 300ms ease, color 300ms ease;
  overflow-x: hidden;
  position: relative;
  width: 100%;          /* always fill viewport width — prevents left-align on zoom-out */
  min-width: 0;
}
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
ul { list-style: none; }
em { font-style: italic; color: var(--blue); }

.container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* ===================================
   BUTTONS
   =================================== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  border-radius: 10px;
  transition: all var(--transition);
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
  position: relative;
  overflow: hidden;
}
.btn-sm { padding: 9px 18px; font-size: 0.875rem; border-radius: 8px; }
.btn-lg { padding: 16px 32px; font-size: 1.0625rem; border-radius: 50px; font-weight: 700; }

/* Primary — Blue */
.btn-primary {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 0 0 0 var(--blue-glow);
}
.btn-primary:hover {
  background: var(--blue-dark);
  box-shadow: 0 0 24px var(--blue-glow);
  transform: translateY(-1px);
}

/* CTA Green — pill */
.btn-green {
  background: var(--green);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.9375rem;
  box-shadow: 0 0 0 0 var(--green-glow);
}
.btn-green:hover {
  background: var(--green-dark);
  box-shadow: 0 0 28px var(--green-glow);
  transform: translateY(-2px);
}

/* Outline — blue */
.btn-outline {
  background: transparent;
  color: var(--blue);
  border: 2px solid var(--blue);
}
.btn-outline:hover {
  background: var(--blue-light);
  transform: translateY(-1px);
}

/* Text link */
.btn-link {
  background: transparent;
  color: var(--blue);
  font-size: 1rem;
  font-weight: 500;
  padding: 16px 20px;
  border-radius: 0;
  text-decoration: underline;
  text-decoration-color: transparent;
  transition: text-decoration-color var(--transition), color var(--transition);
}
.btn-link:hover {
  text-decoration-color: var(--blue);
  color: var(--blue-dark);
}
[data-theme="dark"] .btn-link { color: #60A5FA; }
[data-theme="dark"] .btn-link:hover { color: #93C5FD; text-decoration-color: #60A5FA; }

/* White */
.btn-white {
  background: #fff;
  color: var(--blue);
  font-weight: 700;
}
.btn-white:hover {
  background: #f0f0f0;
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(255,255,255,0.25);
}
.btn-ghost {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border: 2px solid rgba(255,255,255,0.3);
}
.btn-ghost:hover {
  background: rgba(255,255,255,0.22);
  border-color: rgba(255,255,255,0.5);
}

/* ===================================
   HEADER
   =================================== */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: rgba(249, 249, 251, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  transition: background 300ms ease, box-shadow var(--transition), border-color 300ms ease;
}
[data-theme="dark"] .header {
  background: rgba(13, 13, 20, 0.88);
}
.header.scrolled { box-shadow: var(--shadow-md); }
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  gap: 32px;
}
.logo-link {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.logo-svg { width: 38px; height: 38px; flex-shrink: 0; }
.logo-svg--sm { width: 32px; height: 32px; }

/* PNG logo image — transparent bg, invert on light header so arch shows navy */
.logo-img {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  object-fit: contain;
  filter: invert(1) brightness(0.15) sepia(1) hue-rotate(200deg) saturate(6);
}
[data-theme="dark"] .logo-img {
  filter: none;
}
.logo-img--footer {
  filter: none;
  opacity: 0.92;
}

/* Full wordmark logo (logo-full.png) — fills header height */
.logo-full {
  /* tall enough to fill the 68px header with comfortable padding */
  height: 44px;
  width: auto;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
  /* Image is white — invert to dark navy on light background */
  filter: invert(1) brightness(0) sepia(1) hue-rotate(200deg) saturate(8) brightness(0.18);
  transition: filter 300ms ease;
}
[data-theme="dark"] .logo-full {
  /* White logo on dark background — no filter */
  filter: none;
  opacity: 0.95;
}
/* Footer wordmark — always white */
.logo-full--footer {
  height: 36px;
  width: auto;
  filter: none;
  opacity: 0.9;
}
.logo-text {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
}
.logo-accent { color: var(--blue); }

/* ── Symbol-only logo (cropped, no text) ── */
.logo-symbol {
  height: 38px;
  width: auto;
  flex-shrink: 0;
  object-fit: contain;
  display: block;
  /* White image — invert to dark navy on light header */
  filter: invert(1) brightness(0) sepia(1) hue-rotate(200deg) saturate(8) brightness(0.18);
  transition: filter 300ms ease;
}
[data-theme="dark"] .logo-symbol {
  filter: none;
  opacity: 0.95;
}

/* ── BLEU Trades wordmark text ── */
.logo-wordmark {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
}
.logo-wordmark-bleu {
  color: var(--blue);
  font-style: italic;
}
.logo-wordmark-trades {
  color: var(--text-primary);
  font-style: normal;
}
[data-theme="dark"] .logo-wordmark-trades {
  color: rgba(255,255,255,0.92);
}

/* ── Nav layout: links centered with space-evenly, actions on right ── */
.nav {
  display: flex;
  align-items: center;
  flex: 1; /* take all remaining space after logo */
  gap: 0;
}
.nav-links {
  display: flex;
  align-items: center;
  justify-content: space-evenly; /* equal spacing on desktop */
  flex: 1;
  gap: 0;
}
.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.nav-link {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text-secondary);
  transition: color var(--transition);
  position: relative;
  padding: 4px 0;
}
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0;
  width: 0; height: 2px;
  background: var(--blue);
  transition: width var(--transition);
  border-radius: 2px;
}
.nav-link:hover, .nav-link.active { color: var(--text-primary); }
.nav-link.active::after, .nav-link:hover::after { width: 100%; }

/* Dark mode toggle */
.theme-toggle {
  width: 40px; height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-raised);
  border: 1px solid var(--border);
  color: var(--text-secondary);
  transition: all var(--transition);
  flex-shrink: 0;
}
.theme-toggle:hover {
  background: var(--blue-light);
  color: var(--blue);
  border-color: var(--blue);
}
.theme-toggle .icon-sun { display: none; }
.theme-toggle .icon-moon { display: block; }
[data-theme="dark"] .theme-toggle .icon-sun { display: block; }
[data-theme="dark"] .theme-toggle .icon-moon { display: none; }

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  border-radius: 8px;
  transition: background var(--transition);
}
.nav-toggle:hover { background: var(--bg-raised); }
.nav-toggle span {
  display: block;
  width: 22px; height: 2px;
  background: var(--text-primary);
  border-radius: 2px;
  transition: all var(--transition);
}

/* ── Avatar / profile button in header ── */
.nav-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 2px solid var(--border);
  background: var(--bg-raised);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
  padding: 0;
  flex-shrink: 0;
}
.nav-avatar:hover {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(30,86,232,0.18);
  transform: scale(1.06);
}
.nav-avatar-img {
  width: 26px; height: 26px;
  object-fit: contain;
  /* Invert white symbol to navy on light bg */
  filter: invert(1) brightness(0) sepia(1) hue-rotate(200deg) saturate(8) brightness(0.18);
  transition: filter 300ms ease;
}
[data-theme="dark"] .nav-avatar-img {
  filter: none;
  opacity: 0.9;
}
/* When logged in — remove filter so uploaded profile pic shows naturally */
.nav-avatar.logged-in .nav-avatar-img {
  filter: none !important;
  opacity: 1;
  object-fit: cover;
  width: 40px; height: 40px;
  border-radius: 50%;
}
[data-theme="dark"] .nav-avatar { border-color: rgba(255,255,255,0.15); }
[data-theme="dark"] .nav-avatar:hover { border-color: rgba(30,86,232,0.8); }

/* ── Hero brand line: "BLEU TRADES." ── */
.hero-brand-line {
  display: block;
  background: none !important;
  -webkit-text-fill-color: unset !important;
  color: inherit;
  line-height: 1.05;
}
.hero-brand-bleu {
  color: var(--blue);
  font-style: italic;
  background: linear-gradient(135deg, #1E56E8, #4F8EF8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-shadow: none;
  filter: drop-shadow(0 0 12px rgba(30,86,232,0.4));
}
.hero-brand-trades {
  background: linear-gradient(90deg, #fff 40%, rgba(255,255,255,0.65));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── AZUL Sign-In button in Beyond The Course header ── */
.azul-signin-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 32px;
  background: linear-gradient(135deg, var(--blue), var(--purple));
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 15px 36px;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 24px rgba(30,86,232,0.45), 0 0 0 1px rgba(30,86,232,0.3);
  transition: all 220ms ease-out;
  position: relative;
  overflow: hidden;
}
.azul-signin-btn::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.12), transparent 60%);
  opacity: 0;
  transition: opacity 220ms;
}
.azul-signin-btn:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 10px 44px rgba(30,86,232,0.6), 0 0 0 1px rgba(30,86,232,0.5);
}
.azul-signin-btn:hover::before { opacity: 1; }

/* ══════════════════════════════════════════════
   LOGIN MODAL — frosted glass overlay
   ══════════════════════════════════════════════ */
.login-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  /* Frosted-glass backdrop */
  background: rgba(5, 9, 21, 0.65);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  /* Hidden by default */
  opacity: 0;
  pointer-events: none;
  transition: opacity 280ms ease;
}
.login-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

/* Modal card */
.login-modal {
  background: rgba(12, 18, 38, 0.92);
  border: 1px solid rgba(30,86,232,0.3);
  border-radius: 24px;
  padding: 44px 40px 36px;
  width: 100%;
  max-width: 420px;
  position: relative;
  box-shadow:
    0 32px 80px rgba(0,0,0,0.6),
    0 0 0 1px rgba(30,86,232,0.15),
    inset 0 1px 0 rgba(255,255,255,0.06);
  transform: translateY(16px) scale(0.97);
  transition: transform 280ms cubic-bezier(0.34, 1.4, 0.64, 1);
  /* Top accent stripe */
  overflow: hidden;
}
.login-modal::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--blue), var(--purple), var(--green));
}
.login-overlay.active .login-modal {
  transform: translateY(0) scale(1);
}

/* Close button */
.login-close {
  position: absolute;
  top: 16px; right: 16px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.5);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: all 200ms ease;
}
.login-close:hover {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border-color: rgba(255,255,255,0.25);
}

/* Modal header */
.login-modal-header {
  text-align: center;
  margin-bottom: 32px;
}
.login-modal-logo {
  height: 44px; width: auto;
  display: block;
  margin: 0 auto 16px;
  filter: drop-shadow(0 0 16px rgba(30,86,232,0.6));
}
.login-modal-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}
.login-title-accent {
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.login-modal-sub {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.42);
  margin: 0;
  line-height: 1.5;
}

/* Sign-in method buttons */
.login-methods {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}
.login-method {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 14px 20px;
  border-radius: 14px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 200ms ease;
  border: none;
  width: 100%;
  letter-spacing: 0.01em;
}
.login-method--email {
  background: linear-gradient(135deg, var(--blue) 0%, var(--purple) 100%);
  color: #fff;
  box-shadow: 0 4px 20px rgba(30,86,232,0.4);
}
.login-method--email:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(30,86,232,0.6);
}
.login-method--google {
  background: rgba(255,255,255,0.07);
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.14);
}
.login-method--google:hover {
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.25);
  transform: translateY(-2px);
}
.login-method--phone {
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.65);
  border: 1px solid rgba(255,255,255,0.09);
}
.login-method--phone:hover {
  background: rgba(255,255,255,0.09);
  border-color: rgba(255,255,255,0.2);
  transform: translateY(-2px);
}

/* Fine print */
.login-modal-note {
  font-size: 0.73rem;
  color: rgba(255,255,255,0.28);
  text-align: center;
  margin: 0;
  line-height: 1.5;
}
.login-modal-note a {
  color: rgba(255,255,255,0.45);
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,0.2);
}
.login-modal-note a:hover { color: rgba(255,255,255,0.7); }


/* ===================================
   SECTION LABELS & TITLES
   =================================== */
.section-label {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  background: var(--blue-light);
  padding: 6px 14px;
  border-radius: 20px;
  margin-bottom: 16px;
  border: 1px solid rgba(30, 86, 232, 0.2);
}
[data-theme="dark"] .section-label {
  border-color: rgba(30, 86, 232, 0.4);
  color: #60A5FA;
}
.section-title {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin-bottom: 48px;
}

/* ===================================
   WELCOME SECTION — Full-viewport opener
   Nations-Edge-inspired: bold, full-bleed,
   layered depth with maximum visual impact
   =================================== */

/* ── Base shell ── */
.welcome {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding-top: 68px;
  /* Rich deep navy with subtle diagonal gradient */
  background:
    linear-gradient(160deg,
      #03071a 0%,
      #050d24 35%,
      #071530 65%,
      #030c1e 100%);
}

/* ── Multi-layer background system ── */
.welcome-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

/* Fine dot-grid texture */
.welcome-grid {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(30,86,232,0.12) 1px, transparent 1px);
  background-size: 36px 36px;
  opacity: 0.8;
}

/* Large primary blue glow — top-center */
.welcome-glow {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  will-change: transform, opacity;
}
.welcome-glow--top {
  top: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 1100px; height: 800px;
  background: radial-gradient(ellipse at center,
    rgba(30,86,232,0.35) 0%,
    rgba(79,70,229,0.18) 40%,
    transparent 68%);
  animation: glow-breathe 8s ease-in-out infinite alternate;
}
/* Secondary green accent — bottom */
.welcome-glow--bottom {
  bottom: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 800px; height: 600px;
  background: radial-gradient(ellipse at center,
    rgba(16,185,129,0.14) 0%,
    rgba(30,86,232,0.06) 50%,
    transparent 70%);
  animation: glow-breathe 11s ease-in-out infinite alternate-reverse;
}
/* Accent side glow left */
.welcome-glow--left {
  top: 20%;
  left: -15%;
  width: 600px; height: 600px;
  background: radial-gradient(ellipse at center,
    rgba(79,70,229,0.2) 0%,
    transparent 65%);
  animation: glow-breathe 13s ease-in-out infinite alternate;
}
/* Accent side glow right */
.welcome-glow--right {
  top: 30%;
  right: -15%;
  width: 600px; height: 600px;
  background: radial-gradient(ellipse at center,
    rgba(30,86,232,0.15) 0%,
    transparent 65%);
  animation: glow-breathe 10s ease-in-out infinite alternate-reverse;
}
@keyframes glow-breathe {
  from { opacity: 0.65; transform: translateX(-50%) scale(1); }
  to   { opacity: 1;    transform: translateX(-50%) scale(1.1); }
}
.welcome-glow--left,
.welcome-glow--right {
  /* override for non-centered glows */
  animation-name: glow-side;
}
@keyframes glow-side {
  from { opacity: 0.6; transform: scale(1); }
  to   { opacity: 1;   transform: scale(1.12); }
}

/* Horizontal scan lines for depth */
.welcome-scanlines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(255,255,255,0.012) 3px,
    rgba(255,255,255,0.012) 4px
  );
  pointer-events: none;
}

/* Animated floating particles */
.welcome-particles {
  position: absolute;
  inset: 0;
}
.welcome-particles span {
  position: absolute;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  animation: float-up linear infinite;
}
.welcome-particles span:nth-child(1)  { left:8%;  top:85%; animation-duration:14s; animation-delay:0s;   width:2px; height:2px; }
.welcome-particles span:nth-child(2)  { left:20%; top:75%; animation-duration:17s; animation-delay:2s;   opacity:.5; }
.welcome-particles span:nth-child(3)  { left:38%; top:90%; animation-duration:11s; animation-delay:4s;   width:4px; height:4px; background:rgba(30,86,232,0.7); }
.welcome-particles span:nth-child(4)  { left:55%; top:78%; animation-duration:15s; animation-delay:1s;   background:rgba(79,70,229,0.6); }
.welcome-particles span:nth-child(5)  { left:72%; top:88%; animation-duration:12s; animation-delay:3s;   width:2px; height:2px; }
.welcome-particles span:nth-child(6)  { left:88%; top:65%; animation-duration:18s; animation-delay:5s;   background:rgba(16,185,129,0.6); }
.welcome-particles span:nth-child(7)  { left:28%; top:55%; animation-duration:16s; animation-delay:6s;   width:3px; height:3px; }
.welcome-particles span:nth-child(8)  { left:62%; top:45%; animation-duration:20s; animation-delay:0.5s; width:2px; height:2px; }
.welcome-particles span:nth-child(9)  { left:15%; top:40%; animation-duration:22s; animation-delay:7s;   background:rgba(30,86,232,0.5); }
.welcome-particles span:nth-child(10) { left:82%; top:35%; animation-duration:19s; animation-delay:3.5s; width:2px; height:2px; }
.welcome-particles span:nth-child(11) { left:46%; top:60%; animation-duration:13s; animation-delay:8s;   background:rgba(79,70,229,0.5); }
.welcome-particles span:nth-child(12) { left:92%; top:80%; animation-duration:16s; animation-delay:1.5s; width:4px; height:4px; background:rgba(16,185,129,0.4); }
@keyframes float-up {
  0%   { transform: translateY(0)   rotate(0deg);   opacity: 0; }
  8%   { opacity: 1; }
  88%  { opacity: 0.5; }
  100% { transform: translateY(-100vh) rotate(360deg); opacity: 0; }
}

/* Bottom edge vignette — blends into next section */
.welcome::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 180px;
  background: linear-gradient(to bottom, transparent, #050915 92%);
  pointer-events: none;
  z-index: 1;
}

/* ── GOLD accent top border stripe ── */
.welcome::before {
  content: '';
  position: absolute;
  top: 68px; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--blue) 20%,
    var(--purple) 50%,
    var(--green) 80%,
    transparent 100%
  );
  opacity: 0.7;
  z-index: 3;
}

/* ── Content container ── */
.welcome-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 80px 24px 120px;
  width: 100%;
  max-width: 900px;
}

/* ── Eyebrow label ── */
.welcome-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  background: rgba(30,86,232,0.08);
  border: 1px solid rgba(30,86,232,0.3);
  padding: 9px 24px;
  border-radius: 40px;
  margin-bottom: 52px;
  backdrop-filter: blur(8px);
  box-shadow: 0 0 20px rgba(30,86,232,0.15);
}
.welcome-eyebrow-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 8px var(--blue), 0 0 16px rgba(30,86,232,0.6);
  flex-shrink: 0;
  animation: dot-pulse 2s ease-in-out infinite;
}
@keyframes dot-pulse {
  0%, 100% { box-shadow: 0 0 6px var(--blue), 0 0 14px rgba(30,86,232,0.5); }
  50%       { box-shadow: 0 0 12px var(--blue), 0 0 28px rgba(30,86,232,0.8); }
}

/* ── Main headline: "Welcome to" text ── */
.welcome-headline {
  font-size: clamp(1.2rem, 2.5vw, 1.65rem);
  font-weight: 400;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  margin-bottom: 20px;
  line-height: 1;
}

/* ── Logo / brand display ── */
.welcome-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 36px;
}
.welcome-logo {
  height: clamp(64px, 11vw, 130px);
  width: auto;
  display: block;
  object-fit: contain;
  filter:
    drop-shadow(0 0 32px rgba(30,86,232,0.65))
    drop-shadow(0 0 80px rgba(30,86,232,0.3))
    drop-shadow(0 2px 8px rgba(0,0,0,0.5));
  animation: logo-pulse 4s ease-in-out infinite alternate;
}
@keyframes logo-pulse {
  from {
    filter:
      drop-shadow(0 0 24px rgba(30,86,232,0.5))
      drop-shadow(0 0 60px rgba(30,86,232,0.2))
      drop-shadow(0 2px 8px rgba(0,0,0,0.5));
    transform: scale(1);
  }
  to {
    filter:
      drop-shadow(0 0 48px rgba(30,86,232,0.85))
      drop-shadow(0 0 100px rgba(30,86,232,0.4))
      drop-shadow(0 2px 8px rgba(0,0,0,0.5));
    transform: scale(1.02);
  }
}

/* ── Ornamental divider ── */
.welcome-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
  width: min(520px, 90vw);
}
.welcome-divider-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(30,86,232,0.7) 30%,
    rgba(79,70,229,0.7) 70%,
    transparent 100%);
}
.welcome-divider-diamond {
  width: 9px; height: 9px;
  background: linear-gradient(135deg, var(--blue), var(--purple));
  transform: rotate(45deg);
  box-shadow:
    0 0 12px rgba(30,86,232,0.8),
    0 0 24px rgba(30,86,232,0.4);
  flex-shrink: 0;
}

/* ── Tagline ── */
.welcome-tagline {
  font-size: clamp(1.05rem, 2.4vw, 1.4rem);
  color: rgba(255,255,255,0.6);
  line-height: 1.8;
  max-width: 600px;
  margin-bottom: 56px;
  font-weight: 400;
  letter-spacing: 0.015em;
}
.welcome-tagline em {
  font-style: italic;
  color: var(--green);
  font-weight: 500;
  background: none;
  -webkit-text-fill-color: unset;
}

/* ── Stats bar ── */
.welcome-stats {
  display: flex;
  align-items: stretch;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(30,86,232,0.25);
  border-radius: 20px;
  padding: 24px 40px;
  gap: 0;
  margin-bottom: 56px;
  backdrop-filter: blur(14px);
  box-shadow:
    0 8px 40px rgba(0,0,0,0.4),
    0 0 0 1px rgba(30,86,232,0.12),
    inset 0 1px 0 rgba(255,255,255,0.06);
  width: min(680px, 92vw);
  justify-content: center;
}
.welcome-stat {
  text-align: center;
  padding: 0 32px;
  position: relative;
}
.welcome-stat-num {
  display: block;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 6px;
  background: linear-gradient(160deg, #fff 30%, rgba(30,86,232,0.85) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.welcome-stat-label {
  font-size: 0.65rem;
  font-weight: 700;
  color: rgba(255,255,255,0.38);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.welcome-stat-sep {
  width: 1px;
  background: linear-gradient(to bottom,
    transparent 0%,
    rgba(30,86,232,0.4) 30%,
    rgba(30,86,232,0.4) 70%,
    transparent 100%);
  flex-shrink: 0;
  align-self: stretch;
  margin: 4px 0;
}

/* ── CTA Buttons ── */
.welcome-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: center;
}
.welcome-btn-primary {
  background: linear-gradient(135deg, var(--blue) 0%, #2a6af0 50%, var(--purple) 100%);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  padding: 17px 40px;
  border-radius: 50px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow:
    0 4px 28px rgba(30,86,232,0.5),
    0 0 0 1px rgba(30,86,232,0.35),
    inset 0 1px 0 rgba(255,255,255,0.15);
  transition: all 220ms ease-out;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  position: relative;
  overflow: hidden;
}
.welcome-btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.1), transparent 60%);
  opacity: 0;
  transition: opacity 220ms;
}
.welcome-btn-primary:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow:
    0 10px 50px rgba(30,86,232,0.65),
    0 0 0 1px rgba(30,86,232,0.55);
}
.welcome-btn-primary:hover::before { opacity: 1; }

.welcome-btn-ghost {
  background: transparent;
  color: rgba(255,255,255,0.72);
  font-weight: 500;
  font-size: 1rem;
  padding: 17px 40px;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,0.22);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: all 220ms ease-out;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  backdrop-filter: blur(6px);
}
.welcome-btn-ghost:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.45);
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.25);
}

/* ── Scroll chevron ── */
.welcome-scroll {
  position: absolute;
  bottom: 38px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.25);
  transition: color 240ms, transform 240ms;
  animation: bounce-down 2.8s ease-in-out infinite;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-decoration: none;
}
.welcome-scroll span {
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.25);
  display: block;
}
.welcome-scroll:hover { color: rgba(255,255,255,0.65); }
.welcome-scroll:hover span { color: rgba(255,255,255,0.65); }
@keyframes bounce-down {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(10px); }
}

/* ── Dark mode — already dark, deepen slightly ── */
[data-theme="dark"] .welcome {
  background:
    linear-gradient(160deg, #010510 0%, #030c1c 40%, #050f28 70%, #02080f 100%);
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .welcome-inner { padding: 60px 20px 100px; }
  .welcome-stat { padding: 0 20px; }
}
@media (max-width: 768px) {
  .welcome-stats {
    flex-wrap: wrap;
    gap: 4px;
    padding: 20px 16px;
    justify-content: center;
    border-radius: 16px;
    width: 100%;
  }
  .welcome-stat { padding: 12px 20px; flex: 0 0 42%; }
  .welcome-stat-sep { display: none; }
  .welcome-actions { flex-direction: column; width: 100%; }
  .welcome-btn-primary,
  .welcome-btn-ghost { width: 100%; justify-content: center; }
  .welcome-eyebrow { font-size: 0.67rem; padding: 8px 18px; letter-spacing: 0.16em; }
  .welcome-inner { max-width: 100%; }
}
@media (max-width: 480px) {
  .welcome-logo { height: 56px; }
  .welcome-tagline { font-size: 1rem; }
  .welcome-headline { font-size: 1rem; letter-spacing: 0.2em; }
  .welcome-stat { flex: 0 0 46%; }
}

/* ===================================
   HERO  — Deep Blue Gradient
   =================================== */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding-top: 68px;
  /* Hero background: deep blue gradient like reference */
  background: linear-gradient(135deg, #0B1D5E 0%, #1E3FA8 35%, #1E56E8 65%, #2563EB 100%);
}
[data-theme="dark"] .hero {
  background: linear-gradient(135deg, #050A1A 0%, #0D1A4A 35%, #1A2E7A 65%, #1E3FA8 100%);
}

/* Dot-grid overlay */
.hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,0.12) 1px, transparent 1px);
  background-size: 36px 36px;
  opacity: 0.6;
}
/* Radial glow blobs */
.hero-bg::before {
  content: '';
  position: absolute;
  top: -20%; right: 5%;
  width: 580px; height: 580px;
  background: radial-gradient(circle, rgba(79,70,229,0.35) 0%, transparent 65%);
  border-radius: 50%;
}
.hero-bg::after {
  content: '';
  position: absolute;
  bottom: -15%; left: 10%;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(16,185,129,0.18) 0%, transparent 65%);
  border-radius: 50%;
}

/* Hero layout: two columns */
.hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  padding: 80px 0 100px;
  width: 100%;
}
.hero-left { display: flex; flex-direction: column; align-items: flex-start; }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255,255,255,0.9);
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  padding: 7px 16px;
  border-radius: 20px;
  margin-bottom: 28px;
  backdrop-filter: blur(4px);
}
.badge-dot {
  width: 7px; height: 7px;
  background: var(--green);
  border-radius: 50%;
  animation: pulse 2s infinite;
  box-shadow: 0 0 8px var(--green);
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 8px var(--green); }
  50% { opacity: 0.7; transform: scale(1.3); box-shadow: 0 0 14px var(--green); }
}

.hero-headline {
  font-size: clamp(2.25rem, 4.5vw, 3.75rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
  text-shadow: 0 2px 24px rgba(0,0,0,0.2);
}
.hero-headline strong { display: block; }

.hero-subheading {
  font-size: 1.125rem;
  color: rgba(255,255,255,0.75);
  line-height: 1.7;
  max-width: 480px;
  margin-bottom: 40px;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 52px;
}

.hero-stats {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 16px;
  padding: 18px 24px;
  backdrop-filter: blur(8px);
  gap: 0;
  width: fit-content;
}
.stat { text-align: center; padding: 0 20px; }
.stat-num {
  display: block;
  font-size: 1.875rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 4px;
}
.stat-label {
  font-size: 0.7rem;
  font-weight: 500;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.stat-divider {
  width: 1px; height: 40px;
  background: rgba(255,255,255,0.2);
  flex-shrink: 0;
}

/* Hero right — candlestick chart visual */
.hero-right {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.hero-chart {
  width: 100%;
  max-width: 520px;
  position: relative;
}
.hero-chart-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 20px;
  padding: 28px 28px 20px;
  backdrop-filter: blur(12px);
  box-shadow: 0 24px 64px rgba(0,0,0,0.3), 0 0 0 1px rgba(30,86,232,0.2);
  position: relative;
  overflow: hidden;
}
.hero-chart-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--blue), var(--purple), var(--green));
}
.hero-chart-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.hero-chart-title {
  font-size: 0.8rem;
  font-weight: 500;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.hero-chart-pair {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #fff;
  margin-top: 2px;
}
.hero-chart-badge {
  background: rgba(16,185,129,0.2);
  color: var(--green);
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid rgba(16,185,129,0.35);
}
.hero-chart-svg { width: 100%; display: block; }
.hero-chart-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.hero-chart-stat { text-align: center; }
.hero-chart-stat-val {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  display: block;
}
.hero-chart-stat-val.up { color: var(--green); }
.hero-chart-stat-val.down { color: #F87171; }
.hero-chart-stat-label {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.45);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Scroll hint */
.hero-scroll-hint {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
}
.scroll-indicator {
  width: 24px; height: 40px;
  border: 2px solid rgba(255,255,255,0.3);
  border-radius: 12px;
  position: relative;
}
.scroll-indicator::after {
  content: '';
  position: absolute;
  top: 6px; left: 50%;
  transform: translateX(-50%);
  width: 4px; height: 8px;
  background: rgba(255,255,255,0.5);
  border-radius: 2px;
  animation: scroll-bounce 2s infinite;
}
@keyframes scroll-bounce {
  0% { opacity: 1; transform: translate(-50%, 0); }
  80% { opacity: 0; transform: translate(-50%, 12px); }
  100% { opacity: 0; transform: translate(-50%, 0); }
}

/* ===================================
   FEATURE CARDS (below hero / CTA strip)
   =================================== */
.feature-strip {
  background: var(--bg-surface);
  padding: 60px 0;
  border-bottom: 1px solid var(--border);
}
[data-theme="dark"] .feature-strip {
  background: var(--bg-surface);
}
.feature-strip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.feature-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  position: relative;
  overflow: hidden;
  transition: all var(--transition);
}
.feature-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  transition: opacity var(--transition);
}
.feature-card--blue { border-color: rgba(30,86,232,0.3); }
.feature-card--blue::before { box-shadow: inset 0 0 0 1px rgba(30,86,232,0.6), 0 0 30px rgba(30,86,232,0.15); }
.feature-card--purple { border-color: rgba(79,70,229,0.3); }
.feature-card--purple::before { box-shadow: inset 0 0 0 1px rgba(79,70,229,0.6), 0 0 30px rgba(79,70,229,0.15); }
.feature-card--green { border-color: rgba(16,185,129,0.3); }
.feature-card--green::before { box-shadow: inset 0 0 0 1px rgba(16,185,129,0.6), 0 0 30px rgba(16,185,129,0.15); }

.feature-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.feature-card:hover::before { opacity: 1; }

[data-theme="dark"] .feature-card--blue {
  background: rgba(30,86,232,0.06);
  border-color: rgba(30,86,232,0.25);
  box-shadow: 0 0 0 1px rgba(30,86,232,0.1);
}
[data-theme="dark"] .feature-card--purple {
  background: rgba(79,70,229,0.06);
  border-color: rgba(79,70,229,0.25);
}
[data-theme="dark"] .feature-card--green {
  background: rgba(16,185,129,0.06);
  border-color: rgba(16,185,129,0.25);
}
[data-theme="dark"] .feature-card:hover {
  box-shadow: var(--shadow-lg);
}
[data-theme="dark"] .feature-card--blue:hover { box-shadow: 0 8px 32px rgba(30,86,232,0.25); }
[data-theme="dark"] .feature-card--purple:hover { box-shadow: 0 8px 32px rgba(79,70,229,0.25); }
[data-theme="dark"] .feature-card--green:hover { box-shadow: 0 8px 32px rgba(16,185,129,0.25); }

.feature-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 6px;
  margin-bottom: 16px;
}
.feature-badge--blue { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(30,86,232,0.2); }
.feature-badge--purple { background: var(--purple-light); color: var(--purple); border: 1px solid rgba(79,70,229,0.2); }
.feature-badge--green { background: var(--green-light); color: var(--green); border: 1px solid rgba(16,185,129,0.2); }

.feature-card h3 {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 10px;
  line-height: 1.3;
}
.feature-card p {
  font-size: 0.9375rem;
  color: var(--text-secondary);
  line-height: 1.65;
}
.feature-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  float: right;
  margin: 0 0 12px 12px;
}
.feature-icon--blue { background: var(--blue-light); color: var(--blue); }
.feature-icon--purple { background: var(--purple-light); color: var(--purple); }
.feature-icon--green { background: var(--green-light); color: var(--green); }

/* ===================================
   MISSION
   =================================== */
.mission {
  padding: 100px 0;
  background: var(--bg-page);
}
.mission-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.mission-text p {
  font-size: 1.0625rem;
  color: var(--text-secondary);
  line-height: 1.8;
  margin-bottom: 20px;
}
.mission-text p:last-child { margin-bottom: 0; }
.mission-visual { display: flex; flex-direction: column; gap: 16px; }

/* Glow cards for mission */
.mission-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}
.mission-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  transition: opacity var(--transition);
  pointer-events: none;
}
.mission-card:nth-child(1) { border-color: rgba(30,86,232,0.25); }
.mission-card:nth-child(1)::after { box-shadow: 0 0 28px rgba(30,86,232,0.12); }
.mission-card:nth-child(2) { border-color: rgba(79,70,229,0.25); }
.mission-card:nth-child(2)::after { box-shadow: 0 0 28px rgba(79,70,229,0.12); }
.mission-card:nth-child(3) { border-color: rgba(16,185,129,0.25); }
.mission-card:nth-child(3)::after { box-shadow: 0 0 28px rgba(16,185,129,0.12); }

.mission-card:hover { transform: translateY(-3px); }
.mission-card:hover::after { opacity: 1; }
[data-theme="dark"] .mission-card:nth-child(1) { background: rgba(30,86,232,0.05); box-shadow: 0 0 0 1px rgba(30,86,232,0.15); }
[data-theme="dark"] .mission-card:nth-child(2) { background: rgba(79,70,229,0.05); box-shadow: 0 0 0 1px rgba(79,70,229,0.15); }
[data-theme="dark"] .mission-card:nth-child(3) { background: rgba(16,185,129,0.05); box-shadow: 0 0 0 1px rgba(16,185,129,0.15); }
[data-theme="dark"] .mission-card:nth-child(1):hover { box-shadow: 0 0 32px rgba(30,86,232,0.3), 0 0 0 1px rgba(30,86,232,0.4); }
[data-theme="dark"] .mission-card:nth-child(2):hover { box-shadow: 0 0 32px rgba(79,70,229,0.3), 0 0 0 1px rgba(79,70,229,0.4); }
[data-theme="dark"] .mission-card:nth-child(3):hover { box-shadow: 0 0 32px rgba(16,185,129,0.3), 0 0 0 1px rgba(16,185,129,0.4); }

.mission-icon {
  width: 52px; height: 52px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: white;
  margin-bottom: 14px;
}
.mission-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
}
.mission-card p {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* ===================================
   WHAT TO EXPECT
   =================================== */
.expect {
  padding: 100px 0;
  background: var(--bg-surface);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.expect-grid { display: flex; flex-direction: column; }
.expect-item {
  display: flex;
  gap: 32px;
  padding: 36px 0;
  border-bottom: 1px solid var(--border);
  transition: all var(--transition);
}
.expect-item:last-child { border-bottom: none; }
.expect-item:hover .expect-number { color: var(--blue); text-shadow: 0 0 20px var(--blue-glow); }
[data-theme="dark"] .expect-item:hover .expect-number { text-shadow: 0 0 24px rgba(30,86,232,0.8); }
.expect-number {
  font-size: 3rem;
  font-weight: 700;
  color: var(--border-strong);
  line-height: 1;
  flex-shrink: 0;
  width: 80px;
  transition: color var(--transition), text-shadow var(--transition);
  letter-spacing: -0.04em;
}
.expect-content h3 {
  font-size: 1.175rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 10px;
}
.expect-content p {
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.7;
}

/* ===================================
   VALUE PROPS
   =================================== */
.values {
  padding: 100px 0;
  background: var(--bg-page);
}
.values-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.value-card {
  border-radius: var(--radius-xl);
  padding: 40px;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--bg-card);
  transition: all var(--transition);
}
.value-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.value-card-accent {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}
.value-card--blue .value-card-accent { background: linear-gradient(90deg, var(--blue), var(--purple)); }
.value-card--purple .value-card-accent { background: linear-gradient(90deg, var(--purple), var(--blue)); }
.value-card--green .value-card-accent { background: linear-gradient(90deg, var(--green), var(--blue)); }
.value-card--dark .value-card-accent { background: linear-gradient(90deg, var(--navy), var(--purple)); }

[data-theme="dark"] .value-card--blue { border-color: rgba(30,86,232,0.2); background: rgba(30,86,232,0.04); }
[data-theme="dark"] .value-card--purple { border-color: rgba(79,70,229,0.2); background: rgba(79,70,229,0.04); }
[data-theme="dark"] .value-card--green { border-color: rgba(16,185,129,0.2); background: rgba(16,185,129,0.04); }
[data-theme="dark"] .value-card--dark { border-color: rgba(255,255,255,0.08); background: rgba(255,255,255,0.02); }
[data-theme="dark"] .value-card--blue:hover { box-shadow: 0 12px 40px rgba(30,86,232,0.2), 0 0 0 1px rgba(30,86,232,0.3); }
[data-theme="dark"] .value-card--purple:hover { box-shadow: 0 12px 40px rgba(79,70,229,0.2), 0 0 0 1px rgba(79,70,229,0.3); }
[data-theme="dark"] .value-card--green:hover { box-shadow: 0 12px 40px rgba(16,185,129,0.2), 0 0 0 1px rgba(16,185,129,0.3); }

.value-icon {
  width: 56px; height: 56px;
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px;
}
.value-card--blue .value-icon { background: var(--blue-light); color: var(--blue); }
.value-card--purple .value-icon { background: var(--purple-light); color: var(--purple); }
.value-card--green .value-icon { background: var(--green-light); color: var(--green); }
.value-card--dark .value-icon { background: rgba(26,26,46,0.06); color: var(--text-primary); }
[data-theme="dark"] .value-card--dark .value-icon { background: rgba(255,255,255,0.06); }

.value-card h3 {
  font-size: 1.175rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
  line-height: 1.3;
}
.value-card > p {
  font-size: 0.9625rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 24px;
}
.value-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.875rem;
  color: var(--text-primary);
  font-weight: 500;
  padding: 6px 0;
  border-top: 1px solid var(--border);
}
.value-list li::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.value-card--blue .value-list li::before { background: var(--blue); }
.value-card--purple .value-list li::before { background: var(--purple); }
.value-card--green .value-list li::before { background: var(--green); }
.value-card--dark .value-list li::before { background: var(--text-primary); }

/* ===================================
   CTA SECTION
   =================================== */
.cta-section { padding: 80px 0; background: var(--bg-surface); }
.cta-inner {
  background: linear-gradient(135deg, #0B1D5E 0%, #1E3FA8 40%, var(--purple) 80%, #3B35C3 100%);
  border-radius: var(--radius-xl);
  padding: 72px;
  position: relative;
  overflow: hidden;
  text-align: center;
  border: 1px solid rgba(30,86,232,0.3);
  box-shadow: 0 0 60px rgba(30,86,232,0.2);
}
[data-theme="dark"] .cta-inner {
  box-shadow: 0 0 80px rgba(30,86,232,0.3), 0 0 0 1px rgba(30,86,232,0.2);
}
.cta-glow {
  position: absolute;
  top: -50%; left: 50%;
  transform: translateX(-50%);
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 65%);
  border-radius: 50%;
  pointer-events: none;
}
/* Dot grid on CTA */
.cta-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.08) 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  border-radius: inherit;
}
.cta-content { position: relative; z-index: 1; }
.cta-label { background: rgba(255,255,255,0.15); color: white; border-color: rgba(255,255,255,0.2); }
.cta-headline {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
}
.cta-body {
  font-size: 1.0625rem;
  color: rgba(255,255,255,0.78);
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 40px;
}
.cta-actions { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; align-items: center; }

/* ===================================
   FOOTER
   =================================== */
.footer {
  background: #0D0D14;
  padding: 60px 0 0;
  border-top: 1px solid rgba(255,255,255,0.06);
}
[data-theme="dark"] .footer {
  background: #08080F;
  border-top: 1px solid rgba(30,86,232,0.15);
}
.footer-inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 60px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.footer-brand .logo-text { color: #fff; }
.footer-brand .logo-link { margin-bottom: 16px; display: inline-flex; }
.footer-tagline {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.6;
  max-width: 280px;
}
.footer-links { display: flex; gap: 48px; }
.footer-col { display: flex; flex-direction: column; gap: 12px; }
.footer-col h4 {
  font-size: 0.75rem;
  font-weight: 700;
  color: rgba(255,255,255,0.28);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 4px;
}
.footer-col a {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.5);
  transition: color var(--transition);
}
.footer-col a:hover { color: #fff; }
.footer-bottom {
  padding: 20px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.footer-bottom p { font-size: 0.8125rem; color: rgba(255,255,255,0.25); }
.footer-disclaimer { font-size: 0.75rem !important; max-width: 420px; text-align: right; }

/* ===================================
   PAGE HERO (Modules)
   =================================== */
.page-hero {
  padding: 120px 0 60px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  top: -40%; right: -10%;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(30,86,232,0.07) 0%, transparent 65%);
  border-radius: 50%;
  pointer-events: none;
}
[data-theme="dark"] .page-hero::before {
  background: radial-gradient(circle, rgba(30,86,232,0.12) 0%, transparent 65%);
}
.page-hero-content { max-width: 640px; position: relative; z-index: 1; }
.page-title {
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin-bottom: 16px;
}
.page-subtitle {
  font-size: 1.1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 28px;
}
.phase-overview { display: flex; gap: 12px; flex-wrap: wrap; }
.phase-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 7px 16px;
  border-radius: 20px;
}
.phase-badge--blue {
  background: var(--blue-light);
  color: var(--blue);
  border: 1px solid rgba(30,86,232,0.2);
}
.phase-badge--purple {
  background: var(--purple-light);
  color: var(--purple);
  border: 1px solid rgba(79,70,229,0.2);
}
[data-theme="dark"] .phase-badge--blue { color: #60A5FA; }
[data-theme="dark"] .phase-badge--purple { color: #A5B4FC; }
.phase-badge-dot { width: 7px; height: 7px; border-radius: 50%; }
.phase-badge--blue .phase-badge-dot { background: var(--blue); }
.phase-badge--purple .phase-badge-dot { background: var(--purple); }

/* ===================================
   PHASES SECTION
   =================================== */
.phases-section {
  padding: 80px 0;
  background: var(--bg-page);
}
.phases-section + .phases-section {
  background: var(--bg-surface);
  border-top: 1px solid var(--border);
}
.phase-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  padding: 40px;
  border-radius: var(--radius-xl);
  margin-bottom: 32px;
  position: relative;
  overflow: hidden;
}
.phase-header--blue {
  background: linear-gradient(135deg, #0B1D5E 0%, #1E3FA8 50%, var(--blue) 100%);
  color: white;
  box-shadow: 0 8px 40px rgba(30,86,232,0.3);
  border: 1px solid rgba(30,86,232,0.3);
}
[data-theme="dark"] .phase-header--blue {
  box-shadow: 0 8px 40px rgba(30,86,232,0.4), 0 0 0 1px rgba(30,86,232,0.25);
}
.phase-header--purple {
  background: linear-gradient(135deg, #1A1040 0%, #2D2580 50%, var(--purple) 100%);
  color: white;
  box-shadow: 0 8px 40px rgba(79,70,229,0.3);
  border: 1px solid rgba(79,70,229,0.3);
}
.phase-header--blue::before,
.phase-header--purple::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.07) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}
.phase-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: rgba(255,255,255,0.15);
  padding: 5px 12px;
  border-radius: 20px;
  margin-bottom: 12px;
  backdrop-filter: blur(4px);
}
.phase-title {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.phase-desc {
  font-size: 0.975rem;
  opacity: 0.82;
  line-height: 1.65;
  max-width: 480px;
}
.phase-meta { display: flex; gap: 24px; }
.phase-meta-item { text-align: center; }
.phase-meta-num {
  display: block;
  font-size: 2.25rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
}
.phase-meta-label {
  font-size: 0.75rem;
  font-weight: 500;
  opacity: 0.65;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* ===================================
   MODULE ACCORDION
   =================================== */
.modules-list {
  background: var(--bg-card);
  border-radius: var(--radius-xl);
  border: 1px solid var(--border);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
[data-theme="dark"] .modules-list {
  border-color: rgba(255,255,255,0.06);
  box-shadow: 0 4px 24px rgba(0,0,0,0.4);
}
.module-item { border-bottom: 1px solid var(--border); }
.module-item:last-child { border-bottom: none; }
.module-item--capstone { }

.module-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 28px;
  text-align: left;
  transition: all var(--transition);
  background: transparent;
}
.module-trigger:hover { background: var(--bg-raised); }
.module-trigger[aria-expanded="true"] { background: var(--blue-light); }
[data-theme="dark"] .module-trigger[aria-expanded="true"] {
  background: rgba(30,86,232,0.1);
  box-shadow: inset 3px 0 0 var(--blue);
}
.module-item--capstone .module-trigger[aria-expanded="true"] { background: var(--green-light); }
[data-theme="dark"] .module-item--capstone .module-trigger[aria-expanded="true"] {
  background: rgba(16,185,129,0.1);
  box-shadow: inset 3px 0 0 var(--green);
}

.module-trigger-left {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1;
  min-width: 0;
}
.module-num {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--border-strong);
  line-height: 1;
  flex-shrink: 0;
  width: 44px;
  font-variant-numeric: tabular-nums;
  transition: color var(--transition), text-shadow var(--transition);
}
.module-num--capstone { color: var(--green) !important; }
.module-trigger:hover .module-num,
.module-trigger[aria-expanded="true"] .module-num { color: var(--blue); }
[data-theme="dark"] .module-trigger[aria-expanded="true"] .module-num {
  color: #60A5FA;
  text-shadow: 0 0 12px rgba(30,86,232,0.6);
}

.module-trigger-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.module-title-text {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--text-primary);
  transition: color var(--transition);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.module-subtitle {
  font-size: 0.8125rem;
  color: var(--text-muted);
  font-weight: 400;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.module-trigger-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.module-status {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 4px 10px;
  border-radius: 20px;
}
.module-status--soon {
  background: var(--bg-raised);
  color: var(--text-muted);
  border: 1px solid var(--border);
}
.module-status--capstone {
  background: var(--green-light);
  color: var(--green-dark);
  border: 1px solid rgba(16,185,129,0.3);
}
[data-theme="dark"] .module-status--capstone {
  background: rgba(16,185,129,0.15);
  color: #34D399;
  border-color: rgba(16,185,129,0.4);
  box-shadow: 0 0 12px rgba(16,185,129,0.2);
}
.module-chevron {
  color: var(--text-muted);
  transition: transform var(--transition), color var(--transition);
  flex-shrink: 0;
}
.module-trigger[aria-expanded="true"] .module-chevron { transform: rotate(180deg); color: var(--blue); }
[data-theme="dark"] .module-trigger[aria-expanded="true"] .module-chevron { color: #60A5FA; }
.module-item--capstone .module-trigger[aria-expanded="true"] .module-chevron { color: var(--green); }

.module-body { max-height: 0; overflow: hidden; transition: max-height 280ms ease-out; }
.module-body.open { max-height: 400px; }
.module-body-inner { padding: 0 28px 28px 92px; }
.module-desc {
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.75;
  margin-bottom: 20px;
}
.module-details { display: flex; flex-direction: column; gap: 8px; }
.module-detail-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.9rem;
  color: var(--text-primary);
  font-weight: 500;
}
.module-detail-item svg { flex-shrink: 0; color: var(--blue); margin-top: 2px; }
[data-theme="dark"] .module-detail-item svg { color: #60A5FA; }
.module-item--capstone .module-detail-item svg { color: var(--green); }
[data-theme="dark"] .module-item--capstone .module-detail-item svg { color: #34D399; }

/* ═══════════════════════════════════════════════════════════════
   MODULE CARD — 4 STATE SYSTEM
   States: available | in-progress | complete | locked
   ═══════════════════════════════════════════════════════════════ */

/* ── Num wrap (holds number or state icon) ── */
.module-num-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  min-width: 48px;
  height: 48px;
  flex-shrink: 0;
}

/* ── Meta row: level badge + time inside the trigger text ── */
.module-meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  flex-wrap: wrap;
}
.module-level-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: var(--az-r-pill, 999px);
  border: 1px solid;
}
.module-level-badge--beginner {
  color: #22C55E;
  background: rgba(34,197,94,0.08);
  border-color: rgba(34,197,94,0.20);
}
.module-level-badge--intermediate {
  color: #F59E0B;
  background: rgba(245,158,11,0.08);
  border-color: rgba(245,158,11,0.20);
}
.module-level-badge--expert {
  color: #EF4444;
  background: rgba(239,68,68,0.08);
  border-color: rgba(239,68,68,0.20);
}
.module-time-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.7rem;
  font-weight: 400;
  color: rgba(255,255,255,0.35);
}
.module-time-label svg { opacity: 0.6; }

/* ── State icons ── */
.module-state-icon { display: block; }
.module-state-icon--complete { color: #22C55E; filter: drop-shadow(0 0 6px rgba(34,197,94,0.40)); }
.module-state-icon--locked   { color: rgba(255,255,255,0.20); }
.module-state-icon--progress { overflow: visible; }

/* ── Available state ── */
.module-item--available .module-trigger:hover { background: rgba(26,92,255,0.05); }
.module-item--available .module-trigger[aria-expanded="true"] { background: rgba(26,92,255,0.08); }
.module-item--available .module-trigger[aria-expanded="true"] .module-num { color: #1A5CFF; }

/* ── In-Progress state ── */
.module-item--in-progress { border-left: 3px solid #1A5CFF; }
.module-item--in-progress .module-trigger { padding-left: 13px; }
.module-item--in-progress .module-trigger:hover { background: rgba(26,92,255,0.06); }

/* ── Complete state ── */
.module-item--complete { border-left: 3px solid #22C55E; }
.module-item--complete .module-trigger { padding-left: 13px; }
.module-item--complete .module-trigger:hover { background: rgba(34,197,94,0.04); }
.module-item--complete .module-title-text { color: rgba(255,255,255,0.75); }

/* ── Locked state ── */
.module-item--locked {
  opacity: 0.55;
  pointer-events: none;
}
.module-item--locked .module-trigger {
  cursor: default;
  background: transparent !important;
}
.module-item--locked .module-title-text { color: rgba(255,255,255,0.40); }
.module-item--locked .module-subtitle    { color: rgba(255,255,255,0.25); }
.module-locked-hint {
  display: none; /* revealed via pointer-events workaround if needed */
}

/* ── New status badges ── */
.module-status--available {
  background: rgba(26,92,255,0.12);
  color: #4D83FF;
  border: 1px solid rgba(26,92,255,0.25);
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.module-status--progress {
  background: rgba(26,92,255,0.12);
  color: #4D83FF;
  border: 1px solid rgba(26,92,255,0.30);
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 500;
}
.module-status--complete {
  background: rgba(34,197,94,0.10);
  color: #22C55E;
  border: 1px solid rgba(34,197,94,0.25);
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.module-status--locked {
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.25);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ── Complete link variant ── */
.mod-open-link--complete {
  color: #22C55E !important;
  border-color: rgba(34,197,94,0.25) !important;
}
.mod-open-link--complete:hover {
  background: rgba(34,197,94,0.06) !important;
  border-color: rgba(34,197,94,0.40) !important;
}


.coming-soon-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.15);
  padding: 10px 20px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 500;
  white-space: nowrap;
  backdrop-filter: blur(4px);
}
.coming-soon-panel {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 56px;
  text-align: center;
}
[data-theme="dark"] .coming-soon-panel {
  border-color: rgba(79,70,229,0.2);
  box-shadow: 0 0 40px rgba(79,70,229,0.1);
}
.coming-soon-icon {
  width: 96px; height: 96px;
  border-radius: 50%;
  background: var(--purple-light);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 24px;
  color: var(--purple);
}
[data-theme="dark"] .coming-soon-icon {
  box-shadow: 0 0 32px rgba(79,70,229,0.3);
}
.coming-soon-panel h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 14px;
}
.coming-soon-panel p {
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.7;
  max-width: 520px;
  margin: 0 auto 32px;
}
.coming-soon-topics {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}
.coming-soon-topics span {
  background: var(--purple-light);
  color: var(--purple);
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 6px 16px;
  border-radius: 20px;
  border: 1px solid rgba(79,70,229,0.2);
}
[data-theme="dark"] .coming-soon-topics span {
  background: rgba(79,70,229,0.12);
  color: #A5B4FC;
  border-color: rgba(79,70,229,0.3);
}

/* ===================================
   AZUL COMMUNITY SECTION
   =================================== */

/* ── Outer shell ── */
.azul-community {
  position: relative;
  padding: 88px 0 120px;
  overflow: hidden;
  background: #060c1e;
}
[data-theme="dark"] .azul-community {
  background: #04091a;
}

/* Background layers */
.azul-community-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.azul-community-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(30,86,232,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30,86,232,0.06) 1px, transparent 1px);
  background-size: 60px 60px;
}
.azul-community-glow {
  position: absolute;
  border-radius: 50%;
}
.azul-community-glow--tl {
  top: -20%;
  left: -10%;
  width: 700px; height: 700px;
  background: radial-gradient(ellipse at center,
    rgba(79,70,229,0.2) 0%,
    rgba(30,86,232,0.08) 50%,
    transparent 70%);
}
.azul-community-glow--br {
  bottom: -20%;
  right: -10%;
  width: 600px; height: 600px;
  background: radial-gradient(ellipse at center,
    rgba(16,185,129,0.15) 0%,
    rgba(30,86,232,0.05) 50%,
    transparent 70%);
}

/* ── Section header ── */
.azul-header {
  text-align: center;
  margin-bottom: 56px;
  position: relative;
  z-index: 1;
  padding: 20px 48px 40px;
  margin-top: 0;
  box-shadow: 0 24px 80px rgba(0,0,0,0.45), 0 8px 32px rgba(16,185,129,0.08);
  border: 1px solid rgba(16,185,129,0.12);
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: linear-gradient(165deg, #03071a 0%, #071530 50%, #0a1f3d 100%);
}
.azul-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(16,185,129,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,185,129,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
  z-index: 0;
  pointer-events: none;
}
.azul-header::after {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  background: radial-gradient(circle, #10B981 0%, transparent 70%);
  top: -160px; left: -180px;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.28;
  z-index: 0;
  pointer-events: none;
}
.azul-header-glow-right {
  position: absolute !important;
  width: 400px; height: 400px;
  background: radial-gradient(circle, #1E56E8 0%, transparent 70%);
  bottom: -100px; right: -120px;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.2;
  z-index: 0 !important;
  pointer-events: none;
}
.azul-header > *:not(.azul-header-glow-right) {
  position: relative;
  z-index: 1;
}
/* Logo inside the header card */
.azul-header-logo-wrap {
  margin-bottom: 16px;
  margin-top: 0;
}
.azul-header-logo-img {
  max-width: min(360px, 75vw);
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 0 28px rgba(16,185,129,0.4));
}
.azul-label {
  /* inherits .section-label styles, override color for dark bg */
  color: rgba(255,255,255,0.45) !important;
  border-color: rgba(30,86,232,0.35) !important;
  background: rgba(30,86,232,0.08) !important;
}
.azul-title {
  color: #fff !important;
  font-size: clamp(1.7rem, 3.5vw, 2.6rem) !important;
  line-height: 1.25 !important;
  margin-bottom: 20px !important;
}
.azul-title-accent {
  background: linear-gradient(90deg, #1E56E8, #4F46E5, #10B981);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.azul-subtitle {
  color: rgba(255,255,255,0.55);
  font-size: clamp(1rem, 2vw, 1.2rem);
  max-width: 640px;
  margin: 0 auto;
  line-height: 1.75;
  font-weight: 400;
}

/* ── Phase-1 unlock banner ── */
.azul-unlock {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: rgba(30,86,232,0.1);
  border: 1px solid rgba(30,86,232,0.35);
  border-radius: 50px;
  padding: 14px 28px;
  margin: 0 auto 64px;
  position: relative;
  z-index: 1;
  left: 50%;
  transform: translateX(-50%);
  backdrop-filter: blur(8px);
  width: max-content;
  max-width: 92vw;
}
.azul-unlock-icon {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1E56E8, #4F46E5);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: #fff;
  box-shadow: 0 0 16px rgba(30,86,232,0.5);
}
.azul-unlock-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.azul-unlock-text strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}
.azul-unlock-text span {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.azul-unlock-arrow {
  color: rgba(30,86,232,0.8);
  display: flex;
  align-items: center;
  margin-left: 4px;
}

/* ── 6-feature grid ── */
.azul-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 72px;
  position: relative;
  z-index: 1;
}
.azul-feat {
  display: flex;
  gap: 18px;
  padding: 28px 24px;
  border-radius: 16px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  backdrop-filter: blur(8px);
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
  position: relative;
  overflow: hidden;
}
.azul-feat::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  border-radius: 16px 16px 0 0;
}
.azul-feat:hover {
  transform: translateY(-4px);
  border-color: rgba(255,255,255,0.14);
}
/* Blue variant */
.azul-feat--blue { border-color: rgba(30,86,232,0.18); }
.azul-feat--blue::before { background: linear-gradient(90deg, #1E56E8, #4F46E5); }
.azul-feat--blue:hover { box-shadow: 0 8px 40px rgba(30,86,232,0.2); border-color: rgba(30,86,232,0.4); }
/* Purple variant */
.azul-feat--purple { border-color: rgba(79,70,229,0.18); }
.azul-feat--purple::before { background: linear-gradient(90deg, #4F46E5, #7C3AED); }
.azul-feat--purple:hover { box-shadow: 0 8px 40px rgba(79,70,229,0.2); border-color: rgba(79,70,229,0.4); }
/* Green variant */
.azul-feat--green { border-color: rgba(16,185,129,0.18); }
.azul-feat--green::before { background: linear-gradient(90deg, #10B981, #059669); }
.azul-feat--green:hover { box-shadow: 0 8px 40px rgba(16,185,129,0.2); border-color: rgba(16,185,129,0.35); }

/* Icon circle */
.azul-feat-icon {
  width: 50px; height: 50px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: #fff;
  margin-top: 2px;
}
.azul-feat--blue  .azul-feat-icon { background: linear-gradient(135deg, rgba(30,86,232,0.25), rgba(79,70,229,0.15));  border: 1px solid rgba(30,86,232,0.3); color: #60A5FA; }
.azul-feat--purple .azul-feat-icon { background: linear-gradient(135deg, rgba(79,70,229,0.25), rgba(124,58,237,0.15)); border: 1px solid rgba(79,70,229,0.3); color: #A5B4FC; }
.azul-feat--green .azul-feat-icon { background: linear-gradient(135deg, rgba(16,185,129,0.2), rgba(5,150,105,0.1));   border: 1px solid rgba(16,185,129,0.3); color: #34D399; }

/* Feature body text */
.azul-feat-body { flex: 1; min-width: 0; }
.azul-feat-tag {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.azul-feat--blue  .azul-feat-tag { color: #60A5FA; background: rgba(30,86,232,0.12); border: 1px solid rgba(30,86,232,0.25); }
.azul-feat--purple .azul-feat-tag { color: #A5B4FC; background: rgba(79,70,229,0.12); border: 1px solid rgba(79,70,229,0.25); }
.azul-feat--green .azul-feat-tag { color: #34D399; background: rgba(16,185,129,0.10); border: 1px solid rgba(16,185,129,0.25); }
.azul-feat-body h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
  line-height: 1.3;
}
.azul-feat-body p {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.5);
  line-height: 1.65;
  margin: 0;
}
.azul-feat-body p strong {
  color: rgba(255,255,255,0.75);
  font-weight: 500;
}

/* ── Login / access panel ── */
.azul-login-panel {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 48px;
  align-items: center;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(30,86,232,0.2);
  border-radius: 24px;
  padding: 52px 48px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.azul-login-panel::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #1E56E8, #4F46E5, #10B981);
  border-radius: 24px 24px 0 0;
}
.azul-login-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #34D399;
  background: rgba(16,185,129,0.1);
  border: 1px solid rgba(16,185,129,0.3);
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 20px;
}
.azul-login-title {
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.02em;
  margin-bottom: 16px;
  line-height: 1.2;
}
.azul-login-desc {
  color: rgba(255,255,255,0.5);
  font-size: 0.95rem;
  line-height: 1.75;
  margin-bottom: 28px;
  max-width: 480px;
}
.azul-login-features {
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.azul-login-feat {
  display: flex;
  align-items: center;
  gap: 11px;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
}
.azul-login-feat svg { color: #34D399; flex-shrink: 0; }

/* ── Login card ── */
.azul-login-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: 36px 32px;
  text-align: center;
  backdrop-filter: blur(12px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
.azul-login-card-header {
  margin-bottom: 28px;
}
.azul-login-logo {
  height: 36px;
  width: auto;
  display: block;
  margin: 0 auto 10px;
  filter: drop-shadow(0 0 12px rgba(30,86,232,0.5));
}
.azul-login-card-header p {
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.4);
  margin: 0;
}
.azul-login-methods {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}
.azul-login-method {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 20px;
  border-radius: 12px;
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 200ms ease;
  border: none;
  width: 100%;
  letter-spacing: 0.01em;
}
.azul-login-method--email {
  background: linear-gradient(135deg, #1E56E8, #4F46E5);
  color: #fff;
  box-shadow: 0 4px 20px rgba(30,86,232,0.35);
}
.azul-login-method--email:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(30,86,232,0.55);
}
.azul-login-method--google {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.8);
  border: 1px solid rgba(255,255,255,0.12);
}
.azul-login-method--google:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.22);
  transform: translateY(-2px);
}
.azul-login-method--phone {
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.65);
  border: 1px solid rgba(255,255,255,0.08);
}
.azul-login-method--phone:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.18);
  transform: translateY(-2px);
}
.azul-login-note {
  font-size: 0.73rem;
  color: rgba(255,255,255,0.3);
  margin: 0;
  letter-spacing: 0.01em;
  line-height: 1.4;
}

/* Phase badge dark variant */
.phase-badge--green {
  border-color: rgba(16,185,129,0.3);
  color: rgba(255,255,255,0.65);
}
.phase-badge--green .phase-badge-dot { background: #10B981; }
.phase-badge--dark {
  border-color: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.5);
}
.phase-badge--dark .phase-badge-dot { background: rgba(255,255,255,0.5); }

/* ── Responsive for azul section ── */
@media (max-width: 1024px) {
  .azul-features-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .azul-login-panel { grid-template-columns: 1fr; padding: 36px 28px; }
  .azul-login-right { max-width: 440px; margin: 0 auto; width: 100%; }
  .azul-features-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .azul-features-grid { grid-template-columns: 1fr; }
  .azul-unlock { flex-direction: column; text-align: center; }
  .azul-login-panel { padding: 28px 20px; gap: 32px; }
  .azul-community { padding: 68px 0 72px; }
}

/* ===================================
   RESPONSIVE
   =================================== */
@media (max-width: 900px) {
  .hero-inner { grid-template-columns: 1fr; gap: 48px; }
  .hero-right { display: none; }
  .mission-grid { grid-template-columns: 1fr; gap: 48px; }
  .values-grid { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; gap: 40px; }
  .phase-header { flex-direction: column; gap: 20px; }
  .cta-inner { padding: 48px 32px; }
  .footer-disclaimer { text-align: left; }
  .feature-strip-grid { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 768px) {
  .nav {
    display: none;
    position: fixed;
    top: 68px; left: 0; right: 0;
    /* Tall enough for all links without scrolling */
    min-height: 420px;
    max-height: calc(100vh - 68px);
    background: var(--bg-surface);
    flex-direction: column;
    align-items: flex-start;
    padding: 28px 24px 40px;
    gap: 4px;
    z-index: 99;
    border-top: 1px solid var(--border);
    overflow-y: auto;
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
  }
  .nav.open { display: flex; }
  /* Inside mobile nav, stack links + actions vertically */
  .nav-links {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    flex: unset;
  }
  .nav-actions {
    width: 100%;
    padding-top: 16px;
    border-top: 1px solid var(--border);
    gap: 12px;
    justify-content: flex-start;
  }
  .nav-link { font-size: 1.05rem; padding: 14px 0; width: 100%; border-bottom: 1px solid var(--border); }
  .nav-link::after { display: none; }
  .nav-toggle { display: flex; }
  .hero-inner { padding: 60px 0 80px; }
  .hero-headline { font-size: 2.25rem; }
  .hero-subheading { font-size: 1rem; }
  .hero-stats { flex-direction: column; gap: 0; width: 100%; padding: 16px 20px; }
  .stat { padding: 12px 0; }
  .stat-divider { width: 100%; height: 1px; }
  .values-grid { gap: 16px; }
  .value-card { padding: 28px; }
  .module-trigger { padding: 18px 20px; }
  .module-body-inner { padding: 0 20px 24px 20px; }
  .module-num { font-size: 1.125rem; width: 32px; }
  .module-title-text { font-size: 0.9375rem; white-space: normal; }
  .module-subtitle { display: none; }
  .module-status { display: none; }
  .expect-item { gap: 20px; }
  .expect-number { font-size: 2rem; width: 56px; }
  .coming-soon-panel { padding: 36px 24px; }
  .footer-links { flex-direction: column; gap: 24px; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .hero-actions .btn, .hero-actions .hero-cta-btn { width: 100%; justify-content: center; }
  /* Login modal responsive */
  .login-modal { padding: 36px 24px 28px; }
}
@media (max-width: 480px) {
  .cta-inner { padding: 36px 20px; }
  .cta-actions { flex-direction: column; }
  .cta-actions .btn { width: 100%; justify-content: center; }
  .phase-header { padding: 28px 24px; }
  .phase-meta { justify-content: center; }
  .phase-meta-num { font-size: 1.75rem; }
}

/* Utility */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }

/* ═══════════════════════════════════════════════════════════════
   ABOUT US PAGE
   ═══════════════════════════════════════════════════════════════ */

/* About Hero */
.about-hero {
  position: relative;
  padding: 140px 0 80px;
  overflow: hidden;
  background: linear-gradient(165deg, #03071a 0%, #071530 50%, #0a1f3d 100%);
  text-align: center;
}
.about-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.about-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(16,185,129,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,185,129,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
}
.about-hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.35;
  pointer-events: none;
}
.about-hero-glow--left {
  width: 500px; height: 500px;
  background: radial-gradient(circle, #10B981 0%, transparent 70%);
  top: -100px; left: -150px;
}
.about-hero-glow--right {
  width: 400px; height: 400px;
  background: radial-gradient(circle, #1E56E8 0%, transparent 70%);
  bottom: -80px; right: -100px;
  opacity: 0.25;
}
.about-hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.about-logo-wrap {
  margin-bottom: 8px;
}
.about-logo-img {
  max-width: min(420px, 80vw);
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  /* subtle green glow around logo */
  filter: drop-shadow(0 0 24px rgba(16,185,129,0.35));
}
.about-label {
  /* reuse section-label but force green tint */
  color: #10B981 !important;
  border-color: rgba(16,185,129,0.3) !important;
  background: rgba(16,185,129,0.08) !important;
}
.about-hero-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  margin: 0;
  letter-spacing: -0.02em;
}
.about-hero-accent {
  background: linear-gradient(90deg, #10B981, #1E56E8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.about-hero-sub {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: rgba(255,255,255,0.72);
  max-width: 640px;
  line-height: 1.7;
  margin: 0 auto;
}

/* Dark theme tweaks for about page hero */
[data-theme="dark"] .about-hero {
  background: linear-gradient(165deg, #010810 0%, #040e20 50%, #071530 100%);
}

/* ── AZUL community headline split ──────────────────────────────── */
.azul-title-brand {
  display: block;
  font-size: 1.1em;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
}
.azul-sub-headline {
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 500;
  margin: -4px 0 20px;
  line-height: 1.4;
}

/* ── AZUL welcome banner button ─────────────────────────────────── */
.azul-welcome-wrap {
  display: flex;
  justify-content: center;
  margin: 0 0 52px;
}
.azul-welcome-btn {
  display: inline-block;
  padding: 18px 48px;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #fff;
  background: linear-gradient(90deg, #10B981 0%, #4F46E5 100%);
  border: none;
  border-radius: var(--radius-xl);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(79,70,229,0.35), 0 2px 12px rgba(16,185,129,0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.azul-welcome-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #0ea271 0%, #3b35c3 100%);
  opacity: 0;
  transition: opacity 0.2s ease;
}
.azul-welcome-btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 32px rgba(79,70,229,0.45), 0 4px 16px rgba(16,185,129,0.35);
}
.azul-welcome-btn:hover::before { opacity: 1; }
.azul-welcome-btn span { position: relative; z-index: 1; }


/* ═══════════════════════════════════════════════════════════════
   MODULE PAGE — CANDLES & PRICE ACTION (and future modules)
   ═══════════════════════════════════════════════════════════════ */

/* ── Module Hero Banner ── */
.mod-hero {
  padding-top: 68px;
  position: relative;
  background: linear-gradient(160deg, #0b1845 0%, #1332a0 50%, #1a3fbe 100%);
  overflow: hidden;
}
body:not([data-theme="dark"]) .mod-hero {
  background: linear-gradient(160deg, #1a2e7a 0%, #1e56e8 60%, #2563eb 100%);
}
.mod-hero-bg {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;
}
.mod-hero .container {
  position: relative; z-index: 1;
  padding: 40px 24px 48px;
}
.mod-breadcrumb {
  display: flex; align-items: center; gap: 6px;
  font-size: 0.825rem; color: rgba(255,255,255,0.55);
  margin-bottom: 20px; flex-wrap: wrap;
}
.mod-breadcrumb a { color: rgba(255,255,255,0.65); text-decoration: none; }
.mod-breadcrumb a:hover { color: #fff; }
.mod-breadcrumb-current { color: rgba(255,255,255,0.9); font-weight: 500; }
.mod-hero-meta {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.mod-phase-tag {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: #10B981; background: rgba(16,185,129,0.15); border: 1px solid rgba(16,185,129,0.35);
  padding: 4px 12px; border-radius: 20px;
}
.mod-reading-time {
  display: flex; align-items: center; gap: 5px;
  font-size: 0.825rem; color: rgba(255,255,255,0.5);
}
.mod-title {
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 700; color: #fff; line-height: 1.1;
  letter-spacing: -0.025em; margin: 0 0 8px;
}
.mod-subtitle {
  font-size: 1.05rem; color: rgba(255,255,255,0.6);
  margin: 0 0 28px; font-weight: 400; letter-spacing: 0.04em; text-transform: uppercase;
}
.mod-prev-next {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.mod-nav-btn {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.875rem; font-weight: 500;
  padding: 9px 18px; border-radius: 8px;
  text-decoration: none; transition: all 180ms ease;
  border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.8);
  background: rgba(255,255,255,0.07);
  backdrop-filter: blur(4px);
}
.mod-nav-btn:hover { background: rgba(255,255,255,0.14); color: #fff; border-color: rgba(255,255,255,0.35); }
.mod-nav-btn--next { background: rgba(16,185,129,0.18); border-color: rgba(16,185,129,0.4); color: #10B981; }
.mod-nav-btn--next:hover { background: rgba(16,185,129,0.28); color: #fff; }
/* locked state */
.mod-nav-btn--next.locked { opacity: 0.45; cursor: not-allowed; pointer-events: none; }

/* ── Module Layout ── */
.mod-layout {
  background: var(--bg-page);
  padding: 56px 0 80px;
}
.mod-grid {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 900px) {
  .mod-grid { grid-template-columns: 1fr; }
}

/* ── Table of Contents ── */
.mod-toc { position: sticky; top: 88px; }
.mod-toc-inner {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  box-shadow: var(--shadow-sm);
}
.mod-toc-label {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text-muted); margin: 0 0 12px;
}
.mod-toc nav { display: flex; flex-direction: column; gap: 2px; margin-bottom: 20px; }
.mod-toc-link {
  font-size: 0.825rem; color: var(--text-secondary); text-decoration: none;
  padding: 6px 8px; border-radius: 6px; transition: all 150ms;
  line-height: 1.3;
}
.mod-toc-link:hover,
.mod-toc-link.active { color: var(--blue); background: var(--blue-light); }
@media (max-width: 900px) { .mod-toc { display: none; } }

/* ── Progress bar in TOC ── */
.mod-toc-progress { margin-top: 4px; }
.mod-toc-progress-label {
  display: flex; justify-content: space-between;
  font-size: 0.72rem; color: var(--text-muted); margin-bottom: 6px;
}
.mod-toc-progress-bar {
  height: 5px; background: var(--border);
  border-radius: 10px; overflow: hidden;
}
.mod-toc-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--green));
  border-radius: 10px;
  transition: width 0.4s ease;
  width: 0%;
}

/* ── Article Content ── */
.mod-content { min-width: 0; }
.mod-section {
  margin-bottom: 56px;
  scroll-margin-top: 90px;
}

/* ── Intro block ── */
.mod-intro-block {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--blue);
  border-radius: 0 12px 12px 0;
  padding: 28px 28px 24px;
  box-shadow: var(--shadow-sm);
}
.mod-lead {
  font-size: 1.1rem; line-height: 1.75;
  color: var(--text-primary); margin: 0 0 16px;
}
.mod-intro-block p:last-child { margin-bottom: 0; }

/* ── Callouts ── */
.mod-callout {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 18px; border-radius: 10px;
  font-size: 0.9375rem; line-height: 1.6;
  margin: 20px 0;
}
.mod-callout svg { flex-shrink: 0; margin-top: 2px; }
.mod-callout--blue {
  background: var(--blue-light);
  border: 1px solid rgba(0,82,204,0.18);
  color: var(--blue-dark);
}
.mod-callout--blue svg { color: var(--blue); }

/* ── Section Takeaway (distinctive summary box) ── */
.mod-takeaway {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 20px 22px;
  border-radius: 12px;
  border: 2px solid var(--blue);
  background: var(--blue-light);
  color: var(--blue-dark);
  font-size: 0.9375rem; line-height: 1.65;
  margin: 28px 0;
  position: relative;
}
.mod-takeaway::before {
  content: 'KEY TAKEAWAY';
  position: absolute;
  top: -11px; left: 18px;
  font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em;
  background: var(--blue);
  color: #fff;
  padding: 2px 10px;
  border-radius: 4px;
}
.mod-takeaway svg { flex-shrink: 0; margin-top: 2px; color: var(--blue); }
[data-theme="dark"] .mod-takeaway {
  background: rgba(0,82,204,0.14);
  border-color: rgba(99,159,255,0.6);
  color: rgba(147,197,253,1);
}
[data-theme="dark"] .mod-takeaway::before {
  background: rgba(99,159,255,0.85);
  color: #0d1b2e;
}
.mod-callout--green {
  background: var(--green-light);
  border: 1px solid rgba(5,150,105,0.2);
  color: #065f46;
}
.mod-callout--green svg { color: var(--green); }
.mod-callout--amber {
  background: rgba(245,158,11,0.08);
  border: 1px solid rgba(245,158,11,0.22);
  color: #92400e;
}
.mod-callout--amber svg { color: #d97706; }
[data-theme="dark"] .mod-callout--blue { background: rgba(0,82,204,0.12); color: rgba(147,197,253,1); }
[data-theme="dark"] .mod-callout--green { background: rgba(5,150,105,0.12); color: rgba(110,231,183,1); }
[data-theme="dark"] .mod-callout--amber { background: rgba(245,158,11,0.10); color: rgba(252,211,77,1); }

/* ── Section headers ── */
.mod-section-header {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 28px;
}
.mod-section-num {
  flex-shrink: 0;
  /* Single digit large number — blue fill, orange outline, ~4-5px gap */
  font-size: clamp(3.5rem, 8vw, 5rem);
  font-weight: 700;
  line-height: 0.85;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  /* Fill color = Electric Blue */
  color: #0066FF;
  /* Gap layer (dark) + Orange outline using paint-order trick */
  -webkit-text-stroke: 10px #0d1523;   /* dark gap ~4-5px each side */
  paint-order: stroke fill;
  /* Orange outline on top via drop-shadow */
  filter: drop-shadow(0 0 0 3px #F59E0B);
  text-shadow:
    0 0 0 #F59E0B,            /* placeholder — real outline via SVG trick below */
    0 0 20px rgba(0,102,255,0.25);
  opacity: 1;
  user-select: none;
  margin-top: 4px;
  /* Use SVG text approach via outline layers */
  -webkit-text-fill-color: #0066FF;
  /* Multi-layer text-shadow simulating thick orange outline outside the gap */
  text-shadow:
     9px  0   0 #0d1523,   -9px  0   0 #0d1523,
     0   9px  0 #0d1523,    0  -9px  0 #0d1523,
     7px  7px 0 #0d1523,   -7px  7px 0 #0d1523,
     7px -7px 0 #0d1523,   -7px -7px 0 #0d1523,
    12px  0   0 #F59E0B,  -12px  0   0 #F59E0B,
     0   12px 0 #F59E0B,    0  -12px 0 #F59E0B,
    10px 10px 0 #F59E0B,  -10px 10px 0 #F59E0B,
    10px-10px 0 #F59E0B,  -10px-10px 0 #F59E0B,
     0   0  24px rgba(0,102,255,0.3);
}
.mod-section-header-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 4px;
}
.mod-section-label {
  display: inline-block;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--blue); background: var(--blue-light);
  border: 1px solid rgba(0,82,204,0.18);
  padding: 3px 10px; border-radius: 20px; width: fit-content;
}
[data-theme="dark"] .mod-section-label { background: rgba(0,82,204,0.15); }
.mod-section-title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 700; color: var(--text-primary);
  letter-spacing: -0.025em; margin: 0; line-height: 1.15;
}
.mod-section-intro {
  font-size: 1rem; color: var(--text-secondary); margin: 0 0 24px; line-height: 1.6;
}

/* ── Practice CTA block ── */
.mod-cta {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  background: linear-gradient(135deg, rgba(0,82,204,0.08) 0%, rgba(16,185,129,0.06) 100%);
  border: 1px solid rgba(0,82,204,0.2);
  border-left: 4px solid var(--blue);
  border-radius: 0 14px 14px 0;
  padding: 20px 22px;
  margin-top: 32px;
}
.mod-cta-icon {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 10px;
  background: var(--blue);
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  box-shadow: 0 4px 12px rgba(0,82,204,0.35);
}
.mod-cta-body { flex: 1; min-width: 0; }
.mod-cta-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 4px;
}
.mod-cta-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 6px;
}
.mod-cta-body p {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* ── Concept cards (candle parts) ── */
.mod-concept-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}
.mod-concept-card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 14px; padding: 22px 20px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 200ms, transform 200ms;
  border-top-width: 3px;
}
.mod-concept-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.mod-concept-card--green { border-top-color: #10B981; }
.mod-concept-card--blue  { border-top-color: var(--blue); }
.mod-concept-card--purple { border-top-color: #7C3AED; }
.mod-concept-icon {
  width: 44px; height: 44px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.mod-concept-card--green  .mod-concept-icon { background: rgba(16,185,129,0.10); color: #10B981; }
.mod-concept-card--blue   .mod-concept-icon { background: var(--blue-light); color: var(--blue); }
.mod-concept-card--purple .mod-concept-icon { background: rgba(124,58,237,0.10); color: #7C3AED; }
.mod-concept-card h3 {
  font-size: 1rem; font-weight: 700; color: var(--text-primary); margin: 0 0 8px;
}
.mod-concept-card p {
  font-size: 0.9rem; color: var(--text-secondary); line-height: 1.6; margin: 0;
}

/* ── Rules block ── */
.mod-rules-block {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 14px; padding: 24px;
  margin-bottom: 28px;
  box-shadow: var(--shadow-sm);
}
.mod-rules-title {
  font-size: 0.9rem; font-weight: 700; color: var(--text-primary);
  text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 16px;
}
.mod-rules-list {
  list-style: none; margin: 0 0 14px; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.mod-rules-list li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 0.925rem; color: var(--text-secondary); line-height: 1.5;
  flex-wrap: wrap;
}
.mod-rules-list li span:last-child {
  flex: 1 1 180px;
}
.mod-rule-tag {
  flex-shrink: 0;
  display: inline-block;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 4px;
  line-height: 1.6;
  white-space: nowrap;
}
.mod-rule-tag--green  { background: rgba(16,185,129,0.12); color: #059669; border: 1px solid rgba(16,185,129,0.25); }
.mod-rule-tag--amber  { background: rgba(245,158,11,0.12); color: #d97706; border: 1px solid rgba(245,158,11,0.28); }
.mod-rule-tag--red    { background: rgba(220,38,38,0.10);  color: #dc2626; border: 1px solid rgba(220,38,38,0.22); }
.mod-rule-tag--blue   { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(0,82,204,0.18); }
.mod-rules-note {
  font-size: 0.875rem; color: var(--text-muted); margin: 0;
  border-top: 1px solid var(--border); padding-top: 14px;
}

/* ── Image placeholders ── */
.mod-img-placeholder {
  background: var(--bg-raised);
  border: 2px dashed var(--border-strong);
  border-radius: 14px; overflow: hidden;
  margin: 24px 0 0;
  transition: border-color 200ms;
}
.mod-img-placeholder:hover { border-color: var(--blue); }
.mod-img-placeholder-inner {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; padding: 40px 24px; text-align: center;
  min-height: 200px;
}
.mod-img-placeholder--sm .mod-img-placeholder-inner { min-height: 130px; padding: 24px; }
.mod-img-placeholder-inner svg { color: var(--text-muted); opacity: 0.5; }
.mod-img-placeholder-inner p { font-size: 0.95rem; font-weight: 500; color: var(--text-secondary); margin: 0; }
.mod-img-placeholder-inner span { font-size: 0.8rem; color: var(--text-muted); }

/* ── Workflow steps ── */
.mod-workflow {
  display: flex; flex-direction: column; gap: 0;
  position: relative; margin-bottom: 24px;
}
.mod-workflow::before {
  content: '';
  position: absolute; left: 22px; top: 48px; bottom: 48px;
  width: 2px; background: var(--border);
}
.mod-workflow-step {
  display: flex; gap: 20px; align-items: flex-start;
  padding: 24px; position: relative;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 14px; margin-bottom: 12px;
  box-shadow: var(--shadow-sm);
}
.mod-workflow-step--blue { border-left: 3px solid var(--blue); }
.mod-workflow-step--green { border-left: 3px solid var(--green); }
.mod-workflow-num {
  flex-shrink: 0;
  width: 40px; height: 40px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em;
}
.mod-workflow-step--blue  .mod-workflow-num { background: var(--blue-light); color: var(--blue); }
.mod-workflow-step--green .mod-workflow-num { background: var(--green-light); color: var(--green); }
.mod-workflow-body { flex: 1; min-width: 0; }
.mod-workflow-body h4 { font-size: 0.95rem; font-weight: 700; color: var(--text-primary); margin: 0 0 14px; }
.mod-tf-grid { display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 768px) { .mod-tf-grid { flex-direction: row; flex-wrap: wrap; } }
.mod-tf-item {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 0.875rem; color: var(--text-secondary); line-height: 1.4;
}
.mod-tf-badge {
  flex-shrink: 0;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em;
  padding: 3px 9px; border-radius: 5px;
  background: var(--blue-light); color: var(--blue);
  border: 1px solid rgba(0,82,204,0.18);
}
.mod-tf-badge--green { background: var(--green-light); color: var(--green); border-color: rgba(5,150,105,0.2); }

/* ── Market phase cards ── */
.mod-phase-cards { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 768px) { .mod-phase-cards { flex-direction: row; align-items: stretch; } 
  .mod-phase-cards .mod-phase-card { flex: 1; min-width: 0; } }
.mod-phase-card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 16px; padding: 24px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 200ms, transform 200ms;
}
.mod-phase-card:hover { box-shadow: var(--shadow-md); }
.mod-phase-card.mod-concept-card--clickable { cursor: pointer; }
.mod-phase-card.mod-concept-card--clickable:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.mod-phase-card--bull  { border-left: 4px solid #10B981; }
.mod-phase-card--bear  { border-left: 4px solid #ef4444; }
.mod-phase-card--range { border-left: 4px solid #8B5CF6; }

/* ── Phase card chart images ── */
.mod-phase-img {
  width: 100%;
  height: 200px;
  margin-top: 18px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-surface);   /* matches card bg — transparent PNG blends in */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  box-sizing: border-box;
}
.mod-phase-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
/* Dark mode: ensure exact match with card bg #1A1A2E */
[data-theme="dark"] .mod-phase-img { background: #161e2e; }
.mod-phase-header {
  display: flex; align-items: center; gap: 16px; margin-bottom: 14px;
}
.mod-phase-icon {
  width: 46px; height: 46px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.mod-phase-card--bull  .mod-phase-icon { background: rgba(16,185,129,0.12); color: #10B981; }
.mod-phase-card--bear  .mod-phase-icon { background: rgba(239,68,68,0.12);  color: #ef4444; }
.mod-phase-card--range .mod-phase-icon { background: rgba(139,92,246,0.12); color: #8B5CF6; }
.mod-phase-header h3 { font-size: 1.1rem; font-weight: 700; color: var(--text-primary); margin: 0 0 4px; }
.mod-phase-badge {
  display: inline-block;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 5px;
}
.mod-phase-badge--bull  { background: rgba(16,185,129,0.12); color: #059669; border: 1px solid rgba(16,185,129,0.25); }
.mod-phase-badge--bear  { background: rgba(239,68,68,0.10);  color: #dc2626; border: 1px solid rgba(239,68,68,0.22); }
.mod-phase-badge--range { background: rgba(139,92,246,0.10); color: #7C3AED; border: 1px solid rgba(139,92,246,0.22); }
.mod-phase-card p { font-size: 0.9375rem; color: var(--text-secondary); line-height: 1.7; margin: 0; }

/* ── Quick Notes checklist ── */
.mod-checklist {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 16px; padding: 28px;
  display: flex; flex-direction: column; gap: 10px;
  box-shadow: var(--shadow-sm);
}
.mod-check-item {
  display: flex; align-items: flex-start; gap: 12px;
  font-size: 0.9375rem; color: var(--text-secondary); line-height: 1.5;
}
.mod-check-item svg { flex-shrink: 0; margin-top: 2px; color: var(--green); }
.mod-check-item--accent { color: var(--text-primary); font-weight: 500; }
.mod-check-item--accent svg { color: var(--blue); }

/* ── Tabs ── */
.mod-tabs-section { margin-bottom: 0; }

/* ── Tab bar wrapper ── */
.mod-tabs {
  display: flex; gap: 4px;
  flex-wrap: wrap;
  background: var(--az-bg3, #1A1E2A);
  border: 1px solid var(--az-border, #2A2F3E);
  border-radius: 14px 14px 0 0;
  padding: 8px;
  border-bottom: none;
}

/* ── Individual tab button ── */
.mod-tab-btn {
  flex: 1 1 120px;
  min-width: 0;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 0.875rem; font-weight: 500;
  padding: 11px 16px; border-radius: 9px;
  border: none; cursor: pointer;
  color: var(--az-tx2, #8A9BBF); background: transparent;
  transition: all 180ms ease;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mod-tab-btn svg { flex-shrink: 0; }
.mod-tab-btn:hover {
  color: var(--az-tx, #F0F2F8);
  background: rgba(255,255,255,0.06);
}
.mod-tab-btn--active {
  color: var(--az-p1, #1A5CFF);
  background: rgba(26,92,255,0.12);
  box-shadow: inset 0 0 0 1px rgba(26,92,255,0.25);
}
/* Phase 2 active tab colour */
.az-mod-hero--p2 ~ .az-content-body .mod-tab-btn--active,
.mod-tab-btn--active.mod-tab-btn--p2 {
  color: var(--az-p2, #7B2FBE);
  background: rgba(123,47,190,0.12);
  box-shadow: inset 0 0 0 1px rgba(123,47,190,0.25);
}

/* ── Tab badge ── */
.mod-tab-badge {
  font-size: 0.65rem; font-weight: 700;
  background: rgba(26,92,255,0.15);
  color: var(--az-p1-light, #4D83FF);
  border: 1px solid rgba(26,92,255,0.25);
  padding: 2px 7px; border-radius: 20px;
  flex-shrink: 0;
}

/* ── Tab panel ── */
.mod-tab-panel {
  display: none;
  background: var(--az-bg2, #13161E);
  border: 1px solid var(--az-border, #2A2F3E);
  border-radius: 0 0 14px 14px;
  border-top: none;
  padding: 32px;
}
.mod-tab-panel--active { display: block; }

/* ── Tablet: compress tab padding ── */
@media (max-width: 1024px) and (min-width: 769px) {
  .mod-tab-btn { padding: 10px 12px; font-size: 0.82rem; gap: 6px; }
  .mod-tab-panel { padding: 24px; }
}

/* ── Mobile: tabs stack, full width ── */
@media (max-width: 768px) {
  .mod-tabs { gap: 3px; padding: 6px; border-radius: 10px 10px 0 0; }
  .mod-tab-btn {
    flex: 1 1 calc(50% - 4px);
    padding: 9px 10px;
    font-size: 0.78rem;
    gap: 5px;
    border-radius: 7px;
  }
  .mod-tab-badge { display: none; }
  .mod-tab-panel { padding: 20px 16px; border-radius: 0 0 10px 10px; }
}
@media (max-width: 480px) {
  .mod-tab-btn { flex: 1 1 100%; }
}

/* ── Glossary ── */
.mod-glossary dl { margin: 0; }
.mod-gloss-item {
  padding: 16px 0;
  border-bottom: 1px solid var(--az-border, #2A2F3E);
  display: grid; grid-template-columns: 200px 1fr; gap: 16px; align-items: start;
}
.mod-gloss-item:last-child { border-bottom: none; padding-bottom: 0; }
.mod-gloss-item dt {
  font-size: 0.9rem; font-weight: 700; color: var(--az-p1-light, #4D83FF);
  padding-top: 2px;
}
.mod-gloss-item dd {
  margin: 0; font-size: 0.9rem;
  color: var(--az-tx2, #8A9BBF); line-height: 1.65;
}
@media (max-width: 600px) {
  .mod-gloss-item { grid-template-columns: 1fr; gap: 4px; }
}

/* ── Span-based gloss items (modules 1 & 2 style) ── */
.mod-gloss-item .mod-gloss-term {
  font-size: 0.875rem; font-weight: 700;
  color: var(--az-p1-light, #4D83FF);
  display: block; margin-bottom: 3px;
}
.mod-gloss-item .mod-gloss-def {
  font-size: 0.85rem;
  color: var(--az-tx2, #8A9BBF); line-height: 1.6;
  display: block;
}

/* ── mod-gloss-grid (card layout, modules 5 & 6) ── */
.mod-gloss-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.mod-gloss-card {
  background: var(--az-bg3, #1A1E2A);
  border: 1px solid var(--az-border, #2A2F3E);
  border-radius: 10px;
  padding: 16px 18px;
  transition: border-color 180ms;
}
.mod-gloss-card:hover { border-color: rgba(26,92,255,0.35); }
.mod-gloss-card .mod-gloss-term {
  font-size: 0.82rem; font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--az-p1-light, #4D83FF);
  margin-bottom: 6px;
  display: block;
}
.mod-gloss-card .mod-gloss-def {
  font-size: 0.82rem; line-height: 1.6;
  color: var(--az-tx2, #8A9BBF);
  margin: 0;
  display: block;
}
@media (max-width: 600px) {
  .mod-gloss-grid { grid-template-columns: 1fr; }
}

/* ── Section Glossary Trigger Button ── */
.mod-gloss-trigger {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 0.8rem; font-weight: 500;
  color: var(--blue); background: var(--blue-light);
  border: 1px solid rgba(0,82,204,0.18);
  border-radius: 20px; padding: 6px 14px;
  cursor: pointer; transition: all 160ms ease;
  letter-spacing: 0.01em;
}
.mod-gloss-trigger:hover {
  background: rgba(0,82,204,0.14); border-color: rgba(0,82,204,0.32);
}
.mod-gloss-trigger svg { flex-shrink: 0; }

/* ── Glossary Modal Overlay ── */
.mod-gloss-modal-overlay {
  position: fixed; inset: 0; z-index: 1100;
  background: rgba(0,0,0,0.55);
  /* HIDDEN by default — JS sets display:flex when open */
  display: none;
  align-items: flex-end; justify-content: center;
  padding: 0;
  pointer-events: none;
}
.mod-gloss-modal-overlay[style*="flex"],
.mod-gloss-modal-overlay.is-open {
  display: flex;
  pointer-events: auto;
  animation: fadeIn 160ms ease;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.mod-gloss-modal {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 20px 20px 0 0;
  width: 100%; max-width: 680px;
  max-height: 80vh;
  display: flex; flex-direction: column;
  animation: slideUp 220ms cubic-bezier(0.34,1.22,0.64,1);
  overflow: hidden;
}
@keyframes slideUp { from { transform: translateY(60px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.mod-gloss-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.mod-gloss-modal-header h3 {
  font-size: 1rem; font-weight: 700; color: var(--text-primary); margin: 0;
}
.mod-gloss-modal-close {
  width: 32px; height: 32px; border-radius: 50%;
  border: none; background: var(--bg-raised);
  color: var(--text-secondary); font-size: 1.2rem;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background 160ms;
}
.mod-gloss-modal-close:hover { background: var(--bg-surface); color: var(--text-primary); }
.mod-gloss-modal-body {
  overflow-y: auto; padding: 8px 24px 16px;
  flex: 1;
}
.mod-gloss-modal-body dl { margin: 0; }
.mod-gloss-entry {
  display: grid; grid-template-columns: 1fr auto;
  gap: 0 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
  align-items: start;
}
.mod-gloss-entry:last-child { border-bottom: none; }
.mod-gloss-entry-text { grid-column: 1; }
.mod-gloss-entry dt {
  font-size: 0.875rem; font-weight: 700;
  color: var(--text-primary); margin-bottom: 4px;
}
.mod-gloss-entry dd {
  font-size: 0.82rem; color: var(--text-secondary);
  line-height: 1.6; margin: 0;
}
.mod-gloss-copy-btn {
  grid-column: 2; grid-row: 1 / 3;
  align-self: center;
  width: 30px; height: 30px; border-radius: 8px;
  border: 1px solid var(--border); background: var(--bg-raised);
  color: var(--text-secondary); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 160ms; flex-shrink: 0; margin-top: 2px;
}
.mod-gloss-copy-btn:hover { background: var(--blue-light); border-color: rgba(0,82,204,0.3); color: var(--blue); }
.mod-gloss-copy-btn.copied { background: rgba(16,185,129,0.1); border-color: rgba(16,185,129,0.3); color: #10b981; }
.mod-gloss-group-label {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--blue);
  padding: 16px 0 4px; opacity: 0.8;
}
.mod-gloss-modal-footer {
  padding: 12px 24px 20px;
  border-top: 1px solid var(--border); flex-shrink: 0;
}
.mod-gloss-copy-all {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 10px 16px;
  font-size: 0.85rem; font-weight: 500;
  color: var(--text-secondary); background: var(--bg-raised);
  border: 1px solid var(--border); border-radius: 10px;
  cursor: pointer; transition: all 160ms;
}
.mod-gloss-copy-all:hover { color: var(--blue); border-color: rgba(0,82,204,0.3); background: var(--blue-light); }
.mod-gloss-copy-all.copied { color: #10b981; border-color: rgba(16,185,129,0.3); }

/* ── Tab nav button (back-to-prev-module link) ── */
.mod-tab-btn--nav {
  text-decoration: none;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 0.875rem; font-weight: 500;
  padding: 11px 16px; border-radius: 9px;
  color: var(--az-tx2, #8A9BBF); background: transparent;
  border: none; cursor: pointer;
  transition: all 180ms ease;
  flex: 1 1 120px;
  white-space: nowrap;
}
.mod-tab-btn--nav:hover {
  color: var(--az-tx, #F0F2F8);
  background: rgba(255,255,255,0.06);
}
@media (max-width: 768px) {
  .mod-tab-btn--nav { flex: 1 1 calc(50% - 4px); padding: 9px 10px; font-size: 0.78rem; }
}

/* ── Quiz ── */
.mod-quiz-header {
  margin-bottom: 32px;
}
.mod-quiz-header h3 {
  font-size: 1.25rem; font-weight: 700; color: var(--text-primary); margin: 0 0 6px;
}
.mod-quiz-header p {
  font-size: 0.9rem; color: var(--text-secondary); margin: 0 0 16px; line-height: 1.6;
}
.mod-quiz-score-bar {
  height: 6px; background: var(--border);
  border-radius: 10px; overflow: hidden;
}
.mod-quiz-score-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--green));
  border-radius: 10px;
  transition: width 0.5s ease;
}
.mod-quiz-questions { display: flex; flex-direction: column; gap: 28px; }
.mod-quiz-q {}
.mod-quiz-question {
  font-size: 0.9625rem; font-weight: 500; color: var(--text-primary);
  display: flex; gap: 10px; align-items: flex-start;
  margin: 0 0 14px; line-height: 1.5;
}
.mod-quiz-num {
  flex-shrink: 0;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em;
  background: var(--blue-light); color: var(--blue);
  border: 1px solid rgba(0,82,204,0.18);
  padding: 3px 9px; border-radius: 5px; margin-top: 2px;
}
.mod-quiz-options {
  display: flex; flex-direction: column; gap: 8px;
}
.mod-quiz-opt {
  text-align: left;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1.5px solid var(--border);
  background: var(--bg-raised);
  color: var(--text-secondary);
  font-size: 0.9rem; font-weight: 500;
  cursor: pointer; transition: all 150ms ease;
  line-height: 1.4;
}
.mod-quiz-opt:hover:not(:disabled) {
  border-color: var(--blue);
  background: var(--blue-light);
  color: var(--blue);
}
.mod-quiz-opt.selected {
  border-color: var(--blue);
  background: var(--blue-light);
  color: var(--blue);
}
.mod-quiz-opt.correct  {
  border-color: #10B981; background: rgba(16,185,129,0.12); color: #059669;
  font-weight: 500;
}
.mod-quiz-opt.incorrect {
  border-color: #ef4444; background: rgba(239,68,68,0.08); color: #dc2626;
}
.mod-quiz-opt:disabled { cursor: default; }
.mod-quiz-footer {
  margin-top: 32px; padding-top: 24px;
  border-top: 1px solid var(--border);
  display: flex; justify-content: flex-end;
}
.mod-quiz-submit {
  padding: 13px 36px;
  background: linear-gradient(135deg, var(--blue), #4F46E5);
  color: #fff; font-weight: 700; font-size: 0.95rem;
  border: none; border-radius: 10px; cursor: pointer;
  transition: all 180ms ease;
  box-shadow: 0 4px 16px rgba(0,82,204,0.30);
}
.mod-quiz-submit:hover:not(:disabled) {
  transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,82,204,0.40);
}
.mod-quiz-submit:disabled {
  opacity: 0.45; cursor: not-allowed; transform: none; box-shadow: none;
}

/* ── Quiz result ── */
.mod-quiz-result {
  margin-top: 32px; padding: 32px;
  border-radius: 14px; text-align: center;
  border: 2px solid var(--border);
  background: var(--bg-raised);
}
.mod-quiz-result-icon {
  font-size: 3rem; margin-bottom: 12px;
}
.mod-quiz-result h4 {
  font-size: 1.35rem; font-weight: 700; color: var(--text-primary); margin: 0 0 8px;
}
.mod-quiz-result p { font-size: 0.95rem; color: var(--text-secondary); margin: 0 0 20px; line-height: 1.6; }
.mod-quiz-result-actions,
.mod-quiz-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.mod-quiz-retry {
  padding: 11px 28px;
  border: 1.5px solid var(--border); border-radius: 9px;
  background: transparent; color: var(--text-secondary); font-weight: 500;
  cursor: pointer; font-size: 0.9rem; transition: all 150ms;
}
.mod-quiz-retry:hover { border-color: var(--text-secondary); color: var(--text-primary); }
.mod-quiz-unlock {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 28px;
  background: linear-gradient(135deg, #10B981, #059669);
  color: #fff; font-weight: 700; font-size: 0.9rem;
  border-radius: 9px; text-decoration: none;
  box-shadow: 0 4px 16px rgba(16,185,129,0.35);
  transition: all 180ms ease;
}
.mod-quiz-unlock:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(16,185,129,0.45); }

/* ── pass result ── */
.mod-quiz-result--pass {
  border-color: rgba(16,185,129,0.4);
  background: linear-gradient(160deg, rgba(16,185,129,0.05) 0%, transparent 100%);
}
.mod-quiz-result--fail {
  border-color: rgba(239,68,68,0.3);
  background: linear-gradient(160deg, rgba(239,68,68,0.04) 0%, transparent 100%);
}

/* ── Add link to Module 3 on course page ── */
.mod-open-link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.8125rem; font-weight: 500;
  color: var(--blue); text-decoration: none;
  padding: 5px 10px; border-radius: 6px;
  background: var(--blue-light); border: 1px solid rgba(0,82,204,0.18);
  transition: all 150ms; margin-left: 8px;
}
.mod-open-link:hover { background: rgba(0,82,204,0.12); }


/* ── Active module state on course listing ── */
.module-status--active {
  color: #10B981;
  background: rgba(16,185,129,0.10);
  border: 1px solid rgba(16,185,129,0.28);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.module-num--active {
  background: linear-gradient(135deg, var(--blue), #10B981);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.module-item--active .module-trigger {
  border-left: 3px solid var(--blue);
}

/* ── Concept card candle images ── */
.mod-concept-card-img {
  width: 100%;
  height: 180px;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 16px;
  /* default: same as card background so no box shows */
  background: var(--bg-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  box-sizing: border-box;
}
.mod-concept-card-img img {
  max-width: 100%;
  max-height: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}
/* Each card variant — image area blends into the card seamlessly */
.mod-concept-card--green  .mod-concept-card-img { background: var(--bg-surface); }
.mod-concept-card--blue   .mod-concept-card-img { background: var(--bg-surface); }
.mod-concept-card--purple .mod-concept-card-img { background: var(--bg-surface); }

/* Dark mode: card bg is #1A1A2E — image container must match exactly */
[data-theme="dark"] .mod-concept-card--green  .mod-concept-card-img { background: #161e2e; }
[data-theme="dark"] .mod-concept-card--blue   .mod-concept-card-img { background: #161e2e; }
[data-theme="dark"] .mod-concept-card--purple .mod-concept-card-img { background: #161e2e; }

/* ── Section 1 card modals ── */
.mod-concept-card--clickable {
  cursor: pointer;
  transition: box-shadow 200ms, transform 200ms, border-color 200ms;
}
.mod-concept-card--clickable:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.35);
}
.mod-card-tap-hint {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--blue);
  background: var(--blue-light);
  border: 1px solid rgba(0,82,204,0.2);
  border-radius: 20px;
  padding: 2px 9px;
  margin-left: 8px;
  vertical-align: middle;
  white-space: nowrap;
}

/* Card footer rule line */
.mod-card-rule {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.4;
}
.mod-card-rule svg {
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--blue);
}

/* Inline term highlight — stands out as a defined concept */
.mod-inline-term {
  display: inline;
  font-weight: 700;
  color: #a78bfa;
  background: rgba(167,139,250,0.10);
  border-bottom: 2px solid rgba(167,139,250,0.5);
  border-radius: 3px;
  padding: 1px 4px;
}

/* overlay */
.mod-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0,0,0,0.8);
  align-items: center;
  justify-content: center;
  padding: 20px;
  backdrop-filter: blur(6px);
}
.mod-modal-overlay.is-open {
  display: flex;
}

/* modal box */
.mod-modal {
  position: relative;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 0;
  max-width: 540px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 32px 80px rgba(0,0,0,0.7), 0 0 0 1px rgba(0,82,204,0.15);
  animation: modal-in 240ms cubic-bezier(0.16,1,0.3,1);
}
@keyframes modal-in {
  from { opacity: 0; transform: scale(0.92) translateY(16px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* accent bar at top */
.mod-modal::before {
  content: '';
  display: block;
  height: 4px;
  width: 100%;
  background: linear-gradient(90deg, var(--blue) 0%, #10B981 100%);
  border-radius: 20px 20px 0 0;
  flex-shrink: 0;
}

/* modal inner content padding */
.mod-modal-content {
  padding: 28px 28px 24px;
}
.mod-modal h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 6px;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.mod-modal-subtitle {
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 16px;
}
.mod-modal p {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.75;
  margin: 0 0 14px;
}
.mod-modal p:last-child { margin-bottom: 0; }

/* key-term pills inside modal */
.mod-modal-term {
  display: inline-block;
  background: var(--bg-raised);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 2px 8px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-right: 2px;
}

/* close button */
.mod-modal-close {
  position: absolute;
  top: 14px; right: 16px;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--border);
  color: var(--text-primary);
  border-radius: 50%;
  width: 32px; height: 32px;
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 150ms;
  z-index: 2;
}
.mod-modal-close:hover { background: var(--bg-raised); }

/* image inside modal */
.mod-modal-img {
  width: 100%;
  overflow: hidden;
  background: #161e2e;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  border-bottom: 1px solid var(--border);
}
.mod-modal-img img {
  max-width: 100%;
  max-height: 280px;
  height: auto;
  object-fit: contain;
  display: block;
}

/* modal footer */
.mod-modal-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px 20px;
  border-top: 1px solid var(--border);
  margin-top: 16px;
  font-size: 0.82rem;
  color: var(--text-muted);
}
.mod-modal-footer svg { flex-shrink: 0; color: var(--blue); }

/* ══════════════════════════════════════════════════════
   MODULE 4 — CHANGE OF STRUCTURE & TREND CHANGE
══════════════════════════════════════════════════════ */

/* ── COS card subtitle ── */
.mod-cos-subtitle {
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: -4px 0 10px;
}

/* ── Card image placeholder (inline SVG) ── */
.mod-concept-card-img--placeholder {
  background: rgba(255,255,255,0.04);
  border: 1px dashed var(--border);
  height: 120px;
}

/* ── Red card variant (bearish TC) ── */
.mod-concept-card--red { border-top-color: #ef4444; }
.mod-concept-card--red .mod-concept-icon { background: rgba(239,68,68,0.10); color: #ef4444; }

/* ── Two-column concept grid ── */
.mod-concept-grid--two {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* ── AZUL Rule Box ── */
.mod-azul-rule {
  background: var(--bg-raised);
  border-left: 4px solid var(--blue);
  border-radius: 0 12px 12px 0;
  padding: 18px 22px;
  margin: 24px 0;
}
.mod-azul-rule-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 10px;
}
.mod-azul-rule p {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin: 0;
}

/* ── Rules block body text ── */
.mod-rules-body {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.75;
  margin: 0;
  padding: 0 4px;
}

/* ── Gift Box ── */
.mod-gift-box {
  background: linear-gradient(135deg, rgba(16,185,129,0.07) 0%, rgba(79,70,229,0.07) 100%);
  border: 1px solid rgba(16,185,129,0.2);
  border-radius: 16px;
  padding: 24px;
  margin-top: 28px;
}
.mod-gift-box--final {
  background: linear-gradient(135deg, rgba(79,70,229,0.1) 0%, rgba(16,185,129,0.08) 100%);
  border-color: rgba(79,70,229,0.25);
}
.mod-gift-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.mod-gift-icon { font-size: 1.4rem; line-height: 1; }
.mod-gift-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
.mod-gift-section { margin-bottom: 18px; }
.mod-gift-section:last-child { margin-bottom: 0; }
.mod-gift-section-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #10B981;
  margin-bottom: 10px;
}
.mod-gift-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mod-gift-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.92rem;
  color: var(--text-secondary);
  line-height: 1.6;
}
.mod-gift-list li::before {
  content: '→';
  color: #10B981;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}
.mod-gift-bonus {
  font-size: 0.92rem;
  color: var(--text-secondary);
  line-height: 1.75;
  margin: 0;
  font-style: italic;
}

/* ── Modal image placeholder ── */
.mod-modal-img--placeholder {
  min-height: 180px;
}
.mod-placeholder-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 24px;
  text-align: center;
  color: var(--text-muted);
  width: 100%;
}
.mod-placeholder-box span {
  font-size: 0.8rem;
  line-height: 1.5;
  max-width: 320px;
}

/* ── Full Practice Assignment Box ── */
.mod-full-assignment {
  background: linear-gradient(135deg, rgba(234,179,8,0.08) 0%, rgba(234,179,8,0.04) 100%);
  border: 1px solid rgba(234,179,8,0.3);
  border-left: 4px solid #EAB308;
  border-radius: 0 16px 16px 0;
  padding: 28px 26px;
}
.mod-full-assignment-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.mod-full-assignment-badge {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #EAB308;
  background: rgba(234,179,8,0.12);
  border: 1px solid rgba(234,179,8,0.25);
  border-radius: 20px;
  padding: 3px 10px;
}
.mod-full-assignment-intro {
  font-size: 0.93rem;
  color: var(--text-secondary);
  margin: 0 0 18px;
  line-height: 1.65;
}
.mod-full-assignment-list {
  padding-left: 20px;
  margin: 0 0 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mod-full-assignment-list li {
  font-size: 0.93rem;
  color: var(--text-secondary);
  line-height: 1.65;
  padding-left: 4px;
}
.mod-full-assignment-note {
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0;
  font-style: italic;
  border-top: 1px solid rgba(234,179,8,0.15);
  padding-top: 14px;
}

/* ── Next Module CTA ── */
.mod-next-module {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px 26px;
  margin-top: 24px;
  text-align: center;
}
.mod-next-module-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 8px;
}
.mod-next-module-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 12px;
  letter-spacing: -0.02em;
}
.mod-next-module p {
  font-size: 0.93rem;
  color: var(--text-secondary);
  line-height: 1.7;
  max-width: 480px;
  margin: 0 auto 22px;
}
.mod-next-module-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--blue);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 700;
  padding: 12px 28px;
  border-radius: 10px;
  text-decoration: none;
  transition: background 150ms, transform 150ms;
  box-shadow: 0 4px 16px rgba(0,82,204,0.35);
}
.mod-next-module-btn:hover {
  background: #0043a8;
  transform: translateY(-1px);
}

/* ── Module Hype / Encouragement Block ───────────────────────────── */
.mod-hype-block {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  background: linear-gradient(135deg, rgba(30,86,232,0.08), rgba(16,185,129,0.06));
  border: 1px solid rgba(30,86,232,0.2);
  border-radius: 14px;
  padding: 22px 24px;
  margin-top: 24px;
}
.mod-hype-icon {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.mod-hype-body {
  flex: 1;
}
.mod-hype-headline {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 8px;
  line-height: 1.4;
}
.mod-hype-body p:not(.mod-hype-headline) {
  font-size: 0.92rem;
  color: var(--text-muted);
  line-height: 1.7;
  margin: 0;
}
.mod-hype-body p + p {
  margin-top: 8px;
}

/* ── Module 5 — Full-width chart image (Section 4) ────────────────── */
.m5-full-chart {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: transparent;
  margin: 0 0 4px;
  line-height: 0;
}
.m5-full-chart img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}

/* ── Module 6: Anchor Grid (replaces rules-block for real-world examples, cycle, key) ── */
.m6-anchor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 28px;
}
.m6-anchor-card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: var(--shadow-sm);
}
.m6-anchor-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 5px;
  align-self: flex-start;
  margin-bottom: 4px;
}
.m6-anchor-label--amber { background: rgba(245,158,11,0.12); color: #d97706; border: 1px solid rgba(245,158,11,0.28); }
.m6-anchor-label--blue  { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(0,82,204,0.18); }
.m6-anchor-label--green { background: rgba(16,185,129,0.12); color: #059669; border: 1px solid rgba(16,185,129,0.25); }
.m6-anchor-label--red   { background: rgba(220,38,38,0.10); color: #dc2626; border: 1px solid rgba(220,38,38,0.22); }
.m6-anchor-card h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
  line-height: 1.3;
}
.m6-anchor-card p {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}
.m6-anchor-card .m6-chart-note {
  font-size: 0.85rem;
  color: var(--text-muted);
  font-style: italic;
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.m6-section-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 12px;
}

/* Cycle steps — single column left-aligned */
.m6-cycle-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 28px;
}
.m6-cycle-step {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.m6-cycle-step:last-child { border-bottom: none; }
.m6-cycle-step-label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 2px;
}
.m6-cycle-step-tag {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 5px;
  align-self: flex-start;
}
.m6-cycle-step-tag--green { background: rgba(16,185,129,0.12); color: #059669; border: 1px solid rgba(16,185,129,0.25); }
.m6-cycle-step-tag--red   { background: rgba(220,38,38,0.10); color: #dc2626; border: 1px solid rgba(220,38,38,0.22); }
.m6-cycle-step-tag--blue  { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(0,82,204,0.18); }
.m6-cycle-step-tag--amber { background: rgba(245,158,11,0.12); color: #d97706; border: 1px solid rgba(245,158,11,0.28); }
.m6-cycle-step-body {
  font-size: 0.925rem;
  color: var(--text-secondary);
  line-height: 1.6;
}
.m6-cycle-step-body strong { color: var(--text-primary); }

/* Key rules — two column on tablet+, single on mobile */
.m6-key-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 28px;
}
.m6-key-card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: var(--shadow-sm);
}
.m6-key-card p {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}
.m6-key-card strong { color: var(--text-primary); }

/* Section title for grouped content */
.m6-block-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

/* ── Mobile: stack all grids ── */
@media (max-width: 640px) {
  .m6-anchor-grid { grid-template-columns: 1fr; gap: 12px; }
  .m6-key-grid    { grid-template-columns: 1fr; gap: 10px; }
  .m6-cycle-step  { grid-template-columns: 1fr; gap: 8px; }
  .m6-cycle-step-label { flex-direction: row; align-items: center; }
  .m6-anchor-card { padding: 16px 18px; }
}

/* ── Tablet (641–900px): keep 2-col but tighten ── */
@media (min-width: 641px) and (max-width: 900px) {
  .m6-anchor-grid { gap: 12px; }
  .m6-key-grid    { gap: 10px; }
  .m6-cycle-step  { grid-template-columns: 100px 1fr; gap: 12px; }
}

/* ── Module 6: Chart block (replaces mod-concept-grid--one for supply/demand) ── */
.m6-chart-block {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--border);
  border-radius: 0 12px 12px 0;
  padding: 24px 26px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
  text-align: left;
}
.m6-chart-block--red   { border-left-color: #dc2626; }
.m6-chart-block--green { border-left-color: #10B981; }
.m6-chart-block-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 4px;
  line-height: 1.3;
}
.m6-chart-block-sub {
  font-size: 0.875rem;
  font-style: italic;
  color: var(--text-muted);
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
  line-height: 1.5;
}
.m6-chart-block p {
  font-size: 0.925rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0;
}
.m6-chart-block-rule {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.875rem;
  color: var(--text-muted);
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  line-height: 1.5;
}
.m6-chart-block-rule svg { flex-shrink: 0; margin-top: 2px; color: var(--blue); }

/* ── Ensure Module 6 content is always left-aligned ── */
.mod-content .m6-anchor-grid,
.mod-content .m6-cycle-steps,
.mod-content .m6-key-grid,
.mod-content .m6-chart-block,
.mod-content .m6-block-title,
.mod-content .mod-section-intro,
.mod-content .mod-intro-block {
  text-align: left;
}

/* ── Key-grid 2-col on mobile stays 1-col ── */
@media (max-width: 640px) {
  .m6-key-grid { grid-template-columns: 1fr; }
  .m6-chart-block { padding: 18px 18px; }
  .m6-chart-block-title { font-size: 0.95rem; }
}

/* ═══════════════════════════════════════════════════════
   MODULE 7 — TOP-DOWN ANALYSIS & AOV DISCOVERY
   ═══════════════════════════════════════════════════════ */

/* What-you're-looking-for grid */
.m7-what-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 24px;
}
.m7-what-card {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-top-width: 3px;
  border-radius: 12px;
  padding: 20px 22px;
  box-shadow: var(--shadow-sm);
}
.m7-what-card--blue  { border-top-color: var(--blue); }
.m7-what-card--amber { border-top-color: #d97706; }
.m7-what-card-header { margin-bottom: 12px; }
.m7-what-tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 5px;
}
.m7-what-tag--blue  { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(0,82,204,0.18); }
.m7-what-tag--amber { background: rgba(245,158,11,0.12); color: #d97706; border: 1px solid rgba(245,158,11,0.28); }
.m7-what-list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.m7-what-list li {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.55;
  padding-left: 14px;
  position: relative;
}
.m7-what-list li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--text-muted);
}

/* Image placeholder */
.m7-img-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--bg-surface);
  border: 2px dashed var(--border);
  border-radius: 12px;
  padding: 32px 24px;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.875rem;
  font-style: italic;
  margin-bottom: 4px;
}
.m7-img-placeholder svg { opacity: 0.4; }

/* Process steps list */
.m7-process-list {
  list-style: none;
  margin: 0 0 4px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.m7-process-list li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.55;
  background: var(--bg-surface);
}
.m7-process-list li:last-child { border-bottom: none; }
.m7-process-list li div { flex: 1; }
.m7-step-num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

/* AOV hierarchy list */
.m7-aov-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 24px;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
}
.m7-aov-item {
  display: flex;
  gap: 20px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-surface);
  align-items: flex-start;
}
.m7-aov-item:last-child { border-bottom: none; }
.m7-aov-item--muted { background: var(--bg-page); }
.m7-aov-rank {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}
.m7-aov-rank--muted {
  background: var(--bg-surface);
  color: var(--text-muted);
  border: 2px solid var(--border);
}
.m7-aov-body { flex: 1; }
.m7-aov-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 8px;
  line-height: 1.3;
}
.m7-aov-body p {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0;
}
.m7-aov-note {
  font-size: 0.85rem !important;
  color: var(--text-muted) !important;
  font-style: italic;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

/* Confluence example */
.m7-confluence-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.m7-conf-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 20px;
  background: var(--bg-surface);
  border-bottom: 1px solid var(--border);
}
.m7-conf-step:last-child { border-bottom: none; }
.m7-conf-step--highlight { background: rgba(0,82,204,0.04); }
.m7-conf-step p {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.m7-conf-arrow {
  display: flex;
  justify-content: center;
  padding: 6px;
  color: var(--text-muted);
  background: var(--bg-page);
  border-bottom: 1px solid var(--border);
}
.m7-conf-tag {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 5px;
  margin-top: 2px;
  height: fit-content;
}
.m7-conf-tag--blue  { background: var(--blue-light); color: var(--blue); border: 1px solid rgba(0,82,204,0.18); }
.m7-conf-tag--green { background: rgba(16,185,129,0.12); color: #059669; border: 1px solid rgba(16,185,129,0.25); }

/* ── Mobile: stack grids ── */
@media (max-width: 640px) {
  .m7-what-grid { grid-template-columns: 1fr; gap: 12px; }
  .m7-aov-item  { gap: 14px; padding: 16px 16px; }
  .m7-aov-rank  { width: 30px; height: 30px; font-size: 0.9rem; }
  .m7-process-list li { padding: 12px 16px; }
  .m7-conf-step { padding: 14px 16px; }
}

/* ── Tablet: keep 2-col but tighten ── */
@media (min-width: 641px) and (max-width: 900px) {
  .m7-what-grid { gap: 12px; }
}

/* ── Module 7 tightened additions ── */
.m7-process-block {
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--blue);
  border-radius: 0 12px 12px 0;
  padding: 22px 26px 18px;
  margin-top: 20px;
  margin-bottom: 4px;
}
.m7-process-block-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin: 0 0 4px;
}
.m7-process-block-sub {
  font-size: 0.875rem;
  color: var(--text-muted);
  margin: 0 0 14px;
  line-height: 1.5;
}
.m7-what-desc {
  font-size: 0.9rem;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}
.m7-aov-note-inline {
  font-size: 0.85rem;
  color: var(--text-muted);
  font-style: italic;
}

/* Quick Reference table */
.m7-ref-table-wrap {
  overflow-x: auto;
  border-radius: 12px;
  border: 1px solid var(--border);
  margin-bottom: 8px;
}
.m7-ref-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.m7-ref-table thead tr {
  background: var(--blue);
}
.m7-ref-table thead th {
  padding: 12px 18px;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
}
.m7-ref-table tbody tr {
  border-bottom: 1px solid var(--border);
  background: var(--bg-surface);
}
.m7-ref-table tbody tr:last-child { border-bottom: none; }
.m7-ref-table tbody tr:nth-child(even) { background: var(--bg-page); }
.m7-ref-table tbody td {
  padding: 12px 18px;
  color: var(--text-secondary);
  line-height: 1.55;
  vertical-align: middle;
}
.m7-ref-table tbody td:first-child { white-space: nowrap; }
.m7-ref-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════════
   ACADEMY LAYOUT — Dark 3-column shell
   Sidebar | Content | Right Panel
   ═══════════════════════════════════════════════════════════════════ */

/* ── Custom scrollbar (webkit) — auto-hide when not in use ── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.0);
  border-radius: 99px;
  transition: background 0.3s;
}
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.22); }
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.0) transparent;
}
/* Show scrollbar on hover/active scroll */
.az-content-scroll:hover::-webkit-scrollbar-thumb,
.az-right-scroll:hover::-webkit-scrollbar-thumb,
.az-sidebar-nav:hover::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.15);
}
.az-content-scroll:hover,
.az-right-scroll:hover,
.az-sidebar-nav:hover {
  scrollbar-color: rgba(255,255,255,0.15) transparent;
}

/* When academy shell is active — lock body scroll, let az-shell handle layout */
body:has(.az-shell) {
  overflow: hidden;
  height: 100dvh;
  /* DO NOT add display:flex here — it makes mobile drawer siblings appear in flow */
}

/* Fallback for browsers without :has() */
html.az-page {
  height: 100%;
  overflow: hidden;
}
body.az-page {
  overflow: hidden;
  height: 100dvh;
}

/* ── Scroll-reveal animation ── */
.az-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.az-reveal.az-visible {
  opacity: 1;
  transform: translateY(0);
}
.az-reveal-delay-1 { transition-delay: 0.06s; }
.az-reveal-delay-2 { transition-delay: 0.12s; }
.az-reveal-delay-3 { transition-delay: 0.18s; }
.az-reveal-delay-4 { transition-delay: 0.24s; }

/* ── Academy shell ── */
.az-shell {
  display: flex;
  width: 100%;
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  background: #0d0e1a;
  position: relative;
  flex: 1 1 auto;
}

/* ══════════════════════════════════
   LEFT SIDEBAR
   ══════════════════════════════════ */
.az-sidebar {
  width: 220px;
  flex-shrink: 0;
  background: #13141f;
  border-right: 1px solid rgba(255,255,255,0.06);
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  transition: width 0.3s ease, transform 0.3s ease;
  z-index: 100;
}

.az-sidebar-header {
  padding: 18px 16px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
}

.az-sidebar-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  margin-bottom: 14px;
}
.az-sidebar-logo-img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}
.az-sidebar-logo-text {
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}

.az-sidebar-academy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 10px;
  border-radius: 8px;
  background: rgba(255,255,255,0.05);
  cursor: pointer;
  color: rgba(255,255,255,0.7);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.az-sidebar-academy svg { opacity: 0.5; flex-shrink: 0; }

.az-sidebar-progress {
  padding: 10px 16px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
}
.az-sidebar-progress-label {
  display: flex;
  justify-content: space-between;
  font-size: 0.7rem;
  color: rgba(255,255,255,0.45);
  margin-bottom: 6px;
  font-weight: 500;
}
.az-sidebar-progress-label span:last-child {
  color: rgba(255,255,255,0.75);
  font-weight: 700;
}
.az-sidebar-progress-bar {
  height: 3px;
  background: rgba(255,255,255,0.08);
  border-radius: 99px;
  overflow: hidden;
}
.az-sidebar-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  border-radius: 99px;
  transition: width 0.8s ease;
}

/* Module nav list */
.az-sidebar-nav {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  padding: 8px 8px;
}
.az-sidebar-nav::-webkit-scrollbar { width: 0; }

.az-nav-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border-radius: 8px;
  text-decoration: none;
  color: rgba(255,255,255,0.45);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.3;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  position: relative;
  margin-bottom: 1px;
}
.az-nav-item:hover {
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.75);
}
.az-nav-item.active {
  background: rgba(30, 86, 232, 0.12);
  color: #fff;
}
.az-nav-item.active::before {
  content: '';
  position: absolute;
  left: 0; top: 20%; bottom: 20%;
  width: 3px;
  background: #1E56E8;
  border-radius: 0 3px 3px 0;
}
.az-nav-item-icon {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.az-nav-item.active .az-nav-item-icon {
  background: rgba(30, 86, 232, 0.2);
}
.az-nav-item-icon svg { width: 11px; height: 11px; }
.az-nav-item-text { flex: 1; min-width: 0; }
.az-nav-item-num {
  font-size: 0.63rem;
  color: rgba(255,255,255,0.25);
  font-weight: 500;
  display: block;
  line-height: 1;
  margin-bottom: 1px;
}
.az-nav-item-title { display: block; }
.az-nav-item-check {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.15);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.az-nav-item-check.done {
  background: #10B981;
  border-color: #10B981;
}
.az-nav-item-check.done svg { display: block; }
.az-nav-item-check svg { display: none; width: 9px; height: 9px; }
.az-nav-item-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1E56E8;
  flex-shrink: 0;
  box-shadow: 0 0 6px rgba(30,86,232,0.6);
}
.az-nav-item--soon {
  opacity: 0.4;
  pointer-events: none;
}
.az-nav-item--soon .az-nav-item-check {
  opacity: 0;
}

/* Sidebar footer links */
.az-sidebar-footer {
  padding: 12px 10px 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
}
.az-sidebar-footer-link {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border-radius: 8px;
  color: rgba(255,255,255,0.45);
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s, background 0.2s;
  white-space: nowrap;
  overflow: hidden;
}
.az-sidebar-footer-link:hover {
  color: rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.06);
}
.az-sidebar-footer-link svg { width: 15px; height: 15px; flex-shrink: 0; }
.az-sidebar-footer-link span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* ══════════════════════════════════
   MAIN CONTENT AREA
   ══════════════════════════════════ */
.az-main {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #0f1525;
}

.az-content-scroll {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

/* Module hero header */
.az-mod-hero {
  position: relative;
  padding: 28px 28px 20px;
  background: linear-gradient(135deg, #0e1b3a 0%, #131d39 40%, #0d0e1a 100%);
  overflow: hidden;
  flex-shrink: 0;
}
.az-mod-hero::after {
  content: '';
  position: absolute;
  right: -60px;
  top: -80px;
  width: 340px;
  height: 200px;
  background: radial-gradient(ellipse, rgba(30,86,232,0.25) 0%, transparent 70%);
  pointer-events: none;
}
/* Subtle wave decoration */
.az-mod-hero-wave {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 45%;
  pointer-events: none;
  overflow: hidden;
  opacity: 0.4;
}
.az-mod-hero-wave svg {
  width: 100%;
  height: 100%;
}
.az-mod-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 99px;
  background: rgba(30,86,232,0.18);
  border: 1px solid rgba(30,86,232,0.3);
  color: #60A5FA;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.az-mod-hero-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 5px;
  position: relative;
  z-index: 1;
}
.az-mod-hero-title span { color: #60A5FA; }
.az-mod-hero-sub {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.45);
  position: relative;
  z-index: 1;
}

/* Content body */
.az-content-body {
  padding: 20px 28px 100px;
}

/* 2×2 card grid */
.az-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* Lesson card */
.az-lesson-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 14px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.az-lesson-card:hover {
  border-color: rgba(30,86,232,0.3);
  box-shadow: 0 4px 24px rgba(30,86,232,0.1);
  transform: translateY(-2px);
}
.az-lesson-card.active {
  border-color: rgba(30,86,232,0.45);
  box-shadow: 0 0 0 1px rgba(30,86,232,0.2), 0 6px 28px rgba(30,86,232,0.12);
}
.az-lesson-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  opacity: 0;
  transition: opacity 0.25s;
}
.az-lesson-card.active::before,
.az-lesson-card:hover::before { opacity: 1; }

.az-lesson-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.az-lesson-card-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: #e8e8f0;
  line-height: 1.35;
  flex: 1;
}
.az-lesson-card-num {
  font-size: 0.68rem;
  color: #1E56E8;
  font-weight: 700;
  background: rgba(30,86,232,0.1);
  padding: 2px 7px;
  border-radius: 99px;
  flex-shrink: 0;
}
.az-lesson-card-thumb {
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 8px;
  overflow: hidden;
  background: #0d0e1a;
  flex-shrink: 0;
  position: relative;
}
.az-lesson-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.az-lesson-card-thumb-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0e1b3a, #1a1f3a);
}

/* Two-column layout inside card (text left, thumb right) */
.az-lesson-card-body {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.az-lesson-card-body-text { flex: 1; min-width: 0; }
.az-lesson-card-body-thumb {
  width: 100px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  background: #0d0e1a;
}
.az-lesson-card-body-thumb img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.az-lesson-card-body-thumb-placeholder {
  width: 100%;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0e1b3a, #1a1f3a);
  color: rgba(255,255,255,0.2);
  font-size: 1.5rem;
}

.az-lesson-card-desc {
  font-size: 0.76rem;
  color: rgba(255,255,255,0.45);
  line-height: 1.6;
}
.az-lesson-card-desc a,
.az-lesson-card-desc em {
  color: #60A5FA;
  font-style: normal;
}

.az-lesson-card-bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.az-lesson-card-bullets li {
  font-size: 0.74rem;
  color: rgba(255,255,255,0.45);
  padding-left: 12px;
  position: relative;
  line-height: 1.5;
}
.az-lesson-card-bullets li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: #1E56E8;
  font-size: 0.8rem;
}

.az-lesson-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
}
.az-lesson-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 7px;
  background: rgba(30,86,232,0.12);
  border: 1px solid rgba(30,86,232,0.2);
  color: #60A5FA;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
  text-decoration: none;
}
.az-lesson-card-btn:hover {
  background: rgba(30,86,232,0.22);
  border-color: rgba(30,86,232,0.4);
}
.az-lesson-card-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #60A5FA;
  font-size: 0.73rem;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.2s;
}
.az-lesson-card-link:hover { color: #93C5FD; text-decoration: underline; }
.az-lesson-card-link svg { width: 13px; height: 13px; }

/* Video thumbnail with play button */
.az-video-thumb {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: #0d0e1a;
  aspect-ratio: 16/9;
  cursor: pointer;
}
.az-video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.az-video-thumb-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #0e1b3a, #1a1f3a);
  display: flex;
  align-items: center;
  justify-content: center;
}
.az-video-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.3);
}
.az-video-play-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(4px);
  border: 1.5px solid rgba(255,255,255,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, transform 0.2s;
}
.az-video-play-btn:hover {
  background: rgba(30,86,232,0.4);
  transform: scale(1.1);
}
.az-video-bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 28px;
  background: rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  padding: 0 8px;
  gap: 6px;
}
.az-video-bar-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #fff;
  opacity: 0.8;
}
.az-video-bar-line {
  flex: 1;
  height: 2px;
  background: rgba(255,255,255,0.15);
  border-radius: 99px;
  overflow: hidden;
}
.az-video-bar-fill {
  height: 100%;
  width: 30%;
  background: #1E56E8;
  border-radius: 99px;
}

/* ══════════════════════════════════
   BOTTOM PROGRESS BAR
   ══════════════════════════════════ */
.az-bottom-bar {
  flex-shrink: 0;
  height: 54px;
  background: rgba(13,14,26,0.97);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255,255,255,0.07);
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 14px;
  z-index: 200;
}
.az-bottom-bar-info {
  flex: 1;
  min-width: 0;
}
.az-bottom-bar-title {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.45);
  font-weight: 500;
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.az-bottom-bar-track {
  height: 3px;
  background: rgba(255,255,255,0.08);
  border-radius: 99px;
  overflow: hidden;
}
.az-bottom-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  border-radius: 99px;
  transition: width 0.6s ease;
}
.az-bottom-bar-pct {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
  white-space: nowrap;
}
.az-bottom-bar-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 8px;
  background: #1E56E8;
  color: #fff;
  font-size: 0.76rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s, transform 0.2s;
  flex-shrink: 0;
}
.az-bottom-bar-btn:hover {
  background: #1644C8;
  transform: translateY(-1px);
}
.az-bottom-bar-btn svg { width: 13px; height: 13px; }

/* ══════════════════════════════════
   RIGHT PANEL
   ══════════════════════════════════ */
.az-right-panel {
  display: none !important;
  width: 0;
  flex-shrink: 0;
  overflow: hidden;
}

.az-right-scroll {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 14px 80px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Premium Progress card */
.az-progress-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 14px 16px;
}
.az-progress-card-title {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  margin-bottom: 12px;
}

/* Circular progress ring */
.az-circ-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.az-circ {
  position: relative;
  width: 90px;
  height: 90px;
}
.az-circ svg {
  width: 90px;
  height: 90px;
  transform: rotate(-90deg);
}
.az-circ-bg {
  fill: none;
  stroke: rgba(255,255,255,0.07);
  stroke-width: 6;
}
.az-circ-fill {
  fill: none;
  stroke: url(#circGrad);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 245;
  stroke-dashoffset: 245;
  transition: stroke-dashoffset 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.az-circ-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
}
.az-circ-pct {
  font-size: 1.3rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.az-circ-sub {
  font-size: 0.55rem;
  color: rgba(255,255,255,0.4);
  font-weight: 500;
  text-align: center;
  line-height: 1.2;
}
.az-progress-card-label {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.4);
  text-align: center;
  font-weight: 500;
}

/* Learning Journal */
.az-journal-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.az-journal-title {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
}
.az-journal-textarea {
  width: 100%;
  min-height: 80px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 10px 12px;
  color: rgba(255,255,255,0.7);
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  line-height: 1.6;
  resize: vertical;
  transition: border-color 0.2s;
  outline: none;
}
.az-journal-textarea::placeholder { color: rgba(255,255,255,0.2); }
.az-journal-textarea:focus { border-color: rgba(30,86,232,0.4); }
.az-journal-save {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 7px;
  background: rgba(30,86,232,0.15);
  border: 1px solid rgba(30,86,232,0.25);
  color: #60A5FA;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  align-self: flex-end;
  transition: background 0.2s;
}
.az-journal-save:hover { background: rgba(30,86,232,0.28); }
.az-journal-saved-msg {
  font-size: 0.68rem;
  color: #10B981;
  align-self: flex-end;
  opacity: 0;
  transition: opacity 0.3s;
}
.az-journal-saved-msg.visible { opacity: 1; }

/* Recent Notes */
.az-notes-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.az-notes-title {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
}
.az-note-item {
  padding: 8px 10px;
  background: rgba(255,255,255,0.03);
  border-radius: 8px;
  border-left: 2px solid rgba(30,86,232,0.4);
}
.az-note-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 3px;
  gap: 6px;
}
.az-note-module {
  font-size: 0.68rem;
  font-weight: 700;
  color: rgba(255,255,255,0.6);
  line-height: 1.2;
}
.az-note-time {
  font-size: 0.62rem;
  color: rgba(255,255,255,0.25);
  white-space: nowrap;
}
.az-note-content {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.45;
}

/* Upcoming Live Session */
.az-live-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.az-live-title {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
}
.az-live-desc {
  font-size: 0.74rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.5;
}
.az-live-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.az-live-meta-item { }
.az-live-meta-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.25);
  font-weight: 500;
  margin-bottom: 2px;
}
.az-live-meta-value {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.6);
  font-weight: 500;
}
.az-live-register {
  width: 100%;
  padding: 9px;
  border-radius: 8px;
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  color: #fff;
  font-size: 0.76rem;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  border: none;
  font-family: 'Inter', sans-serif;
  transition: opacity 0.2s, transform 0.2s;
}
.az-live-register:hover { opacity: 0.88; transform: translateY(-1px); }

/* ══════════════════════════════════
   MOBILE TOP BAR (replaces sidebar on mobile)
   ══════════════════════════════════ */
.az-mobile-bar {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  height: 52px;
  background: #13141f;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  flex-shrink: 0;
  position: relative;
  z-index: 101;
}
.az-mobile-bar-logo {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.az-mobile-hamburger {
  display: flex;
  flex-direction: column;
  gap: 4.5px;
  padding: 6px;
  cursor: pointer;
  background: none;
  border: none;
}
.az-mobile-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: rgba(255,255,255,0.6);
  border-radius: 99px;
  transition: all 0.2s;
}
.az-mobile-progress-badge {
  width: 36px;
  height: 36px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.az-mobile-progress-badge svg {
  position: absolute;
  width: 36px;
  height: 36px;
  transform: rotate(-90deg);
}
.az-mobile-progress-badge-text {
  font-size: 0.6rem;
  font-weight: 700;
  color: #fff;
  position: relative;
  z-index: 1;
  line-height: 1;
}

/* Mobile drawer overlay */
.az-mobile-drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.7);
  z-index: 300;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.az-mobile-drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.az-mobile-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 260px;
  background: #13141f;
  z-index: 301;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.az-mobile-drawer.open { transform: translateX(0); }
.az-mobile-drawer-header {
  padding: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.az-mobile-drawer-logo {
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}
.az-mobile-drawer-close {
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  cursor: pointer;
  padding: 4px;
}

/* ══════════════════════════════════
   RESPONSIVE BREAKPOINTS
   ══════════════════════════════════ */

/* Tablet: hide right panel, compress sidebar */
@media (max-width: 1100px) {
  .az-right-panel { display: none; }
  .az-bottom-bar { right: 0; }
  /* Show journal below content on tablet */
  .az-journal-inline {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 24px;
    padding-bottom: 20px;
  }
}

@media (min-width: 769px) and (max-width: 1100px) {
  .az-sidebar { width: 180px; }
  .az-bottom-bar { left: 180px; }
  .az-nav-item-num { display: none; }
  .az-card-grid { grid-template-columns: 1fr 1fr; }
  .az-journal-inline { display: flex; }
}

/* Mobile: hide sidebar, show mobile bar */
@media (max-width: 768px) {
  .az-sidebar { display: none; }
  .az-right-panel { display: none; }
  .az-mobile-bar { display: flex; }
  /* NOTE: DO NOT set .az-mobile-drawer-overlay { display: block } here.
     The overlay starts as display:none and is shown via JS (openAcademyDrawer).
     Setting it block here blocks ALL taps on mobile even when drawer is closed. */
  .az-bottom-bar { left: 0; right: 0; }
  .az-card-grid { grid-template-columns: 1fr; }
  .az-mod-hero { padding: 20px 16px 16px; }
  .az-mod-hero-title { font-size: 1.3rem; }
  .az-content-body { padding: 14px 14px 80px; }
  .az-journal-inline { display: flex; }
  .az-bottom-bar-title { display: none; }
  .az-bottom-bar { padding: 0 12px; }
}

@media (max-width: 480px) {
  .az-lesson-card-body { flex-direction: column; }
  .az-lesson-card-body-thumb { width: 100%; }
}

/* ══════════════════════════════════
   INLINE JOURNAL (tablet/mobile below content)
   ══════════════════════════════════ */
.az-journal-inline {
  display: none;
}
.az-journal-inline-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 600px) {
  .az-journal-inline-inner { grid-template-columns: 1fr; }
}

/* SVG gradient def (inline in HTML) */
.az-svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ═══════════════════════════════════════════════════════════════════
   ACADEMY CONTENT OVERRIDES
   Force dark-native styles for mod-content inside az-shell
   ═══════════════════════════════════════════════════════════════════ */

/* Content body fills full az-main width */
.az-shell .az-content-body {
  max-width: 100%;
  width: 100%;
  padding: 24px 32px 120px;
  box-sizing: border-box;
}

/* Override TOC sticky top for academy layout */
.az-shell .mod-toc {
  position: static;
  top: unset;
  margin-bottom: 24px;
}
.az-shell .mod-toc-inner {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 16px;
}
.az-shell .mod-toc-label {
  color: rgba(255,255,255,0.3);
}
.az-shell .mod-toc-link {
  color: rgba(255,255,255,0.5);
  font-size: 0.8rem;
}
.az-shell .mod-toc-link:hover,
.az-shell .mod-toc-link.active {
  color: #60A5FA;
  background: rgba(30,86,232,0.1);
}

/* Section scroll margin for new layout (no fixed header) */
.az-shell .mod-section {
  scroll-margin-top: 24px;
}

/* Content base text */
.az-shell .mod-content p,
.az-shell .mod-content li {
  color: rgba(220,233,243,0.82);
  line-height: 1.75;
}
.az-shell .mod-content h2,
.az-shell .mod-content h3,
.az-shell .mod-content h4 {
  color: #e8edf5;
}
.az-shell .mod-content strong {
  color: #c9dff5;
  font-weight: 700;
}
.az-shell .mod-content a {
  color: #60A5FA;
}

/* Intro block */
.az-shell .mod-intro-block {
  background: rgba(14,27,58,0.7);
  border: 1px solid rgba(255,255,255,0.08);
  border-left: 4px solid #1E56E8;
  border-radius: 0 12px 12px 0;
  box-shadow: 0 2px 20px rgba(0,0,0,0.25);
}
.az-shell .mod-lead {
  color: rgba(220,233,243,0.9);
  font-size: 1.05rem;
}
.az-shell .mod-intro-block p {
  color: rgba(220,233,243,0.72);
}

/* Section number — AZUL style: blue fill, orange outline, dark gap */
.az-shell .mod-section-num {
  font-size: clamp(3rem, 6vw, 4.5rem);
  color: #0066FF;
  -webkit-text-fill-color: #0066FF;
  -webkit-text-stroke: 0;
  text-shadow:
     9px  0   0 #0d1523,   -9px  0   0 #0d1523,
     0   9px  0 #0d1523,    0  -9px  0 #0d1523,
     7px  7px 0 #0d1523,   -7px  7px 0 #0d1523,
     7px -7px 0 #0d1523,   -7px -7px 0 #0d1523,
    12px  0   0 #F59E0B,  -12px  0   0 #F59E0B,
     0   12px 0 #F59E0B,    0  -12px 0 #F59E0B,
    10px 10px 0 #F59E0B,  -10px 10px 0 #F59E0B,
    10px -10px 0 #F59E0B, -10px -10px 0 #F59E0B,
     0   0  20px rgba(0,102,255,0.3);
  opacity: 1;
}
.az-shell .mod-section-label {
  color: #60A5FA;
  background: rgba(30,86,232,0.12);
  border-color: rgba(30,86,232,0.2);
}
.az-shell .mod-section-title {
  color: #e8edf5;
}
.az-shell .mod-section-intro {
  color: rgba(220,233,243,0.65);
}

/* Callouts in dark shell */
.az-shell .mod-callout--blue {
  background: rgba(30,86,232,0.1);
  border-color: rgba(30,86,232,0.22);
  color: rgba(147,197,253,0.95);
}
.az-shell .mod-callout--green {
  background: rgba(5,150,105,0.1);
  border-color: rgba(5,150,105,0.2);
  color: rgba(110,231,183,0.95);
}
.az-shell .mod-callout--amber {
  background: rgba(245,158,11,0.08);
  border-color: rgba(245,158,11,0.2);
  color: rgba(252,211,77,0.95);
}

/* Takeaway box */
.az-shell .mod-takeaway {
  background: rgba(30,86,232,0.1);
  border-color: rgba(99,159,255,0.35);
  color: rgba(147,197,253,0.95);
}
.az-shell .mod-takeaway::before {
  background: rgba(30,86,232,0.8);
}

/* Concept cards */
.az-shell .mod-concept-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: none;
}
.az-shell .mod-concept-card:hover {
  border-color: rgba(30,86,232,0.35);
  box-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
.az-shell .mod-concept-card h3 {
  color: #dce9f3;
}
.az-shell .mod-concept-card p {
  color: rgba(220,233,243,0.65);
}

/* Phase/summary cards */
.az-shell .mod-phase-card,
.az-shell .mod-summary-card {
  background: #161927;
  border-color: rgba(255,255,255,0.08);
}

/* Quick notes */
.az-shell .mod-quick-notes {
  background: rgba(14,27,58,0.6);
  border: 1px solid rgba(255,255,255,0.08);
}
.az-shell .mod-quick-notes-title {
  color: rgba(255,255,255,0.5);
}
.az-shell .mod-quick-notes-item {
  color: rgba(220,233,243,0.72);
}
.az-shell .mod-quick-notes-item::before {
  color: #10B981;
}

/* Rule / key-rule list */
.az-shell .mod-rule-list li,
.az-shell .mod-key-rule {
  color: rgba(220,233,243,0.75);
}

/* Practice assignment */
.az-shell .mod-practice {
  background: rgba(16,185,129,0.08);
  border: 1px solid rgba(16,185,129,0.2);
}
.az-shell .mod-practice-title {
  color: #34D399;
}
.az-shell .mod-practice p,
.az-shell .mod-practice li {
  color: rgba(110,231,183,0.85);
}

/* Quiz inside academy */
.az-shell .mod-quiz-section {
  background: rgba(14,27,58,0.6);
  border: 1px solid rgba(255,255,255,0.07);
}
.az-shell .mod-quiz-q {
  color: rgba(220,233,243,0.88);
}
.az-shell .mod-quiz-opt {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.1);
  color: rgba(220,233,243,0.7);
}
.az-shell .mod-quiz-opt:hover {
  border-color: rgba(30,86,232,0.4);
  background: rgba(30,86,232,0.08);
  color: #dce9f3;
}
.az-shell .mod-quiz-opt.selected {
  border-color: #1E56E8;
  background: rgba(30,86,232,0.12);
  color: #e8edf5;
}
.az-shell .mod-quiz-opt.correct {
  border-color: #10B981;
  background: rgba(16,185,129,0.12);
  color: #34D399;
}
.az-shell .mod-quiz-opt.incorrect {
  border-color: #ef4444;
  background: rgba(239,68,68,0.08);
  color: #fca5a5;
}
.az-shell .mod-quiz-submit {
  background: #1E56E8;
  color: #fff;
}
.az-shell .mod-quiz-submit:hover:not(:disabled) {
  background: #1644C8;
}
.az-shell .mod-quiz-retry {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.7);
}
.az-shell .mod-quiz-unlock {
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  color: #fff;
  border: none;
}

/* Anchor/real-world cards (Module 6) */
.az-shell .m6-anchor-card {
  background: #161927;
  border-color: rgba(255,255,255,0.08);
}

/* Up-next / CTA section */
.az-shell .mod-next-section {
  background: rgba(14,27,58,0.5);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
}

/* Horizontal rule */
.az-shell .mod-content hr {
  border-color: rgba(255,255,255,0.07);
}

/* ── Scroll margin for TOC links when reading ── */
.az-shell #intro,
.az-shell #section1,
.az-shell #section2,
.az-shell #section3,
.az-shell #section4,
.az-shell #quickNotes,
.az-shell #glossary,
.az-shell #quiz {
  scroll-margin-top: 20px;
}

/* ── Bottom bar sits inside az-main flex column ── */
.az-shell .az-bottom-bar {
  position: relative;
  left: unset;
  right: unset;
  bottom: unset;
}

/* ── Progress bar in bottom bar ── */
.az-bottom-bar-track { overflow: hidden; }

/* ── Module 4 COS/TC card images darkened ── */
.az-shell .mod-concept-card-img img {
  opacity: 1;
  border-radius: 6px;
}

/* ── Glossary modal dark ── */
.az-shell .mod-gloss-modal-overlay {
  z-index: 9000;
}

/* ══════════════════════════════════
   TYPOGRAPHY POLISH INSIDE ACADEMY
   ══════════════════════════════════ */
.az-shell .mod-content {
  font-size: 0.9375rem;
  line-height: 1.75;
}
.az-shell .mod-section-header {
  margin-bottom: 22px;
}
.az-shell .mod-concept-grid {
  gap: 12px;
}
.az-shell .mod-concept-card {
  padding: 16px;
}

/* Ensure inline SVGs in content are visible */
.az-shell .mod-content svg {
  max-width: 100%;
}

/* Content body scrollbar */
.az-content-scroll::-webkit-scrollbar { width: 5px; }
.az-content-scroll::-webkit-scrollbar-track { background: transparent; }
.az-content-scroll::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.1);
  border-radius: 99px;
}
.az-content-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.2);
}

/* ═══════════════════════════════════════════════════════════════════
   MODULE-SPECIFIC DARK OVERRIDES (inside az-shell)
   ═══════════════════════════════════════════════════════════════════ */

/* Phase cards (market structure types) */
.az-shell .mod-phase-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  box-shadow: none;
}
.az-shell .mod-phase-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.az-shell .mod-phase-card h3,
.az-shell .mod-phase-card h4 {
  color: #e2eaf5;
}
.az-shell .mod-phase-img {
  background: #161e2e; /* card surface — transparent PNGs blend cleanly */
}

/* M6 Anchor cards */
.az-shell .m6-anchor-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
  box-shadow: none;
}
.az-shell .m6-anchor-card:hover {
  border-color: rgba(30,86,232,0.3);
}
.az-shell .m6-anchor-card h4 {
  color: #dce9f3;
}
.az-shell .m6-anchor-card p {
  color: rgba(220,233,243,0.62);
}
.az-shell .m6-anchor-label--blue {
  background: rgba(30,86,232,0.12);
  color: #60A5FA;
  border-color: rgba(30,86,232,0.25);
}
.az-shell .m6-anchor-label--green {
  color: #34D399;
}

/* COS cards (Module 4) */
.az-shell .mod-cos-card,
.az-shell .cos-card {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.07);
}
.az-shell .mod-cos-card h3,
.az-shell .cos-card h3 {
  color: #dce9f3;
}

/* Supply/Demand zone cards (Module 6) */
.az-shell .mod-zone-card {
  background: #161927;
  border-color: rgba(255,255,255,0.07);
}

/* AOV / M7 tier hierarchy (Module 7) */
.az-shell .m7-tier-card,
.az-shell .aov-tier-card {
  background: #161927;
  border-color: rgba(255,255,255,0.07);
}

/* Summary cards / checklist items */
.az-shell .mod-summary-item,
.az-shell .mod-checklist-item {
  color: rgba(220,233,243,0.72);
  border-color: rgba(255,255,255,0.07);
}

/* Friend moment / coach callout */
.az-shell .mod-friend-moment,
.az-shell .mod-coach-note {
  background: rgba(79,70,229,0.1);
  border: 1px solid rgba(79,70,229,0.25);
  color: rgba(196,181,253,0.9);
}

/* Key phrase / important term */
.az-shell .mod-key-phrase {
  background: rgba(16,185,129,0.08);
  border: 1px solid rgba(16,185,129,0.2);
  color: rgba(110,231,183,0.9);
}

/* Rule box */
.az-shell .mod-rule-box {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.08);
  border-left: 3px solid #1E56E8;
}
.az-shell .mod-rule-box p,
.az-shell .mod-rule-box li {
  color: rgba(220,233,243,0.75);
}

/* Table styles in content */
.az-shell .mod-content table {
  border-color: rgba(255,255,255,0.08);
}
.az-shell .mod-content th {
  background: rgba(255,255,255,0.05);
  color: rgba(255,255,255,0.7);
  border-color: rgba(255,255,255,0.08);
}
.az-shell .mod-content td {
  color: rgba(220,233,243,0.72);
  border-color: rgba(255,255,255,0.06);
}
.az-shell .mod-content tr:nth-child(even) {
  background: rgba(255,255,255,0.02);
}

/* Module nav buttons (prev/next) */
.az-shell .mod-nav-btn,
.az-shell .mod-nav-btn--next {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.6);
}
.az-shell .mod-nav-btn:hover,
.az-shell .mod-nav-btn--next:hover {
  background: rgba(30,86,232,0.15);
  border-color: rgba(30,86,232,0.3);
  color: #fff;
}

/* Up-next module section */
.az-shell .mod-next-module-btn {
  background: linear-gradient(90deg, #1E56E8, #4F46E5);
  color: #fff;
  border: none;
}

/* Glossary button */
.az-shell .mod-gloss-btn {
  background: rgba(30,86,232,0.1);
  border-color: rgba(30,86,232,0.25);
  color: #60A5FA;
}
.az-shell .mod-gloss-btn:hover {
  background: rgba(30,86,232,0.2);
}

/* ── Responsive: content fills full width on all screen sizes ── */
@media (min-width: 1400px) {
  .az-shell .az-content-body {
    max-width: 100%;
  }
}

/* ── Tablet adjustments ── */
@media (min-width: 769px) and (max-width: 1100px) {
  .az-shell .az-content-body {
    padding: 20px 22px 100px;
    max-width: 100%;
  }
  .az-shell .mod-concept-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* ── Mobile adjustments ── */
@media (max-width: 768px) {
  .az-shell .az-content-body {
    padding: 16px 16px 90px;
    max-width: 100%;
  }
  .az-shell .mod-section-header {
    gap: 12px;
  }
  .m6-anchor-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Hype block & motivational blocks ── */
.az-shell .mod-hype-block {
  background: linear-gradient(135deg, rgba(30,86,232,0.08), rgba(16,185,129,0.06));
  border-color: rgba(30,86,232,0.2);
}
.az-shell .mod-hype-headline {
  color: #e2eaf5;
}
.az-shell .mod-hype-body p:not(.mod-hype-headline) {
  color: rgba(220,233,243,0.65);
}

/* ── Practice assignment CTA ── */
.az-shell .mod-cta {
  background: linear-gradient(135deg, rgba(30,86,232,0.08) 0%, rgba(16,185,129,0.06) 100%);
  border-color: rgba(30,86,232,0.2);
}
.az-shell .mod-cta-label {
  color: #60A5FA;
}
.az-shell .mod-cta-title {
  color: #dce9f3;
}
.az-shell .mod-cta-body p {
  color: rgba(220,233,243,0.65);
}

/* ── Inline term ── */
.az-shell .mod-inline-term {
  background: rgba(30,86,232,0.15);
  color: #93C5FD;
  border-radius: 4px;
  padding: 1px 5px;
  font-weight: 500;
  font-style: normal;
}

/* ── Card rule ── */
.az-shell .mod-card-rule {
  background: rgba(255,255,255,0.04);
  border-top: 1px solid rgba(255,255,255,0.07);
  color: rgba(220,233,243,0.6);
}
.az-shell .mod-card-rule svg {
  color: #10B981;
}

/* ── COS subtitle ── */
.az-shell .mod-cos-subtitle {
  color: rgba(220,233,243,0.45);
}

/* ── Rules block ── */
.az-shell .mod-rules-block {
  background: #161927;
  border-color: rgba(255,255,255,0.07);
}
.az-shell .mod-rules-block li {
  color: rgba(220,233,243,0.72);
  border-bottom-color: rgba(255,255,255,0.05);
}
.az-shell .mod-rules-block li::before {
  color: #10B981;
}

/* ── Modal overlays ── */
.az-shell .mod-modal-overlay {
  z-index: 600;
  display: none;
  position: fixed;
  inset: 0;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.az-shell .mod-modal-overlay.is-open {
  display: flex !important;
}
.az-shell .mod-modal {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}
.az-shell .mod-modal-content h3 {
  color: #e2eaf5;
}
.az-shell .mod-modal-content p {
  color: rgba(220,233,243,0.75);
}
.az-shell .mod-modal-subtitle {
  color: #60A5FA;
}
.az-shell .mod-modal-footer {
  background: rgba(255,255,255,0.03);
  border-top-color: rgba(255,255,255,0.07);
  color: rgba(220,233,243,0.55);
}
.az-shell .mod-modal-close {
  color: rgba(255,255,255,0.4);
}
.az-shell .mod-modal-close:hover {
  color: rgba(255,255,255,0.8);
  background: rgba(255,255,255,0.07);
}

/* ── Glossary modal ── */
.az-shell .mod-gloss-modal {
  background: #161927;
  border: 1px solid rgba(255,255,255,0.1);
}
.az-shell .mod-gloss-modal-header {
  border-bottom-color: rgba(255,255,255,0.07);
}
.az-shell .mod-gloss-modal-header h3 {
  color: #e2eaf5;
}
.az-shell .mod-gloss-entry-term {
  color: #dce9f3;
}
.az-shell .mod-gloss-entry-def {
  color: rgba(220,233,243,0.65);
}

/* ── Quick notes checklist ── */
.az-shell .mod-quick-notes-list li {
  color: rgba(220,233,243,0.72);
  border-bottom-color: rgba(255,255,255,0.05);
}
.az-shell .mod-quick-notes-list li::before {
  color: #10B981;
}

/* ── Horizontal dividers ── */
.az-shell .mod-content hr,
.az-shell hr.mod-divider {
  border: none;
  border-top: 1px solid rgba(255,255,255,0.07);
  margin: 32px 0;
}

/* ── Section 4 "Put it together" in M5 ── */
.az-shell .mod-workflow-step {
  background: #161927;
  border-color: rgba(255,255,255,0.07);
}
.az-shell .mod-workflow-step-title {
  color: #dce9f3;
}
.az-shell .mod-workflow-step-body {
  color: rgba(220,233,243,0.68);
}

/* ── Tier hierarchy (M7) ── */
.az-shell .m7-hierarchy-level {
  background: #161927;
  border-color: rgba(255,255,255,0.07);
}
.az-shell .m7-hierarchy-label {
  color: rgba(255,255,255,0.45);
}
.az-shell .m7-timeframe-tag {
  background: rgba(30,86,232,0.1);
  color: #60A5FA;
  border-color: rgba(30,86,232,0.2);
}

/* ── Chart image containers ── */
.az-shell .mod-chart-img,
.az-shell .mod-concept-card-img {
  background: #161e2e; /* card surface — transparent PNG sits cleanly on this */
  border-radius: 8px;
  overflow: hidden;
}
.az-shell .mod-chart-img img,
.az-shell .mod-concept-card-img img {
  opacity: 1;
}

/* ── Glossary trigger button ── */
.az-shell .mod-gloss-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(30,86,232,0.1);
  border: 1px solid rgba(30,86,232,0.2);
  color: #60A5FA;
  font-size: 0.75rem;
  font-weight: 500;
  cursor: pointer;
  margin-top: 8px;
  transition: background 0.2s;
}
.az-shell .mod-gloss-trigger:hover {
  background: rgba(30,86,232,0.2);
}

/* ── Section "Up Next" block ── */
.az-shell .mod-up-next {
  background: rgba(14,27,58,0.5);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 24px;
}
.az-shell .mod-up-next-title {
  color: rgba(255,255,255,0.35);
}
.az-shell .mod-up-next h3 {
  color: #e2eaf5;
}
.az-shell .mod-up-next p {
  color: rgba(220,233,243,0.6);
}
/* ══════════════════════════════════════════════════════════════
   MOBILE SCROLL & TOUCH FIXES
   Ensure az-content-scroll is the ONLY scroll container on mobile.
   The body must NOT scroll — az-shell fills the viewport.
   ══════════════════════════════════════════════════════════════ */

/* Force az-shell to fill the viewport as a block, not a flex child */
.az-shell {
  position: relative;    /* stacking context */
  display: flex;
  width: 100%;
  height: 100dvh;
  overflow: hidden;
}

/* Mobile: make sure the main area fills remaining height */
@media (max-width: 768px) {
  /* Shell must be exactly viewport height */
  .az-shell {
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    /* Prevent iOS rubber-band scroll on the shell itself */
    overscroll-behavior: none;
  }

  /* Main content column: fill remaining width, no overflow */
  .az-main {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    width: 100%;
  }

  /* Mobile top bar: fixed height, never shrinks */
  .az-mobile-bar {
    flex-shrink: 0;
    height: 52px;
    z-index: 101;
  }

  /* The scrollable content region — MUST fill all remaining height */
  .az-content-scroll {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    /* Prevent iOS from over-scrolling and revealing body behind */
    overscroll-behavior-y: contain;
  }

  /* Bottom bar: fixed height, never shrinks */
  .az-bottom-bar {
    flex-shrink: 0;
    height: 54px;
    position: relative;  /* in-flow, not fixed */
  }
}

/* iOS Safari: prevent full-page bounce that blocks touches */
html, body {
  overscroll-behavior: none;
}

/* Make sure the drawer overlay NEVER blocks taps when not open */
.az-mobile-drawer-overlay:not(.open) {
  pointer-events: none !important;
  display: none !important;
}

/* ════════════════════════════════════════════════════════════════════
   MOBILE UX POLISH — 6 fixes
   Applied 2025-03 — do not override desktop layout
   ════════════════════════════════════════════════════════════════════ */

/* ──────────────────────────────────────────────────────────────────
   FIX 1 — POPUP / MODAL FONT SIZE CONSISTENCY
   All modal text matches the module body text (~0.9rem / line-height 1.75)
   so popups never require internal scrolling and feel like the page.
   ────────────────────────────────────────────────────────────────── */

/* concept card modals (mod-modal) */
.az-shell .mod-modal h3 {
  font-size: 1rem;           /* down from 1.25rem */
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0 0 4px;
}
.az-shell .mod-modal-subtitle {
  font-size: 0.72rem;        /* keep compact */
  margin-bottom: 12px;
}
.az-shell .mod-modal p {
  font-size: 0.9rem;         /* matches body text */
  line-height: 1.75;
  margin: 0 0 10px;
}
.az-shell .mod-modal-content {
  padding: 20px 20px 18px;   /* tighter on mobile */
}
.az-shell .mod-modal-footer {
  padding: 12px 20px 16px;
  font-size: 0.82rem;
}

/* glossary bottom-sheet modal */
.az-shell .mod-gloss-modal-header h3 {
  font-size: 0.9rem;
}
.az-shell .mod-gloss-entry dt {
  font-size: 0.85rem;
}
.az-shell .mod-gloss-entry dd {
  font-size: 0.82rem;
  line-height: 1.65;
}

/* On mobile: extra compact modal so no internal scroll needed */
@media (max-width: 768px) {
  .az-shell .mod-modal-content {
    padding: 16px 16px 14px;
  }
  .az-shell .mod-modal h3 {
    font-size: 0.95rem;
  }
  .az-shell .mod-modal p {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 8px;
  }
  .az-shell .mod-modal {
    max-height: 85vh;
    border-radius: 16px;
  }
  .az-shell .mod-modal-footer {
    padding: 10px 16px 14px;
    font-size: 0.8rem;
  }
  .mod-gloss-modal {
    max-height: 75vh;
    border-radius: 16px 16px 0 0;
  }
  .mod-gloss-modal-body {
    padding: 6px 16px 12px;
  }
  .mod-gloss-entry {
    padding: 10px 0;
  }
  .mod-gloss-entry dt {
    font-size: 0.82rem;
  }
  .mod-gloss-entry dd {
    font-size: 0.78rem;
  }
  .mod-gloss-modal-header {
    padding: 14px 16px 12px;
  }
}

/* ──────────────────────────────────────────────────────────────────
   FIX 3 — MOBILE BOTTOM BAR: contrast + tap target
   ────────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .az-bottom-bar-pct {
    color: #ffffff;           /* was rgba(255,255,255,0.55) */
    font-weight: 700;         /* was 600 */
    font-size: 0.78rem;
  }
  .az-bottom-bar-btn {
    min-height: 44px;         /* WCAG tap target */
    padding: 0 16px;          /* at least 16px horizontal */
    font-size: 0.78rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* ──────────────────────────────────────────────────────────────────
   FIX 4 — MOBILE BODY TEXT: 16px horizontal padding minimum
   ────────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  /* All prose inside the module content area */
  .az-shell .mod-content p,
  .az-shell .mod-content li,
  .az-shell .mod-lead,
  .az-shell .mod-intro-block p,
  .az-shell .mod-section-intro,
  .az-shell .mod-callout,
  .az-shell .mod-takeaway,
  .az-shell .mod-hype-block,
  .az-shell .mod-cta {
    /* Ensure these never touch screen edges inside az-content-body */
    word-break: break-word;
    overflow-wrap: break-word;
  }
  /* The scroll content body itself guarantees 16px min padding */
  .az-shell .az-content-body {
    padding-left: max(16px, 4vw);
    padding-right: max(16px, 4vw);
  }
}

/* ──────────────────────────────────────────────────────────────────
   FIX 5 — SECTION NUMBER on mobile: 20% smaller, opacity 0.15
   ────────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .az-shell .mod-section-num {
    font-size: clamp(2.4rem, 4.8vw, 3.6rem);
    opacity: 1;
    /* Scale down shadow offsets for mobile */
    text-shadow:
       6px  0   0 #0d1523,   -6px  0   0 #0d1523,
       0   6px  0 #0d1523,    0  -6px  0 #0d1523,
       5px  5px 0 #0d1523,   -5px  5px 0 #0d1523,
       5px -5px 0 #0d1523,   -5px -5px 0 #0d1523,
       9px  0   0 #F59E0B,   -9px  0   0 #F59E0B,
       0   9px  0 #F59E0B,    0  -9px  0 #F59E0B,
       7px  7px 0 #F59E0B,   -7px  7px 0 #F59E0B,
       7px -7px 0 #F59E0B,   -7px -7px 0 #F59E0B,
       0   0  16px rgba(0,102,255,0.25);
  }
}

/* ──────────────────────────────────────────────────────────────────
   FIX 6 — STICKY SECTION INDICATOR chip (mobile only)
   Rendered via JS, positioned below az-mobile-bar
   ────────────────────────────────────────────────────────────────── */

.az-section-chip {
  display: none; /* hidden on desktop */
}

@media (max-width: 768px) {
  .az-section-chip {
    display: flex;
    align-items: center;
    gap: 7px;
    position: sticky;
    top: 0;                            /* sticks below mobile bar in scroll flow */
    z-index: 90;
    background: rgba(13,14,26,0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255,255,255,0.07);
    padding: 7px 16px;
    flex-shrink: 0;                    /* won't shrink inside az-content-scroll */
    transition: opacity 0.2s;
    pointer-events: none;              /* doesn't eat taps */
  }
  .az-section-chip-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #1E56E8;
    flex-shrink: 0;
    box-shadow: 0 0 6px rgba(30,86,232,0.6);
  }
  .az-section-chip-text {
    font-size: 0.68rem;
    font-weight: 500;
    color: rgba(220,233,243,0.7);
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: calc(100vw - 60px);
  }
  /* Fade out the chip on the hero/intro — only show from section 1 onward */
  .az-section-chip.az-section-chip--hidden {
    opacity: 0;
    pointer-events: none;
  }
}

/* ──────────────────────────────────────────────────────────────────
   FIX 2 (CSS part) — body lock for iOS Safari when modal is open
   JS sets .modal-open class on body; CSS + position:fixed prevents
   rubber-band scroll revealing background content.
   ────────────────────────────────────────────────────────────────── */
body.modal-open {
  overflow: hidden !important;
  position: fixed;
  width: 100%;
  /* preserve scroll position via JS (set top = -scrollY) */
}

/* ══════════════════════════════════════════════════════════════════
   AZUL DESIGN SYSTEM — v2 overrides
   Palette: Deep Navy #0F1B2E · Electric Blue #0066FF · Accent Blue #00A8E8
            Success Green #10B981 · Warning Orange #F59E0B · Neutral Gray #6B7280
            Dark Background #111827 · Card White #FFFFFF
            Text Primary #F3F4F6 · Text Secondary #9CA3AF
            Risk Red #EF4444 · Profit Green #10B981
   ══════════════════════════════════════════════════════════════════ */

/* ─── 1. CSS CUSTOM PROPS (AZUL palette) ─────────────────────────── */
.az-shell {
  --azul-navy:       #0F1B2E;
  --azul-blue:       #0066FF;
  --azul-accent:     #00A8E8;
  --azul-green:      #10B981;
  --azul-orange:     #F59E0B;
  --azul-gray:       #6B7280;
  --azul-bg:         #111827;
  --azul-surface:    #161e2e;
  --azul-surface2:   #1a2540;
  --azul-border:     rgba(0,102,255,0.14);
  --azul-text:       #F3F4F6;
  --azul-muted:      #9CA3AF;
  --azul-red:        #EF4444;
}

/* ─── 1a. Mobile bar — logo fills header, no progress badge ─────── */
.az-mobile-bar {
  background: #0F1B2E;
  border-bottom: 1px solid rgba(0,102,255,0.18);
  justify-content: space-between;
}
.az-mobile-bar-logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
}
/* Logo image inside the mobile bar */
.az-mobile-bar-logo-img {
  height: 26px;
  width: auto;
  object-fit: contain;
  /* logo-full.png is typically light/white — show as-is on dark bar */
  filter: brightness(1.1);
}
/* Invisible spacer matches hamburger width so logo stays centred */
.az-mobile-bar-spacer {
  width: 32px;
  flex-shrink: 0;
}
/* Hide the old progress badge permanently */
.az-mobile-progress-badge { display: none !important; }

/* ─── 2. Shell background & surfaces (AZUL palette) ─────────────── */
.az-shell {
  background: var(--azul-navy);
}
.az-sidebar {
  background: #0d1523;
  border-right: 1px solid rgba(0,102,255,0.1);
}
.az-main {
  background: #111827;
}
.az-right-panel {
  background: #0d1523;
  border-left: 1px solid rgba(0,102,255,0.1);
}

/* Sidebar header */
.az-sidebar-header {
  border-bottom: 1px solid rgba(0,102,255,0.1);
}
.az-sidebar-academy {
  color: rgba(0,168,232,0.7);
}
/* Nav items */
.az-nav-item {
  color: rgba(243,244,246,0.6);
}
.az-nav-item:hover {
  background: rgba(0,102,255,0.07);
  color: #F3F4F6;
}
.az-nav-item.active {
  background: rgba(0,102,255,0.12);
  border-left: 2px solid #0066FF;
  color: #F3F4F6;
}
.az-nav-item-dot {
  background: #0066FF;
  box-shadow: 0 0 8px rgba(0,102,255,0.6);
}
.az-nav-item-num { color: rgba(0,168,232,0.6); }
.az-nav-item.active .az-nav-item-num { color: #00A8E8; }

/* Overall progress bar */
.az-sidebar-progress-fill {
  background: linear-gradient(90deg, #0066FF, #00A8E8);
}
.az-sidebar-progress-bar {
  background: rgba(0,102,255,0.12);
}

/* ─── 3. Module hero header ──────────────────────────────────────── */
.az-mod-hero {
  background: linear-gradient(135deg, #0F1B2E 0%, #0d1e3a 50%, #111827 100%);
  border-bottom: 1px solid rgba(0,102,255,0.14);
}
.az-mod-hero-badge {
  background: rgba(0,102,255,0.15);
  color: #00A8E8;
  border: 1px solid rgba(0,168,232,0.25);
}
.az-mod-hero-title {
  color: #F3F4F6;
}
.az-mod-hero-title span {
  color: #00A8E8;
}
.az-mod-hero-sub {
  color: rgba(156,163,175,0.85);
}

/* ─── 4. SECTION NUMBER — Single-digit, AZUL logo-inspired ──────── */
/*
   The AZUL logo is a strong geometric letter A with a filled blue
   triangle inside. We mirror this: the section number gets an
   Electric Blue fill + a thin Accent Blue outline stroke, bold
   geometric weight, no text-shadow distractions.
*/
.az-shell .mod-section-num {
  /* Single-digit bold: matches the heavy-weight A in the AZUL logo */
  font-size: clamp(2.8rem, 5vw, 4rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.03em;

  /* Fill = Electric Blue (like the triangle fill in the logo) */
  color: #0066FF;

  /* Outline = Accent Blue (lighter, like the logo border effect) */
  -webkit-text-stroke: 1.5px #00A8E8;

  /* Subtle glow matching logo blue */
  text-shadow: 0 0 20px rgba(0,102,255,0.3), 0 0 40px rgba(0,168,232,0.12);

  opacity: 1;
  user-select: none;
}

@media (max-width: 768px) {
  .az-shell .mod-section-num {
    font-size: clamp(2.2rem, 5vw, 3rem);
    -webkit-text-stroke: 1px #00A8E8;
    opacity: 0.9;
  }
}

/* Section label pill */
.az-shell .mod-section-label {
  color: #00A8E8;
  background: rgba(0,102,255,0.1);
  border-color: rgba(0,168,232,0.25);
}
/* Section title */
.az-shell .mod-section-title {
  color: #F3F4F6;
}
/* Section intro */
.az-shell .mod-section-intro {
  color: rgba(156,163,175,0.9);
}

/* ─── 5. Intro block & content ───────────────────────────────────── */
.az-shell .mod-intro-block {
  background: rgba(0,102,255,0.06);
  border-left: 3px solid #0066FF;
  border-color: rgba(0,168,232,0.3);
}
.az-shell .mod-content p,
.az-shell .mod-content li {
  color: rgba(243,244,246,0.82);
}
.az-shell .mod-content h2,
.az-shell .mod-content h3,
.az-shell .mod-content h4 {
  color: #F3F4F6;
}
.az-shell .mod-content strong {
  color: #00A8E8;
}
.az-shell .mod-lead {
  color: rgba(243,244,246,0.88);
}

/* Callouts */
.az-shell .mod-callout--blue {
  background: rgba(0,102,255,0.08);
  border-color: rgba(0,102,255,0.22);
  color: rgba(147,197,253,0.95);
}
.az-shell .mod-callout--green {
  background: rgba(16,185,129,0.08);
  border-color: rgba(16,185,129,0.22);
}
.az-shell .mod-callout--orange {
  background: rgba(245,158,11,0.08);
  border-color: rgba(245,158,11,0.22);
}
.az-shell .mod-callout--red {
  background: rgba(239,68,68,0.08);
  border-color: rgba(239,68,68,0.22);
}

/* Concept cards */
.az-shell .mod-concept-card {
  background: #161e2e;
  border-color: rgba(0,102,255,0.15);
}
.az-shell .mod-concept-card:hover,
.az-shell .mod-concept-card--clickable:hover {
  border-color: rgba(0,168,232,0.35);
  box-shadow: 0 4px 20px rgba(0,102,255,0.15);
}
.az-shell .mod-concept-card--blue  { border-top: 2px solid #0066FF; }
.az-shell .mod-concept-card--green { border-top: 2px solid #10B981; }
.az-shell .mod-concept-card--red   { border-top: 2px solid #EF4444; }
.az-shell .mod-concept-card--purple{ border-top: 2px solid #00A8E8; }

/* Lesson cards */
.az-shell .az-lesson-card {
  background: #161e2e;
  border-color: rgba(0,102,255,0.12);
}
.az-shell .az-lesson-card:hover {
  border-color: rgba(0,168,232,0.28);
  box-shadow: 0 4px 24px rgba(0,102,255,0.12);
}

/* Hype / CTA blocks */
.az-shell .mod-hype-block {
  background: linear-gradient(135deg, rgba(0,102,255,0.08), rgba(0,168,232,0.06));
  border-color: rgba(0,102,255,0.18);
}
.az-shell .mod-cta {
  background: linear-gradient(135deg, rgba(0,102,255,0.08), rgba(16,185,129,0.06));
  border-color: rgba(0,102,255,0.15);
}

/* Quiz */
.az-shell .mod-quiz-option {
  background: #161e2e;
  border-color: rgba(0,102,255,0.14);
  color: rgba(243,244,246,0.8);
}
.az-shell .mod-quiz-option:hover {
  background: rgba(0,102,255,0.1);
  border-color: #0066FF;
  color: #F3F4F6;
}
.az-shell .mod-quiz-option.correct {
  background: rgba(16,185,129,0.12);
  border-color: #10B981;
  color: #10B981;
}
.az-shell .mod-quiz-option.wrong {
  background: rgba(239,68,68,0.1);
  border-color: #EF4444;
  color: #EF4444;
}

/* ─── 6. ALL MODULE IMAGES — transparent blend ───────────────────── */
/*
   Images are already RGBA transparent PNGs — just display them normally.
   Container background matches the card surface (#161e2e) so no box shows.
   No mix-blend-mode, no filter, no opacity reduction — colours stay intact.
*/
/* ─── 6. MODULE IMAGES — show transparent PNGs cleanly on dark bg ── */
/*
   All chart/diagram images are RGBA with transparent backgrounds.
   We simply show them as-is — no blend-mode, no filter.
   Container background matches the card surface so no box is visible.
   A subtle drop-shadow adds depth without altering colours.
*/
.az-shell .mod-concept-card-img {
  background: #161e2e; /* matches .az-shell .mod-concept-card surface */
  overflow: hidden;
}
.az-shell .mod-concept-card-img img,
.az-shell .mod-modal-img img,
.az-shell img.mod-img,
.az-shell .mod-section img,
.az-shell .mod-content img {
  /* No mix-blend-mode — images are already transparent PNGs */
  mix-blend-mode: normal;
  filter: none;
  opacity: 1;
  border-radius: 6px;
  display: block;
  max-width: 100%;
  height: auto;
  /* Gentle shadow so the image reads against dark bg */
  drop-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

/* ─── 7 & 8. NEW BOTTOM BAR — section chip + full nav ───────────── */
/*
   Layout:
   [← Prev | ◀◀ Mod N]   [Module N · Title · ████░ 42%]   [Top↑ | ✏ Journal | ? Quiz | Mod N ▶▶]
*/

/* ═══════════════════════════════════════════════════════════════════
   BOTTOM BAR — CSS GRID layout
   3 columns: [left tabs 1fr] [centre auto] [right tabs 1fr]
   The centre column is always the exact geometric middle of the bar.
   Left has 3 ghost tabs each flex:1 filling their 1fr column.
   Right has 3 tabs (2 ghost + 1 primary) each flex:1 filling their 1fr.
   Because right has the wider "Next" primary button, the 3 right tabs
   will be naturally slightly larger than the 3 left ones — exactly
   what was requested.
   ═══════════════════════════════════════════════════════════════════ */
.az-shell .az-bottom-bar {
  height: auto;
  min-height: 54px;
  padding: 0;
  background: #0d1523;
  border-top: 1px solid rgba(0,102,255,0.16);
  /* GRID: left | centre | right */
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  align-items: stretch;
  position: relative;
  overflow: hidden;
}

/* Left nav cluster — fills its 1fr column */
.az-bar-nav {
  grid-column: 1;
  display: flex;
  align-items: stretch;
  gap: 0;
}

/* Centre info/progress — sits in the auto column, truly centred */
.az-bar-center {
  grid-column: 2;
  /* Give the centre a comfortable fixed width */
  width: clamp(180px, 28vw, 280px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 6px 12px;
  border-left: 1px solid rgba(0,102,255,0.12);
  border-right: 1px solid rgba(0,102,255,0.12);
  min-width: 0;
}

/* Right utility cluster — fills its 1fr column */
.az-bar-utils {
  grid-column: 3;
  display: flex;
  align-items: stretch;
  gap: 0;
  justify-content: flex-end;
}

.az-bar-module-chip {
  display: flex;
  align-items: baseline;
  gap: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.az-bar-module-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #00A8E8;
  flex-shrink: 0;
}
.az-bar-module-title {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(243,244,246,0.7);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Progress row — fills the centre container */
.az-bar-progress {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  max-width: 100%;
}
.az-bar-progress-track {
  flex: 1;
  height: 3px;
  background: rgba(0,102,255,0.15);
  border-radius: 99px;
  overflow: hidden;
}
.az-bar-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #0066FF, #00A8E8);
  border-radius: 99px;
  transition: width 0.6s ease;
}
.az-bar-progress-pct {
  font-size: 0.68rem;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  min-width: 28px;
  text-align: right;
}

/* Shared button base */
.az-bar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 10px;
  border-radius: 0;
  font-size: 0.7rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  border: none;
  border-right: 1px solid rgba(0,102,255,0.12);
  font-family: inherit;
  transition: background 0.15s, color 0.15s;
  flex: 1;           /* each button fills equal share of its cluster */
  min-height: 44px;
  line-height: 1;
}
.az-bar-nav .az-bar-btn:first-child { border-left: none; }
.az-bar-utils .az-bar-btn:last-child { border-right: none; }
/* Ghost style */
.az-bar-btn--ghost {
  background: transparent;
  color: rgba(243,244,246,0.6);
}
.az-bar-btn--ghost:hover {
  background: rgba(0,102,255,0.12);
  color: #F3F4F6;
}
/* Primary Next button */
.az-bar-btn--primary {
  background: #0066FF;
  color: #fff;
  border-right: none;
}
.az-bar-btn--primary:hover { background: #0052cc; }
/* Text label visibility */
.az-bar-btn-label { display: inline; }

/* ─── Modal centering fix (item 3) ───────────────────────────────── */
/*
   mod-modal-overlay must be display:flex with centred alignment.
   JS toggles .is-open — when open, display:flex is set.
   The background scroll is locked via lockBodyScroll() in app.js.
*/
.mod-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 600;
  background: rgba(0,0,0,0.82);
  align-items: center;
  justify-content: center;
  padding: 20px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.mod-modal-overlay.is-open {
  display: flex !important;
}
/* Inside az-shell, match the new palette */
.az-shell .mod-modal-overlay { z-index: 1000; }

/* ── PORTALLED MODALS: JS moves .mod-modal-overlay to document.body ──
   This escapes the overflow:auto scroll container so position:fixed is
   truly viewport-relative, centering the popup on the actual screen.  */
body > .mod-modal-overlay {
  z-index: 9000;
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
body > .mod-modal-overlay.is-open {
  display: flex !important;
}
.az-shell .mod-modal {
  background: #161e2e;
  border: 1px solid rgba(0,102,255,0.2);
  box-shadow: 0 24px 64px rgba(0,0,0,0.7), 0 0 0 1px rgba(0,168,232,0.1);
  max-width: 520px;
  width: 100%;
  max-height: 88vh;
  border-radius: 18px;
  overflow-y: auto;
  /* Prevent background scroll in iOS while modal is open */
  overscroll-behavior: contain;
}
/* Top accent stripe using AZUL palette */
.az-shell .mod-modal::before {
  background: linear-gradient(90deg, #0066FF, #00A8E8);
}
.az-shell .mod-modal-content h3  { color: #F3F4F6; }
.az-shell .mod-modal-content p   { color: rgba(243,244,246,0.78); }
.az-shell .mod-modal-footer      { border-top-color: rgba(0,102,255,0.14); }

/* Glossary modal — same fix */
.mod-gloss-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 600;
  background: rgba(0,0,0,0.82);
  align-items: flex-end;
  justify-content: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.mod-gloss-modal-overlay.is-open { display: flex !important; }


/* Modal box when portalled — full viewport centering */
body > .mod-modal-overlay .mod-modal {
  background: #161e2e;
  border: 1px solid rgba(0,102,255,0.2);
  box-shadow: 0 24px 64px rgba(0,0,0,0.75), 0 0 0 1px rgba(0,168,232,0.1);
  max-width: 520px;
  width: calc(100% - 40px);
  max-height: 88dvh;
  border-radius: 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
  position: relative;
}
body > .mod-modal-overlay .mod-modal::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg, #0066FF, #00A8E8);
  border-radius: 18px 18px 0 0;
  position: sticky;
  top: 0;
}
/* Glossary modal portalled to body */
body > .mod-gloss-modal-overlay {
  z-index: 9000;
  position: fixed;
  inset: 0;
  display: none;
  align-items: flex-end;
  justify-content: center;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
body > .mod-gloss-modal-overlay.is-open { display: flex !important; }

.az-shell .mod-gloss-modal {
  background: #161e2e;
  border: 1px solid rgba(0,102,255,0.18);
  border-bottom: none;
  border-radius: 16px 16px 0 0;
  width: 100%;
  max-width: 560px;
  max-height: 75vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.az-shell .mod-gloss-modal-header {
  border-bottom-color: rgba(0,102,255,0.14);
}

/* ─── Mobile responsive overrides ───────────────────────────────── */
@media (max-width: 768px) {
  .az-shell .az-bottom-bar { min-height: 50px; }
  .az-bar-center {
    width: clamp(120px, 34vw, 200px);
    padding: 4px 6px;
  }
  .az-bar-btn {
    padding: 0 6px;
    font-size: 0.6rem;
    min-height: 50px;
  }
  .az-bar-btn-label { display: none; }
  .az-bar-btn--primary .az-bar-btn-label { display: inline; font-size: 0.62rem; }
  .az-bar-module-title { display: none; }
}
@media (max-width: 380px) {
  .az-bar-btn { padding: 0 4px; }
  .az-bar-center { width: clamp(90px, 36vw, 150px); }
}

/* ─── Bottom bar stays in flow (not fixed/absolute) ─────────────── */
.az-shell .az-bottom-bar {
  flex-shrink: 0; /* stays at bottom of az-main column */
}

/* ─── az-footer-bar: identical to az-bottom-bar ─────────────────── */
/* Modules 1 & 2 use az-footer-bar classname — alias it to same styles */
.az-shell .az-footer-bar,
.az-footer-bar {
  height: auto;
  min-height: 54px;
  padding: 0;
  background: #0d1523;
  border-top: 1px solid rgba(0,102,255,0.16);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  align-items: stretch;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  z-index: 10;
}
.az-shell .az-footer-bar .az-bar-nav { grid-column: 1; }
.az-shell .az-footer-bar .az-bar-center { grid-column: 2; }
.az-shell .az-footer-bar .az-bar-utils { grid-column: 3; }

/* ─── Tablet: footer bar in layout flow ─────────────────────────── */
@media (min-width: 769px) and (max-width: 1024px) {
  .az-shell .az-footer-bar,
  .az-shell .az-bottom-bar {
    min-height: 50px;
  }
  .az-bar-module-title { display: block; font-size: 0.72rem; }
  .az-bar-btn-label { display: inline; font-size: 0.72rem; }
  .az-bar-btn { padding: 0 10px; font-size: 0.72rem; min-height: 50px; }
  .az-bar-center { width: clamp(160px, 26vw, 240px); padding: 4px 10px; }
}

/* ═══════════════════════════════════════════════════════════════════
   DARK DESIGN SYSTEM — Bloomberg / TradingView Cohesive
   Added for: home redesign, course redesign, about redesign
   ═══════════════════════════════════════════════════════════════════ */

/* ── Shared Dark Palette Override (always dark) ─────────────────── */
body {
  background: #080d18;
  color: #e8edf5;
}

/* ── Terminal Buttons ────────────────────────────────────────────── */
.btn-terminal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 180ms ease;
  white-space: nowrap;
}
.btn-terminal--primary {
  background: linear-gradient(135deg, #0066FF, #00A8E8);
  color: #fff;
  box-shadow: 0 4px 20px rgba(0,102,255,0.35);
}
.btn-terminal--primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 28px rgba(0,102,255,0.5);
}
.btn-terminal--ghost {
  background: rgba(255,255,255,0.05);
  color: rgba(232,237,245,0.8);
  border: 1px solid rgba(255,255,255,0.12);
}
.btn-terminal--ghost:hover {
  background: rgba(255,255,255,0.10);
  color: #e8edf5;
}

/* ── Shared Dark Section Headers ─────────────────────────────────── */
.dark-section-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #00A8E8;
  margin-bottom: 12px;
}
.dark-section-title {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0 0 16px;
}
.dark-section-sub {
  font-size: 1rem;
  color: rgba(220,233,243,0.65);
  line-height: 1.65;
  max-width: 560px;
  margin: 0;
}
.dark-section-head { margin-bottom: 48px; }
.dark-section-head--center { text-align: center; }
.dark-section-head--center .dark-section-sub { margin: 0 auto; }

/* ═══════════════════════════════════════════════════════════════════
   HOME PAGE — Bloomberg/TradingView Hero
   ═══════════════════════════════════════════════════════════════════ */
.hero-dark {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 100px 0 60px;
  overflow: hidden;
  background: #080d18;
}
.hero-dark-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hero-dark-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,102,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,102,255,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
}
.hero-dark-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
}
.hero-dark-glow--blue {
  width: 600px; height: 600px;
  top: -200px; left: -100px;
  background: rgba(0,102,255,0.12);
}
.hero-dark-glow--green {
  width: 400px; height: 400px;
  bottom: -100px; right: 0;
  background: rgba(16,185,129,0.08);
}

.hero-dark-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
@media (max-width: 900px) {
  .hero-dark-inner { grid-template-columns: 1fr; gap: 40px; }
  .hero-dark-right { order: -1; }
}

/* Ticker above headline */
.hero-dark-ticker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.hero-ticker-item { display: flex; align-items: center; gap: 4px; }
.hero-ticker-item--green { color: #10B981; }
.hero-ticker-item--red { color: #EF4444; }
.hero-ticker-sep { color: rgba(255,255,255,0.2); }

.hero-dark-headline {
  font-size: clamp(2.8rem, 6vw, 4.5rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: #e8edf5;
  margin: 0 0 20px;
}
.hero-dark-accent {
  background: linear-gradient(135deg, #0066FF, #00A8E8, #10B981);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-dark-sub {
  font-size: 1.05rem;
  color: rgba(220,233,243,0.65);
  line-height: 1.65;
  max-width: 480px;
  margin: 0 0 32px;
}
.hero-dark-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
.hero-dark-stats {
  display: flex;
  align-items: center;
  gap: 24px;
}
.hero-dark-stat { text-align: left; }
.hero-dark-stat-val {
  display: block;
  font-size: 1.6rem;
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.02em;
}
.hero-dark-stat-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 500;
  color: rgba(220,233,243,0.45);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.hero-dark-stat-sep {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,0.1);
}

/* ── Bloomberg Card (right column) ───────────────────────────────── */
.bberg-card {
  background: #0d1523;
  border: 1px solid rgba(0,102,255,0.18);
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(0,102,255,0.08);
}
.bberg-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}
.bberg-pair {
  font-size: 1.1rem;
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: 0.02em;
}
.bberg-label {
  font-size: 0.68rem;
  color: rgba(220,233,243,0.45);
  margin-top: 2px;
  letter-spacing: 0.04em;
}
.bberg-badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 4px 10px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.bberg-badge--live {
  background: rgba(16,185,129,0.15);
  color: #10B981;
  border: 1px solid rgba(16,185,129,0.3);
}
.bberg-live-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #10B981;
  animation: bberg-pulse 1.5s ease-in-out infinite;
}
@keyframes bberg-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
.bberg-price-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 12px;
}
.bberg-price {
  font-size: 1.9rem;
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.02em;
}
.bberg-change { font-size: 0.88rem; font-weight: 700; }
.bberg-change--up { color: #10B981; }
.bberg-change--down { color: #EF4444; }

.bberg-footer {
  display: flex;
  gap: 0;
  border-top: 1px solid rgba(255,255,255,0.06);
  margin-top: 12px;
  padding-top: 12px;
}
.bberg-stat { flex: 1; text-align: center; }
.bberg-stat + .bberg-stat {
  border-left: 1px solid rgba(255,255,255,0.06);
}
.bberg-stat-label {
  display: block;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: rgba(220,233,243,0.35);
  text-transform: uppercase;
  margin-bottom: 2px;
}
.bberg-stat-val {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #e8edf5;
}
.bberg-stat-val--green { color: #10B981; }
.bberg-stat-val--red { color: #EF4444; }
.bberg-stat-val--blue { color: #00A8E8; }

.bberg-signal {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 8px 12px;
  background: rgba(16,185,129,0.07);
  border: 1px solid rgba(16,185,129,0.18);
  border-radius: 8px;
  font-size: 0.72rem;
}
.bberg-signal-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.bberg-signal-dot--buy { background: #10B981; box-shadow: 0 0 8px rgba(16,185,129,0.6); }
.bberg-signal-label {
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #10B981;
  white-space: nowrap;
}
.bberg-signal-val { color: rgba(220,233,243,0.7); }

/* ── Market Ticker Bar ───────────────────────────────────────────── */
.market-ticker-bar {
  background: #0a1020;
  border-top: 1px solid rgba(0,102,255,0.12);
  border-bottom: 1px solid rgba(0,102,255,0.12);
  overflow: hidden;
  padding: 0;
  height: 38px;
  display: flex;
  align-items: center;
}
.market-ticker-track {
  display: flex;
  align-items: center;
  gap: 0;
  white-space: nowrap;
  animation: ticker-scroll 30s linear infinite;
  will-change: transform;
}
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 24px;
  font-size: 0.72rem;
  border-right: 1px solid rgba(255,255,255,0.06);
}
.ticker-pair { font-weight: 700; color: rgba(232,237,245,0.7); letter-spacing: 0.04em; }
.ticker-price { font-weight: 500; color: rgba(232,237,245,0.9); }
.ticker-item--up .ticker-chg { color: #10B981; font-weight: 700; }
.ticker-item--down .ticker-chg { color: #EF4444; font-weight: 700; }

/* ── Dark Feature Cards (home "Why AZUL") ────────────────────────── */
.dark-features {
  padding: 80px 0;
  background: #080d18;
}
.dark-feat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 900px) { .dark-feat-grid { grid-template-columns: 1fr; } }
@media (min-width: 600px) and (max-width: 900px) { .dark-feat-grid { grid-template-columns: repeat(2, 1fr); } }

.dark-feat-card {
  background: #0d1523;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 16px;
  padding: 28px;
  position: relative;
  overflow: hidden;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.dark-feat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.4);
}
.dark-feat-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: 16px 16px 0 0;
}
.dark-feat-card--blue::before { background: linear-gradient(90deg, #0066FF, #00A8E8); }
.dark-feat-card--green::before { background: linear-gradient(90deg, #10B981, #34D399); }
.dark-feat-card--purple::before { background: linear-gradient(90deg, #4F46E5, #7C3AED); }

.dark-feat-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}
.dark-feat-card--blue .dark-feat-icon { background: rgba(0,102,255,0.15); color: #60A5FA; }
.dark-feat-card--green .dark-feat-icon { background: rgba(16,185,129,0.15); color: #34D399; }
.dark-feat-card--purple .dark-feat-icon { background: rgba(79,70,229,0.15); color: #A78BFA; }

.dark-feat-num {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: rgba(220,233,243,0.3);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.dark-feat-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #e8edf5;
  margin: 0 0 10px;
}
.dark-feat-card p {
  font-size: 0.88rem;
  color: rgba(220,233,243,0.6);
  line-height: 1.6;
  margin: 0 0 16px;
}
.dark-feat-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.dark-feat-tags span {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: 0.04em;
  background: rgba(255,255,255,0.05);
  color: rgba(220,233,243,0.55);
  border: 1px solid rgba(255,255,255,0.06);
}

/* ── Course Preview Strip (home bottom) ──────────────────────────── */
.course-preview-strip {
  padding: 80px 0;
  background: #0a1020;
  border-top: 1px solid rgba(0,102,255,0.1);
}
.cps-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  align-items: start;
}
@media (max-width: 900px) { .cps-inner { grid-template-columns: 1fr; gap: 36px; } }

.cps-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 12px;
}
.cps-sub {
  font-size: 0.92rem;
  color: rgba(220,233,243,0.6);
  line-height: 1.65;
  margin: 0;
}
.cps-right { display: flex; flex-direction: column; gap: 10px; }
.cps-module {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: #0d1523;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  text-decoration: none;
  transition: all 180ms ease;
}
.cps-module:hover {
  border-color: rgba(0,102,255,0.3);
  background: #111d32;
  transform: translateX(4px);
}
.cps-module--blue { border-left: 3px solid #0066FF; }
.cps-module--green { border-left: 3px solid #10B981; }
.cps-module--purple { border-left: 3px solid #4F46E5; }
.cps-module-num {
  font-size: 1.4rem;
  font-weight: 700;
  color: rgba(220,233,243,0.2);
  width: 32px;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.cps-module-body { flex: 1; min-width: 0; }
.cps-module-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #e8edf5;
}
.cps-module-sub {
  font-size: 0.75rem;
  color: rgba(220,233,243,0.45);
  margin-top: 2px;
}
.cps-module-arrow { color: rgba(220,233,243,0.3); flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════════════
   COURSE PAGE — Campus / Traders' Hub Design (cp-* prefix)
   Cohesive with homepage hz-* system
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────────────────── */
.cp-hero {
  position: relative;
  background: #080d18;
  overflow: hidden;
  padding-bottom: 72px;
}
.cp-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.cp-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,102,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,102,255,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
}
.cp-hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  pointer-events: none;
}
.cp-hero-glow--blue   { width:600px; height:500px; top:-180px; left:-120px; background:rgba(0,102,255,0.12); }
.cp-hero-glow--teal   { width:500px; height:400px; bottom:-60px; right:-80px; background:rgba(16,185,129,0.09); }
.cp-hero-glow--purple { width:360px; height:360px; top:40%; left:55%; transform:translate(-50%,-50%); background:rgba(79,70,229,0.07); }

/* Center copy block — mirrors hz-hero-center */
.cp-hero-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 88px 0 56px;
  max-width: 780px;
  margin: 0 auto;
  position: relative;
}
.cp-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #00A8E8;
  background: rgba(0,168,232,0.1);
  border: 1px solid rgba(0,168,232,0.22);
  padding: 6px 16px;
  border-radius: 20px;
  margin-bottom: 24px;
}
.cp-live-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 6px rgba(16,185,129,0.8);
  animation: pulse 2s infinite;
}
.cp-hero-headline {
  font-size: clamp(2.6rem, 5.5vw, 4.4rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.035em;
  line-height: 1.1;
  margin: 0 0 20px;
}
.cp-hero-accent {
  background: linear-gradient(135deg, #0066FF 0%, #00A8E8 60%, #10B981 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.cp-hero-sub {
  font-size: 1.08rem;
  color: rgba(220,233,243,0.62);
  line-height: 1.7;
  max-width: 620px;
  margin: 0 0 32px;
}
.cp-hero-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
/* Stat bar — reuses exact hz-hero-statbar styles, plus a tiny tweak */
.cp-statbar { margin-top: 0; }

/* ── Phase Roadmap — 4-tile grid (mirrors hz-campus-grid) ─────────── */
.cp-roadmap {
  background: #080d18;
  border-top: 1px solid rgba(0,102,255,0.1);
  padding: 56px 0 72px;
}
.cp-roadmap-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #00A8E8;
  margin-bottom: 20px;
}
.cp-phase-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 1100px) { .cp-phase-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px)  { .cp-phase-grid { grid-template-columns: 1fr; } }

.cp-phase-tile {
  display: flex;
  flex-direction: column;
  background: #0d1523;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 16px;
  padding: 22px 20px 20px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
  cursor: default;
}
a.cp-phase-tile { cursor: pointer; }
a.cp-phase-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}
.cp-phase-tile::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: 16px 16px 0 0;
}
.cp-phase-tile--blue::before   { background: linear-gradient(90deg, #0066FF, #00A8E8); }
.cp-phase-tile--purple::before { background: linear-gradient(90deg, #4F46E5, #7C3AED); }
.cp-phase-tile--green::before  { background: linear-gradient(90deg, #10B981, #34D399); }
.cp-phase-tile--orange::before { background: linear-gradient(90deg, #F59E0B, #F97316); }
.cp-phase-tile--active {
  border-color: rgba(0,102,255,0.28);
  background: #101a2e;
  box-shadow: 0 0 0 1px rgba(0,102,255,0.12), 0 8px 32px rgba(0,102,255,0.12);
}
.cp-phase-tile-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.cp-phase-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #e8edf5;
}
.cp-phase-tile--blue   .cp-phase-icon { background: rgba(0,102,255,0.18); border: 1px solid rgba(0,102,255,0.3); color: #60A5FA; }
.cp-phase-tile--purple .cp-phase-icon { background: rgba(79,70,229,0.18); border: 1px solid rgba(79,70,229,0.3); color: #A5B4FC; }
.cp-phase-tile--green  .cp-phase-icon { background: rgba(16,185,129,0.18); border: 1px solid rgba(16,185,129,0.3); color: #34D399; }
.cp-phase-tile--orange .cp-phase-icon { background: rgba(245,158,11,0.18); border: 1px solid rgba(245,158,11,0.3); color: #FCD34D; }
.cp-phase-status {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 20px;
}
.cp-phase-status--live {
  background: rgba(16,185,129,0.15);
  color: #34D399;
  border: 1px solid rgba(16,185,129,0.35);
  box-shadow: 0 0 8px rgba(16,185,129,0.2);
}
.cp-phase-status--soon {
  background: rgba(255,255,255,0.05);
  color: rgba(220,233,243,0.4);
  border: 1px solid rgba(255,255,255,0.08);
}
.cp-phase-tag {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(220,233,243,0.38);
  margin-bottom: 6px;
}
.cp-phase-name {
  font-size: 0.97rem;
  font-weight: 700;
  color: #e8edf5;
  line-height: 1.3;
  margin-bottom: 8px;
}
.cp-phase-meta {
  font-size: 0.76rem;
  color: rgba(220,233,243,0.42);
  line-height: 1.4;
  flex: 1;
}
.cp-phase-arrow {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
  color: rgba(220,233,243,0.25);
  transition: color 180ms ease, transform 180ms ease;
}
a.cp-phase-tile:hover .cp-phase-arrow { color: #60A5FA; transform: translateX(3px); }

/* ── Learning Design Section ──────────────────────────────────────── */
.cp-design {
  padding: 80px 0;
  background: #0a1020;
  border-top: 1px solid rgba(0,102,255,0.1);
}
.cp-section-head {
  text-align: center;
  margin-bottom: 48px;
}
.cp-section-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #00A8E8;
  margin-bottom: 12px;
}
.cp-section-title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.025em;
  margin: 0 0 12px;
}
.cp-section-sub {
  font-size: 0.97rem;
  color: rgba(220,233,243,0.55);
  line-height: 1.65;
  max-width: 580px;
  margin: 0 auto;
}
.cp-design-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 900px) { .cp-design-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .cp-design-grid { grid-template-columns: 1fr; } }

.cp-design-card {
  background: #0d1523;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  padding: 24px 22px;
  position: relative;
  overflow: hidden;
  transition: transform 180ms ease, border-color 180ms ease;
}
.cp-design-card:hover { transform: translateY(-2px); }
.cp-design-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
}
.cp-design-card--blue::before   { background: linear-gradient(90deg, #0066FF, #00A8E8); }
.cp-design-card--green::before  { background: linear-gradient(90deg, #10B981, #34D399); }
.cp-design-card--purple::before { background: linear-gradient(90deg, #4F46E5, #7C3AED); }
.cp-design-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.cp-design-icon--blue   { background: rgba(0,102,255,0.15); border: 1px solid rgba(0,102,255,0.25); color: #60A5FA; }
.cp-design-icon--green  { background: rgba(16,185,129,0.15); border: 1px solid rgba(16,185,129,0.25); color: #34D399; }
.cp-design-icon--purple { background: rgba(79,70,229,0.15); border: 1px solid rgba(79,70,229,0.25); color: #A5B4FC; }
.cp-design-num {
  font-size: 2rem;
  font-weight: 700;
  color: rgba(220,233,243,0.05);
  line-height: 1;
  margin-bottom: 8px;
  font-variant-numeric: tabular-nums;
  position: absolute;
  top: 20px; right: 20px;
}
.cp-design-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #e8edf5;
  margin: 0 0 8px;
}
.cp-design-body {
  font-size: 0.82rem;
  color: rgba(220,233,243,0.55);
  line-height: 1.65;
  margin: 0;
}

/* ── Modules section wrapper ─────────────────────────────────────── */
.cp-modules-section {
  padding: 72px 0;
  background: #080d18;
  border-top: 1px solid rgba(0,102,255,0.1);
}
.cp-modules-section--alt {
  background: #0a1020;
}

/* ── Phase header card — sits above module list ───────────────────── */
.cp-phase-header {
  border-radius: 18px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}
.cp-phase-header-bg {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
.cp-phase-header--blue {
  background: linear-gradient(135deg, #0a1830 0%, #0c2251 50%, #0a3080 100%);
  border: 1px solid rgba(0,102,255,0.3);
  box-shadow: 0 8px 40px rgba(0,102,255,0.18);
}
.cp-phase-header--purple {
  background: linear-gradient(135deg, #10082a 0%, #1a1055 50%, #2a197a 100%);
  border: 1px solid rgba(79,70,229,0.3);
  box-shadow: 0 8px 40px rgba(79,70,229,0.15);
}
.cp-phase-header-content {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 36px 40px;
}
@media (max-width: 768px) {
  .cp-phase-header-content { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
}
.cp-phase-header-left { flex: 1; min-width: 0; }
.cp-phase-header-pill {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #60A5FA;
  background: rgba(0,102,255,0.2);
  border: 1px solid rgba(0,102,255,0.35);
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 12px;
}
.cp-phase-header-pill--purple {
  color: #A5B4FC;
  background: rgba(79,70,229,0.2);
  border-color: rgba(79,70,229,0.35);
}
.cp-phase-header-title {
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.025em;
  line-height: 1.2;
  margin: 0 0 10px;
}
.cp-phase-header-desc {
  font-size: 0.93rem;
  color: rgba(220,233,243,0.65);
  line-height: 1.65;
  max-width: 500px;
  margin: 0;
}
.cp-phase-header-stats {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}
.cp-phase-header-stat { text-align: center; }
.cp-phase-header-stat-val {
  display: block;
  font-size: 2rem;
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.03em;
  line-height: 1;
}
.cp-phase-header-stat-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(220,233,243,0.45);
  margin-top: 4px;
}
.cp-phase-header-sep {
  width: 1px; height: 44px;
  background: rgba(255,255,255,0.12);
}
.cp-coming-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #A5B4FC;
  background: rgba(79,70,229,0.18);
  border: 1px solid rgba(79,70,229,0.35);
  padding: 8px 16px;
  border-radius: 20px;
}

/* ── Coming-Soon Panel ────────────────────────────────────────────── */
.cp-soon-panel {
  background: #0d1523;
  border: 1px solid rgba(79,70,229,0.2);
  border-radius: 18px;
  padding: 56px 40px;
  text-align: center;
  box-shadow: 0 0 40px rgba(79,70,229,0.08);
}
@media (max-width: 600px) { .cp-soon-panel { padding: 40px 20px; } }
.cp-soon-icon {
  width: 80px; height: 80px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 24px;
}
.cp-soon-icon--purple {
  background: rgba(79,70,229,0.15);
  border: 1px solid rgba(79,70,229,0.3);
  color: #A5B4FC;
  box-shadow: 0 0 28px rgba(79,70,229,0.25);
}
.cp-soon-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #e8edf5;
  margin: 0 0 14px;
  letter-spacing: -0.02em;
}
.cp-soon-body {
  font-size: 0.95rem;
  color: rgba(220,233,243,0.6);
  line-height: 1.72;
  max-width: 540px;
  margin: 0 auto 28px;
}
.cp-soon-topics {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.cp-soon-topic {
  font-size: 0.78rem;
  font-weight: 500;
  color: #A5B4FC;
  background: rgba(79,70,229,0.12);
  border: 1px solid rgba(79,70,229,0.28);
  padding: 5px 14px;
  border-radius: 20px;
}

/* ── CTA Section ────────────────────────────────────────────────────── */
.cp-cta {
  padding: 80px 0;
  background: #080d18;
  border-top: 1px solid rgba(0,102,255,0.12);
}
.cp-cta-inner {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.cp-cta-glow {
  position: absolute;
  width: 480px; height: 380px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(0,102,255,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.cp-cta-title {
  font-size: clamp(1.6rem, 3.2vw, 2.5rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.025em;
  line-height: 1.2;
  margin: 12px 0 16px;
}
.cp-cta-body {
  font-size: 1rem;
  color: rgba(220,233,243,0.6);
  line-height: 1.7;
  max-width: 520px;
  margin: 0 auto 32px;
}
.cp-cta-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Responsive tweaks for course page ───────────────────────────── */
@media (max-width: 768px) {
  .cp-hero-center { padding: 64px 0 40px; }
  .cp-hero-headline { font-size: 2.6rem; }
  .cp-hero-sub { font-size: 0.97rem; }
  .cp-roadmap { padding: 40px 0 56px; }
  .cp-modules-section { padding: 52px 0; }
  .cp-phase-header-content { flex-direction: column; }
}
@media (max-width: 480px) {
  .cp-hero-headline { font-size: 2.1rem; }
  .cp-soon-panel { padding: 32px 16px; }
  .cp-phase-header-content { padding: 24px 20px; }
}

/* ═══════════════════════════════════════════════════════════════════
   ABOUT PAGE — Dark Redesign
   ═══════════════════════════════════════════════════════════════════ */
.about-hero-dark {
  position: relative;
  padding: 120px 0 80px;
  background: #080d18;
  overflow: hidden;
  text-align: center;
}
.about-hero-dark-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.about-hero-dark-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0,102,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,102,255,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
}
.about-hero-dark-glow {
  position: absolute;
  width: 500px; height: 500px;
  border-radius: 50%;
  filter: blur(120px);
  pointer-events: none;
}
.about-hero-dark-glow--left { top: -200px; left: -200px; background: rgba(0,102,255,0.1); }
.about-hero-dark-glow--right { bottom: -100px; right: -100px; background: rgba(16,185,129,0.08); }

.about-hero-dark-inner { max-width: 680px; margin: 0 auto; position: relative; }
.about-hero-dark-title {
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin: 16px 0 20px;
}
.about-hero-dark-accent {
  background: linear-gradient(135deg, #0066FF, #10B981);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.about-hero-dark-sub {
  font-size: 1.05rem;
  color: rgba(220,233,243,0.65);
  line-height: 1.65;
  max-width: 520px;
  margin: 0 auto 36px;
}
.about-hero-dark-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
}
.about-hero-dark-stat-val {
  display: block;
  font-size: 1.8rem;
  font-weight: 700;
  color: #e8edf5;
  letter-spacing: -0.02em;
}
.about-hero-dark-stat-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 500;
  color: rgba(220,233,243,0.4);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.about-hero-dark-stat-sep { width:1px; height:40px; background:rgba(255,255,255,0.1); }

/* Dark Mission section */
.dark-mission {
  padding: 80px 0;
  background: #0a1020;
}
.dark-mission .mission-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
  margin-top: 36px;
}
@media (max-width: 900px) { .dark-mission .mission-grid { grid-template-columns: 1fr; gap: 32px; } }
.dark-mission .mission-text p {
  color: rgba(220,233,243,0.65);
  line-height: 1.75;
  margin-bottom: 16px;
  font-size: 0.95rem;
}
.dark-mission .mission-text em { color: #60A5FA; font-style: normal; font-weight: 500; }
.dark-mission .mission-visual { display: flex; flex-direction: column; gap: 16px; }
.dark-mission .mission-card {
  background: #0d1523;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  padding: 20px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.dark-mission .mission-card:hover { border-color: rgba(0,102,255,0.25); }
.dark-mission .mission-icon {
  width: 44px; height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #fff;
}
.dark-mission .mission-card h3 { font-size: 0.9rem; font-weight: 700; color: #e8edf5; margin: 0 0 6px; }
.dark-mission .mission-card p { font-size: 0.82rem; color: rgba(220,233,243,0.55); line-height: 1.6; margin: 0; }

/* Dark Values section */
.dark-values {
  padding: 80px 0;
  background: #080d18;
}
.dark-values .values-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 48px;
}
@media (max-width: 700px) { .dark-values .values-grid { grid-template-columns: 1fr; } }
.dark-values .value-card {
  background: #0d1523;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 16px;
  padding: 28px;
  position: relative;
  overflow: hidden;
  transition: transform 200ms ease, border-color 200ms ease;
}
.dark-values .value-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0,102,255,0.25);
}
.dark-values .value-card-accent {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
}
.dark-values .value-card--blue .value-card-accent { background: linear-gradient(90deg,#0066FF,#00A8E8); }
.dark-values .value-card--purple .value-card-accent { background: linear-gradient(90deg,#4F46E5,#7C3AED); }
.dark-values .value-card--green .value-card-accent { background: linear-gradient(90deg,#10B981,#34D399); }
.dark-values .value-card--dark .value-card-accent { background: linear-gradient(90deg,#374151,#6B7280); }
.dark-values .value-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  background: rgba(0,102,255,0.1);
  display: flex; align-items: center; justify-content: center;
  color: #60A5FA;
  margin-bottom: 16px;
}
.dark-values .value-card--purple .value-icon { background: rgba(79,70,229,0.12); color: #A78BFA; }
.dark-values .value-card--green .value-icon { background: rgba(16,185,129,0.12); color: #34D399; }
.dark-values .value-card--dark .value-icon { background: rgba(255,255,255,0.06); color: rgba(220,233,243,0.5); }
.dark-values .value-card h3 { font-size: 1rem; font-weight: 700; color: #e8edf5; margin: 0 0 8px; }
.dark-values .value-card p { font-size: 0.85rem; color: rgba(220,233,243,0.58); line-height: 1.6; margin: 0 0 14px; }
.dark-values .value-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.dark-values .value-list li {
  font-size: 0.8rem;
  color: rgba(220,233,243,0.5);
  padding-left: 14px;
  position: relative;
}
.dark-values .value-list li::before {
  content: '›';
  position: absolute;
  left: 0;
  color: #0066FF;
  font-weight: 700;
}

/* ── Logo image always bright ──────────────────────────────────────── */
.about-logo-img { filter: none !important; opacity: 1 !important; }

/* ── Header dark background always ────────────────────────────────── */
.header {
  background: rgba(8,13,24,0.95) !important;
  border-bottom: 1px solid rgba(0,102,255,0.12) !important;
  backdrop-filter: blur(12px);
}
.nav-link { color: rgba(220,233,243,0.7) !important; }
.nav-link:hover, .nav-link.active { color: #60A5FA !important; }

/* ── Footer dark ─────────────────────────────────────────────────── */
.footer {
  background: #050a14 !important;
  border-top: 1px solid rgba(0,102,255,0.1) !important;
}
.footer-tagline, .footer-col a, .footer-bottom p { color: rgba(220,233,243,0.45) !important; }
.footer-col h4 { color: rgba(220,233,243,0.7) !important; }
.footer-col a:hover { color: #60A5FA !important; }

/* ── Pull-to-Refresh spinner ─────────────────────────────────────── */
.ptr-spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(96,165,250,0.3);
  border-top-color: #60A5FA;
  border-radius: 50%;
  animation: ptr-spin 0.7s linear infinite;
}
@keyframes ptr-spin { to { transform: rotate(360deg); } }

/* ── Community section dark override ─────────────────────────────── */
.azul-community { background: #080d18 !important; }
.azul-community-bg { background: #080d18 !important; }
.azul-feat { background: #0d1523 !important; border: 1px solid rgba(255,255,255,0.06) !important; }
.azul-login-panel { background: #0a1020 !important; border: 1px solid rgba(0,102,255,0.12) !important; }
.azul-login-card { background: #0d1523 !important; border: 1px solid rgba(0,102,255,0.15) !important; }
.azul-login-method { background: rgba(255,255,255,0.05) !important; border: 1px solid rgba(255,255,255,0.1) !important; color: #e8edf5 !important; }
.azul-login-method:hover { background: rgba(255,255,255,0.1) !important; }


/* ═══════════════════════════════════════════════════════════════════


/* ═══════════════════════════════════════════════════════════════════
   PIT HERO — "Welcome to the Pit" full-bleed split hero
   Bull/Colosseum image left, fades into dark bg, copy RIGHT-aligned
   Ticker pinned to bottom so it peeks on first load
   ═══════════════════════════════════════════════════════════════════ */
.pit-hero {
  position: relative;
  height: calc(100dvh - var(--header-h));
  min-height: 50vh;
  max-height: 90vh;
  background: #040810;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

/* ── Image layer (left-anchored, fills left portion) ─────────────── */
.pit-hero-img-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.pit-hero-img {
  position: absolute;
  top: 0; left: 0;
  width: 72%;
  height: 100%;
  object-fit: cover;
  /* anchor to center so the full bull body is visible, not just the torso */
  object-position: center center;
  display: block;
}
/* Horizontal right-side fade: image disappears into the dark bg */
.pit-hero-fade {
  position: absolute;
  top: 0; right: 0;
  width: 65%;
  height: 100%;
  background: linear-gradient(
    to left,
    #040810 0%,
    #040810 28%,
    rgba(4,8,16,0.97) 40%,
    rgba(4,8,16,0.88) 50%,
    rgba(4,8,16,0.5) 64%,
    rgba(4,8,16,0.12) 78%,
    transparent 100%
  );
}
/* Bottom vignette — softens transition into ticker */
.pit-hero-fade-bottom {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 200px;
  background: linear-gradient(to top, rgba(4,8,16,0.98) 0%, rgba(4,8,16,0.7) 50%, transparent 100%);
  z-index: 1;
}
/* Subtle top vignette */
.pit-hero-img-wrap::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 100px;
  background: linear-gradient(to bottom, rgba(4,8,16,0.55) 0%, transparent 100%);
  z-index: 1;
}

/* ── Middle content area (fills flex space between futures ticker and bottom ticker) */
.pit-hero-content {
  position: relative;
  z-index: 10;
  /* Right-aligned panel on desktop/tablet */
  margin-left: auto;
  width: 50%;
  max-width: 560px;
  padding: 48px 56px 32px 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;                    /* fill vertical space above ticker */
  text-align: right;          /* right-align all text */
  align-items: flex-end;      /* right-align flex children */
}

/* ── Feature pill strip (green dots + labels) ─────────────────────── */
.pit-features {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 24px;
}
.pit-feat-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(220,233,243,0.75);
  background: rgba(16,185,129,0.08);
  border: 1px solid rgba(16,185,129,0.2);
  padding: 5px 12px;
  border-radius: 20px;
  white-space: nowrap;
}
.pit-feat-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 6px rgba(16,185,129,0.8);
  flex-shrink: 0;
  animation: pulse 2s infinite;
}

.pit-hero-headline {
  font-size: clamp(2.8rem, 5.5vw, 5rem);
  font-weight: 700;
  color: #f0f4ff;
  letter-spacing: -0.04em;
  line-height: 1.05;
  margin: 0 0 20px;
}
.pit-hero-accent {
  background: linear-gradient(135deg, #0066FF 0%, #00A8E8 55%, #38BDF8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.pit-hero-sub {
  font-size: 1.06rem;
  color: rgba(220,233,243,0.62);
  line-height: 1.7;
  max-width: 420px;
  margin: 0 0 32px;
  text-align: right;
}
.pit-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-bottom: 24px;
}
/* Primary CTA */
.pit-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #0052CC, #0066FF, #1a78ff);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 13px 28px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease;
  box-shadow: 0 4px 20px rgba(0,102,255,0.35);
  text-decoration: none;
}
.pit-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0,102,255,0.5);
}
/* Ghost CTA */
.pit-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(255,255,255,0.05);
  color: rgba(220,233,243,0.85);
  font-size: 0.92rem;
  font-weight: 500;
  padding: 13px 24px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.12);
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
  text-decoration: none;
}
.pit-btn-ghost:hover {
  background: rgba(255,255,255,0.09);
  border-color: rgba(255,255,255,0.22);
  color: #fff;
}

/* Trust bar */
.pit-hero-trust {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.pit-trust-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.77rem;
  font-weight: 500;
  color: rgba(220,233,243,0.42);
}
.pit-trust-item svg { color: rgba(220,233,243,0.28); }
.pit-trust-sep {
  color: rgba(220,233,243,0.18);
  font-size: 0.9rem;
}

/* ── Community Value Card ───────────────────────────────────────────── */
.pit-community-card {
  display: none; /* desktop: hidden — content panel has enough room */
}

/* ── Futures ticker bar — pinned to TOP of pit section ──────────────── */
.pit-futures-bar {
  position: relative;
  z-index: 2;           /* below header (500) and below content (10+) */
  height: 36px;
  background: rgba(0,102,255,0.07);
  border-bottom: 1px solid rgba(0,102,255,0.2);
  overflow: hidden;     /* clips the scrolling track */
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 0;
  width: 100%;          /* full width of section */
  max-width: 100%;      /* never wider than viewport */
}
.pit-futures-label {
  flex-shrink: 0;
  padding: 0 14px 0 16px;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(0,102,255,0.9);
  border-right: 1px solid rgba(0,102,255,0.2);
  height: 100%;
  display: flex;
  align-items: center;
  background: rgba(0,102,255,0.05);
  white-space: nowrap;
}
.pit-futures-track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  animation: tickerScroll 24s linear infinite;
  will-change: transform;
  min-width: 0;         /* allow flex shrink */
  /* Do NOT use flex:1 — let the track be its natural full width */
}
.pit-futures-track:hover { animation-play-state: paused; }
.pit-futures-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 20px;
  font-size: 0.71rem;
  font-weight: 500;
  border-right: 1px solid rgba(255,255,255,0.05);
  color: #f3f4f6;
}
.pit-futures-sym {
  color: rgba(243,244,246,0.45);
  font-weight: 700;
  font-size: 0.67rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.pit-futures-price { color: #f3f4f6; font-size: 0.71rem; }
.pit-futures-chg { font-weight: 700; font-size: 0.67rem; }
.pit-futures-item--up   .pit-futures-chg { color: #10B981; }
.pit-futures-item--down .pit-futures-chg { color: #EF4444; }

/* ── Ticker bar — pinned to BOTTOM of pit section ─────────────────── */
.pit-ticker-bar {
  position: relative;
  z-index: 2;           /* same level as futures bar — normal flow */
  height: 36px;
  background: rgba(4,8,16,0.96);
  border-top: 1px solid rgba(0,102,255,0.18);
  overflow: hidden;
  display: flex;
  align-items: center;
  flex-shrink: 0;             /* don't compress — stay fixed height */
  width: 100%;
  max-width: 100%;
}
/* pit-ticker-bar reuses .hz-ticker-track scrolling animation */

/* ── Tablet (768–1199px): side-by-side, narrower right panel ──── */
@media (max-width: 1199px) {
  .pit-hero-img { width: 80%; }
  .pit-hero-fade { width: 72%; }
  .pit-hero-content { width: 58%; padding: 40px 32px 28px 20px; }
  .pit-hero-headline { font-size: clamp(2.2rem, 5vw, 3.4rem); }
}

/* ── Mobile (<768px): image behind, content full-width, left-aligned ── */
@media (max-width: 767px) {
  .pit-hero {
    height: calc(100dvh - var(--header-h) - var(--tabs-h));
    min-height: 500px;
    max-height: none;
    flex-direction: column;
    width: 100%;
  }
  /* Wrapper stays absolute — image is the full background */
  .pit-hero-img-wrap {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: #040810;
  }
  /* Landscape image pinned to the TOP at natural width so the full
     colosseum scene shows without cropping. Dark background fills
     below the image naturally. */
  .pit-hero-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;        /* natural 16:9 — no zoom, no crop */
    object-fit: unset;
  }
  /* Bottom fade — starts where the image ends and darkens into content */
  .pit-hero-fade {
    width: 100%;
    background: linear-gradient(
      to top,
      #040810 0%,
      #040810 20%,
      rgba(4,8,16,0.92) 38%,
      rgba(4,8,16,0.55) 55%,
      rgba(4,8,16,0.15) 72%,
      transparent 100%
    );
  }
  /* Content sits over the image, pushed to the bottom */
  .pit-hero-content {
    position: relative;
    z-index: 10;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    text-align: left;
  }
  .pit-features      { justify-content: flex-start; flex-wrap: wrap; margin-bottom: 10px; gap: 6px; }
  .pit-hero-headline { font-size: 2.1rem; margin-bottom: 8px; }
  .pit-hero-sub      { font-size: 0.875rem; margin-bottom: 14px; line-height: 1.5; text-align: left; max-width: 100%; }
  .pit-hero-actions  { justify-content: flex-start; flex-wrap: wrap; margin-bottom: 12px; gap: 8px; }
  .pit-hero-trust    { justify-content: flex-start; flex-wrap: wrap; margin-bottom: 0; gap: 8px; }
  .pit-btn-primary, .pit-btn-ghost { padding: 10px 18px; font-size: 0.85rem; }

  /* ── Community card: visible on mobile only ── */
  .pit-community-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 14px;
    padding: 14px 16px;
    background: rgba(0,102,255,0.05);
    border: 1px solid rgba(0,102,255,0.15);
    border-radius: 12px;
    width: 100%;
    box-sizing: border-box;
  }
  .pit-community-card-row {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .pit-community-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 20px;
  }
  .pit-community-pill--green {
    background: rgba(16,185,129,0.1);
    color: #34d399;
    border: 1px solid rgba(16,185,129,0.2);
  }
  .pit-community-pill-dot {
    width: 5px; height: 5px;
    border-radius: 50%;
    background: #10B981;
    box-shadow: 0 0 5px rgba(16,185,129,0.8);
    animation: pulse 2s infinite;
    flex-shrink: 0;
  }
  .pit-community-pill--blue {
    background: rgba(0,102,255,0.1);
    color: #60a5fa;
    border: 1px solid rgba(0,102,255,0.2);
  }
  .pit-community-body {
    font-size: 0.8rem;
    line-height: 1.6;
    color: rgba(220,233,243,0.72);
    margin: 0;
  }
  .pit-community-stats {
    display: flex;
    align-items: center;
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,0.06);
  }
  .pit-community-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
  }
  .pit-community-stat-num {
    font-size: 0.92rem;
    font-weight: 700;
    color: #f3f4f6;
    letter-spacing: -0.01em;
  }
  .pit-community-stat-label {
    font-size: 0.58rem;
    font-weight: 500;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(220,233,243,0.38);
  }
  .pit-community-stat-div {
    width: 1px;
    height: 28px;
    background: rgba(255,255,255,0.07);
    flex-shrink: 0;
  }

  /* ── FUTURES bar mobile fix — clamp width, hide overflow ── */
  .pit-futures-bar {
    width: 100vw;
    max-width: 100vw;
    overflow: hidden;
    box-sizing: border-box;
  }
  .pit-futures-label { flex-shrink: 0; }
  .pit-futures-track { min-width: 0; flex: 1; overflow: hidden; }
}

/* ═══════════════════════════════════════════════════════════════════
   AZUL HOMEPAGE — Campus / Traders' Hub
   Dark Bloomberg/TradingView aesthetic
   Palette: bg #080d18, card #111827, text #F3F4F6, muted #9CA3AF
            accent #0066FF, success #10B981, danger #EF4444
   ═══════════════════════════════════════════════════════════════════ */

/* ── Page foundation ─────────────────────────────────────────────── */
html, body {
  background: #080d18;
  color: #f3f4f6;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  width: 100%;      /* always span full viewport — prevents left-drift on zoom */
}

/* ── Shared max-width container ──────────────────────────────────── */
.hz-container {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* ═══════════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════════ */
.header {
  position: sticky !important;
  top: 0 !important;
  z-index: 500 !important;
  background: rgba(8, 13, 24, 0.96) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid rgba(0, 102, 255, 0.1) !important;
  height: var(--header-h) !important;
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  overflow: visible !important;
}

.hz-header-inner {
  display: flex;
  align-items: center;
  height: var(--header-h);
  gap: 0;
  max-width: 100%;
  overflow: hidden;
}

.hz-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  flex-shrink: 0;
  margin-right: 32px;
}
.hz-logo-img { height: 30px; width: auto; filter: brightness(1.1); }
.hz-logo-text {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #f3f4f6;
  text-transform: uppercase;
}

/* Nav — centered, flex:1 */
.hz-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  justify-content: center;
}
.hz-nav-link {
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 500;
  color: rgba(243, 244, 246, 0.55);
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: color 0.15s ease, background 0.15s ease;
}
.hz-nav-link:hover {
  color: #f3f4f6;
  background: rgba(255, 255, 255, 0.05);
}
.hz-nav-link.active {
  color: #60A5FA;
  background: rgba(0, 102, 255, 0.08);
}

/* Auth buttons — right side */
.hz-nav-auth {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  margin-left: 24px;
}
/* Mobile-only auth row inside the dropdown — hidden on desktop */
.hz-nav-mobile-auth { display: none; }
.hz-auth-ghost {
  padding: 8px 18px;
  border-radius: 8px;
  font-size: 0.83rem;
  font-weight: 500;
  color: rgba(243, 244, 246, 0.65);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: inherit;
  letter-spacing: 0.01em;
}
.hz-auth-ghost:hover {
  color: #f3f4f6;
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.05);
}
.hz-auth-primary {
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 0.83rem;
  font-weight: 700;
  color: #fff;
  background: #0066FF;
  text-decoration: none;
  transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
  letter-spacing: 0.02em;
  box-shadow: 0 0 20px rgba(0, 102, 255, 0.3);
}
.hz-auth-primary:hover {
  background: #0052cc;
  transform: translateY(-1px);
  box-shadow: 0 4px 24px rgba(0, 102, 255, 0.4);
}

/* Hamburger toggle (desktop hidden) */
.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  margin-left: auto;
  border-radius: 6px;
}
.nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: rgba(243, 244, 246, 0.7);
  border-radius: 2px;
  transition: all 0.3s ease;
}
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ═══════════════════════════════════════════════════════════════════
   TICKER BAR
   ═══════════════════════════════════════════════════════════════════ */
.hz-ticker-bar {
  overflow: hidden;
  background: rgba(0, 0, 0, 0.35);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  height: 34px;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 100%;
}
.hz-ticker-track {
  display: flex;
  align-items: center;
  white-space: nowrap;
  animation: tickerScroll 32s linear infinite;
  will-change: transform;
}
.hz-ticker-track:hover { animation-play-state: paused; }
@keyframes tickerScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.hz-tick-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 22px;
  font-size: 0.71rem;
  font-weight: 500;
  border-right: 1px solid rgba(255, 255, 255, 0.05);
}
.hz-tick-pair  { color: rgba(243, 244, 246, 0.4); font-weight: 500; font-size: 0.68rem; letter-spacing: 0.04em; }
.hz-tick-price { color: #f3f4f6; }
.hz-tick-chg   { font-weight: 700; font-size: 0.68rem; }
.hz-tick-item--up   .hz-tick-chg { color: #10B981; }
.hz-tick-item--down .hz-tick-chg { color: #EF4444; }

/* ═══════════════════════════════════════════════════════════════════
   HERO — Full-width, centered, campus/hub feel
   ═══════════════════════════════════════════════════════════════════ */
.hz-hero {
  position: relative;
  overflow: hidden;
  background: #080d18;
  width: 100%;
}

/* Background atmospheric layers */
.hz-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.hz-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 102, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 102, 255, 0.04) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 80%);
}
.hz-hero-glow {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.hz-hero-glow--blue {
  width: 800px; height: 600px;
  background: radial-gradient(ellipse, rgba(0, 102, 255, 0.22) 0%, transparent 70%);
  top: -200px; left: -150px;
  filter: blur(60px);
}
.hz-hero-glow--green {
  width: 500px; height: 400px;
  background: radial-gradient(ellipse, rgba(16, 185, 129, 0.14) 0%, transparent 70%);
  bottom: 0; right: 50px;
  filter: blur(80px);
}
.hz-hero-glow--purple {
  width: 400px; height: 350px;
  background: radial-gradient(ellipse, rgba(124, 58, 237, 0.11) 0%, transparent 70%);
  top: 100px; right: 20%;
  filter: blur(80px);
}

/* ── Live eyebrow pill ─────────────────────────────────────────── */
.hz-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #10B981;
  margin-bottom: 28px;
  padding: 6px 14px 6px 10px;
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 999px;
}
.hz-hero-live-dot {
  width: 7px; height: 7px;
  background: #10B981;
  border-radius: 50%;
  flex-shrink: 0;
  animation: livePulse 2s ease-in-out infinite;
}
@keyframes livePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.5); }
  50%       { box-shadow: 0 0 0 5px rgba(16, 185, 129, 0); }
}

/* ── Centred copy block ────────────────────────────────────────── */
.hz-hero-center {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 0 40px;
  max-width: 820px;
  margin: 0 auto;
}

/* Headline */
.hz-hero-headline {
  font-size: 5rem;
  font-weight: 700;
  line-height: 1.0;
  color: #f3f4f6;
  margin: 0 0 24px;
  letter-spacing: -0.03em;
}
.hz-hero-accent {
  background: linear-gradient(135deg, #4D9FFF 0%, #0066FF 40%, #00A8E8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}

/* Sub-copy */
.hz-hero-sub {
  font-size: 1.1rem;
  color: rgba(243, 244, 246, 0.55);
  line-height: 1.7;
  margin: 0 0 40px;
  max-width: 640px;
}

/* CTA buttons */
.hz-hero-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 52px;
}
.hz-hero-actions--center { justify-content: center; }

/* ── Stat bar ─────────────────────────────────────────────────── */
.hz-hero-statbar {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 16px 0;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  backdrop-filter: blur(10px);
  min-width: min(520px, 100%);  /* never exceed container width */
  max-width: 100%;
}
.hz-hero-statbar .hz-hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  padding: 0 24px;
}
.hz-hero-statbar .hz-hero-stat-val {
  font-size: 1.65rem;
  font-weight: 700;
  color: #f3f4f6;
  line-height: 1;
  letter-spacing: -0.02em;
}
.hz-hero-statbar .hz-hero-stat-label {
  font-size: 0.62rem;
  color: rgba(243, 244, 246, 0.38);
  font-weight: 500;
  margin-top: 5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.hz-hero-statbar .hz-hero-stat-sep {
  width: 1px;
  height: 36px;
  background: rgba(255, 255, 255, 0.07);
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   CAMPUS PILLAR STRIP — 4 tiles below hero copy
   ═══════════════════════════════════════════════════════════════════ */
.hz-campus-strip {
  position: relative;
  z-index: 1;
  padding: 0 0 52px;
  width: 100%;
}
.hz-campus-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 0;
}
.hz-campus-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 26px 22px 44px;
  border-radius: 18px;
  background: rgba(17, 24, 39, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.06);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
  backdrop-filter: blur(6px);
}
.hz-campus-tile:hover { transform: translateY(-6px); }

/* Color top accent */
.hz-campus-tile--blue   { border-top: 2px solid rgba(0, 102, 255, 0.6); }
.hz-campus-tile--green  { border-top: 2px solid rgba(16, 185, 129, 0.6); }
.hz-campus-tile--orange { border-top: 2px solid rgba(245, 158, 11, 0.6); }
.hz-campus-tile--purple { border-top: 2px solid rgba(124, 58, 237, 0.6); }

.hz-campus-tile--blue:hover   { border-color: rgba(0,102,255,0.7);   box-shadow: 0 20px 50px rgba(0,102,255,0.16),   0 0 0 1px rgba(0,102,255,0.18);   background: rgba(0,102,255,0.06); }
.hz-campus-tile--green:hover  { border-color: rgba(16,185,129,0.7);  box-shadow: 0 20px 50px rgba(16,185,129,0.13),  0 0 0 1px rgba(16,185,129,0.18);  background: rgba(16,185,129,0.05); }
.hz-campus-tile--orange:hover { border-color: rgba(245,158,11,0.7);  box-shadow: 0 20px 50px rgba(245,158,11,0.13),  0 0 0 1px rgba(245,158,11,0.18);  background: rgba(245,158,11,0.05); }
.hz-campus-tile--purple:hover { border-color: rgba(124,58,237,0.7);  box-shadow: 0 20px 50px rgba(124,58,237,0.16),  0 0 0 1px rgba(124,58,237,0.18);  background: rgba(124,58,237,0.06); }

/* Icon box */
.hz-campus-tile-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.hz-campus-tile:hover .hz-campus-tile-icon { transform: scale(1.1); }

.hz-campus-tile--blue   .hz-campus-tile-icon { background: rgba(0,102,255,0.1);   color: #60A5FA; border: 1px solid rgba(0,102,255,0.2); }
.hz-campus-tile--green  .hz-campus-tile-icon { background: rgba(16,185,129,0.1);  color: #34D399; border: 1px solid rgba(16,185,129,0.2); }
.hz-campus-tile--orange .hz-campus-tile-icon { background: rgba(245,158,11,0.1);  color: #FCD34D; border: 1px solid rgba(245,158,11,0.2); }
.hz-campus-tile--purple .hz-campus-tile-icon { background: rgba(124,58,237,0.1);  color: #A78BFA; border: 1px solid rgba(124,58,237,0.2); }

.hz-campus-tile-tag {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.hz-campus-tile--blue   .hz-campus-tile-tag { color: #60A5FA; }
.hz-campus-tile--green  .hz-campus-tile-tag { color: #34D399; }
.hz-campus-tile--orange .hz-campus-tile-tag { color: #FCD34D; }
.hz-campus-tile--purple .hz-campus-tile-tag { color: #A78BFA; }

.hz-campus-tile-body { flex: 1; }

.hz-campus-tile-title {
  font-size: 1rem;
  font-weight: 700;
  color: #f3f4f6;
  margin-bottom: 10px;
  line-height: 1.3;
}
.hz-campus-tile-desc {
  font-size: 0.8rem;
  color: rgba(243, 244, 246, 0.4);
  line-height: 1.65;
}

/* Arrow — bottom right corner */
.hz-campus-tile-arrow {
  position: absolute;
  bottom: 20px;
  right: 22px;
  font-size: 1.05rem;
  font-weight: 700;
  color: rgba(243, 244, 246, 0.18);
  transition: color 0.2s, transform 0.2s;
}
.hz-campus-tile:hover .hz-campus-tile-arrow {
  color: rgba(243, 244, 246, 0.65);
  transform: translate(4px, -2px);
}

/* ═══════════════════════════════════════════════════════════════════
   SIGNAL CARD — hero + compact variants
   ═══════════════════════════════════════════════════════════════════ */
.signal-card {
  background: #111827;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 20px;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.signal-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 102, 255, 0.4);
  box-shadow: 0 12px 40px rgba(0, 102, 255, 0.12);
}
.signal-card--hero {
  width: 280px;
  min-height: 320px;
}
.signal-card--compact {
  width: 100%;
  margin-bottom: 12px;
}
.signal-card--up   { border-top: 2px solid #10B981; }
.signal-card--down { border-top: 2px solid #EF4444; }

/* Card header row */
.signal-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}
.signal-card-left { display: flex; flex-direction: column; gap: 3px; }
.signal-card-pair {
  font-size: 1.0rem;
  font-weight: 700;
  color: #f3f4f6;
  letter-spacing: -0.01em;
}
.signal-card-label {
  font-size: 0.66rem;
  color: rgba(243, 244, 246, 0.4);
  font-weight: 500;
}
/* Live badge */
.signal-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #10B981;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.25);
  border-radius: 999px;
  padding: 3px 8px;
}
.signal-live-dot {
  width: 5px; height: 5px;
  background: #10B981;
  border-radius: 50%;
  animation: livePulse 2s ease-in-out infinite;
}
/* Price row */
.signal-card-price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
}
.signal-card-price {
  font-size: 1.45rem;
  font-weight: 700;
  color: #f3f4f6;
  letter-spacing: -0.02em;
}
.signal-card-chg {
  font-size: 0.8rem;
  font-weight: 700;
}
.signal-card-chg--up   { color: #10B981; }
.signal-card-chg--down { color: #EF4444; }

/* Sparkline chart placeholder */
.signal-card-chart {
  height: 64px;
  border-radius: 8px;
  background: rgba(0, 102, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
  margin-bottom: 14px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.signal-card-chart svg { width: 100%; height: 100%; }

/* OHLC metrics */
.signal-card-ohlc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 14px;
}
.signal-card-metric {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.signal-card-metric-label {
  font-size: 0.58rem;
  color: rgba(243, 244, 246, 0.35);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.signal-card-metric-val {
  font-size: 0.82rem;
  font-weight: 700;
  color: #f3f4f6;
}

/* Signal type badge */
.signal-card-signal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  border-radius: 10px;
  margin-bottom: 10px;
}
.signal-card-signal--long  { background: rgba(16, 185, 129, 0.08); border: 1px solid rgba(16, 185, 129, 0.2); }
.signal-card-signal--short { background: rgba(239, 68, 68, 0.08);  border: 1px solid rgba(239, 68, 68, 0.2); }
.signal-card-signal-type {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.signal-card-signal--long  .signal-card-signal-type { color: #10B981; }
.signal-card-signal--short .signal-card-signal-type { color: #EF4444; }
.signal-card-signal-rr {
  font-size: 0.7rem;
  font-weight: 700;
  color: rgba(243, 244, 246, 0.5);
}

/* Desc / AZUL label row */
.signal-card-desc {
  font-size: 0.72rem;
  color: rgba(243, 244, 246, 0.45);
  line-height: 1.5;
  margin-bottom: 10px;
}
.signal-card-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(0, 102, 255, 0.7);
}
.signal-card-footer-dot {
  width: 5px; height: 5px;
  background: #0066FF;
  border-radius: 50%;
}

/* Signals live badge (in column header) */
.hz-signals-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #10B981;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 999px;
  padding: 2px 8px;
  margin-left: 10px;
}

/* ═══════════════════════════════════════════════════════════════════
   SHARED BUTTON — .btn-terminal
   ═══════════════════════════════════════════════════════════════════ */
.btn-terminal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 26px;
  border-radius: 9px;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  font-family: inherit;
  text-decoration: none;
  border: none;
  transition: all 0.18s ease;
  line-height: 1;
}
.btn-terminal--primary {
  background: linear-gradient(135deg, #0066FF, #0088FF);
  color: #fff;
  box-shadow: 0 0 24px rgba(0, 102, 255, 0.35);
}
.btn-terminal--primary:hover {
  background: linear-gradient(135deg, #0052cc, #0066FF);
  transform: translateY(-2px);
  box-shadow: 0 6px 32px rgba(0, 102, 255, 0.45);
}
.btn-terminal--ghost {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(243, 244, 246, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.btn-terminal--ghost:hover {
  background: rgba(255, 255, 255, 0.09);
  color: #f3f4f6;
  border-color: rgba(255, 255, 255, 0.22);
  transform: translateY(-1px);
}

/* ═══════════════════════════════════════════════════════════════════
   MAIN CONTENT — Feed (left) + Signals (right)
   ═══════════════════════════════════════════════════════════════════ */
.hz-main-content {
  padding: 56px 0 64px;
  background: linear-gradient(to bottom, #080d18, #090e1a);
  width: 100%;
}
.hz-main-grid {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 32px;
  align-items: flex-start;
}

/* Column headers */
.hz-col-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.hz-col-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(243, 244, 246, 0.7);
}
.hz-col-title svg { opacity: 0.55; }
.hz-col-title--orange { color: #F59E0B; }
.hz-col-title--orange svg { opacity: 1; color: #F59E0B; }

/* Filter chips */
.hz-col-filter {
  padding: 5px 14px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(243, 244, 246, 0.4);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
  margin-left: 4px;
}
.hz-col-filter:hover { color: #f3f4f6; border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.04); }
.hz-col-filter--active {
  color: #60A5FA;
  border-color: rgba(0,102,255,0.35);
  background: rgba(0,102,255,0.08);
}

/* ── Feed posts ──────────────────────────────────────────────────── */
.feed-post {
  background: rgba(17, 24, 39, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 14px;
  transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
  cursor: pointer;
}
.feed-post:hover {
  border-color: rgba(255, 255, 255, 0.13);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
}
.feed-post--blue    { border-left: 3px solid rgba(0, 102, 255, 0.7); }
.feed-post--orange  { border-left: 3px solid rgba(245, 158, 11, 0.7); }
.feed-post--green   { border-left: 3px solid rgba(16, 185, 129, 0.7); }
.feed-post--purple  { border-left: 3px solid rgba(139, 92, 246, 0.7); }

.feed-post-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
.feed-post-avatar {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(0, 102, 255, 0.15);
  border: 1px solid rgba(0, 102, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 700;
  color: #60A5FA;
  flex-shrink: 0;
  letter-spacing: 0.02em;
}
.feed-post-meta { flex: 1; min-width: 0; }
.feed-post-name {
  font-size: 0.86rem;
  font-weight: 700;
  color: #f3f4f6;
  margin-bottom: 1px;
}
.feed-post-handle {
  font-size: 0.72rem;
  color: rgba(243, 244, 246, 0.35);
  font-weight: 500;
}
.feed-post-right { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.feed-post-type {
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.feed-post-type--analysis { background: rgba(0,102,255,0.1);   color: #60A5FA; border: 1px solid rgba(0,102,255,0.2); }
.feed-post-type--news     { background: rgba(245,158,11,0.1);  color: #FCD34D; border: 1px solid rgba(245,158,11,0.2); }
.feed-post-type--breakdown{ background: rgba(16,185,129,0.1);  color: #34D399; border: 1px solid rgba(16,185,129,0.2); }
.feed-post-type--stream   { background: rgba(139,92,246,0.1);  color: #A78BFA; border: 1px solid rgba(139,92,246,0.2); }
.feed-post-time { font-size: 0.65rem; color: rgba(243,244,246,0.3); }

.feed-post-content {
  font-size: 0.875rem;
  color: rgba(243,244,246,0.7);
  line-height: 1.65;
  margin-bottom: 14px;
}
.feed-post-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.feed-post-pair {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  font-size: 0.68rem;
  font-weight: 700;
  color: rgba(243,244,246,0.55);
}
.feed-post-pair-chg { font-weight: 700; }
.feed-post-pair-chg--up   { color: #10B981; }
.feed-post-pair-chg--down { color: #EF4444; }
.feed-post-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}
.feed-post-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.7rem;
  color: rgba(243,244,246,0.35);
  font-weight: 500;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.15s;
  padding: 0;
}
.feed-post-action:hover { color: rgba(243,244,246,0.75); }

/* Load more */
.hz-load-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 14px;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 500;
  color: rgba(243,244,246,0.4);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.18s;
  margin-top: 8px;
}
.hz-load-more:hover { color: #f3f4f6; border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.04); }
.hz-load-more svg { opacity: 0.5; }

/* View all signals */
.hz-view-all-signals {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 12px;
  background: rgba(0,102,255,0.06);
  border: 1px solid rgba(0,102,255,0.2);
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 700;
  color: #60A5FA;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.18s;
  margin-top: 6px;
  text-decoration: none;
}
.hz-view-all-signals:hover { background: rgba(0,102,255,0.1); border-color: rgba(0,102,255,0.35); }

/* ── Signals column ──────────────────────────────────────────────── */
.hz-signals-col { position: sticky; top: 80px; }
.hz-feed-col .feed-post:last-of-type { margin-bottom: 0; }

/* ═══════════════════════════════════════════════════════════════════
   SHARED SECTION HEADERS
   ═══════════════════════════════════════════════════════════════════ */
.hz-section-head { margin-bottom: 48px; }
.hz-section-head--row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.hz-section-eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #60A5FA;
  margin-bottom: 10px;
}
.hz-section-eyebrow--green { color: #10B981; }
.hz-section-title {
  font-size: 2.1rem;
  font-weight: 700;
  color: #f3f4f6;
  line-height: 1.15;
  margin: 0 0 14px;
  letter-spacing: -0.02em;
}
.hz-section-title--sm { font-size: 1.7rem; margin: 0; }
.hz-section-sub {
  font-size: 0.96rem;
  color: rgba(243,244,246,0.5);
  line-height: 1.7;
  max-width: 620px;
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   ACADEMY SECTION
   ═══════════════════════════════════════════════════════════════════ */
.hz-academy {
  padding: 80px 0;
  background: linear-gradient(to bottom, #090e1a, #060b16);
  position: relative;
  width: 100%;
}
.hz-academy::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 600px; height: 1px;
  background: linear-gradient(to right, transparent, rgba(0,102,255,0.3), transparent);
}

/* Module carousel */
.hz-module-carousel {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
.hz-module-card {
  position: relative;
  padding: 28px 24px;
  border-radius: 16px;
  background: rgba(17, 24, 39, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.07);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
  cursor: pointer;
}
.hz-module-card:hover { transform: translateY(-5px); }
.hz-module-card--blue:hover   { border-color: rgba(0,102,255,0.4);   box-shadow: 0 12px 40px rgba(0,102,255,0.15); }
.hz-module-card--green:hover  { border-color: rgba(16,185,129,0.4);  box-shadow: 0 12px 40px rgba(16,185,129,0.12); }
.hz-module-card--orange:hover { border-color: rgba(245,158,11,0.4);  box-shadow: 0 12px 40px rgba(245,158,11,0.12); }
.hz-module-card--purple:hover { border-color: rgba(139,92,246,0.4);  box-shadow: 0 12px 40px rgba(139,92,246,0.15); }
.hz-module-card--teal:hover   { border-color: rgba(20,184,166,0.4);  box-shadow: 0 12px 40px rgba(20,184,166,0.14); }

.hz-module-num {
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 16px;
  opacity: 0.06;
  letter-spacing: -0.04em;
  color: #f3f4f6;
}
.hz-module-tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.hz-module-tag--blue   { background: rgba(0,102,255,0.1);  color: #60A5FA; border: 1px solid rgba(0,102,255,0.2); }
.hz-module-tag--green  { background: rgba(16,185,129,0.1); color: #34D399; border: 1px solid rgba(16,185,129,0.2); }
.hz-module-tag--orange { background: rgba(245,158,11,0.1); color: #FCD34D; border: 1px solid rgba(245,158,11,0.2); }
.hz-module-tag--purple { background: rgba(139,92,246,0.1); color: #A78BFA; border: 1px solid rgba(139,92,246,0.2); }
.hz-module-tag--teal   { background: rgba(20,184,166,0.1); color: #2DD4BF; border: 1px solid rgba(20,184,166,0.2); }

.hz-module-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #f3f4f6;
  margin: 0 0 10px;
  line-height: 1.3;
}
.hz-module-sub {
  font-size: 0.8rem;
  color: rgba(243,244,246,0.4);
  line-height: 1.6;
  margin: 0 0 20px;
}
.hz-module-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: 8px;
  background: rgba(255,255,255,0.05);
  color: rgba(243,244,246,0.3);
  transition: all 0.2s;
}
.hz-module-card:hover .hz-module-arrow { background: rgba(0,102,255,0.12); color: #60A5FA; transform: translateX(3px); }

/* Academy footer */
.hz-academy-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 32px;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 16px;
  gap: 24px;
  flex-wrap: wrap;
}
.hz-academy-stats {
  display: flex;
  align-items: center;
  gap: 0;
}
.hz-acad-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 24px;
}
.hz-acad-stat-val {
  font-size: 1.45rem;
  font-weight: 700;
  color: #f3f4f6;
  letter-spacing: -0.02em;
}
.hz-acad-stat-label {
  font-size: 0.62rem;
  color: rgba(243,244,246,0.35);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 500;
  margin-top: 3px;
}
.hz-acad-stat-sep {
  width: 1px; height: 30px;
  background: rgba(255,255,255,0.07);
}

/* ═══════════════════════════════════════════════════════════════════
   NETWORK SECTION
   ═══════════════════════════════════════════════════════════════════ */
.hz-network {
  padding: 80px 0;
  background: #080d18;
  position: relative;
  width: 100%;
}
.hz-network::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 600px; height: 1px;
  background: linear-gradient(to right, transparent, rgba(16,185,129,0.25), transparent);
}
.hz-trader-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 40px;
}
.hz-trader-card {
  padding: 22px;
  background: rgba(17, 24, 39, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
  cursor: pointer;
}
.hz-trader-card:hover {
  transform: translateY(-3px);
  border-color: rgba(16,185,129,0.25);
  box-shadow: 0 10px 32px rgba(16,185,129,0.08);
}
.hz-trader-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.hz-trader-avatar {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(0,102,255,0.2), rgba(16,185,129,0.15));
  border: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 700;
  color: #f3f4f6;
  flex-shrink: 0;
  letter-spacing: 0.02em;
}
.hz-trader-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: #f3f4f6;
  margin-bottom: 1px;
}
.hz-trader-handle {
  font-size: 0.7rem;
  color: rgba(243,244,246,0.35);
  font-weight: 500;
}
.hz-trader-ytd {
  margin-left: auto;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.hz-trader-ytd--up   { color: #10B981; }
.hz-trader-ytd--down { color: #EF4444; }

.hz-trader-spec {
  font-size: 0.72rem;
  color: rgba(243,244,246,0.38);
  font-weight: 500;
  margin-bottom: 14px;
}
.hz-trader-bar {
  height: 3px;
  background: rgba(255,255,255,0.06);
  border-radius: 99px;
  overflow: hidden;
  margin-bottom: 10px;
}
.hz-trader-bar-fill {
  height: 100%;
  background: linear-gradient(to right, #10B981, #00D4B4);
  border-radius: 99px;
  transition: width 0.6s ease;
}
.hz-trader-stats {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.hz-trader-stat-label {
  font-size: 0.62rem;
  color: rgba(243,244,246,0.3);
  font-weight: 500;
}
.hz-trader-stat-val {
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(243,244,246,0.55);
}
.hz-network-cta {
  text-align: center;
  padding-top: 12px;
}
.hz-network-cta-text {
  font-size: 1rem;
  color: rgba(243,244,246,0.4);
  margin-bottom: 20px;
  font-weight: 500;
}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE STICKY TABS
   ═══════════════════════════════════════════════════════════════════ */
.hz-mobile-tabs {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: var(--tabs-h);
  z-index: 400;
  background: rgba(6, 10, 20, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(255,255,255,0.07);
  padding: 0;
  width: 100%;
}
.hz-mobile-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 8px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(243,244,246,0.4);
  text-decoration: none;
  border-top: 2px solid transparent;
  transition: all 0.15s;
}
.hz-mobile-tab:hover,
.hz-mobile-tab--active {
  color: #0066FF;
  border-top-color: #0066FF;
  background: rgba(0,102,255,0.05);
}

/* ── Footer dark override ─────────────────────────────────────────── */
.footer {
  background: #050a14 !important;
  border-top: 1px solid rgba(0,102,255,0.08) !important;
}
.footer-tagline, .footer-col a, .footer-bottom p { color: rgba(220,233,243,0.38) !important; }
.footer-col h4 { color: rgba(220,233,243,0.6) !important; }
.footer-col a:hover { color: #60A5FA !important; }

/* ── Login modal dark override ────────────────────────────────────── */
.azul-login-panel { background: #0a1020 !important; border: 1px solid rgba(0,102,255,0.12) !important; }
.azul-login-card  { background: #0d1523 !important; border: 1px solid rgba(0,102,255,0.15) !important; }
.azul-login-method { background: rgba(255,255,255,0.05) !important; border: 1px solid rgba(255,255,255,0.1) !important; color: #e8edf5 !important; }
.azul-login-method:hover { background: rgba(255,255,255,0.1) !important; }

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET (768px – 1199px)
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 1199px) {
  .hz-hero-headline { font-size: 4rem; }
  .hz-hero-statbar  { min-width: auto; }
  .hz-campus-grid   { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .hz-module-carousel { grid-template-columns: repeat(2, 1fr); }
  .hz-trader-grid   { grid-template-columns: repeat(2, 1fr); }
  .hz-main-grid     { grid-template-columns: 1fr 340px; gap: 24px; }
}

@media (max-width: 1023px) {
  .hz-hero-headline { font-size: 3.2rem; }
  .hz-hero-sub      { font-size: 1rem; }
  .hz-hero-center   { padding: 44px 0 32px; }
  .hz-signals-col   { position: static; }
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE (< 768px)
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Header mobile — handled by fixed-position block above */
  .nav-toggle { display: flex; }
  /* .hz-nav open states handled by dedicated block below */

  /* Container: more breathing room on mobile */
  .hz-container { padding: 0 20px; }

  /* Hero mobile */
  .hz-hero-center { padding: 36px 0 28px; text-align: center; align-items: center; }
  .hz-hero-headline { font-size: 2.4rem; letter-spacing: -0.025em; }
  .hz-hero-sub      { font-size: 0.93rem; max-width: 100%; text-align: center; }
  .hz-hero-actions  { flex-direction: column; align-items: stretch; width: 100%; }
  .hz-hero-actions .btn-terminal { text-align: center; justify-content: center; }
  .hz-hero-statbar  {
    min-width: 0;
    width: 100%;
    border-radius: 14px;
    padding: 12px 0;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 0;
  }
  .hz-hero-statbar .hz-hero-stat { padding: 4px 16px; }
  .hz-hero-statbar .hz-hero-stat-sep { display: none; }

  /* Campus tiles mobile — stacked cards */
  .hz-campus-grid { grid-template-columns: 1fr; gap: 10px; }
  .hz-campus-strip { padding-bottom: 40px; }
  .hz-campus-tile {
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    padding: 16px;
  }
  .hz-campus-tile-icon { margin-bottom: 0; flex-shrink: 0; }
  .hz-campus-tile-arrow { display: none; }

  /* Main grid — stack on mobile */
  .hz-main-grid { grid-template-columns: 1fr; gap: 20px; }
  .hz-signals-col { display: none; }

  /* Academy + network 1 col */
  .hz-module-carousel { grid-template-columns: 1fr; }
  .hz-trader-grid     { grid-template-columns: repeat(2, 1fr); }

  /* Academy footer stack */
  .hz-academy-footer { flex-direction: column; align-items: flex-start; }

  /* Section titles — centred on mobile */
  .hz-section-title { font-size: 1.6rem; }
  .hz-section-head--row { flex-direction: column; align-items: flex-start; }

  /* Mobile tabs visible */
  .hz-mobile-tabs { display: flex; }

  /* ── App-style layout on mobile ─────────────────────────────────
     Header: fixed top (64px)
     Content: scrolls between header and bottom tabs
     Bottom tabs: fixed bottom (56px)
     Body gets padding so content is never hidden under fixed bars
  ──────────────────────────────────────────────────────────────── */
  body {
    padding-top: var(--header-h);   /* clear fixed header */
    padding-bottom: var(--tabs-h);  /* clear fixed bottom tabs */
  }

  /* Module/academy pages use az-shell — no fixed site header,
     so cancel the 64px top padding that would create empty space */
  body:has(.az-shell) {
    padding-top: 0;
    padding-bottom: 0;
  }

  /* Pit hero fills the visible gap between header and tabs */
  .pit-hero {
    height: calc(100dvh - var(--header-h) - var(--tabs-h));
    min-height: 40vh;
    max-height: none;
  }
}

@media (max-width: 480px) {
  .hz-hero-headline   { font-size: 2rem; }
  .pit-hero-headline  { font-size: 2.1rem; }
  .hz-trader-grid     { grid-template-columns: 1fr; }
  .hz-module-carousel { grid-template-columns: 1fr; }
  .hz-hero-statbar .hz-hero-stat-val { font-size: 1.3rem; }
  .hz-acad-stat-val  { font-size: 1.2rem; }
  .hz-acad-stat       { padding: 0 12px; }
  /* Tighter section padding on small screens */
  .hz-hero-center     { padding: 28px 0 20px; }
  .hz-hero-sub        { font-size: 0.9rem; }
  .hz-section-title   { font-size: 1.5rem; }
  .hz-campus-tile     { padding: 14px 14px 28px; }
}


/* ═══════════════════════════════════════════════════════════════════
   SIGNAL CARD — actual class names used by SignalCard component
   ═══════════════════════════════════════════════════════════════════ */
.signal-price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
}
.signal-price {
  font-size: 1.45rem;
  font-weight: 700;
  color: #f3f4f6;
  letter-spacing: -0.02em;
}
.signal-change {
  font-size: 0.8rem;
  font-weight: 700;
}
.signal-change--up   { color: #10B981; }
.signal-change--down { color: #EF4444; }

/* Mini chart SVG */
.signal-mini-chart {
  width: 100%;
  height: 60px;
  display: block;
  margin-bottom: 12px;
  border-radius: 6px;
}

/* OHLC row */
.signal-ohlc {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-bottom: 12px;
}
.signal-ohlc-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6px 4px;
  background: rgba(255,255,255,0.03);
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.04);
}
.signal-ohlc-label {
  font-size: 0.54rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(243,244,246,0.3);
  margin-bottom: 2px;
}
.signal-ohlc-val {
  font-size: 0.76rem;
  font-weight: 700;
  color: #f3f4f6;
}
.signal-ohlc-val--green { color: #10B981; }
.signal-ohlc-val--red   { color: #EF4444; }
.signal-ohlc-val--blue  { color: #60A5FA; }

/* Signal label footer */
.signal-label {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border-radius: 8px;
  flex-wrap: wrap;
}
.signal-label--buy  { background: rgba(16,185,129,0.07); border: 1px solid rgba(16,185,129,0.18); }
.signal-label--sell { background: rgba(239,68,68,0.07);  border: 1px solid rgba(239,68,68,0.18); }

.signal-label-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}
.signal-label-dot--buy  { background: #10B981; box-shadow: 0 0 4px rgba(16,185,129,0.5); }
.signal-label-dot--sell { background: #EF4444; box-shadow: 0 0 4px rgba(239,68,68,0.5); }

.signal-label-tag {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(243,244,246,0.4);
}
.signal-label-desc {
  font-size: 0.7rem;
  font-weight: 500;
  color: rgba(243,244,246,0.65);
  margin-left: auto;
}

/* ═══════════════════════════════════════════════════════════════════
   FEED POST — actual class names used by FeedPost component
   ═══════════════════════════════════════════════════════════════════ */
.feed-avatar {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(0,102,255,0.15);
  border: 1px solid rgba(0,102,255,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.74rem;
  font-weight: 700;
  color: #60A5FA;
  flex-shrink: 0;
  letter-spacing: 0.03em;
}
.feed-meta {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.feed-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: #f3f4f6;
}
.feed-handle {
  font-size: 0.7rem;
  color: rgba(243,244,246,0.35);
  font-weight: 500;
}

/* Type badge */
.feed-type-badge {
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  flex-shrink: 0;
  align-self: flex-start;
}
.feed-type-badge--blue   { background: rgba(0,102,255,0.1);   color: #60A5FA; border: 1px solid rgba(0,102,255,0.2); }
.feed-type-badge--orange { background: rgba(245,158,11,0.1);  color: #FCD34D; border: 1px solid rgba(245,158,11,0.2); }
.feed-type-badge--green  { background: rgba(16,185,129,0.1);  color: #34D399; border: 1px solid rgba(16,185,129,0.2); }
.feed-type-badge--purple { background: rgba(139,92,246,0.1);  color: #A78BFA; border: 1px solid rgba(139,92,246,0.2); }

.feed-content {
  font-size: 0.875rem;
  color: rgba(243,244,246,0.68);
  line-height: 1.65;
  margin-bottom: 14px;
}

/* Pair chip */
.feed-pair-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  font-size: 0.7rem;
  font-weight: 500;
  color: rgba(243,244,246,0.5);
  margin-bottom: 12px;
}
.feed-pair-chip strong { font-weight: 700; }
.feed-pair-chip--up   strong { color: #10B981; }
.feed-pair-chip--down strong { color: #EF4444; }

/* Feed actions */
.feed-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.feed-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  color: rgba(243,244,246,0.35);
  font-weight: 500;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.15s;
  padding: 0;
}
.feed-action:hover { color: rgba(243,244,246,0.75); }
.feed-action--read { color: rgba(0,102,255,0.6); margin-left: auto; }
.feed-action--read:hover { color: #60A5FA; }


/* ═══════════════════════════════════════════════════════════════════
   SIGNAL CARD — actual class names used by SignalCard component
   ═══════════════════════════════════════════════════════════════════ */
.signal-price-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.signal-price { font-size: 1.45rem; font-weight: 700; color: #f3f4f6; letter-spacing: -0.02em; }
.signal-change { font-size: 0.8rem; font-weight: 700; }
.signal-change--up   { color: #10B981; }
.signal-change--down { color: #EF4444; }

.signal-mini-chart { width: 100%; height: 60px; display: block; margin-bottom: 12px; border-radius: 6px; }

.signal-ohlc { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 12px; }
.signal-ohlc-item { display: flex; flex-direction: column; align-items: center; padding: 6px 4px; background: rgba(255,255,255,0.03); border-radius: 6px; border: 1px solid rgba(255,255,255,0.04); }
.signal-ohlc-label { font-size: 0.54rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(243,244,246,0.3); margin-bottom: 2px; }
.signal-ohlc-val { font-size: 0.76rem; font-weight: 700; color: #f3f4f6; }
.signal-ohlc-val--green { color: #10B981; }
.signal-ohlc-val--red   { color: #EF4444; }
.signal-ohlc-val--blue  { color: #60A5FA; }

.signal-label { display: flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 8px; flex-wrap: wrap; }
.signal-label--buy  { background: rgba(16,185,129,0.07); border: 1px solid rgba(16,185,129,0.18); }
.signal-label--sell { background: rgba(239,68,68,0.07);  border: 1px solid rgba(239,68,68,0.18); }
.signal-label-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.signal-label-dot--buy  { background: #10B981; box-shadow: 0 0 4px rgba(16,185,129,0.5); }
.signal-label-dot--sell { background: #EF4444; box-shadow: 0 0 4px rgba(239,68,68,0.5); }
.signal-label-tag { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(243,244,246,0.4); }
.signal-label-desc { font-size: 0.7rem; font-weight: 500; color: rgba(243,244,246,0.65); margin-left: auto; }

/* ═══════════════════════════════════════════════════════════════════
   FEED POST — actual class names used by FeedPost component
   ═══════════════════════════════════════════════════════════════════ */
.feed-avatar { width: 38px; height: 38px; border-radius: 10px; background: rgba(0,102,255,0.15); border: 1px solid rgba(0,102,255,0.2); display: flex; align-items: center; justify-content: center; font-size: 0.74rem; font-weight: 700; color: #60A5FA; flex-shrink: 0; letter-spacing: 0.03em; }
.feed-meta { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.feed-name { font-size: 0.88rem; font-weight: 700; color: #f3f4f6; }
.feed-handle { font-size: 0.7rem; color: rgba(243,244,246,0.35); font-weight: 500; }

.feed-type-badge { padding: 3px 9px; border-radius: 999px; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; flex-shrink: 0; align-self: flex-start; }
.feed-type-badge--blue   { background: rgba(0,102,255,0.1);   color: #60A5FA; border: 1px solid rgba(0,102,255,0.2); }
.feed-type-badge--orange { background: rgba(245,158,11,0.1);  color: #FCD34D; border: 1px solid rgba(245,158,11,0.2); }
.feed-type-badge--green  { background: rgba(16,185,129,0.1);  color: #34D399; border: 1px solid rgba(16,185,129,0.2); }
.feed-type-badge--purple { background: rgba(139,92,246,0.1);  color: #A78BFA; border: 1px solid rgba(139,92,246,0.2); }

.feed-content { font-size: 0.875rem; color: rgba(243,244,246,0.68); line-height: 1.65; margin-bottom: 14px; }

.feed-pair-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); font-size: 0.7rem; font-weight: 500; color: rgba(243,244,246,0.5); margin-bottom: 12px; }
.feed-pair-chip strong { font-weight: 700; }
.feed-pair-chip--up   strong { color: #10B981; }
.feed-pair-chip--down strong { color: #EF4444; }

.feed-actions { display: flex; align-items: center; gap: 16px; }
.feed-action { display: inline-flex; align-items: center; gap: 5px; font-size: 0.72rem; color: rgba(243,244,246,0.35); font-weight: 500; background: none; border: none; cursor: pointer; font-family: inherit; transition: color 0.15s; padding: 0; }
.feed-action:hover { color: rgba(243,244,246,0.75); }
.feed-action--read { color: rgba(0,102,255,0.6); margin-left: auto; }
.feed-action--read:hover { color: #60A5FA; }

/* ═══════════════════════════════════════════════════════════════════
   MOBILE NAV DROPDOWN — full-width sheet from header
   JS toggles .open on #mainNav
   ═══════════════════════════════════════════════════════════════════ */

/* On desktop: nav is a horizontal flex row (default) */
.hz-nav { display: flex; }

@media (max-width: 768px) {
  /* ── Header stays sticky, full-width ── */
  .header {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 500 !important;
    height: var(--header-h) !important;
    width: 100% !important;
    overflow: visible !important;
  }

  /* ── Nav toggle (hamburger) ── */
  .nav-toggle { display: flex !important; }
  .hz-nav-auth { display: none; }

  /* ── Nav dropdown: drops below header ── */
  .hz-nav {
    display: none;
    position: fixed;
    top: var(--header-h); left: 0; right: 0;
    width: 100%;
    background: rgba(6, 10, 20, 0.98);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-bottom: 1px solid rgba(0,102,255,0.15);
    flex-direction: column;
    padding: 12px 16px 20px;
    gap: 4px;
    z-index: 499;
    /* slide-in animation */
    transform: translateY(-8px);
    opacity: 0;
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  /* Both .open (JS) and .is-open (legacy) show the nav */
  .hz-nav.open,
  .hz-nav.is-open {
    display: flex;
    transform: translateY(0);
    opacity: 1;
  }

  /* Nav links — full-width tap targets */
  .hz-nav-link {
    width: 100%;
    padding: 13px 16px;
    border-radius: 10px;
    font-size: 0.95rem;
    font-weight: 500;
    color: rgba(243,244,246,0.75);
    transition: background 0.15s, color 0.15s;
    display: block;
  }
  .hz-nav-link:hover,
  .hz-nav-link:active {
    background: rgba(0,102,255,0.1);
    color: #fff;
  }

  /* Sign-in button inside dropdown on mobile */
  .hz-nav-mobile-auth {
    display: flex !important;
    margin-top: 8px;
    padding: 0 16px;
    gap: 10px;
  }
  .hz-nav-mobile-auth a,
  .hz-nav-mobile-auth button {
    flex: 1;
    text-align: center;
    justify-content: center;
  }
}

/* Teal glow alias (same as green) */
.hz-hero-glow--teal {
  width: 500px; height: 400px;
  background: radial-gradient(ellipse, rgba(16, 185, 129, 0.14) 0%, transparent 70%);
  bottom: 0; right: 50px;
  filter: blur(80px);
}

/* ═══════════════════════════════════════════════════════════════════
   PWA INSTALL BANNER
   ═══════════════════════════════════════════════════════════════════ */
.pwa-install-banner {
  display: none; /* JS sets display:flex when showing */
  position: fixed;
  bottom: calc(var(--tabs-h) + 8px);
  left: 8px; right: 8px;
  z-index: 450;
  background: rgba(8, 13, 24, 0.97);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(0,102,255,0.25);
  border-radius: 16px;
  padding: 14px 16px;
  align-items: center;
  gap: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.6), 0 0 0 1px rgba(0,102,255,0.1);
  animation: pwa-slide-up 0.35s cubic-bezier(0.34,1.56,0.64,1) both;
}
.pwa-install-banner.pwa-hidden {
  display: none !important;
}
@keyframes pwa-slide-up {
  from { transform: translateY(24px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.pwa-install-icon img {
  width: 48px; height: 48px;
  border-radius: 12px;
  flex-shrink: 0;
}
.pwa-install-copy {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pwa-install-copy strong {
  font-size: 0.82rem;
  font-weight: 700;
  color: #f3f4f6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pwa-install-copy span {
  font-size: 0.72rem;
  color: rgba(156,163,175,0.8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pwa-install-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.pwa-install-btn {
  background: #0066FF;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s;
}
.pwa-install-btn:hover { background: #0052cc; }
.pwa-install-dismiss {
  background: none;
  border: none;
  color: rgba(156,163,175,0.6);
  font-size: 1rem;
  cursor: pointer;
  padding: 4px 6px;
  line-height: 1;
  border-radius: 4px;
  transition: color 0.15s;
}
.pwa-install-dismiss:hover { color: #f3f4f6; }

/* ═══════════════════════════════════════════════════════════════════
   MOBILE TAB BAR — ICON GLOW
   ═══════════════════════════════════════════════════════════════════ */
/* Tab icons wrapper glow effect */
.hz-mobile-tab {
  position: relative;
}
/* Blue glow behind each tab icon when active */
.hz-mobile-tab--active::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -60%);
  width: 44px;
  height: 28px;
  background: radial-gradient(ellipse, rgba(0,102,255,0.35) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  filter: blur(6px);
}
/* Add SVG icons to each tab via pseudo-elements for glow */
.hz-mobile-tab svg,
.hz-mobile-tab .tab-icon {
  display: block;
  margin: 0 auto 3px;
  width: 20px;
  height: 20px;
  filter: drop-shadow(0 0 0 transparent);
  transition: filter 0.2s;
}
.hz-mobile-tab--active svg,
.hz-mobile-tab--active .tab-icon {
  filter: drop-shadow(0 0 6px rgba(0,102,255,0.7));
}

/* ── Mobile footer (module/course page) ─────────────────────────── */
/* On mobile, show footer below content (not fixed) */
@media (max-width: 768px) {
  .footer {
    display: block;
    padding-bottom: calc(var(--tabs-h) + 16px); /* clear fixed tabs */
  }
}

/* ═══════════════════════════════════════════════════════════════════
   MODULE 1 — MARKET-SPECIFIC COMPONENTS
   ═══════════════════════════════════════════════════════════════════ */

/* ── Market pill label ── */
.mod-market-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.mod-market-pill--blue   { background: rgba(0,102,255,0.12);   color: #60A5FA; border: 1px solid rgba(0,102,255,0.2);   }
.mod-market-pill--green  { background: rgba(16,185,129,0.12);  color: #34D399; border: 1px solid rgba(16,185,129,0.2);  }
.mod-market-pill--orange { background: rgba(245,158,11,0.12);  color: #FBBF24; border: 1px solid rgba(245,158,11,0.2);  }
.mod-market-pill--purple { background: rgba(139,92,246,0.12);  color: #A78BFA; border: 1px solid rgba(139,92,246,0.2);  }
.mod-market-pill--teal   { background: rgba(20,184,166,0.12);  color: #2DD4BF; border: 1px solid rgba(20,184,166,0.2);  }
.mod-market-pill--red    { background: rgba(239,68,68,0.12);   color: #F87171; border: 1px solid rgba(239,68,68,0.2);   }

/* ── Info row (Liquidity / Volatility / Hours) ── */
.mod-info-row {
  display: flex;
  gap: 12px;
  margin: 16px 0 20px;
  flex-wrap: wrap;
}
.mod-info-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 10px 16px;
  min-width: 100px;
  flex: 1;
}
.mod-info-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(156,163,175,0.7);
  font-weight: 500;
}
.mod-info-val {
  font-size: 0.88rem;
  font-weight: 700;
  color: #f3f4f6;
}
.mod-info-val--green  { color: #34D399; }
.mod-info-val--yellow { color: #FBBF24; }
.mod-info-val--red    { color: #F87171; }

/* ── Sessions grid (Forex only) ── */
.mod-sessions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 16px 0 20px;
}
.mod-session {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.025);
}
.mod-session-name { font-size: 0.82rem; font-weight: 700; color: #f3f4f6; }
.mod-session-time { font-size: 0.72rem; color: rgba(156,163,175,0.8); }
.mod-session--asia   { border-color: rgba(139,92,246,0.2); }
.mod-session--london { border-color: rgba(0,102,255,0.2); }
.mod-session--us     { border-color: rgba(16,185,129,0.2); }

/* ── Ticker chips (Futures contracts) ── */
.mod-ticker-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 20px;
}
.mod-ticker-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.07);
  background: rgba(255,255,255,0.03);
}
.mod-ticker-chip-sym  { font-size: 0.82rem; font-weight: 700; letter-spacing: 0.02em; }
.mod-ticker-chip-name { font-size: 0.72rem; color: rgba(156,163,175,0.8); }
.mod-ticker-chip--blue   .mod-ticker-chip-sym { color: #60A5FA; }
.mod-ticker-chip--purple .mod-ticker-chip-sym { color: #A78BFA; }
.mod-ticker-chip--yellow .mod-ticker-chip-sym { color: #FBBF24; }
.mod-ticker-chip--orange .mod-ticker-chip-sym { color: #FB923C; }
.mod-ticker-chip--green  .mod-ticker-chip-sym { color: #34D399; }

/* ── Video embed ── */
.mod-video-wrap {
  margin: 24px 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.07);
  background: rgba(0,0,0,0.3);
}
.mod-video-label {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px;
  font-size: 0.76rem;
  font-weight: 500;
  color: rgba(156,163,175,0.8);
  background: rgba(255,255,255,0.025);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.mod-video-frame {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
}
.mod-video-frame iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: none;
  display: block;
}

/* ── Use cases grid (Options) ── */
.mod-use-cases {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 20px 0;
}
.mod-use-case {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
}
.mod-use-case-icon { font-size: 1.4rem; flex-shrink: 0; line-height: 1; }
.mod-use-case strong { display: block; font-size: 0.84rem; color: #f3f4f6; margin-bottom: 4px; }
.mod-use-case p { font-size: 0.78rem; color: rgba(156,163,175,0.8); margin: 0; line-height: 1.5; }

/* ── Comparison table ── */
.mod-table-wrap {
  overflow-x: auto;
  margin: 20px 0;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.07);
}
.mod-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  white-space: nowrap;
}
.mod-table thead tr {
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.mod-table th {
  padding: 10px 14px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(156,163,175,0.7);
  text-align: left;
}
.mod-table tbody tr {
  border-bottom: 1px solid rgba(255,255,255,0.04);
  transition: background 0.15s;
}
.mod-table tbody tr:hover { background: rgba(255,255,255,0.025); }
.mod-table tbody tr:last-child { border-bottom: none; }
.mod-table td {
  padding: 11px 14px;
  color: rgba(243,244,246,0.85);
  vertical-align: middle;
}
.mod-table-market {
  display: inline-flex;
  align-items: center;
  font-weight: 700;
  font-size: 0.84rem;
}
.mod-table-market--blue   { color: #60A5FA; }
.mod-table-market--green  { color: #34D399; }
.mod-table-market--orange { color: #FB923C; }
.mod-table-market--purple { color: #A78BFA; }
.mod-table-market--teal   { color: #2DD4BF; }

/* ── Badges ── */
.mod-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 700;
}
.mod-badge--green  { background: rgba(16,185,129,0.15); color: #34D399; }
.mod-badge--yellow { background: rgba(245,158,11,0.15);  color: #FBBF24; }
.mod-badge--red    { background: rgba(239,68,68,0.15);   color: #F87171; }
.mod-badge--muted  { background: rgba(156,163,175,0.1);  color: #9CA3AF; }

/* ── Callout block ── */
.mod-callout {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 16px 18px;
  border-radius: 12px;
  margin: 20px 0;
}
.mod-callout--blue   { background: rgba(0,102,255,0.08);  border-left: 3px solid rgba(0,102,255,0.5);  }
.mod-callout--green  { background: rgba(16,185,129,0.08); border-left: 3px solid rgba(16,185,129,0.5); }
.mod-callout--red    { background: rgba(239,68,68,0.08);  border-left: 3px solid rgba(239,68,68,0.5);  }
.mod-callout-icon { flex-shrink: 0; margin-top: 1px; }
.mod-callout--blue  .mod-callout-icon { color: #60A5FA; }
.mod-callout--green .mod-callout-icon { color: #34D399; }
.mod-callout--red   .mod-callout-icon { color: #F87171; }
.mod-callout strong { display: block; font-size: 0.9rem; color: #f3f4f6; margin-bottom: 4px; }
.mod-callout p { margin: 0; font-size: 0.84rem; color: rgba(156,163,175,0.9); line-height: 1.6; }

/* ── List styles ── */
.mod-list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.mod-list li { display: flex; align-items: center; gap: 8px; font-size: 0.84rem; color: rgba(243,244,246,0.8); }

/* ── Bonus resources grid ── */
.mod-bonus-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 20px 0;
}
.mod-bonus-card {
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s, transform 0.2s;
}
.mod-bonus-card:hover { transform: translateY(-2px); }
.mod-bonus-card--blue:hover   { border-color: rgba(0,102,255,0.3); }
.mod-bonus-card--green:hover  { border-color: rgba(16,185,129,0.3); }
.mod-bonus-card--orange:hover { border-color: rgba(245,158,11,0.3); }
.mod-bonus-card--purple:hover { border-color: rgba(139,92,246,0.3); }
.mod-bonus-thumb {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #111827;
}
.mod-bonus-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}
.mod-bonus-card:hover .mod-bonus-thumb img { transform: scale(1.04); }
.mod-bonus-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.45);
  color: #fff;
  text-decoration: none;
  transition: background 0.15s;
}
.mod-bonus-play:hover { background: rgba(0,102,255,0.6); }
.mod-bonus-info { padding: 12px 14px; }
.mod-bonus-market {
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}
.mod-bonus-market--blue   { color: #60A5FA; }
.mod-bonus-market--green  { color: #34D399; }
.mod-bonus-market--orange { color: #FB923C; }
.mod-bonus-market--purple { color: #A78BFA; }
.mod-bonus-title { font-size: 0.82rem; font-weight: 500; color: #f3f4f6; margin: 0 0 8px; line-height: 1.4; }
.mod-bonus-link { font-size: 0.75rem; color: #60A5FA; text-decoration: none; }
.mod-bonus-link:hover { text-decoration: underline; }

/* ── Next module CTA ── */
.mod-next-module {
  margin: 40px 0 20px;
  background: linear-gradient(135deg, rgba(0,102,255,0.1) 0%, rgba(79,70,229,0.08) 100%);
  border: 1px solid rgba(0,102,255,0.2);
  border-radius: 16px;
  padding: 24px 28px;
}
.mod-next-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(96,165,250,0.8);
  margin-bottom: 10px;
}
.mod-next-num {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  color: rgba(156,163,175,0.6);
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}
.mod-next-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #f3f4f6;
  margin-bottom: 8px;
}
.mod-next-body {
  font-size: 0.86rem;
  color: rgba(156,163,175,0.85);
  line-height: 1.6;
  margin: 0 0 18px;
}
.mod-next-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .mod-sessions-grid { grid-template-columns: 1fr; gap: 8px; }
  .mod-use-cases { grid-template-columns: 1fr; }
  .mod-bonus-grid { grid-template-columns: 1fr; }
  .mod-info-row { gap: 8px; }
  .mod-info-item { min-width: 80px; padding: 8px 12px; }
  .mod-next-module { padding: 18px 20px; }
  .mod-next-title { font-size: 1.1rem; }
}

/* ═══════════════════════════════════════════════════════════════
   MODULE 2 — TRADINGVIEW SETUP
   ═══════════════════════════════════════════════════════════════ */

/* Hero teal variant */
.az-mod-hero--teal { background: linear-gradient(135deg, rgba(20,184,166,0.06) 0%, rgba(16,185,129,0.04) 100%); }
.az-mod-hero-badge--teal { background: rgba(20,184,166,0.15); color: #2dd4bf; border: 1px solid rgba(20,184,166,0.25); }
.az-mod-hero-title--teal { color: #2dd4bf; }

/* Teal section number */
.mod-section-num--teal { background: rgba(20,184,166,0.12); color: #2dd4bf; }

/* Teal callout variant */
.mod-callout--teal {
  background: rgba(20,184,166,0.06);
  border-left: 3px solid rgba(20,184,166,0.5);
  border-radius: 0 8px 8px 0;
  padding: 14px 16px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 20px 0;
}
.mod-callout--teal .mod-callout-icon { color: #2dd4bf; flex-shrink: 0; margin-top: 2px; }
.mod-callout--teal strong { color: #2dd4bf; display: block; margin-bottom: 2px; }
.mod-callout--teal p { margin: 0; color: var(--text-secondary); font-size: 0.875rem; line-height: 1.55; }

/* ── Platform Hero ── */
.mod-platform-hero {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
}
.mod-platform-icon {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mod-platform-icon--mobile {
  background: rgba(20,184,166,0.1);
  color: #2dd4bf;
  border: 1px solid rgba(20,184,166,0.2);
}
.mod-platform-icon--desktop {
  background: rgba(0,102,255,0.1);
  color: #60a5fa;
  border: 1px solid rgba(0,102,255,0.2);
}
.mod-platform-text h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 6px;
}
.mod-platform-text p {
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.55;
  margin: 0;
}

/* ── Download Cards ── */
.mod-download-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 24px;
}
.mod-download-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 12px;
  border: 1px solid var(--border-subtle);
  background: var(--bg-card);
  text-decoration: none;
  transition: border-color 0.2s, transform 0.15s, box-shadow 0.2s;
  cursor: pointer;
}
.mod-download-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.mod-download-card--ios:hover  { border-color: rgba(20,184,166,0.4); }
.mod-download-card--android:hover { border-color: rgba(16,185,129,0.4); }
.mod-download-card--mac:hover  { border-color: rgba(139,92,246,0.4); }
.mod-download-card--windows:hover { border-color: rgba(0,120,255,0.4); }

.mod-download-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mod-download-card--ios .mod-download-card-icon     { background: rgba(20,184,166,0.1); color: #2dd4bf; }
.mod-download-card--android .mod-download-card-icon { background: rgba(16,185,129,0.1); color: #34d399; }
.mod-download-card--mac .mod-download-card-icon     { background: rgba(139,92,246,0.1); color: #a78bfa; }
.mod-download-card--windows .mod-download-card-icon { background: rgba(0,120,255,0.1);  color: #60a5fa; }

.mod-download-card-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.mod-download-card-sub  { font-size: 0.7rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.mod-download-card-main { font-size: 0.95rem; font-weight: 700; color: var(--text-primary); }
.mod-download-card-note { font-size: 0.72rem; color: var(--text-muted); }
.mod-download-card-arrow { color: var(--text-muted); flex-shrink: 0; }

/* ── Featured Video ── */
.mod-video-wrap--featured { margin-bottom: 0; }
.mod-video-label--featured {
  background: rgba(20,184,166,0.1);
  border-color: rgba(20,184,166,0.25);
  color: #2dd4bf;
  font-weight: 500;
}
.mod-video-frame--featured { padding-top: 56.25%; }
.mod-video-frame--featured iframe { border-radius: 0 0 10px 10px; }

/* ── TradingView Features Grid ── */
.mod-tv-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 24px;
}
.mod-tv-feature {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 16px;
}
.mod-tv-feature-icon {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mod-tv-feature-icon--blue   { background: rgba(0,102,255,0.1); color: #60a5fa; }
.mod-tv-feature-icon--teal   { background: rgba(20,184,166,0.1); color: #2dd4bf; }
.mod-tv-feature-icon--green  { background: rgba(16,185,129,0.1); color: #34d399; }
.mod-tv-feature-icon--purple { background: rgba(139,92,246,0.1); color: #a78bfa; }
.mod-tv-feature strong { font-size: 0.875rem; font-weight: 700; color: var(--text-primary); display: block; margin-bottom: 4px; }
.mod-tv-feature p { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; margin: 0; }

/* ── Action Checklist ── */
.mod-checklist {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}
.mod-checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 16px 18px;
  transition: border-color 0.2s;
}
.mod-checklist-item:hover { border-color: rgba(20,184,166,0.3); }
.mod-checklist-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(20,184,166,0.12);
  color: #2dd4bf;
  border: 1px solid rgba(20,184,166,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 2px;
}
.mod-checklist-body { flex: 1; }
.mod-checklist-body strong { font-size: 0.9rem; font-weight: 700; color: var(--text-primary); display: block; margin-bottom: 3px; }
.mod-checklist-body p { font-size: 0.825rem; color: var(--text-secondary); line-height: 1.5; margin: 0; }
.mod-checklist-badge {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 20px;
  flex-shrink: 0;
  align-self: center;
}
.mod-checklist-badge--teal   { background: rgba(20,184,166,0.12); color: #2dd4bf; border: 1px solid rgba(20,184,166,0.2); }
.mod-checklist-badge--blue   { background: rgba(0,102,255,0.1); color: #60a5fa; border: 1px solid rgba(0,102,255,0.2); }
.mod-checklist-badge--green  { background: rgba(16,185,129,0.1); color: #34d399; border: 1px solid rgba(16,185,129,0.2); }
.mod-checklist-badge--purple { background: rgba(139,92,246,0.1); color: #a78bfa; border: 1px solid rgba(139,92,246,0.2); }

/* ── Responsive ── */
@media (max-width: 640px) {
  .mod-download-grid { grid-template-columns: 1fr; }
  .mod-tv-features   { grid-template-columns: 1fr; }
  .mod-platform-hero { flex-direction: column; }
  .mod-platform-icon { width: 48px; height: 48px; }
  .mod-checklist-badge { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════
   PHASE 2 HUB — Sidebar phase groups
   ═══════════════════════════════════════════════════════════════════ */

/* Phase group wrapper */
.az-phase-group { border-bottom: 1px solid rgba(255,255,255,0.06); }

/* Phase header button */
.az-phase-header {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 10px 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--az-text-secondary, #94a3b8);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: left;
  transition: color 0.15s;
}
.az-phase-header:hover { color: #e2e8f0; }

/* Phase badge pill */
.az-phase-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 16px;
  border-radius: 4px;
  font-size: 0.62rem;
  font-weight: 700;
  flex-shrink: 0;
}
.az-phase-badge--1 { background: rgba(0,102,255,0.25); color: #60a5fa; }
.az-phase-badge--2 { background: rgba(124,58,237,0.25); color: #a78bfa; }

.az-phase-label { flex: 1; }

/* Chevron rotates when open */
.az-phase-chevron { transition: transform 0.2s; flex-shrink: 0; }
.az-phase-group--open .az-phase-chevron { transform: rotate(180deg); }

/* Nav inside group collapses/expands */
.az-phase-group .az-sidebar-nav,
.az-phase-group nav {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.az-phase-group--open .az-sidebar-nav,
.az-phase-group--open nav {
  max-height: 2000px;
}

/* Phase 2 nav items — slightly muted until active */
.az-nav-item--p2 { opacity: 0.82; }
.az-nav-item--p2:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════
   PHASE 2 HUB — /course/phase2 page
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.p2-hero {
  position: relative;
  padding: 64px 24px 56px;
  overflow: hidden;
  background: #05080f;
}
.p2-hero-bg { position: absolute; inset: 0; pointer-events: none; }
.p2-hero-grid {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(0,102,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,102,255,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
}
.p2-hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.18;
}
.p2-hero-glow--blue  { width: 500px; height: 500px; background: #0066ff; top: -150px; left: -100px; }
.p2-hero-glow--purple{ width: 400px; height: 400px; background: #7c3aed; top: -100px; right: -80px; }

.p2-hero-content {
  position: relative;
  z-index: 2;
  max-width: 740px;
}
.p2-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.p2-phase-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: rgba(124,58,237,0.2);
  border: 1px solid rgba(124,58,237,0.4);
  border-radius: 20px;
  font-size: 0.72rem;
  font-weight: 700;
  color: #c4b5fd;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.p2-eyebrow-text { font-size: 0.78rem; color: #64748b; }
.p2-hero-headline {
  font-size: clamp(1.7rem, 3.5vw, 2.8rem);
  font-weight: 700;
  line-height: 1.15;
  color: #f1f5f9;
  margin: 0 0 16px;
}
.p2-hero-accent { color: #7c3aed; }
.p2-hero-sub {
  font-size: 1rem;
  line-height: 1.65;
  color: #94a3b8;
  margin: 0 0 24px;
  max-width: 620px;
}
.p2-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: #7c3aed;
  text-decoration: none;
  border-bottom: 1px solid rgba(124,58,237,0.3);
  padding-bottom: 2px;
  transition: color 0.15s;
}
.p2-hero-cta:hover { color: #a78bfa; }

/* ── Weekly Check-in ── */
.p2-checkin {
  background: rgba(124,58,237,0.06);
  border-top: 1px solid rgba(124,58,237,0.15);
  border-bottom: 1px solid rgba(124,58,237,0.15);
  padding: 20px 24px;
}
.p2-checkin-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.p2-checkin-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  background: rgba(124,58,237,0.15);
  border-radius: 10px;
  color: #a78bfa;
  flex-shrink: 0;
}
.p2-checkin-text { flex: 1; min-width: 200px; }
.p2-checkin-title { font-size: 0.92rem; font-weight: 700; color: #e2e8f0; margin: 0 0 2px; }
.p2-checkin-sub   { font-size: 0.78rem; color: #64748b; margin: 0; }
.p2-checkin-controls { flex-shrink: 0; }
.p2-checkin-select {
  padding: 8px 14px;
  background: rgba(15,23,42,0.8);
  border: 1px solid rgba(124,58,237,0.3);
  border-radius: 8px;
  color: #e2e8f0;
  font-size: 0.82rem;
  cursor: pointer;
  outline: none;
  min-width: 240px;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2394a3b8'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px;
  padding-right: 32px;
}
.p2-checkin-select:focus { border-color: rgba(124,58,237,0.6); }
.p2-checkin-result {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
  padding: 10px 14px;
  background: rgba(124,58,237,0.1);
  border-radius: 8px;
  border: 1px solid rgba(124,58,237,0.2);
}
.p2-checkin-result-label { font-size: 0.78rem; color: #94a3b8; }
.p2-checkin-result-title { font-size: 0.9rem; font-weight: 700; color: #c4b5fd; flex: 1; }
.p2-checkin-result-btn {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background: #7c3aed;
  color: #fff;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.15s;
}
.p2-checkin-result-btn:hover { background: #6d28d9; }

/* ── Grid Section ── */
.p2-grid-section { padding: 32px 24px 48px; }
.p2-section-header { margin-bottom: 24px; }
.p2-section-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0066ff;
  margin: 0 0 6px;
}
.p2-section-sub { font-size: 0.85rem; color: #64748b; margin: 0; }

/* ── Filter Bar ── */
.p2-filter-bar {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(5,8,15,0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  padding: 12px 0 12px;
  margin: 0 -24px 24px;
  padding-left: 24px;
  padding-right: 24px;
}
.p2-filter-search-wrap {
  position: relative;
  margin-bottom: 10px;
}
.p2-search-icon {
  position: absolute;
  left: 12px; top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
}
.p2-filter-search {
  width: 100%;
  padding: 9px 12px 9px 36px;
  background: rgba(15,23,42,0.7);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  color: #e2e8f0;
  font-size: 0.85rem;
  outline: none;
  transition: border-color 0.15s;
  box-sizing: border-box;
}
.p2-filter-search::placeholder { color: #475569; }
.p2-filter-search:focus { border-color: rgba(0,102,255,0.4); }
.p2-filter-dropdowns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.p2-filter-select {
  padding: 7px 28px 7px 10px;
  background: rgba(15,23,42,0.7);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 7px;
  color: #94a3b8;
  font-size: 0.78rem;
  cursor: pointer;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2364748b'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 12px;
  transition: border-color 0.15s, color 0.15s;
}
.p2-filter-select:focus,
.p2-filter-select[data-active="true"] { border-color: rgba(0,102,255,0.5); color: #60a5fa; }
.p2-filter-reset {
  padding: 7px 12px;
  background: rgba(239,68,68,0.1);
  border: 1px solid rgba(239,68,68,0.3);
  border-radius: 7px;
  color: #f87171;
  font-size: 0.78rem;
  cursor: pointer;
  transition: background 0.15s;
}
.p2-filter-reset:hover { background: rgba(239,68,68,0.2); }

/* Results count */
.p2-results-count {
  font-size: 0.78rem;
  color: #475569;
  margin-bottom: 20px;
}

/* ── Grid ── */
.p2-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: start;
}

/* Section dividers span full width */
.p2-section-divider {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0 4px;
}
.p2-section-divider span {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0052CC;
  white-space: nowrap;
}
.p2-section-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(0,82,204,0.2);
}

/* ── Module Card ── */
.p2-card {
  display: flex;
  flex-direction: column;
  background: #0d1422;
  border-radius: 12px;
  border-top: 2px solid #0052CC;
  padding: 18px 18px 16px;
  transition: transform 0.18s, box-shadow 0.18s;
  cursor: default;
}
.p2-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 36px rgba(0,0,0,0.4), 0 0 0 1px rgba(0,82,204,0.15);
}
.p2-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.p2-mod-num {
  font-size: 0.7rem;
  font-weight: 700;
  color: #475569;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.p2-card-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #e2e8f0;
  margin: 0 0 6px;
  line-height: 1.3;
}
.p2-card-problem {
  font-size: 0.88rem;
  font-weight: 700;
  color: #0052CC;
  margin: 0 0 8px;
  font-style: italic;
}
.p2-card-desc {
  font-size: 0.82rem;
  color: #94a3b8;
  line-height: 1.6;
  margin: 0 0 12px;
  flex: 1;
}
.p2-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 14px;
}
.p2-tag {
  display: inline-flex;
  padding: 3px 8px;
  background: rgba(0,82,204,0.12);
  border: 1px solid rgba(0,82,204,0.2);
  border-radius: 20px;
  font-size: 0.7rem;
  color: #60a5fa;
  cursor: pointer;
  transition: background 0.15s;
  user-select: none;
}
.p2-tag:hover { background: rgba(0,82,204,0.25); }

.p2-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.p2-time-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  color: #64748b;
}
.p2-explore-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: #0052CC;
  color: #fff;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 0.15s, transform 0.1s;
  white-space: nowrap;
  border: none;
  cursor: pointer;
}
.p2-explore-btn:hover { background: #0044aa; transform: translateY(-1px); }

/* Level badges */
.p2-level-badge {
  display: inline-flex;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.p2-level-badge--beginner     { background: rgba(16,185,129,0.15); color: #34d399; border: 1px solid rgba(16,185,129,0.25); }
.p2-level-badge--intermediate { background: rgba(245,158,11,0.15);  color: #fbbf24; border: 1px solid rgba(245,158,11,0.25); }
.p2-level-badge--advanced     { background: rgba(239,68,68,0.15);   color: #f87171; border: 1px solid rgba(239,68,68,0.25); }

/* Hidden cards during filtering */
.p2-card--hidden,
.p2-section-divider--hidden { display: none !important; }

/* Empty state */
.p2-empty-state {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 64px 24px;
  color: #475569;
  text-align: center;
}
.p2-empty-state p { font-size: 0.9rem; margin: 0; }

/* ── Suggestion Widget ── */
.p2-suggest-widget {
  margin-top: 40px;
  padding: 20px 24px;
  background: rgba(0,102,255,0.04);
  border: 1px solid rgba(0,102,255,0.12);
  border-radius: 12px;
}
.p2-suggest-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 14px;
}
.p2-suggest-cards { display: flex; gap: 12px; flex-wrap: wrap; }
.p2-suggest-card {
  flex: 1;
  min-width: 180px;
  background: #0d1422;
  border-radius: 8px;
  border-left: 3px solid #0052CC;
  padding: 12px 14px;
  text-decoration: none;
  transition: transform 0.15s;
}
.p2-suggest-card:hover { transform: translateY(-2px); }
.p2-suggest-card-num  { font-size: 0.68rem; color: #475569; font-weight: 500; display: block; margin-bottom: 4px; }
.p2-suggest-card-name { font-size: 0.82rem; color: #e2e8f0; font-weight: 500; }

/* ── CTA section ── */
.p2-cta {
  padding: 48px 24px 64px;
  text-align: center;
}
.p2-cta-inner {
  position: relative;
  max-width: 560px;
  margin: 0 auto;
  padding: 40px 32px;
  background: rgba(0,82,204,0.06);
  border: 1px solid rgba(0,82,204,0.15);
  border-radius: 16px;
  overflow: hidden;
}
.p2-cta-glow {
  position: absolute;
  width: 300px; height: 300px;
  background: #0052CC;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.06;
  top: -100px; left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}
.p2-cta-title { font-size: 1.6rem; font-weight: 700; color: #f1f5f9; margin: 0 0 10px; }
.p2-cta-body  { font-size: 0.9rem; color: #94a3b8; line-height: 1.6; margin: 0 0 24px; }
.p2-cta-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.p2-btn-primary {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 20px;
  background: #0052CC; color: #fff;
  border-radius: 8px; font-size: 0.88rem; font-weight: 500;
  text-decoration: none; transition: background 0.15s;
}
.p2-btn-primary:hover { background: #0044aa; }
.p2-btn-ghost {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 20px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  color: #94a3b8; border-radius: 8px;
  font-size: 0.88rem; font-weight: 500;
  text-decoration: none; transition: background 0.15s;
}
.p2-btn-ghost:hover { background: rgba(255,255,255,0.09); }

/* ── Course page Phase 2 teaser ── */
.cp-phase2-teaser {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 32px;
  padding: 28px 28px;
  background: linear-gradient(135deg, rgba(124,58,237,0.08) 0%, rgba(0,82,204,0.06) 100%);
  border: 1px solid rgba(124,58,237,0.2);
  border-radius: 14px;
}
.cp-phase2-teaser-badge { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.cp-phase2-teaser-tag {
  font-size: 0.72rem; font-weight: 700; color: #a78bfa;
  letter-spacing: 0.06em; text-transform: uppercase;
}
.cp-phase2-teaser-title {
  font-size: 1.25rem; font-weight: 700; color: #f1f5f9; margin: 0 0 10px; line-height: 1.3;
}
.cp-phase2-teaser-desc { font-size: 0.85rem; color: #94a3b8; line-height: 1.6; margin: 0 0 14px; }
.cp-phase2-teaser-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.cp-phase2-teaser-right { text-align: center; flex-shrink: 0; }
.cp-phase2-teaser-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 12px 22px;
  background: #7c3aed; color: #fff;
  border-radius: 8px; font-size: 0.9rem; font-weight: 700;
  text-decoration: none; transition: background 0.15s, transform 0.15s;
  white-space: nowrap;
}
.cp-phase2-teaser-btn:hover { background: #6d28d9; transform: translateY(-2px); }
.cp-phase2-teaser-note { font-size: 0.72rem; color: #475569; margin: 8px 0 0; }

/* ── Responsive ── */
@media (max-width: 1100px) {
  .p2-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .p2-hero { padding: 40px 16px 36px; }
  .p2-grid-section { padding: 20px 16px 40px; }
  .p2-grid { grid-template-columns: 1fr; }
  .p2-filter-bar { margin: 0 -16px 20px; padding-left: 16px; padding-right: 16px; }
  .p2-checkin { padding: 16px; }
  .p2-checkin-inner { flex-direction: column; align-items: flex-start; }
  .p2-checkin-select { min-width: 100%; }
  .p2-filter-dropdowns { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .p2-filter-select { flex-shrink: 0; }
  .p2-hero-headline { font-size: 1.6rem; }
  .cp-phase2-teaser { flex-direction: column; }
  .cp-phase2-teaser-right { width: 100%; }
  .cp-phase2-teaser-btn { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════════════
   PHASE 2 MODULE PAGES — Coaching layout typography
   ═══════════════════════════════════════════════════════════════════ */

/* Purple hero variant */
.az-mod-hero--purple { background: linear-gradient(135deg, #060a16 0%, #0c0a1e 100%); }
.az-mod-hero-badge--purple {
  background: rgba(124,58,237,0.15);
  border-color: rgba(124,58,237,0.3);
  color: #a78bfa;
}

/* Module article typography — clean, readable, impactful */
.p2-mod-headline {
  font-size: clamp(1.35rem, 2.8vw, 1.85rem);
  font-weight: 700;
  color: #f1f5f9;
  line-height: 1.2;
  margin: 0 0 20px;
  letter-spacing: -0.01em;
}

.p2-mod-lead {
  font-size: 1.08rem;
  line-height: 1.72;
  color: #cbd5e1;
  margin: 0 0 18px;
  font-weight: 500;
}

.p2-mod-body {
  font-size: 0.97rem;
  line-height: 1.78;
  color: #94a3b8;
  margin: 0 0 16px;
}
.p2-mod-body--bold {
  color: #e2e8f0;
  font-weight: 500;
  font-size: 1.05rem;
}

/* Section label above headline */
.p2-mod-section-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7c3aed;
  margin-bottom: 10px;
}

/* Horizontal rule divider */
.p2-mod-divider {
  width: 48px;
  height: 2px;
  background: linear-gradient(90deg, #7c3aed, transparent);
  margin: 32px 0 28px;
  border-radius: 2px;
}

/* Callout boxes */
.p2-mod-callout {
  padding: 18px 20px;
  border-radius: 10px;
  margin: 20px 0;
  font-size: 0.92rem;
  line-height: 1.7;
  color: #cbd5e1;
}
.p2-mod-callout--blue {
  background: rgba(0,82,204,0.08);
  border-left: 3px solid #0052CC;
}
.p2-mod-callout--purple {
  background: rgba(124,58,237,0.08);
  border-left: 3px solid #7c3aed;
}
.p2-mod-callout p { margin: 0; }
.p2-mod-callout strong { color: #e2e8f0; }

/* Key Point box */
.p2-mod-keypoint {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  background: rgba(0,102,255,0.06);
  border: 1px solid rgba(0,102,255,0.15);
  border-radius: 8px;
  margin: 20px 0;
  color: #94a3b8;
  font-size: 0.87rem;
  line-height: 1.6;
}
.p2-mod-keypoint svg { flex-shrink: 0; color: #0066ff; margin-top: 1px; }
.p2-mod-keypoint p  { margin: 0; }

/* Coaching moment */
.p2-mod-coaching {
  padding: 14px 18px;
  background: rgba(124,58,237,0.06);
  border-left: 3px solid rgba(124,58,237,0.4);
  border-radius: 0 8px 8px 0;
  margin: 16px 0 0;
  font-size: 0.87rem;
  color: #94a3b8;
  line-height: 1.65;
  font-style: italic;
}
.p2-mod-coaching-label {
  font-style: normal;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7c3aed;
  margin-bottom: 6px;
}
.p2-mod-coaching p { margin: 0; }

/* Real story block */
.p2-mod-story {
  padding: 16px 18px;
  background: rgba(16,185,129,0.05);
  border-left: 3px solid rgba(16,185,129,0.3);
  border-radius: 0 8px 8px 0;
  margin: 20px 0;
  font-size: 0.87rem;
  color: #94a3b8;
  line-height: 1.7;
}
.p2-mod-story-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #10b981;
  margin-bottom: 8px;
}
.p2-mod-story p { margin: 0; }

/* Assignment block */
.p2-mod-assignment {
  background: rgba(0,82,204,0.06);
  border: 1px solid rgba(0,82,204,0.18);
  border-radius: 12px;
  padding: 22px 22px 20px;
  margin: 8px 0 0;
}
.p2-mod-assignment-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  color: #60a5fa;
}
.p2-mod-assignment-header h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #e2e8f0;
  margin: 0;
  flex: 1;
}
.p2-mod-assignment-tag {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 2px 8px;
  background: rgba(239,68,68,0.12);
  border: 1px solid rgba(239,68,68,0.25);
  color: #f87171;
  border-radius: 20px;
}
.p2-mod-assignment-intro {
  font-size: 0.87rem;
  color: #94a3b8;
  margin: 0 0 18px;
  line-height: 1.6;
}
.p2-mod-assignment-steps {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 18px;
}
.p2-mod-step {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.p2-mod-step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  min-width: 26px;
  background: rgba(0,82,204,0.2);
  border: 1px solid rgba(0,82,204,0.35);
  border-radius: 50%;
  font-size: 0.72rem;
  font-weight: 700;
  color: #60a5fa;
}
.p2-mod-step strong {
  display: block;
  color: #e2e8f0;
  font-size: 0.9rem;
  margin-bottom: 3px;
}
.p2-mod-step p {
  margin: 0;
  font-size: 0.82rem;
  color: #64748b;
  line-height: 1.5;
}
.p2-mod-assignment-cta {
  font-size: 0.9rem;
  color: #94a3b8;
  line-height: 1.6;
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.p2-mod-assignment-cta strong { color: #f1f5f9; }

/* Responsive tweaks */
@media (max-width: 767px) {
  .p2-mod-headline { font-size: 1.3rem; }
  .p2-mod-lead     { font-size: 0.97rem; }
  .p2-mod-assignment { padding: 16px; }
}

/* ═══════════════════════════════════════════════════════════════════
   COACHING LAYOUT — Phase 2 Module pages (Mod 8, 8-1, etc.)
   ═══════════════════════════════════════════════════════════════════ */

/* Phase 2 hero variant — purple accent */
.az-mod-hero--p2 {
  background: linear-gradient(160deg, #0d0f1a 0%, #12082e 60%, #0d0f1a 100%);
  border-bottom: 1px solid rgba(124,58,237,0.18);
}
.az-mod-hero-badge--p2 {
  background: rgba(124,58,237,0.18);
  color: #a78bfa;
  border: 1px solid rgba(124,58,237,0.3);
}
.az-mod-hero--p2 .az-mod-hero-title span {
  color: #a78bfa;
}

/* Coaching layout root */
.coaching-layout {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 0 60px;
}

/* Block wrapper */
.cl-block {
  padding: 40px 0 8px;
}

/* Section label */
.cl-section-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7c3aed;
  margin-bottom: 10px;
}

/* Headlines */
.cl-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 700;
  color: #f0f4ff;
  line-height: 1.25;
  margin: 0 0 20px;
  letter-spacing: -0.02em;
}

/* Body copy */
.cl-body {
  font-size: 16px;
  line-height: 1.75;
  color: #c8d0e4;
  margin: 0 0 16px;
}
.cl-body em {
  color: #e2e8f8;
  font-style: italic;
}
.cl-body strong {
  color: #e8eeff;
  font-weight: 700;
}

/* Unordered lists */
.cl-list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}
.cl-list li {
  position: relative;
  padding-left: 22px;
  font-size: 15.5px;
  line-height: 1.7;
  color: #c8d0e4;
  margin-bottom: 8px;
}
.cl-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #7c3aed;
  opacity: 0.8;
}

/* Key point box */
.cl-keypoint {
  background: rgba(0,82,204,0.1);
  border-left: 3px solid #0052cc;
  border-radius: 0 8px 8px 0;
  padding: 16px 20px;
  font-size: 15px;
  line-height: 1.65;
  color: #b8c8e8;
  margin: 24px 0 16px;
}
.cl-keypoint strong {
  color: #4d9bff;
  font-weight: 700;
}

/* Coaching moment */
.cl-coaching-moment {
  background: rgba(124,58,237,0.08);
  border-left: 3px solid #7c3aed;
  border-radius: 0 8px 8px 0;
  padding: 16px 20px;
  font-size: 15px;
  line-height: 1.65;
  color: #c4b5fd;
  font-style: italic;
  margin: 20px 0 8px;
}

/* Divider */
.cl-divider {
  height: 1px;
  background: linear-gradient(90deg, rgba(124,58,237,0.2) 0%, rgba(255,255,255,0.04) 80%, transparent 100%);
  margin: 8px 0 0;
}

/* Assignment block */
.cl-assignment {
  background: rgba(124,58,237,0.07);
  border: 1px solid rgba(124,58,237,0.22);
  border-radius: 12px;
  padding: 32px 36px;
  margin: 40px 0 8px;
}
.cl-assignment-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #a78bfa;
  margin-bottom: 6px;
}
.cl-assignment-title {
  font-size: 20px;
  font-weight: 700;
  color: #f0f4ff;
  margin: 0 0 16px;
}

/* Checklist */
.cl-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
}
.cl-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(124,58,237,0.12);
  font-size: 15px;
  line-height: 1.65;
  color: #c8d0e4;
}
.cl-checklist li:last-child { border-bottom: none; }
.cl-checklist strong { color: #e8eeff; font-weight: 700; }
.cl-check-num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(124,58,237,0.25);
  border: 1px solid rgba(124,58,237,0.4);
  color: #a78bfa;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

/* Module nav row at bottom of article */
.mod-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 40px 0 0;
}
.mod-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.15s ease;
}
.mod-nav-btn--ghost {
  background: rgba(255,255,255,0.05);
  color: #8896b4;
  border: 1px solid rgba(255,255,255,0.08);
}
.mod-nav-btn--ghost:hover {
  background: rgba(255,255,255,0.09);
  color: #c0cce8;
}
.mod-nav-btn--primary {
  background: #0052cc;
  color: #fff;
  border: 1px solid #0052cc;
}
.mod-nav-btn--primary:hover {
  background: #0062f5;
}

/* Mobile tweaks */
@media (max-width: 767px) {
  .coaching-layout { padding: 0 0 40px; }
  .cl-block { padding: 28px 0 8px; }
  .cl-headline { font-size: 22px; }
  .cl-body { font-size: 15px; }
  .cl-assignment { padding: 22px 18px; }
  .mod-nav-row { flex-direction: column; }
  .mod-nav-btn { width: 100%; justify-content: center; }
}

/* Phase 1 teaser button — blue variant */
.cp-phase1-teaser-btn {
  background: #0052cc;
  color: #fff;
  border: 1px solid #0052cc;
}
.cp-phase1-teaser-btn:hover {
  background: #0062f5;
  border-color: #0062f5;
  color: #fff;
}
/* Phase 1 teaser accent */
.cp-phase1-teaser .cp-phase2-teaser-badge .cp-phase2-teaser-tag {
  color: #60a5fa;
}

/* ═══════════════════════════════════════════════════════════════════
   PHASE 1 HUB — /course/phase1
   ═══════════════════════════════════════════════════════════════════ */

/* Hero override — blue accent */
.p1-hero { background: linear-gradient(160deg, #040810 0%, #061428 60%, #040810 100%); }
.p1-hero-glow--blue {
  position: absolute; width: 480px; height: 480px; border-radius: 50%;
  background: radial-gradient(circle, rgba(0,82,204,0.22) 0%, transparent 70%);
  top: -80px; left: -80px; pointer-events: none;
}
.p1-hero-glow--cyan {
  position: absolute; width: 360px; height: 360px; border-radius: 50%;
  background: radial-gradient(circle, rgba(6,182,212,0.12) 0%, transparent 70%);
  bottom: -60px; right: 5%; pointer-events: none;
}
.p1-phase-pill {
  background: rgba(0,82,204,0.2);
  color: #60a5fa;
  border: 1px solid rgba(0,82,204,0.35);
  padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em;
}
.p1-hero-accent { color: #60a5fa; }
.p1-hero-cta {
  background: rgba(0,82,204,0.12);
  border: 1px solid rgba(0,82,204,0.3);
  color: #93c5fd;
}
.p1-hero-cta:hover { background: rgba(0,82,204,0.2); color: #bfdbfe; }

/* Pillars */
.p1-pillars { padding: 48px 0; }
.p1-pillars-inner { max-width: 920px; margin: 0 auto; padding: 0 24px; }
.p1-pillars-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: #0052cc; margin-bottom: 24px;
}
.p1-pillars-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.p1-pillar-card {
  background: rgba(0,82,204,0.06);
  border: 1px solid rgba(0,82,204,0.14);
  border-radius: 10px; padding: 20px;
  transition: border-color 0.15s;
}
.p1-pillar-card:hover { border-color: rgba(0,82,204,0.32); }
.p1-pillar-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: rgba(0,82,204,0.15); display: flex; align-items: center;
  justify-content: center; color: #60a5fa; margin-bottom: 12px;
}
.p1-pillar-title { font-size: 14px; font-weight: 700; color: #e8eeff; margin: 0 0 6px; }
.p1-pillar-body  { font-size: 13px; line-height: 1.6; color: #8896b4; margin: 0; }

/* Structure / module list */
.p1-structure { padding: 48px 0; border-top: 1px solid rgba(255,255,255,0.05); }
.p1-structure-inner { max-width: 800px; margin: 0 auto; padding: 0 24px; }
.p1-structure-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: #0052cc; margin-bottom: 10px;
}
.p1-structure-title { font-size: clamp(22px,3.5vw,28px); font-weight: 700; color: #f0f4ff; margin: 0 0 10px; }
.p1-structure-sub { font-size: 15px; line-height: 1.7; color: #8896b4; margin: 0 0 32px; }
.p1-modules-list { display: flex; flex-direction: column; gap: 4px; }
.p1-mod-row {
  display: flex; align-items: center; gap: 16px;
  padding: 14px 16px; border-radius: 8px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.05);
  transition: background 0.15s, border-color 0.15s;
}
.p1-mod-row--active {
  background: rgba(0,82,204,0.07);
  border-color: rgba(0,82,204,0.18);
}
.p1-mod-row--active:hover {
  background: rgba(0,82,204,0.12);
  border-color: rgba(0,82,204,0.3);
}
.p1-mod-row--capstone {
  background: rgba(0,82,204,0.1);
  border-color: rgba(0,82,204,0.25);
}
.p1-mod-num {
  flex-shrink: 0; min-width: 42px; font-size: 13px;
  font-weight: 700; color: #4d9bff; font-feature-settings: "tnum";
}
.p1-mod-text { flex: 1; min-width: 0; }
.p1-mod-title { display: block; font-size: 14px; font-weight: 500; color: #d4dff8; }
.p1-mod-sub   { display: block; font-size: 12.5px; color: #6272a0; margin-top: 2px; }
.p1-mod-action { flex-shrink: 0; }
.p1-mod-btn {
  display: inline-flex; align-items: center;
  padding: 6px 14px; border-radius: 6px; font-size: 13px; font-weight: 500;
  background: #0052cc; color: #fff; text-decoration: none;
  transition: background 0.15s;
}
.p1-mod-btn:hover { background: #0062f5; }
.p1-mod-soon {
  font-size: 12px; font-weight: 500; color: #4a5578;
  padding: 4px 10px; border-radius: 6px;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07);
}

/* CTA strip */
.p1-cta { padding: 56px 0 60px; border-top: 1px solid rgba(255,255,255,0.05); }
.p1-cta-inner {
  max-width: 640px; margin: 0 auto; padding: 0 24px; text-align: center;
}
.p1-cta-title  { font-size: clamp(22px,3.5vw,28px); font-weight: 700; color: #f0f4ff; margin: 0 0 12px; }
.p1-cta-sub    { font-size: 15px; line-height: 1.7; color: #8896b4; margin: 0 0 28px; }
.p1-cta-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.p1-cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; border-radius: 8px; font-size: 15px; font-weight: 700;
  text-decoration: none; transition: all 0.15s;
}
.p1-cta-btn--primary { background: #0052cc; color: #fff; border: 1px solid #0052cc; }
.p1-cta-btn--primary:hover { background: #0062f5; border-color: #0062f5; }
.p1-cta-btn--ghost {
  background: rgba(255,255,255,0.05); color: #8896b4;
  border: 1px solid rgba(255,255,255,0.1);
}
.p1-cta-btn--ghost:hover { background: rgba(255,255,255,0.09); color: #c0cce8; }

/* Mobile */
@media (max-width: 767px) {
  .p1-pillars-grid { grid-template-columns: 1fr 1fr; }
  .p1-mod-row { flex-wrap: wrap; gap: 8px; }
  .p1-mod-action { margin-left: 58px; }
}
@media (max-width: 480px) {
  .p1-pillars-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   AZUL DESIGN SYSTEM v2 — Professional Dark Trading Platform
   Design tokens, component overrides, and new components
   ═══════════════════════════════════════════════════════════════ */

/* ── AZUL Design Tokens ───────────────────────────────────────── */
:root {
  /* Phase colors */
  --az-p1:          #1A5CFF;
  --az-p1-light:    #4D83FF;
  --az-p1-tint:     #0A2966;
  --az-p1-glow:     rgba(26, 92, 255, 0.30);
  --az-p1-glow-sm:  rgba(26, 92, 255, 0.18);

  --az-p2:          #7B2FBE;
  --az-p2-light:    #9B59D9;
  --az-p2-tint:     #3D1560;
  --az-p2-glow:     rgba(123, 47, 190, 0.30);
  --az-p2-glow-sm:  rgba(123, 47, 190, 0.18);

  /* Backgrounds */
  --az-bg:          #0D0F14;
  --az-bg2:         #13161E;
  --az-bg3:         #1A1E2A;

  /* Text */
  --az-tx:          #F0F2F8;
  --az-tx2:         #8A9BBF;
  --az-tx3:         #3D4560;

  /* Status */
  --az-ok:          #22C55E;
  --az-warn:        #F59E0B;
  --az-err:         #EF4444;
  --az-border:      #2A2F3E;

  /* Ticker */
  --az-tick-up:     #22C55E;
  --az-tick-dn:     #EF4444;

  /* Shadows */
  --az-shadow-card:  0 2px 12px rgba(0,0,0,0.40);
  --az-shadow-modal: 0 8px 32px rgba(0,0,0,0.60);
  --az-shadow-glow1: 0 0 20px rgba(26,92,255,0.30);
  --az-shadow-glow2: 0 0 20px rgba(123,47,190,0.30);

  /* Radii */
  --az-r-sm:  6px;
  --az-r-md:  12px;
  --az-r-lg:  16px;
  --az-r-btn: 8px;
  --az-r-pill:999px;

  /* Typography */
  --az-font: 'Inter', 'DM Sans', system-ui, -apple-system, sans-serif;
}

/* Force dark theme tokens override existing */
[data-theme="dark"],
:root {
  --bg-page:    var(--az-bg);
  --bg-surface: var(--az-bg2);
  --bg-raised:  var(--az-bg3);
  --bg-card:    var(--az-bg2);
  --border:     var(--az-border);
  --text-primary:   var(--az-tx);
  --text-secondary: var(--az-tx2);
  --text-muted:     var(--az-tx3);
}

/* ═══════════════════════════════════════════════════════════════
   BASE OVERRIDES
   ═══════════════════════════════════════════════════════════════ */
body {
  font-family: var(--az-font);
  background: var(--az-bg);
  color: var(--az-tx);
}

/* ═══════════════════════════════════════════════════════════════
   TOP TICKER TAPE — 60s continuous loop
   ═══════════════════════════════════════════════════════════════ */
.az-ticker-tape {
  position: relative;
  width: 100%;
  height: 36px;
  background: var(--az-bg2);
  border-bottom: 1px solid var(--az-border);
  overflow: hidden;
  z-index: 200;
  display: flex;
  align-items: center;
}
.az-ticker-tape::before,
.az-ticker-tape::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 48px;
  z-index: 2;
  pointer-events: none;
}
.az-ticker-tape::before {
  left: 0;
  background: linear-gradient(90deg, var(--az-bg2) 0%, transparent 100%);
}
.az-ticker-tape::after {
  right: 0;
  background: linear-gradient(270deg, var(--az-bg2) 0%, transparent 100%);
}
.az-ticker-track {
  display: flex;
  align-items: center;
  gap: 0;
  white-space: nowrap;
  animation: az-ticker-scroll 60s linear infinite;
  will-change: transform;
}
.az-ticker-tape:hover .az-ticker-track {
  animation-play-state: paused;
}
@keyframes az-ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.az-tick {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 20px;
  font-size: 12px;
  font-weight: 500;
  border-right: 1px solid rgba(255,255,255,0.06);
  height: 36px;
}
.az-tick-pair {
  font-weight: 700;
  color: var(--az-tx2);
  letter-spacing: 0.04em;
  font-size: 11px;
  text-transform: uppercase;
}
.az-tick-price {
  color: var(--az-tx);
  font-weight: 500;
  font-feature-settings: "tnum";
}
.az-tick-chg {
  font-weight: 700;
  font-size: 11px;
  font-feature-settings: "tnum";
}
.az-tick-chg--up { color: var(--az-tick-up); }
.az-tick-chg--dn { color: var(--az-tick-dn); }
.az-tick-arrow { font-size: 10px; }
.az-tick-sep {
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--az-border);
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════
   HEADER — AZUL Upgraded
   ═══════════════════════════════════════════════════════════════ */
.header {
  background: rgba(13,15,20,0.92) !important;
  backdrop-filter: blur(16px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(140%) !important;
  border-bottom: 1px solid var(--az-border) !important;
}
[data-theme="dark"] .header {
  background: rgba(13,15,20,0.95) !important;
}

/* ═══════════════════════════════════════════════════════════════
   ACADEMY SHELL — AZUL Upgraded
   ═══════════════════════════════════════════════════════════════ */
.az-shell {
  background: var(--az-bg) !important;
}

/* ── Sidebar ── */
.az-sidebar {
  width: 240px !important;
  background: var(--az-bg2) !important;
  border-right: 1px solid var(--az-border) !important;
}

.az-sidebar-header {
  border-bottom: 1px solid var(--az-border) !important;
  padding: 20px 16px 16px !important;
}

.az-sidebar-logo-text {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  color: var(--az-tx) !important;
}

.az-sidebar-progress-bar {
  background: rgba(255,255,255,0.07) !important;
}
.az-sidebar-progress-fill {
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light)) !important;
}

/* Nav items — AZUL spec */
.az-nav-item {
  font-size: 0.80rem !important;
  color: var(--az-tx2) !important;
  border-radius: var(--az-r-sm) !important;
  transition: background 180ms ease, color 180ms ease !important;
}
.az-nav-item:hover {
  background: rgba(26, 92, 255, 0.08) !important;
  color: var(--az-tx) !important;
}
.az-nav-item.active {
  background: rgba(26, 92, 255, 0.14) !important;
  color: var(--az-tx) !important;
}
.az-nav-item.active::before {
  background: var(--az-p1) !important;
  width: 3px !important;
  border-radius: 0 3px 3px 0 !important;
}
.az-nav-item-dot {
  background: var(--az-p1) !important;
  box-shadow: 0 0 8px var(--az-p1-glow) !important;
}
.az-nav-item-check.done {
  background: var(--az-ok) !important;
  border-color: var(--az-ok) !important;
}

/* Phase 2 nav items */
.az-nav-item--p2.active {
  background: rgba(123, 47, 190, 0.14) !important;
}
.az-nav-item--p2.active::before {
  background: var(--az-p2) !important;
}
.az-nav-item--p2 .az-nav-item-dot {
  background: var(--az-p2) !important;
  box-shadow: 0 0 8px var(--az-p2-glow) !important;
}

/* Phase group badges */
.az-phase-badge--1 {
  background: rgba(26, 92, 255, 0.22) !important;
  color: var(--az-p1-light) !important;
}
.az-phase-badge--2 {
  background: rgba(123, 47, 190, 0.22) !important;
  color: var(--az-p2-light) !important;
}

.az-main {
  background: var(--az-bg) !important;
}

/* ── Bottom bar ── */
.az-bottom-bar {
  background: rgba(13,15,20,0.98) !important;
  border-top: 1px solid var(--az-border) !important;
}
.az-bottom-bar-fill {
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light)) !important;
}
.az-bottom-bar-btn {
  background: var(--az-p1) !important;
  border-radius: var(--az-r-btn) !important;
}
.az-bottom-bar-btn:hover {
  background: var(--az-p1-light) !important;
  box-shadow: var(--az-shadow-glow1) !important;
}

/* ═══════════════════════════════════════════════════════════════
   MODULE HERO HEADER — AZUL Upgraded
   ═══════════════════════════════════════════════════════════════ */
.az-mod-hero {
  background: linear-gradient(135deg,
    rgba(26,92,255,0.12) 0%,
    rgba(10,41,102,0.25) 40%,
    var(--az-bg) 100%) !important;
  border-bottom: 1px solid rgba(26,92,255,0.18) !important;
  padding: 32px 32px 24px !important;
  position: relative;
  overflow: hidden;
}
.az-mod-hero::before {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 300px; height: 200px;
  background: radial-gradient(ellipse, rgba(26,92,255,0.22) 0%, transparent 70%);
  pointer-events: none;
}
.az-mod-hero::after {
  content: '';
  position: absolute;
  right: -60px; top: -80px;
  width: 340px; height: 200px;
  background: radial-gradient(ellipse, rgba(77,131,255,0.15) 0%, transparent 70%);
  pointer-events: none;
}

/* Phase 2 hero */
.az-mod-hero--p2 {
  background: linear-gradient(135deg,
    rgba(123,47,190,0.12) 0%,
    rgba(61,21,96,0.25) 40%,
    var(--az-bg) 100%) !important;
  border-bottom: 1px solid rgba(123,47,190,0.18) !important;
}
.az-mod-hero--p2::before {
  background: radial-gradient(ellipse, rgba(123,47,190,0.22) 0%, transparent 70%) !important;
}
.az-mod-hero--p2::after {
  background: radial-gradient(ellipse, rgba(155,89,217,0.15) 0%, transparent 70%) !important;
}
.az-mod-hero--p2 .az-mod-hero-badge {
  background: rgba(123,47,190,0.18) !important;
  border-color: rgba(123,47,190,0.30) !important;
  color: var(--az-p2-light) !important;
}
.az-mod-hero--p2 .az-mod-hero-title span {
  color: var(--az-p2-light) !important;
}

/* Hero badge */
.az-mod-hero-badge {
  background: rgba(26,92,255,0.18) !important;
  border: 1px solid rgba(26,92,255,0.32) !important;
  color: var(--az-p1-light) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.08em !important;
  padding: 4px 12px !important;
  border-radius: var(--az-r-pill) !important;
}
.az-mod-hero-title {
  font-size: 1.85rem !important;
  font-weight: 700 !important;
  color: var(--az-tx) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
}
.az-mod-hero-title span {
  color: var(--az-p1-light) !important;
}
.az-mod-hero-sub {
  font-size: 0.875rem !important;
  color: var(--az-tx2) !important;
  margin-top: 4px !important;
}

/* ── Module hero meta row: level badge + read time ─────────────── */
.az-mod-hero-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 0 6px;
  flex-wrap: wrap;
}
.az-mod-hero-meta-sep {
  color: var(--az-tx3);
  font-size: 0.75rem;
}
.az-mod-hero-level {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: var(--az-r-pill);
  border: 1px solid;
}
.az-mod-hero-level--beginner {
  color: var(--az-ok);
  background: rgba(34,197,94,0.10);
  border-color: rgba(34,197,94,0.25);
}
.az-mod-hero-level--intermediate {
  color: var(--az-warn);
  background: rgba(245,158,11,0.10);
  border-color: rgba(245,158,11,0.25);
}
.az-mod-hero-level--expert {
  color: var(--az-err);
  background: rgba(239,68,68,0.10);
  border-color: rgba(239,68,68,0.25);
}
/* Phase 2 level badge colour shift */
.az-mod-hero-level--p2.az-mod-hero-level--beginner {
  color: var(--az-p2-light);
  background: rgba(123,47,190,0.10);
  border-color: rgba(123,47,190,0.25);
}
.az-mod-hero-time {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: 400;
  color: var(--az-tx2);
}
.az-mod-hero-time svg {
  flex-shrink: 0;
  opacity: 0.7;
}

/* Teal hero variant (Module 2) */
.az-mod-hero--teal {
  background: linear-gradient(135deg,
    rgba(20,184,166,0.10) 0%,
    rgba(8,74,67,0.20) 40%,
    var(--az-bg) 100%) !important;
  border-bottom: 1px solid rgba(20,184,166,0.18) !important;
}
.az-mod-hero--teal .az-mod-hero-badge {
  background: rgba(20,184,166,0.15) !important;
  border-color: rgba(20,184,166,0.28) !important;
  color: #2DD4BF !important;
}
.az-mod-hero--teal .az-mod-hero-title span {
  color: #2DD4BF !important;
}

/* ═══════════════════════════════════════════════════════════════
   MODULE NAV NOTE — new component
   ═══════════════════════════════════════════════════════════════ */
.mod-nav-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(26,92,255,0.06);
  border: 1px solid rgba(26,92,255,0.16);
  border-left: 3px solid var(--az-p1);
  border-radius: var(--az-r-sm);
  padding: 12px 16px;
  font-size: 0.82rem;
  color: var(--az-tx2);
  line-height: 1.55;
  margin-bottom: 24px;
}
.mod-nav-note svg {
  flex-shrink: 0;
  color: var(--az-p1-light);
  margin-top: 1px;
}
.mod-nav-note--p2 {
  background: rgba(123,47,190,0.06) !important;
  border-color: rgba(123,47,190,0.16) !important;
  border-left-color: var(--az-p2) !important;
}
.mod-nav-note--p2 svg {
  color: var(--az-p2-light) !important;
}

/* ═══════════════════════════════════════════════════════════════
   CONTENT BODY — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.az-content-body {
  padding: 24px 32px 100px !important;
  max-width: 860px !important;
}

/* ═══════════════════════════════════════════════════════════════
   MODULE CALLOUT BOXES — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-callout {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 20px !important;
  border-radius: var(--az-r-md) !important;
  font-size: 0.90rem;
  line-height: 1.65;
  margin: 20px 0;
  border-left-width: 3px !important;
  border-left-style: solid !important;
}
.mod-callout--blue {
  background: rgba(26,92,255,0.07) !important;
  border-left-color: var(--az-p1) !important;
  color: rgba(200,215,255,0.90) !important;
}
.mod-callout--blue svg { color: var(--az-p1-light) !important; }

.mod-callout--green {
  background: rgba(34,197,94,0.07) !important;
  border-left-color: var(--az-ok) !important;
  color: rgba(187,247,208,0.90) !important;
}
.mod-callout--green svg { color: var(--az-ok) !important; }

.mod-callout--amber {
  background: rgba(245,158,11,0.07) !important;
  border-left-color: var(--az-warn) !important;
  color: rgba(254,243,199,0.90) !important;
}
.mod-callout--amber svg { color: var(--az-warn) !important; }

.mod-callout--red {
  background: rgba(239,68,68,0.07) !important;
  border-left-color: var(--az-err) !important;
  color: rgba(254,202,202,0.90) !important;
}
.mod-callout--red svg { color: var(--az-err) !important; }

.mod-callout--purple {
  background: rgba(123,47,190,0.08) !important;
  border-left-color: var(--az-p2) !important;
  color: rgba(216,180,254,0.90) !important;
}
.mod-callout--purple svg { color: var(--az-p2-light) !important; }

/* ═══════════════════════════════════════════════════════════════
   CRITICAL RULE BOX
   ═══════════════════════════════════════════════════════════════ */
.mod-critical-rule {
  background: rgba(239,68,68,0.06);
  border: 1px solid rgba(239,68,68,0.22);
  border-left: 3px solid var(--az-err);
  border-radius: var(--az-r-md);
  padding: 18px 20px;
  margin: 24px 0;
}
.mod-critical-rule-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--az-err);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.mod-critical-rule p {
  font-size: 0.92rem;
  color: rgba(254,202,202,0.88);
  line-height: 1.65;
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════════
   GLOSSARY — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-glossary {
  background: var(--az-bg2) !important;
  border: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-md) !important;
  overflow: hidden;
  margin: 28px 0;
}
.mod-glossary-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: rgba(26,92,255,0.06);
  border-bottom: 1px solid var(--az-border);
}
.mod-glossary-header-icon {
  width: 28px; height: 28px;
  border-radius: var(--az-r-sm);
  background: rgba(26,92,255,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--az-p1-light);
}
.mod-glossary-header h3 {
  font-size: 0.80rem !important;
  font-weight: 700 !important;
  color: var(--az-tx2) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}
.mod-glossary dl {
  margin: 0 !important;
  padding: 8px 0 !important;
}
.mod-glossary dt {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: var(--az-p1-light) !important;
  padding: 8px 20px 2px !important;
  cursor: pointer;
  position: relative;
}
.mod-glossary dt::after {
  content: '';
  position: absolute;
  bottom: 0; left: 20px; right: 20px;
  height: 1px;
  background: transparent;
  transition: background 200ms;
}
.mod-glossary dt:hover::after {
  background: rgba(26,92,255,0.25);
}
.mod-glossary dd {
  font-size: 0.84rem !important;
  color: var(--az-tx2) !important;
  padding: 2px 20px 10px !important;
  line-height: 1.65 !important;
  border-bottom: 1px solid rgba(255,255,255,0.04) !important;
  margin: 0 !important;
}
.mod-glossary dd:last-child {
  border-bottom: none !important;
}
/* P2 glossary */
.mod-glossary--p2 .mod-glossary-header {
  background: rgba(123,47,190,0.06) !important;
}
.mod-glossary--p2 .mod-glossary-header-icon {
  background: rgba(123,47,190,0.15) !important;
  color: var(--az-p2-light) !important;
}
.mod-glossary--p2 dt {
  color: var(--az-p2-light) !important;
}

/* ═══════════════════════════════════════════════════════════════
   QUICK NOTES — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-quick-notes {
  background: var(--az-bg2);
  border: 1px solid var(--az-border);
  border-radius: var(--az-r-md);
  overflow: hidden;
  margin: 28px 0;
}
.mod-quick-notes-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: rgba(34,197,94,0.05);
  border-bottom: 1px solid var(--az-border);
}
.mod-quick-notes-header-icon {
  width: 28px; height: 28px;
  border-radius: var(--az-r-sm);
  background: rgba(34,197,94,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--az-ok);
}
.mod-quick-notes-header h3 {
  font-size: 0.80rem !important;
  font-weight: 700 !important;
  color: var(--az-tx2) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}
.mod-quick-notes ul {
  margin: 0 !important;
  padding: 12px 20px 12px !important;
  list-style: none !important;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mod-quick-notes li {
  font-size: 0.875rem !important;
  color: var(--az-tx2) !important;
  line-height: 1.6 !important;
  padding-left: 20px !important;
  position: relative;
}
.mod-quick-notes li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--az-ok);
  opacity: 0.8;
}
.mod-quick-notes li strong {
  color: var(--az-tx) !important;
  font-weight: 500 !important;
}

/* ═══════════════════════════════════════════════════════════════
   QUIZ BLOCK — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-quiz-header {
  padding: 20px 24px !important;
  background: rgba(26,92,255,0.05) !important;
  border-bottom: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-md) var(--az-r-md) 0 0 !important;
}
.mod-quiz-header h3 {
  font-size: 0.80rem !important;
  font-weight: 700 !important;
  color: var(--az-tx2) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}
.mod-quiz-header p {
  font-size: 0.84rem !important;
  color: var(--az-tx2) !important;
}
.mod-quiz-score-bar {
  height: 4px !important;
  background: rgba(255,255,255,0.08) !important;
  border-radius: var(--az-r-pill) !important;
  overflow: hidden !important;
  margin-top: 10px !important;
}
.mod-quiz-score-fill {
  height: 100% !important;
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light)) !important;
  border-radius: var(--az-r-pill) !important;
  transition: width 0.6s ease !important;
}

/* Quiz question */
.mod-quiz-question {
  font-size: 0.92rem !important;
  font-weight: 500 !important;
  color: var(--az-tx) !important;
  line-height: 1.55 !important;
  margin-bottom: 12px !important;
}
.mod-quiz-num {
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--az-p1-light) !important;
  margin-bottom: 6px !important;
}

/* Quiz options */
.mod-quiz-opt {
  width: 100%;
  text-align: left;
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-sm) !important;
  padding: 11px 16px !important;
  font-size: 0.875rem !important;
  color: var(--az-tx2) !important;
  cursor: pointer;
  transition: all 160ms ease !important;
  margin-bottom: 6px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.5;
}
.mod-quiz-opt::before {
  content: attr(data-letter);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--az-border);
  font-size: 0.70rem;
  font-weight: 700;
  color: var(--az-tx3);
  flex-shrink: 0;
  transition: all 160ms ease;
  line-height: 1;
}
.mod-quiz-opt:hover:not(:disabled) {
  background: rgba(26,92,255,0.08) !important;
  border-color: rgba(26,92,255,0.30) !important;
  color: var(--az-tx) !important;
  transform: translateX(2px) !important;
}
.mod-quiz-opt.selected {
  background: rgba(26,92,255,0.12) !important;
  border-color: rgba(26,92,255,0.40) !important;
  color: var(--az-tx) !important;
}
.mod-quiz-opt.correct {
  background: rgba(34,197,94,0.10) !important;
  border-color: rgba(34,197,94,0.40) !important;
  color: rgba(187,247,208,0.95) !important;
}
.mod-quiz-opt.correct::before {
  background: rgba(34,197,94,0.20) !important;
  border-color: var(--az-ok) !important;
  color: var(--az-ok) !important;
}
.mod-quiz-opt.incorrect {
  background: rgba(239,68,68,0.08) !important;
  border-color: rgba(239,68,68,0.30) !important;
  color: rgba(254,202,202,0.85) !important;
  opacity: 0.65 !important;
}

/* Quiz submit button */
.mod-quiz-submit {
  background: var(--az-p1) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
  padding: 11px 28px !important;
  border-radius: var(--az-r-btn) !important;
  border: none !important;
  cursor: pointer;
  transition: all 180ms ease !important;
}
.mod-quiz-submit:hover:not(:disabled) {
  background: var(--az-p1-light) !important;
  box-shadow: var(--az-shadow-glow1) !important;
  transform: translateY(-1px) !important;
}
.mod-quiz-submit:disabled {
  background: rgba(255,255,255,0.08) !important;
  color: var(--az-tx3) !important;
  cursor: not-allowed !important;
}

/* Quiz pass result */
.mod-quiz-result--pass {
  background: rgba(34,197,94,0.08) !important;
  border-color: rgba(34,197,94,0.25) !important;
  border-radius: var(--az-r-md) !important;
  padding: 24px !important;
}
.mod-quiz-result--fail {
  background: rgba(239,68,68,0.06) !important;
  border-color: rgba(239,68,68,0.20) !important;
  border-radius: var(--az-r-md) !important;
  padding: 24px !important;
}
.mod-quiz-unlock {
  background: var(--az-ok) !important;
  border-radius: var(--az-r-btn) !important;
  font-weight: 700 !important;
}
.mod-quiz-unlock:hover {
  box-shadow: 0 6px 24px rgba(34,197,94,0.35) !important;
}
.mod-quiz-retry {
  border-radius: var(--az-r-btn) !important;
  border-color: var(--az-border) !important;
  color: var(--az-tx2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   UP-NEXT / MOD-NEXT-MODULE — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-next-module {
  background: linear-gradient(135deg,
    rgba(26,92,255,0.10) 0%,
    rgba(10,41,102,0.18) 50%,
    rgba(13,15,20,0.0) 100%) !important;
  border: 1px solid rgba(26,92,255,0.22) !important;
  border-radius: var(--az-r-lg) !important;
  padding: 24px !important;
  position: relative;
  overflow: hidden;
}
.mod-next-module::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light), transparent);
}
.mod-next-module-label {
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--az-p1-light) !important;
  margin-bottom: 8px !important;
  display: flex;
  align-items: center;
  gap: 8px;
}
.mod-next-module-label::before {
  content: '';
  width: 20px; height: 1px;
  background: var(--az-p1);
}
.mod-next-module-title {
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--az-tx) !important;
  margin-bottom: 8px !important;
  line-height: 1.3 !important;
}
.mod-next-module p {
  font-size: 0.875rem !important;
  color: var(--az-tx2) !important;
  line-height: 1.65 !important;
  margin-bottom: 16px !important;
}
.mod-next-module-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 11px 24px !important;
  border-radius: var(--az-r-btn) !important;
  background: var(--az-p1) !important;
  color: #fff !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 180ms ease !important;
  border: none !important;
}
.mod-next-module-btn:hover {
  background: var(--az-p1-light) !important;
  box-shadow: var(--az-shadow-glow1) !important;
  transform: translateX(3px) !important;
}

/* P2 up-next */
.mod-next-module--p2 {
  background: linear-gradient(135deg,
    rgba(123,47,190,0.10) 0%,
    rgba(61,21,96,0.18) 50%,
    rgba(13,15,20,0.0) 100%) !important;
  border-color: rgba(123,47,190,0.22) !important;
}
.mod-next-module--p2::before {
  background: linear-gradient(90deg, var(--az-p2), var(--az-p2-light), transparent) !important;
}
.mod-next-module--p2 .mod-next-module-label {
  color: var(--az-p2-light) !important;
}
.mod-next-module--p2 .mod-next-module-label::before {
  background: var(--az-p2) !important;
}
.mod-next-module--p2 .mod-next-module-btn {
  background: var(--az-p2) !important;
}
.mod-next-module--p2 .mod-next-module-btn:hover {
  background: var(--az-p2-light) !important;
  box-shadow: var(--az-shadow-glow2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   CONCEPT CARDS (modal trigger cards) — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-card-tap-hint {
  font-size: 0.68rem !important;
  color: var(--az-tx3) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 10px !important;
}
.az-lesson-card {
  background: var(--az-bg2) !important;
  border: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-md) !important;
}
.az-lesson-card:hover {
  border-color: rgba(26,92,255,0.35) !important;
  box-shadow: var(--az-shadow-card), 0 0 16px rgba(26,92,255,0.10) !important;
  transform: translateY(-3px) !important;
}
.az-lesson-card.active {
  border-color: rgba(26,92,255,0.50) !important;
  box-shadow: var(--az-shadow-card), 0 0 20px rgba(26,92,255,0.15) !important;
}
.az-lesson-card::before {
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light)) !important;
}
.az-lesson-card-title {
  color: var(--az-tx) !important;
}
.az-lesson-card-num {
  color: var(--az-p1-light) !important;
  background: rgba(26,92,255,0.12) !important;
}
.az-lesson-card-link {
  color: var(--az-p1-light) !important;
}
.az-lesson-card-btn {
  background: rgba(26,92,255,0.12) !important;
  border-color: rgba(26,92,255,0.22) !important;
  color: var(--az-p1-light) !important;
  border-radius: var(--az-r-sm) !important;
}
.az-lesson-card-btn:hover {
  background: rgba(26,92,255,0.22) !important;
  border-color: rgba(26,92,255,0.42) !important;
}

/* ═══════════════════════════════════════════════════════════════
   MODAL OVERLAYS — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-modal-overlay,
.az-modal-overlay {
  background: rgba(7,9,16,0.80) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}
.mod-modal,
.az-modal {
  background: var(--az-bg2) !important;
  border: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-lg) !important;
  box-shadow: var(--az-shadow-modal) !important;
}
.mod-modal::before,
.az-modal::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light), transparent);
  border-radius: var(--az-r-lg) var(--az-r-lg) 0 0;
}

/* ═══════════════════════════════════════════════════════════════
   COURSE PAGE — AZUL Hero Upgraded
   ═══════════════════════════════════════════════════════════════ */
.cp-hero {
  background: var(--az-bg) !important;
  position: relative;
  overflow: hidden;
}
.cp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 120% 80% at 50% 0%,
    rgba(26,92,255,0.18) 0%,
    rgba(10,41,102,0.10) 40%,
    transparent 70%);
  pointer-events: none;
}
.cp-hero-bg { display: none; }

.cp-hero-headline {
  letter-spacing: -0.03em;
}
.cp-hero-accent {
  background: linear-gradient(135deg, var(--az-p1-light), var(--az-p1));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Phase tiles */
.cp-phase-tile {
  border-radius: var(--az-r-md) !important;
  background: var(--az-bg2) !important;
  border: 1px solid var(--az-border) !important;
  transition: all 220ms ease !important;
}
.cp-phase-tile:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--az-shadow-card) !important;
}
.cp-phase-tile--blue {
  border-color: rgba(26,92,255,0.22) !important;
}
.cp-phase-tile--blue:hover {
  border-color: rgba(26,92,255,0.40) !important;
  box-shadow: var(--az-shadow-card), var(--az-shadow-glow1) !important;
}
.cp-phase-tile--purple {
  border-color: rgba(123,47,190,0.22) !important;
}
.cp-phase-tile--purple:hover {
  border-color: rgba(123,47,190,0.40) !important;
  box-shadow: var(--az-shadow-card), var(--az-shadow-glow2) !important;
}
.cp-phase-tile--active::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  border-radius: var(--az-r-md) var(--az-r-md) 0 0;
}
.cp-phase-tile--blue.cp-phase-tile--active::after {
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light));
}
.cp-phase-tile--purple.cp-phase-tile--active::after {
  background: linear-gradient(90deg, var(--az-p2), var(--az-p2-light));
}
.cp-phase-status--live {
  background: rgba(34,197,94,0.15) !important;
  color: var(--az-ok) !important;
  border: 1px solid rgba(34,197,94,0.30) !important;
  border-radius: var(--az-r-pill) !important;
}
.cp-phase-status--soon {
  background: rgba(255,255,255,0.06) !important;
  color: var(--az-tx3) !important;
  border: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-pill) !important;
}

/* Module cards in phase grid */
.hz-module-card {
  background: var(--az-bg2) !important;
  border: 1px solid var(--az-border) !important;
  border-radius: var(--az-r-md) !important;
  transition: all 220ms ease !important;
}
.hz-module-card:hover {
  transform: translateY(-4px) !important;
}
.hz-module-card--blue:hover {
  border-color: rgba(26,92,255,0.38) !important;
  box-shadow: var(--az-shadow-card), var(--az-shadow-glow1) !important;
}
.hz-module-card--purple:hover {
  border-color: rgba(123,47,190,0.38) !important;
  box-shadow: var(--az-shadow-card), var(--az-shadow-glow2) !important;
}

/* Module card states: Available / InProgress / Complete / Locked */
.mod-state-available {
  border-color: var(--az-border);
}
.mod-state-inprogress {
  border-color: rgba(26,92,255,0.35) !important;
  box-shadow: 0 0 0 1px rgba(26,92,255,0.15) !important;
}
.mod-state-inprogress::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light));
  border-radius: var(--az-r-md) var(--az-r-md) 0 0;
}
.mod-state-complete {
  border-color: rgba(34,197,94,0.30) !important;
}
.mod-state-locked {
  opacity: 0.50;
  pointer-events: none;
}
.mod-state-locked .mod-lock-icon {
  position: absolute;
  top: 12px; right: 12px;
  color: var(--az-tx3);
  width: 18px; height: 18px;
}

/* Progress ring */
.mod-progress-ring {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
}
.mod-progress-ring svg {
  position: absolute;
  top: 0; left: 0;
  transform: rotate(-90deg);
}
.mod-progress-ring-track {
  stroke: rgba(255,255,255,0.08);
}
.mod-progress-ring-fill {
  stroke: var(--az-p1);
  stroke-linecap: round;
  transition: stroke-dashoffset 0.6s ease;
}
.mod-progress-ring-label {
  font-size: 0.60rem;
  font-weight: 700;
  color: var(--az-tx2);
  position: relative;
  z-index: 1;
}

/* Difficulty badge */
.mod-difficulty-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--az-r-pill);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.mod-difficulty-badge--high {
  background: rgba(239,68,68,0.12);
  color: var(--az-err);
  border: 1px solid rgba(239,68,68,0.22);
}
.mod-difficulty-badge--med {
  background: rgba(245,158,11,0.12);
  color: var(--az-warn);
  border: 1px solid rgba(245,158,11,0.22);
}

/* Trader Pill tags (Phase 2) */
.mod-trader-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: var(--az-r-pill);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(123,47,190,0.12);
  color: var(--az-p2-light);
  border: 1px solid rgba(123,47,190,0.22);
}

/* ═══════════════════════════════════════════════════════════════
   PHASE HEADERS (Course grid) — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.phase-header--blue {
  background: linear-gradient(135deg, var(--az-p1-tint) 0%, var(--az-p1) 100%) !important;
  box-shadow: var(--az-shadow-card), var(--az-shadow-glow1) !important;
  border-color: rgba(26,92,255,0.30) !important;
}
.phase-header--purple {
  background: linear-gradient(135deg, var(--az-p2-tint) 0%, var(--az-p2) 100%) !important;
  box-shadow: var(--az-shadow-card), var(--az-shadow-glow2) !important;
  border-color: rgba(123,47,190,0.30) !important;
}

/* ═══════════════════════════════════════════════════════════════
   SECTION COMPONENTS inside modules
   ═══════════════════════════════════════════════════════════════ */
.mod-section {
  margin-bottom: 40px;
}
.mod-section-title {
  font-size: 1.10rem !important;
  font-weight: 700 !important;
  color: var(--az-tx) !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 4px !important;
}
.mod-section-num {
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--az-p1-light) !important;
  margin-bottom: 8px !important;
}
.mod-section-divider {
  height: 1px;
  background: var(--az-border);
  margin: 32px 0;
}

/* Key point box */
.mod-key-point {
  background: rgba(26,92,255,0.06);
  border: 1px solid rgba(26,92,255,0.18);
  border-radius: var(--az-r-md);
  padding: 16px 20px;
  margin: 20px 0;
}
.mod-key-point-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--az-p1-light);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.mod-key-point p {
  font-size: 0.90rem;
  color: var(--az-tx2);
  line-height: 1.65;
  margin: 0;
}

/* Common mistake */
.mod-mistake {
  background: rgba(239,68,68,0.05);
  border: 1px solid rgba(239,68,68,0.18);
  border-radius: var(--az-r-md);
  padding: 16px 20px;
  margin: 20px 0;
}
.mod-mistake-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--az-err);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Practice assignment */
.mod-assignment {
  background: rgba(34,197,94,0.05);
  border: 1px solid rgba(34,197,94,0.18);
  border-radius: var(--az-r-md);
  padding: 18px 20px;
  margin: 20px 0;
}
.mod-assignment-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--az-ok);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Summary box */
.mod-summary {
  background: var(--az-bg2);
  border: 1px solid var(--az-border);
  border-radius: var(--az-r-md);
  padding: 20px 24px;
  margin: 28px 0;
}
.mod-summary-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--az-tx3);
  margin-bottom: 10px;
}

/* ═══════════════════════════════════════════════════════════════
   PHASE UNLOCK ANIMATION — 3.5s sequence
   ═══════════════════════════════════════════════════════════════ */
.az-phase-unlock-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(7,9,16,0.90);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 400ms ease;
}
.az-phase-unlock-overlay.az-unlock-active {
  opacity: 1;
  pointer-events: auto;
  animation: az-unlock-dismiss 3500ms ease forwards;
}
@keyframes az-unlock-dismiss {
  0%   { opacity: 0; }
  8%   { opacity: 1; }
  80%  { opacity: 1; }
  100% { opacity: 0; pointer-events: none; }
}
.az-unlock-badge {
  width: 96px; height: 96px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--az-p2-tint), var(--az-p2));
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 28px;
  position: relative;
  animation: az-badge-glow 3500ms ease forwards;
}
.az-phase-unlock-overlay.az-phase1 .az-unlock-badge {
  background: linear-gradient(135deg, var(--az-p1-tint), var(--az-p1));
  animation: az-badge-glow-p1 3500ms ease forwards;
}
@keyframes az-badge-glow {
  0%   { transform: scale(0.7); box-shadow: none; }
  20%  { transform: scale(1.08); box-shadow: 0 0 60px var(--az-p2-glow), 0 0 120px rgba(123,47,190,0.15); }
  50%  { transform: scale(1.0);  box-shadow: 0 0 40px var(--az-p2-glow); }
  100% { transform: scale(1.0);  box-shadow: 0 0 40px var(--az-p2-glow); }
}
@keyframes az-badge-glow-p1 {
  0%   { transform: scale(0.7); box-shadow: none; }
  20%  { transform: scale(1.08); box-shadow: 0 0 60px var(--az-p1-glow), 0 0 120px rgba(26,92,255,0.15); }
  50%  { transform: scale(1.0);  box-shadow: 0 0 40px var(--az-p1-glow); }
  100% { transform: scale(1.0);  box-shadow: 0 0 40px var(--az-p1-glow); }
}
.az-unlock-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
  margin-bottom: 8px;
  animation: az-text-fade-up 3500ms ease forwards;
}
.az-unlock-sub {
  font-size: 0.95rem;
  color: var(--az-tx2);
  text-align: center;
  max-width: 320px;
  animation: az-text-fade-up 3500ms ease 100ms forwards;
}
@keyframes az-text-fade-up {
  0%   { opacity: 0; transform: translateY(16px); }
  20%  { opacity: 1; transform: translateY(0); }
  100% { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════════════════
   QUIZ PASS MICRO-INTERACTION
   ═══════════════════════════════════════════════════════════════ */
.az-quiz-pass-flash {
  animation: az-pass-flash 600ms ease;
}
@keyframes az-pass-flash {
  0%   { box-shadow: none; }
  40%  { box-shadow: 0 0 0 4px rgba(34,197,94,0.30), 0 0 32px rgba(34,197,94,0.20); }
  100% { box-shadow: none; }
}

/* ═══════════════════════════════════════════════════════════════
   MODULE UNLOCK ANIMATION
   ═══════════════════════════════════════════════════════════════ */
@keyframes az-mod-unlock {
  0%   { opacity: 0.4; transform: scale(0.97); }
  60%  { opacity: 1; transform: scale(1.01); }
  100% { opacity: 1; transform: scale(1); }
}
.az-mod-unlocking {
  animation: az-mod-unlock 500ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* ═══════════════════════════════════════════════════════════════
   GLOSSARY TERM TOOLTIP
   ═══════════════════════════════════════════════════════════════ */
.az-gterm {
  color: var(--az-p1-light);
  border-bottom: 1px dashed rgba(77,131,255,0.50);
  cursor: help;
  transition: color 160ms, border-color 160ms;
  position: relative;
}
.az-gterm:hover {
  color: var(--az-p1);
  border-bottom-color: var(--az-p1);
}
.az-gterm-tooltip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--az-bg3);
  border: 1px solid var(--az-border);
  border-radius: var(--az-r-sm);
  padding: 10px 14px;
  font-size: 0.78rem;
  color: var(--az-tx2);
  line-height: 1.55;
  white-space: nowrap;
  max-width: 260px;
  white-space: normal;
  box-shadow: var(--az-shadow-modal);
  z-index: 100;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-50%) translateY(4px);
  transition: opacity 160ms, transform 160ms;
}
.az-gterm:hover .az-gterm-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ═══════════════════════════════════════════════════════════════
   COMING SOON TOOLTIP
   ═══════════════════════════════════════════════════════════════ */
.az-coming-soon-wrap {
  position: relative;
  display: inline-flex;
}
.az-coming-soon-wrap .az-coming-soon-tip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--az-bg3);
  border: 1px solid var(--az-border);
  border-radius: var(--az-r-sm);
  padding: 8px 12px;
  font-size: 0.75rem;
  color: var(--az-tx2);
  white-space: nowrap;
  box-shadow: var(--az-shadow-card);
  z-index: 50;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms;
}
.az-coming-soon-wrap:hover .az-coming-soon-tip {
  opacity: 1;
}
.az-nav-item--soon {
  position: relative;
}
.az-nav-item--soon::after {
  content: 'Coming Soon';
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--az-bg3);
  border: 1px solid var(--az-border);
  border-radius: var(--az-r-pill);
  padding: 2px 8px;
  font-size: 0.60rem;
  font-weight: 700;
  color: var(--az-tx3);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 180ms;
}
.az-nav-item--soon:hover::after {
  opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE BOTTOM NAV — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.az-mobile-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 56px;
  background: var(--az-bg2);
  border-top: 1px solid var(--az-border);
  z-index: 300;
  justify-content: space-around;
  align-items: center;
  padding: 0 4px;
}
@media (max-width: 768px) {
  .az-mobile-nav { display: flex; }
  .az-sidebar { display: none !important; }
  .az-shell { padding-bottom: 56px; }
  .az-content-body { padding: 16px 16px 80px !important; }
  .az-mod-hero { padding: 20px 16px 16px !important; }
  .az-mod-hero-title { font-size: 1.45rem !important; }
}
.az-mobile-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 4px 12px;
  border-radius: var(--az-r-sm);
  text-decoration: none;
  color: var(--az-tx3);
  font-size: 0.58rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: color 180ms;
  position: relative;
}
.az-mobile-nav-item svg {
  width: 22px; height: 22px;
}
.az-mobile-nav-item.active {
  color: var(--az-p1-light);
}
.az-mobile-nav-item.active::before {
  content: '';
  position: absolute;
  top: 0; left: 20%; right: 20%;
  height: 2px;
  background: var(--az-p1);
  border-radius: 0 0 var(--az-r-pill) var(--az-r-pill);
}
.az-mobile-nav-dot {
  position: absolute;
  top: 4px; right: 8px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--az-p1);
  box-shadow: 0 0 6px var(--az-p1-glow);
}

/* ═══════════════════════════════════════════════════════════════
   BUTTONS — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.btn-az-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 24px;
  border-radius: var(--az-r-btn);
  background: var(--az-p1);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: all 180ms ease;
  font-family: var(--az-font);
}
.btn-az-primary:hover {
  background: var(--az-p1-light);
  box-shadow: var(--az-shadow-glow1);
  transform: translateY(-1px);
}
.btn-az-primary:disabled {
  background: rgba(255,255,255,0.08);
  color: var(--az-tx3);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.btn-az-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border-radius: var(--az-r-btn);
  background: transparent;
  color: var(--az-tx2);
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid var(--az-border);
  cursor: pointer;
  transition: all 180ms ease;
  font-family: var(--az-font);
}
.btn-az-secondary:hover {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.20);
  color: var(--az-tx);
}

.btn-az-p2 {
  background: var(--az-p2) !important;
}
.btn-az-p2:hover {
  background: var(--az-p2-light) !important;
  box-shadow: var(--az-shadow-glow2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   TABLE STYLES — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.mod-table-wrap {
  overflow-x: auto;
  margin: 20px 0;
  border-radius: var(--az-r-md);
  border: 1px solid var(--az-border);
}
.mod-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.mod-table th {
  background: var(--az-bg2);
  color: var(--az-tx2);
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 11px 16px;
  text-align: left;
  border-bottom: 1px solid var(--az-border);
  white-space: nowrap;
}
.mod-table td {
  padding: 11px 16px;
  color: var(--az-tx2);
  border-bottom: 1px solid rgba(255,255,255,0.04);
  vertical-align: top;
  line-height: 1.55;
}
.mod-table tr:last-child td { border-bottom: none; }
.mod-table tr:hover td { background: rgba(255,255,255,0.02); }
.mod-table td strong { color: var(--az-tx); font-weight: 500; }

/* ═══════════════════════════════════════════════════════════════
   READING INDICATOR (scroll progress)
   ═══════════════════════════════════════════════════════════════ */
.az-reading-bar {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light));
  z-index: 9999;
  width: 0%;
  transition: width 100ms linear;
  border-radius: 0 var(--az-r-pill) var(--az-r-pill) 0;
}

/* ═══════════════════════════════════════════════════════════════
   TABLET SIDEBAR — icon-only 64px
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 769px) and (max-width: 1024px) {
  /* ── Tablet: full sidebar with names, just slightly narrower ── */
  .az-sidebar {
    width: 180px !important;
    overflow: hidden !important;
  }
  /* Keep names visible — only hide the module number label */
  .az-nav-item-num {
    display: none !important;
  }
  /* Keep all other text visible */
  .az-nav-item-text {
    display: block !important;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .az-nav-item-title {
    display: block !important;
    font-size: 0.75rem !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .az-nav-item {
    padding: 8px 10px !important;
    gap: 8px !important;
  }
  .az-sidebar-nav {
    padding: 6px 8px !important;
  }
  /* Settings / footer links — keep text shown */
  .az-sidebar-footer-link {
    font-size: 0.72rem !important;
    padding: 6px 8px !important;
    gap: 7px !important;
  }
  .az-sidebar-footer-link span {
    display: inline !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* Progress label — show abbreviated */
  .az-sidebar-progress-label {
    display: flex !important;
    font-size: 0.65rem !important;
  }
  /* Phase label — keep visible */
  .az-phase-label {
    display: block !important;
    font-size: 0.7rem !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100px;
  }
  /* Logo text — keep visible but smaller */
  .az-sidebar-logo-text {
    display: block !important;
    font-size: 0.95rem !important;
  }
  /* Academy header — show on tablet */
  .az-sidebar-header .az-sidebar-academy {
    display: flex !important;
    font-size: 0.7rem !important;
  }
  .az-sidebar-academy span:not(.az-phase-badge--1):not(.az-phase-badge--2) {
    display: inline !important;
  }
  .az-content-body {
    padding: 20px 20px 100px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   HERO SECTION — homepage AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.welcome {
  background:
    radial-gradient(ellipse 100% 60% at 50% 0%, rgba(26,92,255,0.20) 0%, transparent 60%),
    linear-gradient(160deg, #03060f 0%, #050b1c 35%, #07122a 65%, #020810 100%) !important;
}
[data-theme="dark"] .welcome {
  background:
    radial-gradient(ellipse 100% 60% at 50% 0%, rgba(26,92,255,0.18) 0%, transparent 60%),
    linear-gradient(160deg, #020408 0%, #03080f 40%, #050f24 70%, #010508 100%) !important;
}

/* ═══════════════════════════════════════════════════════════════
   READING PROGRESS — module page
   ═══════════════════════════════════════════════════════════════ */
.az-mod-reading-bar {
  position: sticky;
  top: 0;
  height: 2px;
  background: var(--az-border);
  z-index: 50;
  overflow: hidden;
}
.az-mod-reading-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--az-p1), var(--az-p1-light));
  width: 0%;
  transition: width 100ms linear;
  border-radius: 0 var(--az-r-pill) var(--az-r-pill) 0;
}
.az-mod-reading-bar--p2 .az-mod-reading-fill {
  background: linear-gradient(90deg, var(--az-p2), var(--az-p2-light)) !important;
}

/* ═══════════════════════════════════════════════════════════════
   TICKER TAPE — new class override for course page
   ═══════════════════════════════════════════════════════════════ */
.hz-ticker-bar {
  background: var(--az-bg2) !important;
  border-bottom: 1px solid var(--az-border) !important;
  height: 36px !important;
  overflow: hidden !important;
}
.hz-ticker-track {
  animation: az-ticker-scroll 60s linear infinite !important;
  will-change: transform;
}
.hz-tick-pair {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--az-tx2) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}
.hz-tick-price {
  color: var(--az-tx) !important;
  font-weight: 500 !important;
  font-feature-settings: "tnum" !important;
}
.hz-tick-chg--up { color: var(--az-tick-up) !important; font-weight: 700 !important; }
.hz-tick-chg--dn { color: var(--az-tick-dn) !important; font-weight: 700 !important; }

/* ═══════════════════════════════════════════════════════════════
   JOURNAL PANEL — AZUL upgraded
   ═══════════════════════════════════════════════════════════════ */
.az-journal-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 320px;
  background: var(--az-bg2);
  border-left: 1px solid var(--az-border);
  z-index: 400;
  transform: translateX(100%);
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  box-shadow: -4px 0 24px rgba(0,0,0,0.3);
}
.az-journal-panel.open {
  transform: translateX(0);
}
.az-journal-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--az-border);
  position: sticky;
  top: 0;
  background: var(--az-bg2);
  z-index: 1;
}
.az-journal-panel-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--az-tx);
}
.az-journal-panel-close {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--az-border);
  color: var(--az-tx2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 160ms;
}
.az-journal-panel-close:hover {
  background: rgba(255,255,255,0.10);
  color: var(--az-tx);
}

/* ═══════════════════════════════════════════════════════════════
   SCROLLBAR — AZUL thin style
   ═══════════════════════════════════════════════════════════════ */
.az-content-scroll::-webkit-scrollbar { width: 5px; }
.az-content-scroll::-webkit-scrollbar-track { background: transparent; }
.az-content-scroll::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.10);
  border-radius: var(--az-r-pill);
  transition: background 200ms;
}
.az-content-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.22);
}

/* ═══════════════════════════════════════════════════════════════
   FRAMING STATEMENT
   ═══════════════════════════════════════════════════════════════ */
.mod-framing {
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--az-tx);
  line-height: 1.65;
  padding: 20px 24px;
  background: rgba(255,255,255,0.02);
  border-left: 3px solid var(--az-p1);
  border-radius: 0 var(--az-r-sm) var(--az-r-sm) 0;
  margin-bottom: 28px;
  font-style: italic;
}
.mod-framing--p2 {
  border-left-color: var(--az-p2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   MISC UTILITIES
   ═══════════════════════════════════════════════════════════════ */
.az-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--az-tx3);
}
.az-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--az-r-pill);
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: rgba(255,255,255,0.06);
  color: var(--az-tx2);
  border: 1px solid var(--az-border);
}
.az-chip--p1 {
  background: rgba(26,92,255,0.12);
  color: var(--az-p1-light);
  border-color: rgba(26,92,255,0.22);
}
.az-chip--p2 {
  background: rgba(123,47,190,0.12);
  color: var(--az-p2-light);
  border-color: rgba(123,47,190,0.22);
}
.az-chip--ok {
  background: rgba(34,197,94,0.12);
  color: var(--az-ok);
  border-color: rgba(34,197,94,0.22);
}
.az-divider {
  height: 1px;
  background: var(--az-border);
  margin: 32px 0;
}
.az-mono {
  font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace;
  font-size: 0.875em;
  background: rgba(26,92,255,0.08);
  color: var(--az-p1-light);
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid rgba(26,92,255,0.15);
}

