/* ═══════════════════════════════════════════════════════════════════
   Mysomero Achieva — Frontend Styles v1.4.0
   Design: Premium sidebar layout — deep navy + gold accent
   Font: DM Sans (body) + DM Serif Display (headings)
═══════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Serif+Display&display=swap');

/* ══════════════════════════════════════════════════════════════════
   FULL-VIEWPORT APP SHELL  (mc-campus-page)
   Mirrors the msm-chat-page pattern in Mysomero AI exactly.
   The body_class filter in class-mc-shortcode.php stamps this class
   so Achieva fills the entire browser window, hiding WP chrome.
══════════════════════════════════════════════════════════════════ */

/* 2. Guard: keep .mc-app flex layout even if a theme selector matches it */
body.mc-campus-page .mc-app {
    display: flex !important;
}

/* 3. Lock html + body — no page scrollbar, no gaps */
html:has(body.mc-campus-page),
body.mc-campus-page {
    overflow: hidden !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: var(--mc-bg, #f4f6fb) !important;
}
body.mc-campus-page.admin-bar { margin-top: 0 !important; }

/* 4. Hide admin bar (causes layout shift) */
body.mc-campus-page #wpadminbar { display: none !important; }

/* 5. Hide theme chrome */
body.mc-campus-page header.site-header,
body.mc-campus-page .site-header,
body.mc-campus-page footer.site-footer,
body.mc-campus-page .site-footer,
body.mc-campus-page nav.main-navigation,
body.mc-campus-page .main-navigation,
body.mc-campus-page .ast-above-header-wrap,
body.mc-campus-page .ast-below-header-wrap,
body.mc-campus-page .elementor-location-header,
body.mc-campus-page .elementor-location-footer,
body.mc-campus-page .header-widget-region,
body.mc-campus-page #header,
body.mc-campus-page #footer,
body.mc-campus-page #colophon {
    display: none !important;
}


/* ─────────────────────────────────────────────────────────────────────
   FULL-VIEWPORT LAYOUT  v1.3.4
   ─────────────────────────────────────────────────────────────────────
   Strategy: use height:100dvh on .mc-app itself (not position:fixed)
   so scroll works regardless of what WordPress wrappers surround it.
   position:fixed caused issues when WordPress theme wrappers between
   <body> and .mc-app had overflow:hidden or unknown heights.

   .mc-app              height:100dvh, display:flex row, overflow:hidden
     ├── .mc-sidebar    flex:0 0 width, overflow-y:auto   (scrolls)
     └── .mc-body       flex:1 1 0, flex col, overflow:hidden
           ├── .mc-topbar  flex:0 0 auto  (mobile bar)
           └── .mc-main    flex:1 1 0, overflow-y:auto   (SCROLLS)
   ───────────────────────────────────────────────────────────────────── */

/* ── Strip WP wrapper constraints so mc-app can be 100dvh ─── */
body.mc-campus-page,
body.mc-campus-page #page,
body.mc-campus-page #content,
body.mc-campus-page #primary,
body.mc-campus-page .site-main,
body.mc-campus-page article,
body.mc-campus-page .entry-content,
body.mc-campus-page .post-content,
body.mc-campus-page .wp-block-group,
body.mc-campus-page .container,
body.mc-campus-page .site-content,
body.mc-campus-page .content-area {
    display: contents !important;  /* dissolve wrappers — children lay out as if wrappers don't exist */
}

/* ── html + body: no page scroll for dashboard, free scroll for auth ── */
html:has(body.mc-campus-page:not(.mc-auth-page)) {
    overflow: hidden !important;
    height: 100% !important;
}
body.mc-campus-page:not(.mc-auth-page) {
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 100% !important;
}
/* Auth page: allow natural page scroll */
html:has(body.mc-auth-page),
body.mc-auth-page {
    overflow: auto !important;
    height: auto !important;
}
/* Auth page: release the app-shell height + overflow lock so the
   sign-up form (especially with the referral notice) can scroll on mobile */
body.mc-auth-page .mc-app {
    height: auto !important;
    min-height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    overflow: visible !important;
    display: block !important;
}
body.mc-auth-page .mc-wrap {
    overflow: visible !important;
    height: auto !important;
}
body.mc-campus-page.admin-bar { margin-top: 0 !important; }
body.mc-campus-page #wpadminbar { display: none !important; }

/* ── Hide theme chrome ───────────────────────────────────── */
body.mc-campus-page header.site-header,
body.mc-campus-page .site-header,
body.mc-campus-page footer.site-footer,
body.mc-campus-page .site-footer,
body.mc-campus-page .main-navigation,
body.mc-campus-page .ast-above-header-wrap,
body.mc-campus-page .ast-below-header-wrap,
body.mc-campus-page .elementor-location-header,
body.mc-campus-page .elementor-location-footer,
body.mc-campus-page #header,
body.mc-campus-page #footer,
body.mc-campus-page #colophon {
    display: none !important;
}

/* ── App shell ───────────────────────────────────────────── */
body.mc-campus-page .mc-app {
    /* position:fixed tears mc-app out of document flow completely —
       no theme wrapper (Astra containers, WP block wrappers, etc.)
       can ever constrain its width or position again */
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    overflow: hidden !important;
    z-index: 9999 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

/* mc-wrap + mc-dashboard are also on the same element */
body.mc-campus-page .mc-wrap,
body.mc-campus-page .mc-dashboard {
    min-height: 0 !important;
    max-height: none !important;
    width: 100% !important;
}

/* ── Sidebar — scroll node 1 ─────────────────────────────── */
body.mc-campus-page .mc-sidebar {
    flex: 0 0 var(--mc-sidebar-w) !important;
    width: var(--mc-sidebar-w) !important;
    min-height: 0 !important;
    height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    position: relative !important;
    top: auto !important;
    flex-shrink: 0 !important;
}

/* ── Body column ─────────────────────────────────────────── */
body.mc-campus-page .mc-body {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

/* ── Topbar ──────────────────────────────────────────────── */
body.mc-campus-page .mc-topbar {
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
}

/* ── Main content — scroll node 2 ───────────────────────── */
/* ── Main content — scroll node 2 ───────────────────────── */
body.mc-campus-page .mc-main {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,255,255,.18) transparent !important;
}
body.mc-campus-page .mc-main::-webkit-scrollbar { width: 4px !important; }
body.mc-campus-page .mc-main::-webkit-scrollbar-thumb { background: rgba(255,255,255,.22); border-radius: 4px; }
body.mc-campus-page .mc-main::-webkit-scrollbar-track { background: transparent; }

/* Sidebar — barely-there scrollbar */
body.mc-campus-page .mc-sidebar { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.12) transparent; }
body.mc-campus-page .mc-sidebar::-webkit-scrollbar { width: 3px; }
body.mc-campus-page .mc-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 3px; }
body.mc-campus-page .mc-sidebar::-webkit-scrollbar-track { background: transparent; }

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width: 768px) {

    /* Shrink shell height to leave room for fixed bottom nav */
    body.mc-campus-page .mc-app {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
        height: auto !important;
    }

    /* Sidebar slides in as overlay — removed from flex flow */
    body.mc-campus-page .mc-sidebar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        /* Extend to full screen height — sidebar has its own scroll */
        bottom: 0 !important;
        height: 100dvh !important;
        height: 100vh !important;
        height: 100dvh !important;
        width: 280px !important;
        flex: none !important;
        z-index: 300 !important;
        transform: translateX(-100%) !important;
        transition: transform .28s cubic-bezier(.4,0,.2,1) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        /* Bottom padding so last nav item clears the bottom nav bar */
        padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px) + 16px) !important;
    }
    body.mc-campus-page .mc-sidebar.mc-sidebar-open {
        transform: translateX(0) !important;
        box-shadow: 4px 0 24px rgba(0,0,0,.35) !important;
    }

    /* Body fills full width since sidebar is overlaid */
    body.mc-campus-page .mc-body {
        width: 100% !important;
    }

    /* Give main a little bottom breathing room */
    body.mc-campus-page .mc-main {
        padding-bottom: 20px !important;
    }
}


:root {
  /* Brand */
  --mc-navy:     #0f2040;
  --mc-navy2:    #1a3a6b;
  --mc-blue:     #2563eb;
  --mc-gold:     #f0a500;
  --mc-gold2:    #d4870a;
  --mc-green:    #16a34a;
  --mc-red:      #dc2626;
  --mc-purple:   #7c3aed;
  --mc-teal:     #0891b2;

  /* Surface */
  --mc-bg:       #f4f6fb;
  --mc-card:     #ffffff;
  --mc-border:   #e4e9f2;
  --mc-border2:  #cbd5e1;

  /* Text */
  --mc-text:     #0f172a;
  --mc-text2:    #334155;
  --mc-muted:    #64748b;
  --mc-faint:    #94a3b8;

  /* Sidebar */
  --mc-sidebar-w:     240px;
  --mc-sidebar-bg:    #0f2040;
  --mc-sidebar-hover: rgba(255,255,255,.07);
  --mc-sidebar-active:rgba(255,255,255,.12);

  /* Misc */
  --mc-radius:   12px;
  --mc-radius-lg:18px;
  --mc-shadow:   0 1px 3px rgba(15,32,64,.06), 0 4px 16px rgba(15,32,64,.08);
  --mc-shadow-lg:0 8px 32px rgba(15,32,64,.14);
}

/* ── Reset ─────────────────────────────────────────────────────── */
.mc-wrap *, .mc-wrap *::before, .mc-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }
.mc-wrap {
  font-family: 'DM Sans', 'Segoe UI', Arial, sans-serif;
  font-size: 15px;
  color: var(--mc-text);
  background: var(--mc-bg);
  min-height: 80vh;
}

/* ── Dashboard shell ────────────────────────────────────────────── */
.mc-dashboard {
  display: flex;
  min-height: 90vh;
  position: relative;
}

/* ── Body column (wraps topbar + main; sibling to sidebar) ──────── */
.mc-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ══════════════════════════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════════════════════════ */
.mc-sidebar {
  width: var(--mc-sidebar-w);
  background: var(--mc-sidebar-bg);
  flex-shrink: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 100;
  transition: transform .28s cubic-bezier(.4,0,.2,1);
}

/* scrollbar */
.mc-sidebar::-webkit-scrollbar { width: 4px; }
.mc-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 2px; }

/* Brand */
.mc-sidebar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 22px 18px 16px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.mc-brand-mark {
  width: 36px; height: 36px;
  background: linear-gradient(135deg, var(--mc-gold), #e8890a);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-family: 'DM Serif Display', serif;
  font-size: 20px; color: #fff;
  font-weight: 700; flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(240,165,0,.4);
}
.mc-brand-text { display: flex; flex-direction: column; line-height: 1.2; }
.mc-brand-name { font-size: 15px; font-weight: 700; color: #fff; letter-spacing: .2px; }
.mc-brand-sub  { font-size: 11px; color: rgba(255,255,255,.45); }

/* User card */
.mc-sidebar-user {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px 10px;
  position: relative;
}
.mc-sidebar-avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.25);
  flex-shrink: 0;
  object-fit: cover;
}
.mc-sidebar-userinfo { flex: 1; min-width: 0; }
.mc-sidebar-username {
  font-size: 13px; font-weight: 600;
  color: #fff;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sidebar-usermeta {
  font-size: 11px; color: rgba(255,255,255,.45);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-top: 1px;
}
.mc-tier-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.mc-tier-dot-free    { background: rgba(255,255,255,.3); }
.mc-tier-dot-basic   { background: var(--mc-gold); box-shadow: 0 0 6px var(--mc-gold); }
.mc-tier-dot-pro     { background: #a78bfa; box-shadow: 0 0 6px #a78bfa; }

/* Tier badge */
.mc-sidebar-tier {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 16px 10px;
  /* No bottom border — credits widget flows directly below */
}
.mc-tier-pill {
  display: inline-block; padding: 3px 10px;
  border-radius: 99px; font-size: 10px; font-weight: 700;
  letter-spacing: .8px; text-transform: uppercase;
}
.mc-tier-free  { background: rgba(255,255,255,.15); color: rgba(255,255,255,.8); }
.mc-tier-basic { background: var(--mc-gold); color: #000; }
.mc-tier-pro   { background: linear-gradient(135deg,#a78bfa,#60a5fa); color: #fff; }

/* Nav */
.mc-sidebar-nav { flex: 0 0 auto; padding: 10px 0; }
.mc-nav-section-label {
  font-size: 10px; font-weight: 700; letter-spacing: 1.2px;
  text-transform: uppercase; color: rgba(255,255,255,.3);
  padding: 14px 18px 5px;
}
.mc-nav-item {
  display: flex; align-items: center; gap: 10px;
  width: 100%; padding: 9px 16px 9px 18px;
  background: none; border: none;
  color: rgba(255,255,255,.65);
  font-family: inherit; font-size: 13.5px; font-weight: 500;
  cursor: pointer; text-align: left;
  border-radius: 0;
  transition: background .15s, color .15s;
  position: relative;
}
.mc-nav-item:hover {
  background: var(--mc-sidebar-hover);
  color: rgba(255,255,255,.9);
}
.mc-nav-item.active {
  background: var(--mc-sidebar-active);
  color: #fff;
  font-weight: 600;
}
.mc-nav-item.active::before {
  content: '';
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 3px; height: 60%;
  background: var(--mc-gold);
  border-radius: 0 3px 3px 0;
}
.mc-nav-icon {
  flex-shrink: 0;
  width: 20px; height: 20px;
  display: flex; align-items: center; justify-content: center;
}
.mc-nav-icon svg { width: 15px; height: 15px; display: block; }
.mc-nav-label { flex: 1; }
/* Challenge nav glow pulse — replaces streak text badge */
.mc-nav-badge {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #f59e0b;
  display: none;
  box-shadow: 0 0 0 0 rgba(245,158,11,.6);
  animation: mc-chal-nav-pulse 2s ease-in-out infinite;
  flex-shrink: 0;
  margin-left: auto;
}
@keyframes mc-chal-nav-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(245,158,11,.7); }
  70%  { box-shadow: 0 0 0 6px rgba(245,158,11,0); }
  100% { box-shadow: 0 0 0 0 rgba(245,158,11,0); }
}
.mc-nav-item-upgrade {
  color: var(--mc-gold);
  font-weight: 600;
}
.mc-nav-item-upgrade:hover { color: var(--mc-gold); }

/* Logout nav item */
.mc-nav-item-logout {
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 16px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  background: rgba(239, 68, 68, 0.12);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.25);
  transition: background .18s, color .18s;
  margin: 0 0 4px 0;
}
.mc-nav-item-logout:hover {
  background: rgba(239, 68, 68, 0.22);
  color: #fca5a5;
  text-decoration: none;
}
.mc-nav-item-logout .mc-nav-icon {
  color: #f87171;
  flex-shrink: 0;
}

/* Sidebar footer */
.mc-sidebar-footer {
  padding: 12px 16px 18px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.mc-ai-credits {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  padding: 10px 12px;
  display: flex; align-items: center; gap: 7px;
}
.mc-ai-credits-icon {
  color: var(--mc-gold);
  display: flex; align-items: center;
  flex-shrink: 0;
}
.mc-ai-credits-icon svg { width: 13px; height: 13px; display: block; }
.mc-ai-credits-count { font-size: 15px; font-weight: 700; color: #fff; }
.mc-ai-credits-label { font-size: 11px; color: rgba(255,255,255,.4); }

/* ══════════════════════════════════════════════════════════════════
   MOBILE TOPBAR (hidden on desktop)
══════════════════════════════════════════════════════════════════ */
.mc-topbar {
  display: none;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--mc-navy);
  position: sticky; top: 0; z-index: 200;
}
.mc-topbar-title { color: #fff; font-size: 16px; font-weight: 700; flex: 1; }
.mc-hamburger {
  background: none; border: none; cursor: pointer;
  display: flex; flex-direction: column; gap: 4px; padding: 4px;
}
.mc-hamburger span {
  display: block; width: 22px; height: 2px;
  background: #fff; border-radius: 2px;
  transition: transform .25s cubic-bezier(.4,0,.2,1),
              opacity .2s ease,
              top .25s cubic-bezier(.4,0,.2,1);
  position: relative;
}
/* Morph into X when sidebar is open */
.mc-sidebar-open ~ .mc-body .mc-hamburger span:nth-child(1),
.mc-hamburger.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.mc-sidebar-open ~ .mc-body .mc-hamburger span:nth-child(2),
.mc-hamburger.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.mc-sidebar-open ~ .mc-body .mc-hamburger span:nth-child(3),
.mc-hamburger.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Overlay */
.mc-sidebar-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,.45); z-index: 99;
}
.mc-sidebar-overlay.active { display: block; }

/* ══════════════════════════════════════════════════════════════════
   MAIN CONTENT
══════════════════════════════════════════════════════════════════ */
.mc-main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  padding: 24px 20px;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}


/* ── Hero carousel — full-bleed, edge to edge ─────────────────── */
.mc-hero-carousel {
  position: relative;
  width: calc(100% + 40px);
  margin: -24px -20px 24px;
  overflow: hidden;
}
.mc-hero-track {
  display: flex;
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.mc-hero-track::-webkit-scrollbar { display: none; }
.mc-hero-slide {
  position: relative;
  overflow: hidden;
  flex: 0 0 100%;
  scroll-snap-align: start;
  min-height: 200px;
  display: flex; align-items: center;
  padding: 36px 28px 44px;
  color: #fff;
}
.mc-hero-slide-welcome  { background: linear-gradient(135deg, var(--mc-navy) 0%, var(--mc-navy2) 100%); }
.mc-hero-slide-challenge{ background: linear-gradient(135deg, #1a3a6b 0%, #2563eb 100%); }
.mc-hero-slide-upgrade  { background: linear-gradient(135deg, #3b1f6b 0%, #7c3aed 100%); }
.mc-hero-slide-referral { background: linear-gradient(135deg, #0f2040 0%, #0891b2 100%); }

.mc-hero-text { position: relative; z-index: 2; max-width: 480px; }
.mc-hero-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 12px;
}
.mc-hero-title {
  font-family: 'DM Serif Display', serif;
  font-size: 28px; font-weight: 400;
  color: #fff;
  margin-bottom: 6px;
}
.mc-hero-sub {
  font-size: 14px;
  color: rgba(255,255,255,.75);
  line-height: 1.5;
}
.mc-hero-cta {
  margin-top: 16px;
  display: inline-flex; align-items: center;
  background: #fff;
  color: var(--mc-navy);
  font-weight: 700; font-size: 13.5px;
  border: none; border-radius: 999px;
  padding: 10px 22px;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
.mc-hero-cta:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,.18); }

/* Dots indicator */
.mc-hero-dots {
  position: absolute;
  left: 0; right: 0; bottom: 14px;
  z-index: 3;
  display: flex; justify-content: center; gap: 6px;
}
.mc-hero-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,.35);
  transition: background .2s, width .2s;
  cursor: pointer;
}
.mc-hero-dot.active { background: #fff; width: 18px; border-radius: 4px; }

/* Subtle twinkling starfield */
.mc-hero-stars {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image:
    radial-gradient(1.5px 1.5px at 8%  22%, rgba(255,255,255,.9) 0%, transparent 60%),
    radial-gradient(1px   1px at 18% 68%, rgba(255,255,255,.7) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 28% 40%, rgba(255,255,255,.5) 0%, transparent 60%),
    radial-gradient(1px   1px at 38% 80%, rgba(255,255,255,.8) 0%, transparent 60%),
    radial-gradient(2px   2px at 50% 18%, rgba(255,255,255,.6) 0%, transparent 60%),
    radial-gradient(1px   1px at 60% 55%, rgba(255,255,255,.9) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 70% 30%, rgba(255,255,255,.5) 0%, transparent 60%),
    radial-gradient(1px   1px at 80% 75%, rgba(255,255,255,.8) 0%, transparent 60%),
    radial-gradient(2px   2px at 90% 45%, rgba(255,255,255,.6) 0%, transparent 60%),
    radial-gradient(1px   1px at 96% 15%, rgba(255,255,255,.7) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 45% 90%, rgba(255,255,255,.5) 0%, transparent 60%),
    radial-gradient(1px   1px at 12% 50%, rgba(255,255,255,.6) 0%, transparent 60%);
  background-repeat: no-repeat;
  animation: mc-stars-twinkle 4s ease-in-out infinite alternate;
}
@keyframes mc-stars-twinkle {
  0%, 100% { opacity: .35; }
  50%      { opacity: .9; }
}
@media (prefers-reduced-motion: reduce) {
  .mc-hero-stars { animation: none; opacity: .6; }
}

/* Section title above feature lists */
.mc-fl-section-title {
  display: flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px;
  color: var(--mc-muted);
  margin: 28px 0 14px;
  white-space: nowrap;
}
.mc-fl-section-title::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--mc-gold);
  flex-shrink: 0;
  animation: mc-dot-pulse 1.8s ease-in-out infinite;
}
.mc-fl-section-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--mc-border) 0%, transparent 100%);
}
@keyframes mc-dot-pulse {
  0%, 100% { transform: scale(1);   opacity: .55; box-shadow: 0 0 0 0   rgba(240,165,0,.4); }
  50%      { transform: scale(1.25); opacity: 1;   box-shadow: 0 0 0 4px rgba(240,165,0,.12); }
}
@media (prefers-reduced-motion: reduce) {
  .mc-fl-section-title::before { animation: none; }
}
.mc-stats-row + .mc-fl-section-title { margin-top: 4px; }
.mc-feature-list-primary  { margin-top: 0; }
.mc-feature-list-secondary { margin-top: 0; }

/* Stats row */
.mc-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 0 0 24px;
}
.mc-stat-card {
  background: var(--mc-card);
  border: 1px solid var(--mc-border);
  border-radius: var(--mc-radius);
  padding: 14px;
  box-shadow: 0 1px 3px rgba(15,32,64,.05);
  display: flex; align-items: center; gap: 10px;
  transition: box-shadow .2s, transform .15s;
}
.mc-stat-card:hover {
  box-shadow: 0 4px 14px rgba(15,32,64,.09);
  transform: translateY(-1px);
}
.mc-stat-icon {
  width: 34px; height: 34px; flex-shrink: 0;
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
}
.mc-stat-icon svg { width: 16px; height: 16px; display: block; }
.mc-stat-pts    .mc-stat-icon { background: rgba(212,135,10,.12); color: var(--mc-gold2); }
.mc-stat-month  .mc-stat-icon { background: rgba(22,163,74,.1);  color: var(--mc-green); }
.mc-stat-streak .mc-stat-icon { background: rgba(220,38,38,.1);  color: var(--mc-red); }
.mc-stat-profile .mc-stat-icon{ background: rgba(37,99,235,.1);  color: var(--mc-blue); }
.mc-stat-body { min-width: 0; flex: 1; }
.mc-stat-lbl {
  font-size: 11px; color: var(--mc-muted);
  font-weight: 600; text-transform: uppercase; letter-spacing: .5px;
}
.mc-spin-sm { color: var(--mc-faint); font-size: 13px; }

/* ── Stat card skeleton shimmer ──────────────────────────────── */
@keyframes mc-shimmer {
  0%   { background-position: -300px 0; }
  100% { background-position: 300px 0; }
}
.mc-stat-skeleton {
  height: 20px; border-radius: 6px; margin-bottom: 6px;
  background: linear-gradient(90deg,
    var(--mc-border) 25%,
    color-mix(in srgb, var(--mc-border) 40%, white) 50%,
    var(--mc-border) 75%);
  background-size: 600px 100%;
  animation: mc-shimmer 1.4s ease-in-out infinite;
}
.mc-stat-skeleton-lbl {
  height: 9px; width: 70%; border-radius: 4px;
  background: linear-gradient(90deg,
    var(--mc-border) 25%,
    color-mix(in srgb, var(--mc-border) 40%, white) 50%,
    var(--mc-border) 75%);
  background-size: 600px 100%;
  animation: mc-shimmer 1.4s ease-in-out .2s infinite;
}
/* Count-up entrance: stat values animate in */
.mc-stat-val {
  font-size: 22px; font-weight: 800;
  color: var(--mc-navy2);
  font-family: 'DM Serif Display', serif;
  line-height: 1.1;
  animation: mc-stat-pop .4s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes mc-stat-pop {
  from { opacity: 0; transform: scale(.7); }
  to   { opacity: 1; transform: scale(1); }
}

/* Panel header */
.mc-panel-header { margin-bottom: 22px; padding: 0 18px; }
.mc-panel-title {
  font-family: 'DM Serif Display', serif;
  font-size: 22px; font-weight: 400;
  color: var(--mc-navy);
  margin-bottom: 4px;
  display: flex; align-items: center; gap: 10px;
}
.mc-panel-title-icon {
  width: 34px; height: 34px;
  border-radius: 9px;
  background: rgba(15,32,64,.07);
  color: var(--mc-navy2);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-panel-title-icon svg { width: 17px; height: 17px; display: block; }
.mc-panel-sub { font-size: 14px; color: var(--mc-muted); }

/* Tabs */
.mc-tabs { display: none; } /* legacy fallback — not used in sidebar layout */

/* ── Panel transition system ─────────────────────────────────────
   Panels stay in flow (display:block) but are visually hidden via
   opacity + pointer-events. The .active class triggers the entry
   animation. .mc-tab-panel--exit fires the leave animation via JS
   before the incoming panel becomes visible.
──────────────────────────────────────────────────────────────── */
.mc-tab-panel {
  display: none;
  max-width: 900px;
  margin: 0 auto; /* centre on wide screens */
}
.mc-tab-panel.active {
  display: block;
  animation: mc-panel-in .28s cubic-bezier(.25,.46,.45,.94) both;
}
.mc-tab-panel.mc-tab-panel--exit {
  animation: mc-panel-out .18s cubic-bezier(.25,.46,.45,.94) both;
  pointer-events: none;
}

@keyframes mc-panel-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes mc-panel-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(-8px); }
}

/* ── Buttons ─────────────────────────────────────────────────── */
.mc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 18px; border-radius: 8px;
  font-family: inherit; font-size: 14px; font-weight: 600;
  cursor: pointer; border: 2px solid transparent;
  text-decoration: none; transition: all .18s;
}
.mc-btn-primary { background: var(--mc-navy2); color: #fff; border-color: var(--mc-navy2); }
.mc-btn-primary:hover { background: var(--mc-navy); color: #fff; }
.mc-btn-outline { background: transparent; color: var(--mc-navy2); border-color: var(--mc-navy2); }
.mc-btn-outline:hover { background: var(--mc-navy2); color: #fff; }
.mc-btn-ai { background: linear-gradient(135deg,#7c3aed,#2563eb); color:#fff; border:none; }
.mc-btn-ai:hover { opacity:.88; color:#fff; }
.mc-btn-upgrade { background: var(--mc-gold); color: #000; border-color: var(--mc-gold); }
.mc-btn-upgrade svg, .mc-btn-primary svg, .mc-btn-outline svg, .mc-btn-ai svg, .mc-btn-sm svg {
  width: 14px; height: 14px; display: block; flex-shrink: 0;
}
.mc-btn-upgrade:hover { background: var(--mc-gold2); border-color: var(--mc-gold2); }
.mc-btn-full { width: 100%; }
.mc-btn-large { padding: 12px 24px; font-size: 15px; }
.mc-btn-sm { padding: 5px 12px; font-size: 12px; }
.mc-btn-pro { background: linear-gradient(135deg,var(--mc-purple),var(--mc-blue)); border:none; }

/* ── Alerts ──────────────────────────────────────────────────── */
.mc-alert { padding: 10px 14px; border-radius: 8px; font-size: 14px; margin-bottom: 12px; }
.mc-alert-error   { background: #fef2f2; color: var(--mc-red);   border: 1px solid #fecaca; }
.mc-alert-success { background: #f0fdf4; color: var(--mc-green); border: 1px solid #bbf7d0; }
.mc-alert-info    { background: #eff6ff; color: var(--mc-blue);  border: 1px solid #bfdbfe; }

/* ── Form fields ─────────────────────────────────────────────── */
.mc-field { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.mc-field-privacy-toggle {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 6px;
  font-size: 12px;
  color: var(--mc-muted);
  cursor: pointer;
  user-select: none;
}
.mc-field-privacy-toggle input[type="checkbox"] {
  accent-color: var(--mc-purple);
  width: 13px;
  height: 13px;
  cursor: pointer;
  flex-shrink: 0;
}
.mc-field label { font-size: 13px; font-weight: 600; color: var(--mc-muted); }
.mc-field input, .mc-field select, .mc-field textarea,
.mc-input-full, .mc-textarea, .mc-input-inline, .mc-select-inline {
  border: 1.5px solid var(--mc-border2); border-radius: 8px;
  padding: 9px 12px; font-size: 14px; color: var(--mc-text);
  background: #fff; transition: border-color .15s; width: 100%;
  font-family: inherit;
}
.mc-field input:focus, .mc-field select:focus, .mc-field textarea:focus,
.mc-input-full:focus, .mc-textarea:focus {
  border-color: var(--mc-blue); outline: none;
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.mc-field-row { display: flex; gap: 12px; flex-wrap: wrap; }
.mc-field-row .mc-field { min-width: 140px; }
.mc-textarea { resize: vertical; min-height: 100px; }
.mc-input-inline { width: auto; }
.mc-select-inline { width: auto; }
.mc-input-readonly { background: #f8fafc; color: var(--mc-muted); }

/* ── Auth — legacy compat (kept for any external references) ── */
.mc-auth-wrap { max-width: 460px; margin: 32px auto; }
.mc-auth-tabs { display: flex; border-bottom: 2px solid var(--mc-border); margin-bottom: 24px; }
.mc-tab-btn { flex: 1; background: none; border: none; padding: 12px; font-size: 15px; font-weight: 600; color: var(--mc-muted); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; font-family: inherit; }
.mc-tab-btn.active { color: var(--mc-navy2); border-bottom-color: var(--mc-navy2); }
.mc-panel { display: none; } .mc-panel.active { display: block; }
.mc-panel h2 { font-size: 20px; margin-bottom: 4px; color: var(--mc-navy); font-family: 'DM Serif Display', serif; }
.mc-auth-sub { color: var(--mc-muted); font-size: 14px; margin-bottom: 20px; }

/* ═══════════════════════════════════════════════════════════════
   MYSOMERO LAUNCHPAD — Auth  v2.1.0
   Split-screen: left = brand story, right = form
   Design: clean, Udemy-inspired, responsive-first
   ═══════════════════════════════════════════════════════════════ */

/* ── Page scaffold ──────────────────────────────────────────── */
.mc-auth-shell {
  display: grid;
  grid-template-columns: 5fr 6fr;
  min-height: 100vh;
  background: #fff;
}

/* ── Left panel — brand ─────────────────────────────────────── */
.mc-auth-left {
  background: var(--mc-navy, #0f2040);
  display: flex;
  flex-direction: column;
  padding: 40px 48px;
  position: relative;
  overflow: hidden;
}

/* subtle radial glow — the page's one signature element */
.mc-auth-left::before {
  content: '';
  position: absolute;
  top: -120px;
  right: -120px;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(240,165,0,.18) 0%, transparent 70%);
  pointer-events: none;
}
.mc-auth-left::after {
  content: '';
  position: absolute;
  bottom: -80px;
  left: -80px;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(240,165,0,.08) 0%, transparent 70%);
  pointer-events: none;
}

/* decorative circles (kept for compatibility, visually minimal) */
.mc-auth-deco { display: none; }

/* wordmark */
.mc-auth-brand-mark {
  font-family: 'DM Serif Display', serif;
  font-size: 18px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.mc-auth-brand-logo {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}
.mc-auth-beta {
  background: var(--mc-gold, #f0a500);
  color: #0f2040;
  font-family: 'DM Sans', sans-serif;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  letter-spacing: .6px;
  text-transform: uppercase;
}

/* pitch block — centred in the remaining space */
.mc-auth-pitch {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 1;
  padding: 40px 0 32px;
}

.mc-auth-pitch-headline {
  font-family: 'DM Serif Display', serif;
  font-size: 38px;
  line-height: 1.18;
  color: #fff;
  margin-bottom: 16px;
  letter-spacing: -.3px;
}
.mc-auth-pitch-headline em {
  color: var(--mc-gold, #f0a500);
  font-style: normal;
}

.mc-auth-pitch-sub {
  color: rgba(255,255,255,.55);
  font-size: 14px;
  line-height: 1.7;
  max-width: 320px;
  margin-bottom: 36px;
}

/* feature list — simple rows, not cards */
.mc-auth-feats {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 40px;
}
.mc-auth-feat {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.mc-auth-feat-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  background: rgba(240,165,0,.15);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  margin-top: 1px;
}
.mc-auth-feat-body { flex: 1; }
.mc-auth-feat-title {
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 1px;
}
.mc-auth-feat-sub {
  color: rgba(255,255,255,.4);
  font-size: 12px;
  line-height: 1.45;
}

/* stat row */
.mc-auth-stats {
  display: flex;
  gap: 28px;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.mc-auth-stat-num {
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  color: #fff;
  line-height: 1;
}
.mc-auth-stat-lbl {
  font-size: 11px;
  color: rgba(255,255,255,.38);
  margin-top: 3px;
}

.mc-auth-left-foot {
  font-size: 10px;
  color: rgba(255,255,255,.2);
  position: relative;
  z-index: 1;
  margin-top: 32px;
}

/* ── Right panel — form ─────────────────────────────────────── */
.mc-auth-right {
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 48px 32px;
  min-height: 100vh;
  overflow-y: auto;
}

.mc-auth-card {
  width: 100%;
  max-width: 400px;
}

/* mobile-only brand (hidden on desktop) */
.mc-auth-mobile-brand {
  display: none;
  margin-bottom: 32px;
}
.mc-auth-mobile-brand .mc-auth-brand-mark {
  color: var(--mc-navy, #0f2040);
  justify-content: center;
}

/* tab toggle */
.mc-auth-toggle {
  display: flex;
  border-bottom: 2px solid #e8ecf0;
  margin-bottom: 28px;
  gap: 0;
}
.mc-auth-tab {
  flex: 1;
  padding: 11px 8px;
  font-size: 14px;
  font-weight: 600;
  font-family: 'DM Sans', sans-serif;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  margin-bottom: -2px;
  transition: color .2s, border-color .2s;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}
.mc-auth-tab.active {
  color: #fff;
  background: var(--mc-navy, #0f2040);
  border-bottom-color: transparent;
  border-radius: 6px 6px 0 0;
}
.mc-auth-tab:hover:not(.active) {
  color: #1e293b;
  border-bottom-color: #cbd5e1;
}
.mc-auth-tab:focus-visible {
  outline: 2px solid rgba(15,32,64,.25);
  outline-offset: 2px;
  border-radius: 3px;
}

/* panel heading */
.mc-auth-panel         { display: none; }
.mc-auth-panel.active  { display: block; animation: mc-auth-fadein .2s ease both; }
@keyframes mc-auth-fadein {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.mc-auth-panel-head {
  margin-bottom: 22px;
}
.mc-auth-panel-head h2 {
  font-family: 'DM Serif Display', serif;
  font-size: 26px;
  color: var(--mc-navy, #0f2040);
  margin-bottom: 4px;
  line-height: 1.2;
}
.mc-auth-panel-head p {
  color: #64748b;
  font-size: 14px;
}

/* form fields */
.mc-auth-field { margin-bottom: 14px; }
.mc-auth-field label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 5px;
}
.mc-auth-field label small {
  font-weight: 400;
  color: #94a3b8;
  font-size: 12px;
}
.mc-auth-field input {
  width: 100%;
  padding: 10px 13px;
  border: 1.5px solid #dde1e8;
  border-radius: 8px;
  font-size: 14px;
  font-family: 'DM Sans', sans-serif;
  background: #fff;
  color: #0f172a;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  -webkit-appearance: none;
}
.mc-auth-field input:focus {
  border-color: var(--mc-navy, #0f2040);
  box-shadow: 0 0 0 3px rgba(15,32,64,.08);
}
.mc-auth-field input::placeholder { color: #b0b8c6; }

.mc-auth-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* validation hint */
.mc-auth-hint     { font-size: 11px; margin-top: 4px; min-height: 15px; color: #94a3b8; }
.mc-auth-hint-ok  { color: var(--mc-green, #16a34a) !important; }
.mc-auth-hint-err { color: var(--mc-red,   #dc2626) !important; }

/* alerts */
.mc-auth-alert {
  padding: 10px 13px;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 14px;
  line-height: 1.5;
}
.mc-auth-alert-error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.mc-auth-alert-info  { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }

/* referral notice */
.mc-auth-referral {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fefce8;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 10px 13px;
  font-size: 13px;
  color: #92400e;
  margin-bottom: 16px;
  line-height: 1.45;
}
.mc-auth-referral-gift { font-size: 17px; flex-shrink: 0; }

/* CTA button */
.mc-auth-cta {
  width: 100%;
  padding: 12px;
  font-size: 15px;
  font-weight: 700;
  font-family: 'DM Sans', sans-serif;
  background: var(--mc-navy, #0f2040);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background .15s, transform .1s;
  margin-top: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  letter-spacing: .1px;
}
.mc-auth-cta:hover  { background: #1a3a6b; }
.mc-auth-cta:active { transform: scale(.985); }
.mc-auth-cta-arrow  { font-size: 17px; line-height: 1; transition: transform .15s; }
.mc-auth-cta:hover .mc-auth-cta-arrow { transform: translateX(3px); }

.mc-auth-forgot {
  text-align: center;
  margin-top: 14px;
  font-size: 13px;
  color: #64748b;
}
.mc-auth-forgot a {
  color: var(--mc-navy, #0f2040);
  text-decoration: none;
  font-weight: 600;
}
.mc-auth-forgot a:hover { text-decoration: underline; }

.mc-auth-terms {
  text-align: center;
  font-size: 11px;
  color: #94a3b8;
  margin-top: 14px;
  line-height: 1.6;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 960px) {
  .mc-auth-shell { grid-template-columns: 1fr 1fr; }
  .mc-auth-left  { padding: 32px 32px; }
  .mc-auth-pitch-headline { font-size: 30px; }
  .mc-auth-pitch-sub { font-size: 13px; }
}

@media (max-width: 700px) {
  .mc-auth-shell { grid-template-columns: 1fr; }
  .mc-auth-left  { display: none; }
  .mc-auth-right {
    min-height: 100svh;
    min-height: 100vh;
    padding: 36px 20px 48px;
    justify-content: flex-start;
    padding-top: 48px;
  }
  .mc-auth-card { max-width: 100%; }
  .mc-auth-mobile-brand { display: flex; justify-content: center; }
}

@media (max-width: 380px) {
  .mc-auth-field-row { grid-template-columns: 1fr; }
  .mc-auth-right { padding: 32px 16px 40px; }
}

/* ── Cards ───────────────────────────────────────────────────── */
.mc-section-card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  margin-bottom: 28px;
  box-shadow: none;
}
.mc-wr-card {
  margin-bottom: 28px;
}

/* ── Writing Widget Hero Header ─────────────────────────────── */
.mc-wr-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 18px 18px;
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border-bottom: 1.5px solid #bae6fd;
  margin: -12px -20px 0; /* bleed over mc-main desktop padding */
}
@media (max-width: 768px) {
  .mc-wr-hero {
    margin: -16px 0 0;  /* mc-main is padding:0 on mobile */
  }
  .mc-wr-tabs {
    margin: 0;          /* already flush */
  }
}
.mc-wr-hero-text { flex: 1; }
.mc-wr-hero-title {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 18px;
  font-weight: 700;
  color: var(--mc-navy, #0f2040);
  margin-bottom: 4px;
  font-family: 'DM Serif Display', serif;
}
.mc-wr-hero-title svg { stroke: #0891b2; flex-shrink: 0; }
.mc-wr-hero-sub {
  font-size: 13px;
  color: #0369a1;
  margin: 0;
  line-height: 1.4;
}
.mc-section-card h3 {
  font-size: 16px; color: var(--mc-navy);
  margin-bottom: 14px; font-weight: 700;
  display: flex; align-items: center; gap: 8px;
}
.mc-h3-icon {
  width: 26px; height: 26px;
  background: rgba(15,32,64,.07);
  color: var(--mc-navy2);
  border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-h3-icon svg { width: 14px; height: 14px; display: block; }

/* ── Feature list (home tab) ─────────────────────────────────── */
/* Single-column row cards — clean, tappable, works on any screen */
.mc-feature-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.mc-feature-item {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--mc-card);
  border: 1px solid var(--mc-border);
  border-radius: 14px;
  padding: 15px 16px;
  box-shadow: 0 1px 3px rgba(15,32,64,.05), 0 1px 2px rgba(15,32,64,.04);
  cursor: pointer;
  position: relative;
  transition: box-shadow .2s ease, transform .15s ease, border-color .2s ease;
  -webkit-tap-highlight-color: transparent;
}
.mc-feature-item:hover  {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(15,32,64,.1), 0 2px 6px rgba(15,32,64,.06);
  border-color: var(--mc-border2);
}
.mc-feature-item:active { transform: translateY(0); box-shadow: none; }

/* ── Feature item icon wraps (replaces old emoji + accent bar) ────────── */
.mc-fi-icon-wrap {
  width: 44px; height: 44px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: opacity .15s;
}
.mc-fi-icon-wrap svg { width: 20px; height: 20px; display: block; }
.mc-feature-item:hover .mc-fi-icon-wrap { opacity: .85; }

.mc-fi-challenge  .mc-fi-icon-wrap { background: rgba(37,99,235,.1);  color: #2563eb; }
.mc-fi-cv         .mc-fi-icon-wrap { background: rgba(22,163,74,.1);  color: #16a34a; }
.mc-fi-cover      .mc-fi-icon-wrap { background: rgba(8,145,178,.1);  color: #0891b2; }
.mc-fi-interview  .mc-fi-icon-wrap { background: rgba(124,58,237,.1); color: #7c3aed; }
.mc-fi-roadmap    .mc-fi-icon-wrap { background: rgba(26,111,232,.1); color: #1a6fe8; }
.mc-fi-research   .mc-fi-icon-wrap { background: rgba(124,58,237,.1); color: #7c3aed; }
.mc-fi-writing    .mc-fi-icon-wrap { background: rgba(8,145,178,.1);  color: #0891b2; }
.mc-fi-leaderboard .mc-fi-icon-wrap{ background: rgba(240,165,0,.12); color: #d4870a; }
.mc-fi-referral   .mc-fi-icon-wrap { background: rgba(240,165,0,.12); color: #d4870a; }

/* Hide old accent bar — kept in DOM for backwards compat but invisible */
.mc-fi-accent { display: none; }

/* Icon */
.mc-fi-icon {
  display: none; /* replaced by .mc-fi-icon-wrap */
}

/* Text */
.mc-fi-body   { flex: 1; min-width: 0; }
.mc-fi-title  { font-size: 15px; font-weight: 700; color: var(--mc-navy); line-height: 1.3; }
.mc-fi-desc   { font-size: 12.5px; color: var(--mc-muted); margin-top: 2px; line-height: 1.4;
                white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Optional "Start" badge on primary action */
.mc-fi-badge {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 99px;
  letter-spacing: .3px;
}
.mc-fi-badge-primary {
  background: var(--mc-navy);
  color: #fff;
}

/* Chevron */
.mc-fi-arrow {
  flex-shrink: 0;
  color: var(--mc-faint);
  display: flex;
  align-items: center;
  margin-left: 2px;
}
.mc-fi-arrow svg { width: 15px; height: 15px; display: block; }

/* Desktop: 2-column grid for the feature list */
@media (min-width: 640px) {
  .mc-feature-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .mc-fi-desc { white-space: normal; }
}
@media (min-width: 1100px) {
  .mc-feature-list { grid-template-columns: 1fr 1fr 1fr; }
}

/* ── Points list ─────────────────────────────────────────────── */
.mc-points-list { display: flex; flex-direction: column; gap: 6px; }
.mc-pts-row {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px; border-radius: 8px;
  background: #f8fafc; font-size: 13px;
}
.mc-pts-action   { flex: 1; font-weight: 600; color: var(--mc-text2); }
.mc-pts-positive { color: var(--mc-green); font-weight: 700; white-space: nowrap; }
.mc-pts-negative { color: var(--mc-red);   font-weight: 700; }
.mc-pts-date     { color: var(--mc-faint); font-size: 12px; white-space: nowrap; }

/* ══════════════════════════════════════════════════════════════
   DAILY CHALLENGE — v1.5.0
══════════════════════════════════════════════════════════════ */

/* Outer wrapper */
.mc-challenge-wrap { padding: 0; }

/* ── Skeleton ────────────────────────────────────────────────── */
.mc-chal-skeleton { padding: 20px; }
.mc-chal-skeleton-header {
  height: 18px; border-radius: 4px; width: 48%; margin-bottom: 12px;
  background: linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);
  background-size: 200% 100%; animation: mc-shimmer 1.4s infinite;
}
.mc-chal-skeleton-bar {
  height: 12px; border-radius: 3px; margin-bottom: 9px;
  background: linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);
  background-size: 200% 100%; animation: mc-shimmer 1.4s infinite;
}
@keyframes mc-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* ══════════════════════════════════════════════════════════════
   CHALLENGE CARD  — premium clean redesign
══════════════════════════════════════════════════════════════ */

.mc-chal-card {
  background: var(--mc-card);
  border-radius: 16px;
  overflow: hidden;
  border: 1.5px solid var(--mc-border);
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.06);
  font-family: inherit;
}
[data-theme="dark"] .mc-chal-card {
  box-shadow: 0 1px 3px rgba(0,0,0,.15), 0 4px 20px rgba(0,0,0,.18);
}

/* ── Header ──────────────────────────────────────────────────── */
.mc-chal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 20px 22px 18px;
  background: #0b1834;
  border-bottom: 1px solid rgba(255,255,255,.06);
  position: relative;
}
/* Subtle corner accent — no gradient, just a thin gold line top */
.mc-chal-header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: #c8a84b;
  border-radius: 16px 16px 0 0;
}
[data-theme="dark"] .mc-chal-header {
  background: #0a1628;
  border-bottom-color: rgba(255,255,255,.08);
}

.mc-chal-header-left { flex: 1; min-width: 0; }

/* "DAILY CHALLENGE" eyebrow */
.mc-chal-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: #c8a84b;
  margin-bottom: 7px;
}
.mc-chal-eyebrow-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #c8a84b;
  flex-shrink: 0;
  animation: mc-dot-pulse 2s ease-in-out infinite;
}
@keyframes mc-dot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .45; transform: scale(.7); }
}

/* Keep the old class name working too */
.mc-chal-day-label {
  font-size: 9.5px; font-weight: 800; letter-spacing: 1.8px;
  text-transform: uppercase; color: #c8a84b; display: block; margin-bottom: 7px;
}

.mc-chal-title {
  font-size: 15px; font-weight: 700; color: #fff;
  margin: 0; line-height: 1.4; letter-spacing: -.1px;
}

.mc-chal-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
  padding-top: 2px;
}

/* ── Type pill ────────────────────────────────────────────────── */
.mc-chal-type-pill {
  font-size: 9.5px; font-weight: 700; letter-spacing: .5px;
  text-transform: uppercase; padding: 3px 10px;
  border-radius: 5px;
  border: 1px solid transparent;
}
.mc-pill-mcq    { background: rgba(99,102,241,.18);  color: #c7d2fe; border-color: rgba(99,102,241,.3); }
.mc-pill-tf     { background: rgba(16,185,129,.15);  color: #6ee7b7; border-color: rgba(16,185,129,.28); }
.mc-pill-open   { background: rgba(245,158,11,.15);  color: #fcd34d; border-color: rgba(245,158,11,.28); }
.mc-pill-fillin { background: rgba(14,165,233,.15);  color: #7dd3fc; border-color: rgba(14,165,233,.28); }

/* ── Points chip ──────────────────────────────────────────────── */
.mc-chal-pts-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 700; color: #c8a84b;
  background: rgba(200,168,75,.13);
  border: 1px solid rgba(200,168,75,.28);
  padding: 3px 9px; border-radius: 5px;
}

/* ── Meta bar (countdown + close time) ───────────────────────── */
.mc-chal-time-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 22px;
  background: var(--mc-bg);
  border-bottom: 1px solid var(--mc-border);
  font-size: 12px;
}
[data-theme="dark"] .mc-chal-time-bar { background: rgba(255,255,255,.025); }

.mc-chal-countdown {
  display: inline-flex; align-items: center; gap: 5px;
  font-weight: 700; color: var(--mc-navy2); font-size: 12.5px;
}
.mc-chal-cd-digits { font-variant-numeric: tabular-nums; letter-spacing: .4px; }
.mc-chal-cd-sep    { font-size: 10px; font-weight: 500; opacity: .45; margin-right: 1px; }
.mc-chal-cd-urgent { color: #dc2626 !important; }
.mc-chal-expired   { color: var(--mc-muted); font-style: italic; font-size: 11.5px; }
.mc-chal-closetime { font-size: 11px; color: var(--mc-muted); }

/* ── Question area ───────────────────────────────────────────── */
.mc-chal-question-wrap { padding: 18px 22px 0; }
.mc-chal-question {
  font-size: 14.5px; line-height: 1.75; color: var(--mc-text);
  background: var(--mc-bg);
  border: 1.5px solid var(--mc-border);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
  position: relative;
}
[data-theme="dark"] .mc-chal-question { background: rgba(255,255,255,.03); }

/* Thin left accent on the question box */
.mc-chal-question::before {
  content: '';
  position: absolute;
  left: 0; top: 10px; bottom: 10px;
  width: 3px;
  background: #c8a84b;
  border-radius: 0 2px 2px 0;
  opacity: .6;
}

/* ── Form container ──────────────────────────────────────────── */
.mc-chal-form { padding: 0 22px 22px; }

/* ── MCQ options ─────────────────────────────────────────────── */
.mc-chal-options { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.mc-chal-option {
  display: flex; align-items: center; gap: 12px; cursor: pointer;
  padding: 11px 14px; border-radius: 10px;
  border: 1.5px solid var(--mc-border);
  background: var(--mc-card);
  transition: border-color .15s, background .15s, box-shadow .12s;
  user-select: none;
}
.mc-chal-option input[type="radio"] { display: none; }
.mc-chal-option:hover { border-color: #1e3a6e; background: #f0f4ff; }
[data-theme="dark"] .mc-chal-option:hover { background: rgba(30,58,110,.12); border-color: rgba(99,130,235,.35); }
.mc-chal-option:has(input:checked) {
  border-color: #1e3a6e; background: #f0f4ff;
  box-shadow: 0 0 0 3px rgba(30,58,110,.07);
}
[data-theme="dark"] .mc-chal-option:has(input:checked) { background: rgba(30,58,110,.15); border-color: rgba(99,130,235,.5); }

.mc-chal-opt-letter {
  width: 27px; height: 27px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: #edf0f8; color: #1e3a6e;
  font-size: 11.5px; font-weight: 800;
  border-radius: 6px; transition: background .15s, color .15s;
  letter-spacing: .3px;
}
.mc-chal-option:has(input:checked) .mc-chal-opt-letter { background: #1e3a6e; color: #fff; }
.mc-chal-opt-text { font-size: 13.5px; color: var(--mc-text); line-height: 1.45; }

/* ── True / False ─────────────────────────────────────────────── */
.mc-chal-tf-row { display: flex; gap: 10px; margin-bottom: 16px; }
.mc-chal-tf-btn {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 16px 12px; border-radius: 12px;
  border: 1.5px solid var(--mc-border);
  cursor: pointer; background: var(--mc-card);
  transition: border-color .15s, background .15s, box-shadow .15s;
  font-size: 13.5px; font-weight: 600; color: var(--mc-text);
}
.mc-chal-tf-btn input { display: none; }
.mc-chal-tf-btn:hover { border-color: #1e3a6e; background: #f0f4ff; }
.mc-chal-tf-btn:has(input:checked) {
  border-color: #1e3a6e; background: #f0f4ff;
  box-shadow: 0 0 0 3px rgba(30,58,110,.07);
}
[data-theme="dark"] .mc-chal-tf-btn { border-color: rgba(255,255,255,.1); }
[data-theme="dark"] .mc-chal-tf-btn:hover,
[data-theme="dark"] .mc-chal-tf-btn:has(input:checked) { background: rgba(30,58,110,.14); border-color: rgba(99,130,235,.45); }
.mc-chal-tf-icon {
  width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
  border-radius: 10px; font-size: 18px; font-weight: 700;
}
.mc-tf-true  { background: #dcfce7; color: #15803d; }
.mc-tf-false { background: #fee2e2; color: #b91c1c; }

/* ── Textarea ─────────────────────────────────────────────────── */
.mc-chal-textarea {
  width: 100%; border: 1.5px solid var(--mc-border); border-radius: 10px;
  padding: 12px 14px; font-size: 13.5px; font-family: inherit;
  background: var(--mc-card); color: var(--mc-text);
  resize: vertical; min-height: 100px; margin-bottom: 16px;
  transition: border-color .15s, box-shadow .15s; box-sizing: border-box; line-height: 1.65;
}
.mc-chal-textarea:focus { outline: none; border-color: #1e3a6e; box-shadow: 0 0 0 3px rgba(30,58,110,.07); }

/* ── Hint ─────────────────────────────────────────────────────── */
.mc-chal-hint-wrap { margin-bottom: 16px; }
.mc-chal-hint-toggle {
  background: none; border: 1px solid var(--mc-border); border-radius: 99px;
  cursor: pointer; font-size: 12px; font-weight: 600;
  color: var(--mc-muted); display: inline-flex; align-items: center; gap: 5px;
  font-family: inherit; padding: 5px 12px; transition: color .15s, border-color .15s;
}
.mc-chal-hint-toggle:hover { color: #1e3a6e; border-color: #93c5fd; }
.mc-chal-hint {
  margin-top: 8px; background: #fefce8; border: 1.5px solid #fde68a;
  border-radius: 8px; padding: 11px 14px; font-size: 13px;
  color: #92400e; line-height: 1.55;
}
[data-theme="dark"] .mc-chal-hint { background: rgba(252,211,77,.06); color: #fcd34d; border-color: rgba(252,211,77,.18); }

/* ── Submit button ────────────────────────────────────────────── */
.mc-chal-submit-btn {
  width: 100%; display: flex; align-items: center; justify-content: center;
  gap: 8px; padding: 13px 20px; font-size: 14.5px; font-weight: 700; margin-top: 4px;
}

/* ── Result block ─────────────────────────────────────────────── */
.mc-chal-result {
  margin: 0 22px 22px; border-radius: 12px; padding: 18px;
  animation: mc-result-in .3s ease both;
}
@keyframes mc-result-in { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.mc-chal-res-correct { background: #f0fdf4; border: 1.5px solid #86efac; }
.mc-chal-res-wrong   { background: #fef2f2; border: 1.5px solid #fca5a5; }
.mc-chal-res-pending { background: #fffbeb; border: 1.5px solid #fcd34d; }
[data-theme="dark"] .mc-chal-res-correct { background: rgba(22,163,74,.08);  border-color: rgba(134,239,172,.22); }
[data-theme="dark"] .mc-chal-res-wrong   { background: rgba(220,38,38,.08);  border-color: rgba(252,165,165,.22); }
[data-theme="dark"] .mc-chal-res-pending { background: rgba(245,158,11,.08); border-color: rgba(252,211,77,.22); }

.mc-chal-res-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.mc-chal-res-icon { width: 28px; height: 28px; flex-shrink: 0; }
.mc-chal-res-correct .mc-chal-res-icon { stroke: #16a34a; }
.mc-chal-res-wrong   .mc-chal-res-icon { stroke: #dc2626; }
.mc-chal-res-pending .mc-chal-res-icon { stroke: #d97706; }
.mc-chal-res-status { font-size: 16px; font-weight: 700; }
.mc-chal-res-correct .mc-chal-res-status { color: #15803d; }
.mc-chal-res-wrong   .mc-chal-res-status { color: #b91c1c; }
.mc-chal-res-pending .mc-chal-res-status { color: #b45309; }

/* ── AI Score bar ─────────────────────────────────────────────── */
.mc-chal-score-wrap { margin-bottom: 12px; }
.mc-chal-score-label { font-size: 13px; color: var(--mc-text2); margin-bottom: 6px; font-weight: 600; }
.mc-chal-score-track { height: 6px; border-radius: 99px; background: rgba(0,0,0,.07); overflow: hidden; }
.mc-chal-score-fill { height: 100%; border-radius: 99px; background: #1e3a6e; transition: width .5s ease; }
.mc-chal-feedback {
  font-size: 13px; color: var(--mc-text2); line-height: 1.6;
  background: var(--mc-bg); border-radius: 8px; padding: 10px 12px; margin-top: 10px;
  border: 1px solid var(--mc-border);
}

/* ── Correct answer ───────────────────────────────────────────── */
.mc-chal-correct-ans {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin: 10px 0; font-size: 13px;
}
.mc-chal-ans-label { color: var(--mc-muted); }
.mc-chal-ans-val {
  background: #dcfce7; color: #166534; font-weight: 700;
  padding: 2px 10px; border-radius: 5px; font-size: 13px;
}
[data-theme="dark"] .mc-chal-ans-val { background: rgba(22,163,74,.16); color: #86efac; }

/* ── Explanation ──────────────────────────────────────────────── */
.mc-chal-explanation {
  font-size: 13px; color: var(--mc-text2); line-height: 1.65;
  border-left: 3px solid #c8a84b; padding-left: 12px; margin: 10px 0;
}

/* ── Points breakdown ─────────────────────────────────────────── */
.mc-chal-pts-row { margin-top: 12px; }
.mc-chal-pts-earned { font-size: 13px; font-weight: 700; color: var(--mc-green); }
.mc-chal-pts-breakdown { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0 6px; }
.mc-chal-pts-chip2 {
  display: flex; flex-direction: column; align-items: center;
  background: var(--mc-bg); border: 1.5px solid var(--mc-border);
  border-radius: 9px; padding: 7px 14px; font-size: 11px; color: var(--mc-muted); font-weight: 600;
}
.mc-chal-pts-chip2 strong { font-size: 14px; color: var(--mc-green); margin-top: 2px; font-weight: 700; }
.mc-pts-bonus  strong { color: #d97706; }
.mc-pts-streak strong { color: #ea580c; }
.mc-chal-pts-total { font-size: 12px; color: var(--mc-muted); }
.mc-chal-pts-total strong { color: var(--mc-text); font-weight: 700; }

/* ── Streak ───────────────────────────────────────────────────── */
.mc-chal-streak {
  display: inline-flex; align-items: center; gap: 5px;
  background: #fff7ed; border: 1.5px solid #fdba74;
  color: #c2410c; border-radius: 99px; padding: 5px 14px;
  font-size: 13px; font-weight: 700; margin-top: 10px;
  animation: mc-streak-pop .4s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes mc-streak-pop { from{transform:scale(.85);opacity:0} to{transform:scale(1);opacity:1} }
[data-theme="dark"] .mc-chal-streak { background: rgba(234,88,12,.1); border-color: rgba(253,186,116,.28); color: #fb923c; }

/* ── Empty state ──────────────────────────────────────────────── */
.mc-chal-empty { text-align: center; padding: 40px 20px; }
.mc-chal-empty-icon { font-size: 38px; margin-bottom: 12px; display: block; }
.mc-chal-empty-msg { color: var(--mc-muted); font-size: 14px; line-height: 1.5; }

/* ── Gate ─────────────────────────────────────────────────────── */
.mc-chal-gate {
  text-align: center; padding: 28px 20px 22px; margin: 0 22px 22px;
  background: #f8f9ff; border-radius: 10px; border: 1.5px solid #e0e7ff;
}
[data-theme="dark"] .mc-chal-gate { background: rgba(99,102,241,.05); border-color: rgba(99,102,241,.18); }
.mc-chal-gate-icon { font-size: 30px; margin-bottom: 10px; display: block; }
.mc-chal-gate p { color: var(--mc-muted); font-size: 14px; margin-bottom: 16px; line-height: 1.5; }

/* ── Submit feedback animations ───────────────────────────────── */
.mc-chal-shake { animation: mc-shake .4s ease; }
@keyframes mc-shake { 0%,100%{transform:none} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }
.mc-chal-correct-pop { animation: mc-pop .35s ease; }
@keyframes mc-pop { 0%{transform:scale(1)} 50%{transform:scale(1.03)} 100%{transform:scale(1)} }

/* ══════════════════════════════════════════════════════════════
   REFERRAL PROGRAMME
══════════════════════════════════════════════════════════════ */

.mc-ref-wrap {
  padding: 0;
}

/* ── Header ──────────────────────────────────────────────────── */
.mc-ref-header {
  padding: 20px 22px 18px;
  border-bottom: 1px solid var(--mc-border);
}
.mc-ref-header-top {
  display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
}
.mc-ref-icon-wrap {
  width: 36px; height: 36px; border-radius: 10px;
  background: rgba(240,165,0,.1); color: #d4870a;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.mc-ref-icon-wrap svg { width: 18px; height: 18px; }
.mc-ref-heading {
  font-size: 15px; font-weight: 700; color: var(--mc-navy); margin: 0;
  line-height: 1.2;
}
.mc-ref-subhead {
  font-size: 12px; color: var(--mc-muted); margin: 2px 0 0;
}

/* ── Reward rules ────────────────────────────────────────────── */
.mc-ref-rules {
  display: flex; flex-direction: column; gap: 8px;
}
.mc-ref-rule {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: 9px;
  background: var(--mc-bg); border: 1px solid var(--mc-border);
}
[data-theme="dark"] .mc-ref-rule { background: rgba(255,255,255,.03); }
.mc-ref-pts {
  font-size: 13px; font-weight: 700; color: #16a34a;
  background: #f0fdf4; border: 1px solid #bbf7d0;
  padding: 3px 10px; border-radius: 99px; flex-shrink: 0; white-space: nowrap;
}
[data-theme="dark"] .mc-ref-pts { background: rgba(22,163,74,.12); border-color: rgba(22,163,74,.25); color: #4ade80; }
.mc-ref-rule span:last-child { font-size: 13px; color: var(--mc-text2); line-height: 1.4; }

/* ── Stats row ───────────────────────────────────────────────── */
.mc-ref-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--mc-border);
  border-bottom: 1px solid var(--mc-border);
}
.mc-ref-stat {
  background: var(--mc-card); padding: 16px 12px; text-align: center;
}
.mc-ref-stat strong {
  display: block; font-size: 22px; font-weight: 700;
  color: var(--mc-navy); line-height: 1; margin-bottom: 4px;
}
[data-theme="dark"] .mc-ref-stat strong { color: #f1f5f9; }
.mc-ref-stat span { font-size: 11px; color: var(--mc-muted); font-weight: 500; }

/* ── Link section ────────────────────────────────────────────── */
.mc-ref-link-section { padding: 18px 22px; border-bottom: 1px solid var(--mc-border); }
.mc-ref-link-label {
  font-size: 11px; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; color: var(--mc-muted); margin-bottom: 8px; display: block;
}
.mc-ref-link-row {
  display: flex; gap: 8px; margin-bottom: 10px;
}
.mc-ref-url-input {
  flex: 1; border: 1.5px solid var(--mc-border); border-radius: 9px;
  padding: 10px 12px; font-size: 13px; font-family: inherit;
  background: var(--mc-bg); color: var(--mc-muted);
  cursor: default; outline: none; min-width: 0;
  transition: border-color .15s;
}
.mc-ref-url-input:focus { border-color: #2563eb; }
[data-theme="dark"] .mc-ref-url-input { background: rgba(255,255,255,.04); }
.mc-ref-copy-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 16px; border-radius: 9px; border: none; cursor: pointer;
  font-size: 13px; font-weight: 700; font-family: inherit;
  background: #0f1f45; color: #fff;
  transition: background .15s, transform .1s;
  flex-shrink: 0;
}
.mc-ref-copy-btn:hover { background: #1a3060; transform: translateY(-1px); }
.mc-ref-copy-btn:active { transform: none; }
[data-theme="dark"] .mc-ref-copy-btn { background: #1e40af; }
[data-theme="dark"] .mc-ref-copy-btn:hover { background: #2563eb; }
.mc-ref-copy-btn svg { width: 14px; height: 14px; }

/* ── Share buttons ───────────────────────────────────────────── */
.mc-ref-share { display: flex; gap: 8px; }
.mc-share-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 16px; border-radius: 9px; font-size: 13px; font-weight: 600;
  text-decoration: none; border: 1.5px solid var(--mc-border); color: var(--mc-text);
  background: var(--mc-card); transition: border-color .15s, background .15s;
}
.mc-share-btn:hover { border-color: #2563eb; background: #f0f5ff; color: #2563eb; }
[data-theme="dark"] .mc-share-btn:hover { background: rgba(37,99,235,.1); border-color: rgba(99,130,235,.4); color: #93c5fd; }
.mc-share-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.mc-share-wa { }

/* ── Recent referrals ────────────────────────────────────────── */
.mc-ref-recent { padding: 18px 22px 20px; }
.mc-ref-recent-label {
  font-size: 11px; font-weight: 700; letter-spacing: .8px;
  text-transform: uppercase; color: var(--mc-muted); margin-bottom: 10px; display: block;
}
.mc-ref-list { display: flex; flex-direction: column; gap: 1px; }
.mc-ref-row {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 14px; border-radius: 9px; font-size: 13px;
  background: var(--mc-bg); border: 1px solid var(--mc-border);
  margin-bottom: 6px;
}
.mc-ref-row:last-child { margin-bottom: 0; }
[data-theme="dark"] .mc-ref-row { background: rgba(255,255,255,.03); }
.mc-ref-row-icon {
  width: 30px; height: 30px; border-radius: 50%; display: flex;
  align-items: center; justify-content: center; flex-shrink: 0; font-size: 14px;
}
.mc-ref-row-icon.subscribed { background: #fef9c3; }
.mc-ref-row-icon.signup     { background: #dcfce7; }
.mc-ref-row-icon.other      { background: #f1f5f9; }
.mc-ref-row-email { flex: 1; font-weight: 600; color: var(--mc-text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-ref-row-status {
  font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 99px; flex-shrink: 0;
}
.mc-ref-row-status.subscribed { background: #fef9c3; color: #854d0e; border: 1px solid #fde68a; }
.mc-ref-row-status.signup     { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.mc-ref-row-status.other      { background: #f1f5f9; color: var(--mc-muted); border: 1px solid var(--mc-border); }
[data-theme="dark"] .mc-ref-row-status.subscribed { background: rgba(217,119,6,.12); border-color: rgba(217,119,6,.25); color: #fbbf24; }
[data-theme="dark"] .mc-ref-row-status.signup     { background: rgba(22,163,74,.12); border-color: rgba(22,163,74,.25); color: #4ade80; }
.mc-ref-row-pts { font-size: 12px; color: var(--mc-muted); flex-shrink: 0; }

/* ── Empty / loading ─────────────────────────────────────────── */
.mc-ref-loading { text-align: center; padding: 40px 20px; color: var(--mc-muted); font-size: 14px; }
.mc-ref-error   { padding: 16px 22px; color: var(--mc-muted); font-size: 13px; }

/* Legacy aliases kept for other widgets */
.mc-center-loader { text-align: center; padding: 40px; color: var(--mc-muted); }
.mc-type-badge { display: inline-block; background: #e0e7ff; color: #3730a3; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; letter-spacing: .5px; }

/* ── Gate ────────────────────────────────────────────────────── */
.mc-gate { text-align: center; padding: 32px; background: var(--mc-bg); border-radius: var(--mc-radius); }
.mc-gate p { margin-bottom: 16px; color: var(--mc-muted); }
.mc-gate-large { padding: 48px; }

/* ── Type badge ──────────────────────────────────────────────── */
.mc-type-badge { display: inline-block; background: #e0e7ff; color: #3730a3; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; letter-spacing: .5px; }

/* ── CV Builder ──────────────────────────────────────────────── */
.mc-cv-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; flex-wrap: wrap; gap: 10px; }
.mc-cv-sections { display: flex; gap: 4px; overflow-x: auto; border-bottom: 2px solid var(--mc-border); margin-bottom: 20px; }
.mc-cv-nav { background: none; border: none; padding: 8px 14px; font-size: 13px; font-weight: 600; color: var(--mc-muted); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap; font-family: inherit; }
.mc-cv-nav.active { color: var(--mc-navy2); border-bottom-color: var(--mc-navy2); }
.mc-cv-panel { display: none; } .mc-cv-panel.active { display: block; }
.mc-cv-panel h4 { font-size: 15px; color: var(--mc-navy); margin-bottom: 14px; }
.mc-list-item { background: #f8fafc; border: 1.5px solid var(--mc-border); border-radius: 8px; padding: 12px; margin-bottom: 10px; display: flex; gap: 10px; }
.mc-list-item-fields { flex: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.mc-list-item-fields input, .mc-list-item-fields textarea { border: 1px solid var(--mc-border); border-radius: 6px; padding: 7px 10px; font-size: 13px; flex: 1; min-width: 120px; font-family: inherit; }
.mc-remove-btn { background: none; border: none; color: var(--mc-red); cursor: pointer; font-size: 18px; line-height: 1; flex-shrink: 0; }
.mc-remove-btn-sm { background: none; border: none; color: var(--mc-muted); cursor: pointer; font-size: 12px; padding: 0 4px; }
.mc-skill-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.mc-skill-tag { display: inline-flex; align-items: center; gap: 4px; background: #e0e7ff; color: #3730a3; font-size: 12px; padding: 4px 10px; border-radius: 99px; }
.mc-skill-tag button { background: none; border: none; cursor: pointer; color: #6366f1; font-size: 14px; line-height: 1; padding: 0; }
.mc-skill-input-row { display: flex; gap: 8px; }
.mc-skill-input-row input { flex: 1; }

/* ── AI output blocks ────────────────────────────────────────── */
.mc-ai-result { background: linear-gradient(135deg,#f8f0ff,#eff6ff); border: 1px solid #ddd6fe; border-radius: var(--mc-radius); padding: 18px; margin-top: 14px; font-size: 14px; line-height: 1.8; color: var(--mc-text); }
.mc-ai-result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.mc-ai-label { font-size: 12px; font-weight: 700; color: #7c3aed; text-transform: uppercase; letter-spacing: .5px; }
.mc-streaming { opacity: .7; font-style: italic; }
.mc-ai-loading { display: flex; align-items: center; gap: 10px; padding: 20px; color: var(--mc-muted); font-size: 14px; }
.mc-ai-loading::before { content: ''; width: 20px; height: 20px; border: 2px solid #ddd6fe; border-top-color: #7c3aed; border-radius: 50%; animation: mc-spin .7s linear infinite; flex-shrink: 0; }

/* ── Cover letter ────────────────────────────────────────────── */
.mc-cover-output { background: #fff; border: 1.5px solid var(--mc-border); border-radius: var(--mc-radius); padding: 22px; font-size: 14px; line-height: 1.85; white-space: pre-wrap; margin-top: 16px; min-height: 200px; color: var(--mc-text2); }
.mc-cover-actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }

/* ── Interview ───────────────────────────────────────────────── */
.mc-interview-card { background: var(--mc-card); border: 1.5px solid var(--mc-border); border-radius: var(--mc-radius); padding: 18px; margin-bottom: 14px; box-shadow: var(--mc-shadow); }
.mc-interview-q { font-size: 15px; font-weight: 600; color: var(--mc-navy); margin-bottom: 10px; }
.mc-interview-feedback { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 12px; font-size: 13px; margin-top: 10px; color: #166534; }

/* ── Research topics ─────────────────────────────────────────── */
.mc-topic-item { border: 1.5px solid var(--mc-border); border-radius: 10px; padding: 14px 16px; margin-bottom: 10px; background: var(--mc-card); }
.mc-topic-item h4 { font-size: 14px; font-weight: 600; color: var(--mc-navy); margin-bottom: 6px; }
.mc-topic-item p  { font-size: 13px; color: var(--mc-muted); line-height: 1.5; }
.mc-topic-controls { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }

/* ── Writing tabs ────────────────────────────────────────────── */
.mc-writing-tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--mc-border); margin-bottom: 18px; overflow-x: auto; }
.mc-writing-tab { background: none; border: none; padding: 8px 14px; font-size: 13.5px; font-weight: 600; color: var(--mc-muted); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap; font-family: inherit; }
.mc-writing-tab.active { color: var(--mc-navy2); border-bottom-color: var(--mc-navy2); }
.mc-writing-panel { display: none; } .mc-writing-panel.active { display: block; }
.mc-writing-actions { display: flex; align-items: center; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
.mc-writing-output { font-size: 14px; color: var(--mc-text); line-height: 1.8; white-space: pre-wrap; }
.mc-citation-output { font-family: 'Georgia', serif; padding: 12px; background: #fff; border: 1px solid var(--mc-border); border-radius: 6px; }

/* ── Career Roadmap ──────────────────────────────────────────── */
.mc-roadmap-section { margin-bottom: 28px; }
.mc-roadmap-section h4 { font-size: 16px; color: var(--mc-navy); margin-bottom: 14px; padding-bottom: 6px; border-bottom: 1px solid var(--mc-border); }
.mc-road-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.mc-road-card { padding: 16px; border-radius: 10px; border: 1px solid var(--mc-border); }
.mc-road-card-path { background: #eff6ff; border: 1.5px solid #bfdbfe; border-radius: 10px; }
.mc-road-card-cert { background: #fefce8; border: 1.5px solid #fde68a; border-radius: 10px; }
.mc-road-card-title { font-weight: 600; color: var(--mc-text); margin-bottom: 6px; font-size: 14px; }
.mc-road-card-provider { font-size: 12px; color: var(--mc-muted); margin-bottom: 6px; font-style: italic; }
.mc-road-card-desc { font-size: 13px; color: var(--mc-text2); line-height: 1.5; }
.mc-road-skills-list { display: flex; flex-direction: column; gap: 10px; }
.mc-skill-item { display: flex; align-items: baseline; gap: 10px; padding: 10px 14px; background: #f0fdf4; border-radius: 8px; border: 1px solid #bbf7d0; }
.mc-skill-name { font-weight: 600; color: #166534; font-size: 14px; flex-shrink: 0; }
.mc-skill-why  { font-size: 13px; color: #15803d; }
.mc-road-employers-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.mc-employer-card { padding: 12px 14px; background: #fafafa; border: 1px solid var(--mc-border); border-radius: 8px; }
.mc-employer-name   { font-weight: 600; color: var(--mc-text); font-size: 14px; margin-bottom: 2px; }
.mc-employer-sector { display: inline-block; font-size: 11px; background: #e0e7ff; color: #3730a3; padding: 1px 8px; border-radius: 99px; margin-bottom: 6px; }
.mc-employer-note   { font-size: 12px; color: var(--mc-muted); line-height: 1.4; }
.mc-road-steps { padding-left: 20px; }
.mc-road-steps li { padding: 8px 0; font-size: 14px; color: var(--mc-text); border-bottom: 1px solid #f1f5f9; line-height: 1.5; }
.mc-road-steps li:last-child { border-bottom: none; }
.mc-roadmap-regen { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-bottom: 20px; }

/* ── Certificates ────────────────────────────────────────────── */
.mc-cert-grid { display: flex; flex-direction: column; gap: 10px; }
.mc-cert-card { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: linear-gradient(135deg,#fefce8,#fef9c3); border: 1px solid #fde68a; border-radius: 10px; }
.mc-cert-card-icon {
  width: 42px; height: 42px;
  border-radius: 10px;
  background: rgba(245,158,11,.15);
  color: #92400e;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.mc-cert-card-icon svg { width: 20px; height: 20px; display: block; }
.mc-cert-card-body  { flex: 1; }
.mc-cert-card-title { font-weight: 600; color: #78350f; font-size: 14px; margin-bottom: 3px; }
.mc-cert-card-date  { font-size: 12px; color: #92400e; }
.mc-cert-rank-badge { display: inline-block; background: #c8a84b; color: #fff; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 99px; margin-right: 6px; }

/* ── Leaderboard ─────────────────────────────────────────────── */
.mc-lb-course { display: inline-block; font-size: 11px; background: #dbeafe; color: #1d4ed8; padding: 1px 7px; border-radius: 99px; margin-left: 6px; }
.mc-lb-controls { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.mc-lb-controls select, .mc-lb-controls input[type=month] { padding: 6px 10px; border: 1px solid var(--mc-border); border-radius: 6px; font-size: 13px; color: var(--mc-text); background: #fff; font-family: inherit; }
.mc-my-rank { background: #eff6ff; border: 1px solid #bfdbfe; padding: 10px 16px; border-radius: 8px; font-size: 14px; color: #1d4ed8; margin-bottom: 12px; }

/* ── Spinner ─────────────────────────────────────────────────── */
.mc-spinner { width: 32px; height: 32px; border: 3px solid #e2e8f0; border-top-color: #1e40af; border-radius: 50%; animation: mc-spin 0.7s linear infinite; margin: 0 auto 10px; }
@keyframes mc-spin { to { transform: rotate(360deg); } }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .mc-stats-row { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .mc-sidebar {
    position: fixed;
    left: 0; top: 0; bottom: 0;
    transform: translateX(-100%);
    z-index: 300;
    /* Push content above the mobile bottom nav so logout is never hidden */
    padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px) + 12px);
  }
  .mc-sidebar.mc-sidebar-open {
    transform: translateX(0);
    box-shadow: var(--mc-shadow-lg);
  }
  .mc-topbar { display: flex; }
  .mc-main {
    padding: 16px 0;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .mc-stats-row { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .mc-road-cards, .mc-road-employers-grid { grid-template-columns: 1fr; }
  .mc-writing-tabs { flex-wrap: wrap; }
  .mc-cert-card { flex-wrap: wrap; }
  .mc-main { padding: 12px 0; }
}

/* ══════════════════════════════════════════════════════════════════
   MOBILE BOTTOM NAV  (v1.2 — mirrors MSM AI mobile nav pattern)
   Hidden on desktop; shown on screens ≤ 768px
══════════════════════════════════════════════════════════════════ */
.mc-mob-nav {
  display: none; /* shown via media query below */
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 58px;
  background: var(--mc-navy);
  border-top: 1px solid rgba(255,255,255,.10);
  z-index: 400;
  align-items: center;
  justify-content: space-around;
  padding: 0 4px;
  /* Safe area for notched phones */
  padding-bottom: env(safe-area-inset-bottom, 0);
}

.mc-mob-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: none;
  border: none;
  color: rgba(255,255,255,.50);
  font-family: inherit;
  font-size: 10px;
  cursor: pointer;
  padding: 6px 2px;
  border-radius: 8px;
  transition: color .15s, background .15s;
  position: relative;
  min-width: 0;
}
.mc-mob-nav-item:hover {
  color: rgba(255,255,255,.80);
  background: rgba(255,255,255,.06);
}
.mc-mob-nav-item.mc-mob-active {
  color: var(--mc-gold);
}
/* Active dot under the label */
.mc-mob-nav-item.mc-mob-active::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px; height: 4px;
  background: var(--mc-gold);
  border-radius: 50%;
  opacity: .8;
}
.mc-mob-nav-item.mc-mob-active .mc-mob-icon {
  filter: drop-shadow(0 0 4px rgba(240,165,0,.45));
}
/* "More" button glows gold when current tab is not in bottom 4 */
.mc-mob-nav-item#mc-mob-menu-btn.mc-mob-menu-current {
  color: var(--mc-gold);
}
.mc-mob-nav-item#mc-mob-menu-btn.mc-mob-menu-current .mc-mob-icon {
  filter: drop-shadow(0 0 4px rgba(240,165,0,.45));
}

.mc-mob-icon {
  width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto;
}
.mc-mob-icon svg { width: 20px; height: 20px; display: block; }
.mc-mob-label {
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
/* Challenge bottom nav glow pulse */
.mc-mob-badge {
  position: absolute;
  top: 5px; right: 9px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #f59e0b;
  box-shadow: 0 0 0 0 rgba(245,158,11,.6);
  animation: mc-chal-nav-pulse 2s ease-in-out infinite;
  line-height: 1.4;
}

/* ── Sidebar nav item — smoother transitions (upgrade existing rules) ── */
.mc-nav-item {
  transition: background .18s ease, color .18s ease, border-left-color .18s ease;
}
.mc-nav-item.active::before {
  transition: height .2s ease;
}

/* ── Main area needs bottom padding on mobile to clear the bottom nav ── */
@media (max-width: 768px) {
  .mc-mob-nav {
    display: flex;
  }
  .mc-main {
    padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px) + 16px);
  }
  /* Hide the topbar hamburger since bottom nav has "More" now */
  /* Keep it visible for branding purposes but simplify */
  .mc-topbar {
    padding: 10px 14px;
  }
}


/* ══════════════════════════════════════════════════════════════════
   PRICING  —  v1.3.7 premium redesign
   Classes emitted by templates/pricing.php
══════════════════════════════════════════════════════════════════ */

/* ── Wrapper ─────────────────────────────────────────────────── */
.mc-pricing-wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 24px 48px;
}

/* ── Header ──────────────────────────────────────────────────── */
.mc-pricing-header {
  text-align: center;
  padding: 48px 24px 36px;
  position: relative;
}
.mc-pricing-header::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 560px; height: 220px;
  background: radial-gradient(ellipse at 50% 0%, rgba(240,165,0,.13) 0%, transparent 70%);
  pointer-events: none;
  border-radius: 50%;
}
.mc-pricing-header h2 {
  font-family: 'DM Serif Display', serif;
  font-size: clamp(24px, 4vw, 34px);
  font-weight: 400;
  color: var(--mc-navy);
  margin-bottom: 10px;
  position: relative;
}
.mc-pricing-header > p {
  font-size: 15px;
  color: var(--mc-muted);
  margin-bottom: 28px;
  position: relative;
}

/* ── Toggle pill ─────────────────────────────────────────────── */
.mc-pricing-toggle {
  display: inline-flex;
  align-items: center;
  background: var(--mc-card);
  border: 1.5px solid var(--mc-border);
  border-radius: 99px;
  padding: 4px;
  gap: 2px;
  box-shadow: 0 1px 4px rgba(15,32,64,.07);
  position: relative;
}
.mc-ptoggle {
  background: transparent;
  border: none;
  border-radius: 99px;
  padding: 8px 22px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--mc-muted);
  cursor: pointer;
  transition: background .2s, color .2s, box-shadow .2s;
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.mc-ptoggle.active {
  background: var(--mc-navy);
  color: #fff;
  box-shadow: 0 2px 8px rgba(15,32,64,.25);
}
.mc-ptoggle:not(.active):hover {
  color: var(--mc-navy2);
}
.mc-save-badge {
  display: inline-block;
  background: linear-gradient(135deg, #16a34a, #15803d);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 99px;
  letter-spacing: .3px;
}

/* ── Card grid ───────────────────────────────────────────────── */
.mc-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: start;
  margin-bottom: 32px;
}

/* ── Plan card base ──────────────────────────────────────────── */
.mc-plan-card {
  background: var(--mc-card);
  border: 1.5px solid var(--mc-border);
  border-radius: var(--mc-radius-lg);
  padding: 28px 24px 24px;
  position: relative;
  transition: box-shadow .22s, transform .22s, border-color .22s;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mc-plan-card:hover {
  box-shadow: 0 8px 28px rgba(15,32,64,.11);
  transform: translateY(-2px);
}

/* ── Featured (Basic) card ───────────────────────────────────── */
.mc-plan-featured {
  border-color: var(--mc-gold);
  box-shadow: 0 4px 24px rgba(240,165,0,.18);
  background: linear-gradient(160deg, #fffdf5 0%, var(--mc-card) 60%);
  transform: translateY(-6px);
  z-index: 2;
}
.mc-plan-featured:hover {
  box-shadow: 0 10px 36px rgba(240,165,0,.25);
  transform: translateY(-9px);
}

/* ── Pro card ────────────────────────────────────────────────── */
.mc-plan-pro {
  border-color: #c4b5fd;
  background: linear-gradient(160deg, #faf5ff 0%, var(--mc-card) 55%);
}
.mc-plan-pro:hover {
  box-shadow: 0 8px 28px rgba(124,58,237,.12);
}

/* ── "Most Popular" badge ────────────────────────────────────── */
.mc-plan-badge {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, var(--mc-gold), #d4870a);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 99px;
  letter-spacing: .6px;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(240,165,0,.45);
}

/* ── Plan name ───────────────────────────────────────────────── */
.mc-plan-name {
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  color: var(--mc-navy);
  margin-bottom: 14px;
  font-weight: 400;
}

/* ── Price block ─────────────────────────────────────────────── */
.mc-plan-price {
  margin-bottom: 20px;
  line-height: 1;
}
.mc-price-amt {
  font-family: 'DM Serif Display', serif;
  font-size: 28px;
  color: var(--mc-navy);
  font-weight: 400;
  letter-spacing: -.5px;
}
.mc-price-per {
  font-size: 13px;
  color: var(--mc-muted);
  margin-left: 3px;
  font-weight: 500;
}
.mc-monthly-equiv {
  margin-top: 5px;
  font-size: 12px;
  color: var(--mc-green);
  font-weight: 600;
}

/* ── Feature list ────────────────────────────────────────────── */
.mc-plan-features {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex: 1;
}
.mc-plan-features li {
  font-size: 13.5px;
  color: var(--mc-text2);
  line-height: 1.4;
  padding-left: 0;
}
/* Style the ✓ check items */
.mc-plan-features li:not([class]) {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
/* Green checks */
.mc-plan-features li:is([class=""])::first-letter,
.mc-plan-features li {
  /* no first-letter trick — we use the unicode chars from PHP */
}
/* Override unicode ✓ and ✗ with styled pseudo-badges */
.mc-plan-features li:not(.mc-feature-x) {
  /* included items */
  color: var(--mc-text2);
}
/* Re-style all list items using attribute-less targeting on the text content */
/* ✓ items — green tint */
.mc-plan-features li:not(:last-child),
.mc-plan-features li {
  position: relative;
}
/* We can't change the HTML ✓/✗ chars easily, but we CAN style the li 
   based on whether they start with ✓ or ✗ using :has if needed.
   Best approach: simply style all items cleanly and rely on ✗ being 
   visually distinguished via muted color in JS-free CSS. */

/* Items starting with ✗ — muted / strikethrough feel */
.mc-plan-features li:has(+ li) {
  /* not a direct selector for ✗ without JS — see below note */
}

/* Target ✗ items via the unicode character approach:
   We style ALL li items, then use the :nth trick to dim ✗ rows.
   Because the ✓/✗ is in text content, we apply a class via JS
   in mcPriceToggle or we just handle via the general li CSS. */

/* Simple clean approach — let the ✓ / ✗ glyph carry the meaning */
.mc-plan-features li {
  padding: 0;
  /* Wrap-safe */
  word-break: break-word;
}

/* Dim lines that start with ✗ */
.mc-plan-features li:where([style]) { opacity: .5; }

/* JS will add .mc-feature-no class for ✗ lines if available,
   but even without it, let's use CSS to visually dim them.
   Since we control the HTML output, we can use attribute selectors
   on data or the content itself via ::first-line — not possible.
   Use a clean fallback: all items styled nicely, and ✗ items
   will just appear with the ✗ glyph in muted slate. */

/* ── Better approach: style ✓ rows green, ✗ rows muted ───────── */
/* We'll inject classes via a tiny inline <style> trick in the PHP,
   but for CSS-only: let's just make all items look clean and use
   color distinction from the ✓/✗ glyphs themselves */

.mc-plan-features li:first-child { margin-top: 2px; }

/* Separator between included and excluded features */
.mc-plan-features li + li { border-top: none; }

/* ── CTA button area ─────────────────────────────────────────── */
.mc-plan-card .mc-btn {
  margin-top: auto;
}

/* ── "Current plan" indicator ────────────────────────────────── */
.mc-current-plan {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--mc-green);
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  width: 100%;
  text-align: center;
}

/* ── Footer trust bar ────────────────────────────────────────── */
.mc-pricing-footer {
  text-align: center;
  padding: 20px 16px;
  border-top: 1px solid var(--mc-border);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mc-pricing-footer p {
  font-size: 13.5px;
  color: var(--mc-muted);
  line-height: 1.5;
}
.mc-pricing-footer a {
  color: var(--mc-navy2);
  text-decoration: none;
  font-weight: 600;
}
.mc-pricing-footer a:hover { text-decoration: underline; }

/* ── Entrance animations ─────────────────────────────────────── */
@keyframes mc-fade-up {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
.mc-pricing-header {
  animation: mc-fade-up .45s ease both;
}
.mc-pricing-grid .mc-plan-card:nth-child(1) {
  animation: mc-fade-up .45s .08s ease both;
}
.mc-pricing-grid .mc-plan-card:nth-child(2) {
  animation: mc-fade-up .45s .16s ease both;
}
.mc-pricing-grid .mc-plan-card:nth-child(3) {
  animation: mc-fade-up .45s .24s ease both;
}

/* ── Responsive pricing ──────────────────────────────────────── */
@media (max-width: 860px) {
  .mc-pricing-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
  }
  .mc-plan-featured {
    transform: none;
    order: -1; /* show featured card first on mobile */
  }
  .mc-plan-featured:hover { transform: translateY(-2px); }
  .mc-pricing-wrap { padding: 0 16px 40px; }
  .mc-pricing-header { padding: 32px 16px 28px; }
}


/* ══════════════════════════════════════════════════════════════════
   AUTH / LOGIN  —  premium card polish
══════════════════════════════════════════════════════════════════ */

.mc-auth-wrap {
  max-width: 440px;
  margin: 40px auto;
  background: var(--mc-card);
  border: 1.5px solid var(--mc-border);
  border-radius: var(--mc-radius-lg);
  padding: 36px 36px 32px;
  box-shadow: 0 4px 32px rgba(15,32,64,.10);
  animation: mc-fade-up .4s ease both;
}

/* Tabs */
.mc-auth-tabs {
  display: flex;
  border-bottom: none;
  margin-bottom: 28px;
  gap: 4px;
  background: var(--mc-bg);
  border-radius: 10px;
  padding: 4px;
}
.mc-tab-btn {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: none;
  border-radius: 8px;
  padding: 9px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mc-muted);
  cursor: pointer;
  transition: background .18s, color .18s, box-shadow .18s;
  font-family: inherit;
  margin-bottom: 0;
}
.mc-tab-btn.active {
  background: var(--mc-card);
  color: var(--mc-navy);
  box-shadow: 0 1px 4px rgba(15,32,64,.10);
}
.mc-tab-btn:not(.active):hover {
  color: var(--mc-navy2);
}

/* Headings inside auth panels */
.mc-panel h2 {
  font-size: 21px;
  margin-bottom: 5px;
  color: var(--mc-navy);
  font-family: 'DM Serif Display', serif;
}
.mc-auth-sub {
  color: var(--mc-muted);
  font-size: 14px;
  margin-bottom: 22px;
}

/* Input fields — lift from generic */
.mc-field label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--mc-text2);
  letter-spacing: .2px;
}
.mc-field input,
.mc-field select,
.mc-field textarea {
  border-radius: 9px;
  border: 1.5px solid var(--mc-border);
  padding: 10px 13px;
  font-size: 14px;
  transition: border-color .18s, box-shadow .18s;
  background: #fafbfd;
}
.mc-field input:focus,
.mc-field select:focus,
.mc-field textarea:focus {
  border-color: var(--mc-navy2);
  box-shadow: 0 0 0 3px rgba(26,58,107,.10);
  outline: none;
  background: #fff;
}

/* Responsive auth */
@media (max-width: 520px) {
  .mc-auth-wrap {
    margin: 12px 10px 40px;
    padding: 22px 16px 32px;
    border-radius: var(--mc-radius);
    /* No height cap — let the page scroll naturally */
    max-height: none;
    overflow: visible;
  }
  /* First Name / Last Name stack vertically on narrow screens */
  .mc-field-row {
    flex-direction: column;
    gap: 0;
  }
}


/* ══════════════════════════════════════════════════════════════════
   SIDEBAR NAV  —  richer hover / active states
══════════════════════════════════════════════════════════════════ */

/* Smoother active pill */
.mc-nav-item.active {
  background: var(--mc-sidebar-active);
  color: #fff;
}
.mc-nav-item.active::before {
  background: var(--mc-gold);
  border-radius: 0 4px 4px 0;
  width: 3px;
  height: 65%;
  box-shadow: 0 0 8px rgba(240,165,0,.5);
}

/* Hover glow on icon */
.mc-nav-item:hover .mc-nav-icon {
  color: rgba(255,255,255,.95);
}

/* Upgrade button glow */
.mc-btn-upgrade {
  background: var(--mc-gold);
  color: #000;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(240,165,0,.35);
  transition: background .18s, box-shadow .18s, transform .12s;
}
.mc-btn-upgrade:hover {
  background: var(--mc-gold2);
  box-shadow: 0 4px 14px rgba(240,165,0,.45);
  transform: translateY(-1px);
}

/* Tier pill glow for basic/pro */
.mc-tier-basic {
  box-shadow: 0 0 10px rgba(240,165,0,.3);
}
.mc-tier-pro {
  box-shadow: 0 0 10px rgba(167,139,250,.35);
}

/* AI credits card */
.mc-ai-credits {
  transition: background .18s;
}
.mc-ai-credits:hover {
  background: rgba(255,255,255,.10);
}

/* ── Brand mark subtle pulse on hover ────────────────────────── */
.mc-sidebar-brand:hover .mc-brand-mark {
  box-shadow: 0 4px 16px rgba(240,165,0,.55);
  transition: box-shadow .25s;
}


/* ══════════════════════════════════════════════════════════════════
   PANEL TRANSITIONS  —  smoother tab switches
══════════════════════════════════════════════════════════════════ */

.mc-tab-panel {
  animation: mc-fade-up .28s ease both;
}
.mc-tab-panel.active {
  display: block;
}


/* ══════════════════════════════════════════════════════════════════
   STAT CARDS  —  accent top border on hover
══════════════════════════════════════════════════════════════════ */

.mc-stat-card {
  border-top: 3px solid transparent;
  transition: box-shadow .2s, transform .15s, border-top-color .2s;
}
.mc-stat-card:hover {
  border-top-color: var(--mc-gold);
}


/* ══════════════════════════════════════════════════════════════════
   MOBILE BOTTOM NAV  —  active item glow
══════════════════════════════════════════════════════════════════ */

.mc-mob-nav-item.mc-mob-active .mc-mob-icon svg {
  filter: drop-shadow(0 0 5px rgba(240,165,0,.5));
}
.mc-mob-nav-item.mc-mob-active .mc-mob-label {
  color: var(--mc-gold);
  font-weight: 700;
}


/* ══════════════════════════════════════════════════════════════════
   PRICING — FEATURE LIST:  colour-code ✓ vs ✗ rows
   Injected as an inline <style> companion; works as a pure-CSS 
   progressive enhancement using :has() (Chrome 105+, Safari 15.4+)
══════════════════════════════════════════════════════════════════ */

/* Rows that start with the ✓ glyph */
.mc-plan-features li:has(> strong),
.mc-plan-features li {
  /* base reset already handled above */
}

/* 
  We don't have a CSS-only way to target ✓ vs ✗ text content.
  The pricing.php can easily add a class — but without changing PHP
  we add a tiny JS shim at the bottom of this file that runs 
  immediately and adds .mc-fi (included) / .mc-fx (excluded) classes.
  The shim is inlined as a <style>+<script> noop here and lives in
  the pricing template script block instead.
  CSS rules are ready and waiting:
*/
.mc-plan-features li.mc-fi {
  color: var(--mc-text2);
}
.mc-plan-features li.mc-fx {
  color: var(--mc-faint);
  text-decoration: none;
  opacity: .65;
}



/* ══════════════════════════════════════════════════════════════════
   CV BUILDER  —  premium tab redesign
══════════════════════════════════════════════════════════════════ */

.mc-cv-builder { padding-bottom: 12px; }

/* Header row */
.mc-cv-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}
.mc-cv-header h3 { font-size: 18px; }
.mc-cv-ai-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--mc-muted);
  background: var(--mc-bg);
  border: 1px solid var(--mc-border);
  border-radius: 99px;
  padding: 3px 11px;
  margin-top: 4px;
  font-weight: 500;
}
.mc-cv-ai-pill #mc-cv-ai-count { color: var(--mc-navy2); font-weight: 700; }

/* ── Tab strip ── */
.mc-cv-tabs {
  display: flex;
  gap: 2px;
  background: var(--mc-bg);
  border-radius: 12px;
  padding: 4px;
  border: 1px solid var(--mc-border);
  margin-bottom: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.mc-cv-tabs::-webkit-scrollbar { display: none; }

.mc-cv-tab {
  flex: 1;
  min-width: 80px;
  background: transparent;
  border: none;
  border-radius: 9px;
  padding: 9px 12px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-muted);
  cursor: pointer;
  transition: background .18s, color .18s, box-shadow .18s;
  white-space: nowrap;
  text-align: center;
}
.mc-cv-tab:hover:not(.active) {
  color: var(--mc-navy);
  background: rgba(15,32,64,.05);
}
.mc-cv-tab.active {
  background: var(--mc-navy);
  color: #fff;
  box-shadow: 0 2px 8px rgba(15,32,64,.22);
}

/* ── Panel container ── */
.mc-cv-panels {
  border: 1.5px solid var(--mc-border);
  border-top: none;
  border-radius: 0 0 var(--mc-radius) var(--mc-radius);
  background: var(--mc-card);
  overflow: hidden;
}

/* ── Individual panel ── */
.mc-cv-panel {
  display: none;
  opacity: 0;
  transform: translateY(6px);
}
.mc-cv-panel.active {
  display: block;
  animation: mc-cv-panel-in .22s ease forwards;
}
@keyframes mc-cv-panel-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.mc-cv-panel-inner {
  padding: 24px 22px 22px;
}
.mc-cv-panel-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--mc-navy);
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--mc-border);
}

/* ── AI thinking state ── */
.mc-ai-thinking {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  color: var(--mc-muted);
  padding: 12px 0;
}


/* ══════════════════════════════════════════════════════════════════
   LEADERBOARD  —  podium redesign
══════════════════════════════════════════════════════════════════ */

.mc-lb-wrap {
  /* inherits mc-section-card padding */
}

/* ── Controls ── */
.mc-lb-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
/* (mc-lb-scope-toggle / mc-lb-scope-btn removed — replaced by pill switcher) */
.mc-lb-filters-legacy {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.mc-lb-filters input,
.mc-lb-filters select {
  font-size: 13px;
  border-radius: 8px;
  border: 1.5px solid var(--mc-border);
  padding: 7px 10px;
  background: var(--mc-card);
  color: var(--mc-text);
  font-family: inherit;
}

/* ── Loading ── */
.mc-lb-loading {
  text-align: center;
  padding: 32px;
  color: var(--mc-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 14px;
}

/* ══════════════════════════════════════════════════════════════════
   PODIUM
══════════════════════════════════════════════════════════════════ */

/* Rankings panel top padding below pill bar separator */
#mc-lb-panel-rankings { padding-top: 14px; }

.mc-lb-podium {
  background: linear-gradient(160deg, #0f1a2e 0%, #1a2740 50%, #0f1a2e 100%);
  border-radius: var(--mc-radius-lg);
  padding: 28px 16px 0;
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
/* Star/sparkle bg */
.mc-lb-podium::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.5) 1px, transparent 1px),
    radial-gradient(circle, rgba(255,255,255,.3) 1px, transparent 1px);
  background-size: 60px 60px, 30px 30px;
  background-position: 0 0, 15px 15px;
  opacity: .08;
  pointer-events: none;
}

.mc-lb-podium-inner {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  position: relative;
  z-index: 1;
}

/* ── Each podium slot ── */
.mc-podium-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
  max-width: 130px;
  /* Slots start hidden — JS adds .mc-podium-slot--in to trigger entrance */
  opacity: 0;
  transform: translateY(30px);
}
.mc-podium-slot.mc-podium-slot--in {
  animation: mc-podium-rise .5s cubic-bezier(.34,1.28,.64,1) both;
}
@keyframes mc-podium-rise {
  from { opacity: 0; transform: translateY(30px) scale(.88); }
  to   { opacity: 1; transform: translateY(0)    scale(1);   }
}
/* Gold slot gets a shimmer sweep after it rises */
.mc-podium-1.mc-podium-slot--in {
  animation: mc-podium-rise .55s cubic-bezier(.34,1.28,.64,1) both;
}
.mc-podium-1.mc-podium-slot--in .mc-podium-block-1::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.25) 50%, transparent 100%);
  animation: mc-gold-sweep .7s .6s ease both;
  border-radius: 8px 8px 0 0;
  pointer-events: none;
}
@keyframes mc-gold-sweep {
  from { transform: translateX(-100%); opacity: 1; }
  to   { transform: translateX(150%);  opacity: 0; }
}
.mc-podium-crown {
  font-size: 24px;
  line-height: 1;
  margin-bottom: 2px;
  animation: mc-crown-bob 2.4s ease-in-out infinite;
}
@keyframes mc-crown-bob {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-5px); }
}

/* Avatar */
.mc-podium-avatar-wrap {
  position: relative;
  width: 62px; height: 62px;
}
.mc-podium-1 .mc-podium-avatar-wrap {
  width: 74px; height: 74px;
}
.mc-podium-avatar {
  width: 100%; height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(255,255,255,.2);
}
.mc-podium-1 .mc-podium-avatar { border-color: var(--mc-gold); box-shadow: 0 0 18px rgba(200,168,75,.55); }
.mc-podium-2 .mc-podium-avatar { border-color: #94a3b8; }
.mc-podium-3 .mc-podium-avatar { border-color: #cd7f32; }
.mc-podium-me .mc-podium-avatar { box-shadow: 0 0 14px rgba(99,192,255,.7); }

.mc-podium-medal {
  position: absolute;
  bottom: -4px; right: -4px;
  font-size: 16px;
  line-height: 1;
}

/* Name & pts */
.mc-podium-name {
  font-size: 12.5px;
  font-weight: 700;
  color: #e2e8f0;
  text-align: center;
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mc-podium-1 .mc-podium-name { font-size: 14px; color: #fff; }
.mc-podium-pts {
  font-size: 12px;
  color: rgba(255,255,255,.55);
  font-weight: 600;
  text-align: center;
}
.mc-podium-1 .mc-podium-pts { color: var(--mc-gold); font-size: 14px; font-weight: 700; }

/* Podium blocks */
.mc-podium-block {
  width: 100%;
  border-radius: 8px 8px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 0 14px;
  margin-top: 8px;
  position: relative;
  overflow: hidden;
}
.mc-podium-block-1 {
  height: 80px;
  background: linear-gradient(180deg, var(--mc-gold) 0%, #a07020 100%);
  box-shadow: 0 -4px 20px rgba(200,168,75,.4);
}
.mc-podium-block-2 {
  height: 58px;
  background: linear-gradient(180deg, #94a3b8 0%, #64748b 100%);
}
.mc-podium-block-3 {
  height: 42px;
  background: linear-gradient(180deg, #cd7f32 0%, #92540a 100%);
}
.mc-podium-rank {
  font-size: 18px;
  font-weight: 800;
  color: rgba(255,255,255,.9);
}

/* ── My rank banner ── */
.mc-my-rank {
  background: linear-gradient(90deg, rgba(200,168,75,.12), transparent);
  border-left: 3px solid var(--mc-gold);
  border-radius: 0 8px 8px 0;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mc-text2);
  margin-bottom: 14px;
}
.mc-my-rank strong { color: var(--mc-gold); }

/* ── List rows (4th+) ── */
.mc-lb-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mc-lb-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--mc-card);
  border: 1.5px solid var(--mc-border);
  transition: background .15s, transform .12s;
}
.mc-lb-row:hover { background: var(--mc-bg); transform: translateX(2px); }
.mc-lb-me {
  border-color: var(--mc-gold);
  background: rgba(200,168,75,.05);
}
.mc-lb-ghost { opacity: .6; }

/* ── Rank movement delta badge ──────────────────────────────────────────── */
.mc-lb-rank-delta-wrap {
  flex-shrink: 0;
  width: 38px;
  display: flex;
  justify-content: center;
}
.mc-rank-delta {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .01em;
  padding: 2px 5px;
  border-radius: 20px;
  line-height: 1;
  white-space: nowrap;
}
.mc-rank-up {
  background: rgba(16,185,129,.15);
  color: #10b981;
}
.mc-rank-down {
  background: rgba(239,68,68,.13);
  color: #ef4444;
}
.mc-rank-same {
  color: #6b7280;
  background: rgba(107,114,128,.1);
  font-weight: 500;
}
.mc-rank-new {
  background: rgba(139,92,246,.15);
  color: #8b5cf6;
  font-size: .6rem;
}


.mc-lb-rank-num {
  font-family: 'DM Serif Display', serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--mc-muted);
  width: 28px;
  text-align: center;
  flex-shrink: 0;
}
.mc-lb-av { flex-shrink: 0; }
.mc-lb-avatar-img {
  width: 36px; height: 36px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--mc-border);
  display: block;
}
.mc-lb-avatar-ghost {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  background: var(--mc-bg);
  border: 2px solid var(--mc-border);
}
.mc-lb-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mc-lb-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--mc-navy);
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mc-lb-meta {
  font-size: 11.5px;
  color: var(--mc-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mc-lb-uni-hint {
  display: block;
  font-size: 10.5px;
  color: var(--mc-muted);
  opacity: 0.7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
  letter-spacing: 0.01em;
}
.mc-lb-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.mc-lb-streak-badge {
  font-size: 12px;
  font-weight: 700;
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #c2410c;
  border-radius: 99px;
  padding: 2px 9px;
}
.mc-lb-pts-val {
  font-size: 14px;
  font-weight: 700;
  color: var(--mc-navy);
  white-space: nowrap;
}
.mc-lb-pts-val em {
  font-style: normal;
  font-size: 11px;
  font-weight: 500;
  color: var(--mc-muted);
  margin-left: 2px;
}
.mc-me-tag, .mc-ghost-tag {
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: .5px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.mc-me-tag    { background: var(--mc-gold); color: #000; }
.mc-ghost-tag { background: #e2e8f0; color: #64748b; }
.mc-lb-course {
  margin-left: 4px;
  font-size: 10.5px;
  color: var(--mc-muted);
}
.mc-lb-empty {
  text-align: center;
  color: var(--mc-muted);
  font-size: 14px;
  padding: 24px;
}

/* Responsive */
@media (max-width: 480px) {
  .mc-lb-podium { padding: 20px 8px 0; }
  .mc-podium-slot { max-width: 100px; }
  .mc-podium-1 .mc-podium-avatar-wrap { width: 62px; height: 62px; }
  .mc-lb-row { gap: 8px; padding: 9px 10px; }
  .mc-lb-meta { display: none; }
  .mc-cv-tab { font-size: 12px; padding: 8px 8px; min-width: 60px; }
}



/* ══════════════════════════════════════════════════════════════════
   CV BUILDER  —  multi-step wizard  (replaces old tab CSS)
══════════════════════════════════════════════════════════════════ */

/* ── Top bar ─────────────────────────────────────────────────── */
.mc-cv-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 18px 20px 14px;
  border-bottom: 1.5px solid var(--mc-border);
  margin-bottom: 0;
}
.mc-cv-topbar-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.mc-cv-topbar-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-cv-ai-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: var(--mc-muted);
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 99px;
  padding: 3px 11px;
  white-space: nowrap;
}
.mc-cv-ai-badge strong { color: var(--mc-gold2); font-weight: 700; }
.mc-cv-topbar-actions {
  display: flex;
  gap: 8px;
}

/* ── Step indicator ─────────────────────────────────────────── */
.mc-cv-stepper {
  display: flex;
  align-items: center;
  padding: 18px 20px 14px;
  border-bottom: 1.5px solid var(--mc-border);
  overflow-x: auto;
  scrollbar-width: none;
  gap: 0;
  background: var(--mc-bg);
}
.mc-cv-stepper::-webkit-scrollbar { display: none; }

.mc-cv-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  flex-shrink: 0;
  min-width: 58px;
  transition: opacity .18s;
  opacity: .45;
  position: relative;
}
.mc-cv-step.active  { opacity: 1; }
.mc-cv-step.done    { opacity: .75; }

.mc-cv-step-dot {
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 2px solid var(--mc-border);
  background: var(--mc-card);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--mc-muted);
  transition: background .2s, border-color .2s, color .2s;
  position: relative;
}
.mc-cv-step.active .mc-cv-step-dot {
  border-color: var(--mc-navy);
  background: var(--mc-navy);
  color: #fff;
  box-shadow: 0 2px 10px rgba(15,32,64,.3);
}
.mc-cv-step.done .mc-cv-step-dot {
  border-color: var(--mc-green);
  background: var(--mc-green);
  color: #fff;
}

/* Show check icon when done, number otherwise */
.mc-cv-step-check { display: none; }
.mc-cv-step-num   { display: block; }
.mc-cv-step.done .mc-cv-step-check { display: block; }
.mc-cv-step.done .mc-cv-step-num   { display: none; }

.mc-cv-step-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--mc-muted);
  text-align: center;
  white-space: nowrap;
}
.mc-cv-step.active .mc-cv-step-label { color: var(--mc-navy); }

/* Connector line between steps */
.mc-cv-step-line {
  flex: 1;
  height: 2px;
  background: var(--mc-border);
  min-width: 14px;
  align-self: flex-start;
  margin-top: 14px;
}

/* ── Wizard panel ────────────────────────────────────────────── */
.mc-cv-wizard {
  background: var(--mc-card);
  overflow: hidden; /* clip sliding panels */
  position: relative;
}
.mc-cv-wizard-step {
  display: none;
}
.mc-cv-wizard-step.active { display: block; }
.mc-cv-wizard-step.mc-cv-enter-fwd  { animation: mc-cv-slide-in-fwd  .28s cubic-bezier(.25,.46,.45,.94) both; }
.mc-cv-wizard-step.mc-cv-enter-back { animation: mc-cv-slide-in-back .28s cubic-bezier(.25,.46,.45,.94) both; }
.mc-cv-wizard-step.mc-cv-exit-fwd   { animation: mc-cv-slide-out-fwd  .2s cubic-bezier(.25,.46,.45,.94) both; pointer-events: none; }
.mc-cv-wizard-step.mc-cv-exit-back  { animation: mc-cv-slide-out-back .2s cubic-bezier(.25,.46,.45,.94) both; pointer-events: none; }

@keyframes mc-cv-slide-in-fwd  { from { opacity:0; transform:translateX(40px);  } to { opacity:1; transform:translateX(0); } }
@keyframes mc-cv-slide-in-back { from { opacity:0; transform:translateX(-40px); } to { opacity:1; transform:translateX(0); } }
@keyframes mc-cv-slide-out-fwd  { from { opacity:1; transform:translateX(0); } to { opacity:0; transform:translateX(-30px); } }
@keyframes mc-cv-slide-out-back { from { opacity:1; transform:translateX(0); } to { opacity:0; transform:translateX(30px);  } }

/* Step header */
.mc-cv-step-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 22px 0;
  margin-bottom: 18px;
}
.mc-cv-step-icon {
  font-size: 24px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}
.mc-cv-step-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--mc-navy);
  margin-bottom: 3px;
}
.mc-cv-step-sub {
  font-size: 13px;
  color: var(--mc-muted);
  line-height: 1.5;
}

/* Step body */
.mc-cv-wizard-body {
  padding: 0 22px 22px;
}

.mc-textarea-tall { min-height: 130px; }

/* ── Entry cards (edu / exp / refs) ──────────────────────────── */
.mc-cv-entry-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; }

.mc-cv-entry-card {
  background: var(--mc-bg);
  border: 1.5px solid var(--mc-border);
  border-radius: var(--mc-radius);
  padding: 16px 16px 14px;
  position: relative;
  transition: border-color .15s;
}
.mc-cv-entry-card:hover { border-color: var(--mc-navy2); }

.mc-cv-entry-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.mc-cv-entry-icon { font-size: 18px; }
.mc-cv-entry-remove {
  width: 26px; height: 26px;
  border: none;
  background: #fee2e2;
  color: #dc2626;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}
.mc-cv-entry-remove:hover { background: #fecaca; }

.mc-field-sm { flex: 0 0 130px !important; }

.mc-cv-empty-hint {
  font-size: 13.5px;
  color: var(--mc-muted);
  font-style: italic;
  margin-bottom: 8px;
}

/* ── Skills ──────────────────────────────────────────────────── */
.mc-cv-skills-wrap { margin-bottom: 14px; }
.mc-skills-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.mc-skill-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 600;
  border: 1.5px solid transparent;
}
.mc-skill-tag em {
  font-style: normal;
  font-size: 11px;
  opacity: .7;
  font-weight: 500;
}
/* Skill level colour coding */
.mc-skill-bg { background: #f1f5f9; border-color: #cbd5e1; color: #475569; }
.mc-skill-im { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.mc-skill-ad { background: #f0fdf4; border-color: #86efac; color: #15803d; }
.mc-skill-ex { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.mc-remove-btn-sm {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 11px;
  line-height: 1;
  opacity: .5;
  padding: 0 0 0 2px;
}
.mc-remove-btn-sm:hover { opacity: 1; }

/* Checkbox label */
.mc-cv-checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--mc-text2);
  cursor: pointer;
}

/* ── Bottom nav bar ──────────────────────────────────────────── */
.mc-cv-nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-top: 1.5px solid var(--mc-border);
  background: var(--mc-bg);
  border-radius: 0 0 var(--mc-radius-lg) var(--mc-radius-lg);
  gap: 12px;
}
.mc-cv-nav-step-count {
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-muted);
  font-variant-numeric: tabular-nums;
}

/* ── Toast notification ──────────────────────────────────────── */
.mc-cv-toast {
  position: fixed;
  bottom: 28px;
  right: 20px;
  z-index: 9999;
  padding: 10px 20px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: 0 4px 18px rgba(0,0,0,.15);
  transition: opacity .3s;
  pointer-events: none;
}
.mc-cv-toast-success { background: #f0fdf4; border: 1.5px solid #86efac; color: #15803d; }
.mc-cv-toast-error   { background: #fef2f2; border: 1.5px solid #fca5a5; color: #dc2626; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 600px) {
  .mc-cv-stepper { padding: 12px 14px 10px; }
  .mc-cv-step-label { font-size: 10px; }
  .mc-cv-step-line { min-width: 8px; }
  .mc-cv-topbar { padding: 14px 14px 12px; }
  .mc-cv-wizard-body { padding: 0 14px 18px; }
  .mc-cv-step-header { padding: 16px 14px 0; }
  .mc-cv-nav-bar { padding: 12px 14px; }
  .mc-cv-topbar-actions .mc-btn { font-size: 12px; padding: 7px 10px; }
  .mc-field-sm { flex: 0 0 100% !important; }
}



/* ══════════════════════════════════════════════════════════════════
   PROFILE COMPLETION RING  (replaces flat progress bar)
══════════════════════════════════════════════════════════════════ */

/* ── Ring outer layout ── */
.mc-profile-ring-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 96px;
  height: 96px;
  position: relative;
  margin: 0 auto 10px;
  /* Animate in when profile tab opens */
  animation: mc-ring-appear .45s cubic-bezier(.34,1.28,.64,1) both;
}
@keyframes mc-ring-appear {
  from { opacity: 0; transform: scale(.6) rotate(-90deg); }
  to   { opacity: 1; transform: scale(1) rotate(0deg); }
}

/* Override: when placed inside section-card header area, align left */
.mc-section-card .mc-profile-ring-wrap {
  margin: 0 0 14px;
  float: left;
  margin-right: 18px;
}

/* ── SVG ring ── */
.mc-profile-ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg); /* start fill from top */
}
.mc-ring-track {
  fill: none;
  stroke: var(--mc-border);
  stroke-width: 7;
}
.mc-ring-fill {
  fill: none;
  stroke: var(--mc-navy2);
  stroke-width: 7;
  stroke-linecap: round;
  transition: stroke-dasharray .7s cubic-bezier(.4,0,.2,1),
              stroke .3s ease;
}
/* Colour levels */
.mc-ring-mid  .mc-ring-fill { stroke: var(--mc-gold); }
.mc-ring-high .mc-ring-fill { stroke: var(--mc-green); }

/* ── Centre label ── */
.mc-ring-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.1;
  pointer-events: none;
}
.mc-ring-pct {
  font-family: 'DM Serif Display', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--mc-navy);
}
.mc-ring-sub {
  font-size: 10px;
  color: var(--mc-muted);
  font-weight: 500;
}

/* ── Steps-to-complete copy ── */
.mc-ring-steps {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-size: 13.5px;
  color: var(--mc-text2);
  /* sits to the right of the ring */
  flex: 1;
}
.mc-ring-steps small {
  font-size: 12px;
  color: var(--mc-muted);
}
.mc-ring-steps-done {
  color: var(--mc-green);
  font-weight: 700;
}

/* ── Wrapper for ring + steps side by side ── */
.mc-profile-ring-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

/* Clearfix for section-card float layout */
.mc-section-card::after {
  content: '';
  display: table;
  clear: both;
}


/* ══════════════════════════════════════════════════════════════════
   CHALLENGE MICRO-FEEDBACK  —  shake (wrong) + confetti (correct)
══════════════════════════════════════════════════════════════════ */

/* Shake animation — wrong answer */
@keyframes mc-chal-shake {
  0%, 100% { transform: translateX(0); }
  15%       { transform: translateX(-8px); }
  30%       { transform: translateX(7px); }
  45%       { transform: translateX(-6px); }
  60%       { transform: translateX(5px); }
  75%       { transform: translateX(-4px); }
  90%       { transform: translateX(3px); }
}
.mc-chal-shake {
  animation: mc-chal-shake .48s cubic-bezier(.36,.07,.19,.97) both;
}
/* Tint the wrong form red during shake */
.mc-chal-shake .mc-option-label {
  background: #fef2f2;
  border-color: #fca5a5;
  transition: background .15s, border-color .15s;
}

/* Correct answer — brief green pop on the form */
@keyframes mc-chal-correct-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.03); background: #f0fdf4; }
  100% { transform: scale(1); }
}
.mc-chal-correct-pop {
  animation: mc-chal-correct-pop .4s cubic-bezier(.34,1.56,.64,1) both;
}

/* Confetti dots fly out radially */
@keyframes mc-confetti-fly {
  0%   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  100% {
    transform: translate(
      calc(-50% + var(--mc-cf-x, 0px)),
      calc(-50% + var(--mc-cf-y, 0px))
    ) scale(0);
    opacity: 0;
  }
}


/* ══════════════════════════════════════════════════════════════════
   SIDEBAR NAV PILL  —  sliding active indicator
   A gold pill slides between nav items instead of just a colour swap.
   Implementation: a pseudo-element on .mc-sidebar-nav that positions
   itself behind the active item via a CSS custom property set in JS.
══════════════════════════════════════════════════════════════════ */

.mc-sidebar-nav {
  position: relative; /* pill is positioned relative to this */
}

/* The sliding pill — a single absolutely-positioned element
   inserted by JS as .mc-nav-pill */
.mc-nav-pill {
  position: absolute;
  left: 8px;
  right: 8px;
  border-radius: 8px;
  background: var(--mc-sidebar-active);
  pointer-events: none;
  transition: top .22s cubic-bezier(.4,0,.2,1),
              height .22s cubic-bezier(.4,0,.2,1),
              opacity .15s ease;
  opacity: 1;
  z-index: 0;
}

/* Remove the old background from active item — pill provides it now */
.mc-nav-item.active {
  background: transparent !important;
}
/* Keep the gold left bar */
.mc-nav-item.active::before {
  box-shadow: 0 0 8px rgba(240,165,0,.5);
}
/* Ensure nav items sit above the pill */
.mc-nav-item {
  position: relative;
  z-index: 1;
}


/* ══════════════════════════════════════════════════════════════════
   AI CREDITS  —  nav-embedded widget (replaces sidebar footer)
══════════════════════════════════════════════════════════════════ */

/* Sits directly below the tier badge — part of the header block, not a card */
.mc-ai-credits-nav {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 16px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.mc-ai-credits-nav .mc-ai-credits-icon {
  color: var(--mc-gold);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  opacity: .85;
}
.mc-ai-credits-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.mc-ai-credits-top {
  display: flex;
  align-items: baseline;
  gap: 5px;
  line-height: 1;
}
.mc-ai-credits-nav .mc-ai-credits-count {
  font-size: 16px;
  font-weight: 800;
  color: #fff;
  font-family: 'DM Serif Display', serif;
}
.mc-ai-credits-nav .mc-ai-credits-label {
  font-size: 10.5px;
  color: rgba(255,255,255,.45);
  white-space: nowrap;
}

/* Progress track */
.mc-ai-credits-track {
  height: 4px;
  background: rgba(255,255,255,.12);
  border-radius: 99px;
  overflow: hidden;
}
.mc-ai-credits-fill {
  height: 100%;
  background: var(--mc-gold);
  border-radius: 99px;
  transition: width .5s cubic-bezier(.4,0,.2,1);
}
/* Warn states */
.mc-credits-bar-warn     { background: #fb923c; }
.mc-credits-bar-critical { background: var(--mc-red); animation: mc-credits-pulse 1.4s ease-in-out infinite; }
@keyframes mc-credits-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .55; }
}

/* ── Mobile topbar credits pill ─────────────────────────────── */
.mc-topbar-credits {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 99px;
  padding: 4px 9px;
  color: var(--mc-gold);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  margin-left: auto; /* pushes tier pill to the far right */
}
.mc-topbar-credits svg { flex-shrink: 0; }

/* ── Leaderboard page: slim personal stats context bar ───────── */
.mc-lb-my-stats {
  display: flex;
  align-items: center;
  gap: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 12px 18px 16px;
  margin-bottom: 0;
  width: 100%;
  box-shadow: none;
}
.mc-lb-my-stat {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 0 20px;
}
.mc-lb-my-stat-icon {
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
}
.mc-lb-my-stat-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mc-lb-my-stat-val {
  font-size: 20px;
  font-weight: 800;
  color: var(--mc-navy2);
  font-family: 'DM Serif Display', serif;
  line-height: 1.1;
  min-width: 48px;
}
.mc-lb-stat-loading {
  display: inline-block;
  min-width: 56px;
  height: 20px;
  border-radius: 6px;
  background: linear-gradient(90deg, var(--mc-border) 25%, rgba(255,255,255,.5) 50%, var(--mc-border) 75%);
  background-size: 200% 100%;
  animation: mc-shimmer 1.2s infinite;
}
@keyframes mc-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.mc-lb-my-stat-lbl {
  font-size: 10px;
  font-weight: 600;
  color: var(--mc-muted);
  text-transform: uppercase;
  letter-spacing: .5px;
  white-space: nowrap;
}
.mc-lb-my-divider { display: none; }

/* ══════════════════════════════════════════════════════════════════
   SHARED WIDGET STYLES  (cover-letter, interview, roadmap,
   research, writing) — added v1.4.1
══════════════════════════════════════════════════════════════════ */

/* ── Widget card header ──────────────────────────────────────── */
.mc-widget-header {
  display: flex; align-items: flex-start; gap: 12px;
  margin-bottom: 20px;
}
.mc-widget-header-text { flex: 1; }
.mc-widget-header-text h3 {
  font-size: 15px; font-weight: 700; color: var(--mc-navy);
  margin: 0 0 3px; line-height: 1.3;
}
.mc-widget-header-text p {
  font-size: 13px; color: var(--mc-muted); margin: 0; line-height: 1.4;
}

/* ── Credits badge (gold, top-right of header) ───────────────── */
.mc-credits-badge {
  display: inline-flex; flex-direction: column; align-items: center;
  background: rgba(240,165,0,.10); border: 1px solid rgba(240,165,0,.25);
  border-radius: 10px; padding: 6px 14px; flex-shrink: 0; min-width: 52px;
}
/* Credits row sits just above the tab bar in writing widget */
.mc-wr-credits-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 0 14px;
}
.mc-credits-num {
  font-size: 18px; font-weight: 700; color: var(--mc-gold2); line-height: 1;
}
.mc-credits-label {
  font-size: 10px; font-weight: 600; color: var(--mc-muted);
  text-transform: uppercase; letter-spacing: .4px; margin-top: 2px;
}

/* ── Full-width primary action button ────────────────────────── */
.mc-widget-action-btn {
  width: 100%; padding: 11px 20px;
  font-size: 14px; gap: 7px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.mc-widget-action-btn:disabled { opacity: .65; pointer-events: none; }

/* ── Inline form field helpers ───────────────────────────────── */
.mc-required    { color: var(--mc-red); }
.mc-field-optional {
  font-size: 11px; font-weight: 400; color: var(--mc-faint);
  margin-left: 4px;
}
.mc-char-hint {
  font-size: 11.5px; color: var(--mc-faint);
  text-align: right; margin-top: 4px;
}

/* ── Spinning loader icon on buttons ────────────────────────────*/
.mc-spin-icon {
  animation: mc-spin .7s linear infinite;
  flex-shrink: 0;
}

/* ── Cover-letter type pills (reused in research + citation) ─── */
.mc-cl-type-row { display: flex; gap: 6px; flex-wrap: wrap; }
.mc-cl-type-pill {
  padding: 6px 14px; border-radius: 99px;
  border: 1.5px solid var(--mc-border2);
  background: #fff; font-size: 12.5px; font-weight: 600;
  color: var(--mc-muted); cursor: pointer; font-family: inherit;
  transition: all .15s; white-space: nowrap;
}
.mc-cl-type-pill:hover { border-color: var(--mc-navy2); color: var(--mc-navy2); }
.mc-cl-type-pill.active {
  background: var(--mc-navy2); border-color: var(--mc-navy2); color: #fff;
}

/* ── AI result label ─────────────────────────────────────────── */
.mc-ai-label {
  font-size: 11.5px; font-weight: 700; color: #7c3aed;
  text-transform: uppercase; letter-spacing: .5px;
}



/* ══════════════════════════════════════════════════════════════════
   MYSOMERO ACHIEVA v1.5.0 — HEADER & SETTINGS REDESIGN
   Matches Mysomero AI (Tutor) visual language.
   ─────────────────────────────────────────────────────────────────
   • mc-topbar: full-width, taller, brand cluster + avatar button
   • mc-settings-shell: sectioned settings with coloured icon chips
   • mc-sf-*: Settings-Full styles (mirror msm-sf-* from Tutor)
   • mc-sp-*: Sub-panel slide-in (mirror msm-settings-card tabs)
══════════════════════════════════════════════════════════════════ */

/* ── v1.5 TOPBAR overrides ──────────────────────────────────────── */
.mc-topbar {
  padding: 0 16px;          /* taller via min-height */
  min-height: 58px;
  gap: 0;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 2px 12px rgba(0,0,0,.18);
}

/* Hamburger stays left — keep existing styles, just right margin */
.mc-topbar .mc-hamburger { margin-right: 10px; flex-shrink: 0; }

/* Brand cluster — title + by Mysomero stacked */
.mc-topbar-brand {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 1;
  min-width: 0;
}
.mc-topbar-brand-mark {
  width: 32px; height: 32px;
  background: linear-gradient(135deg, var(--mc-gold,#f0a500), #e8890a);
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-family: 'DM Serif Display', serif;
  font-size: 18px; color: #fff; font-weight: 700;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(240,165,0,.35);
}
.mc-topbar-brand-titles {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.mc-topbar-brand-name {
  font-size: 15px; font-weight: 700; color: #fff; letter-spacing: .1px;
}
.mc-topbar-brand-sub {
  font-size: 10px; color: rgba(255,255,255,.45); letter-spacing: .02em;
}

/* Right side: credits pill + avatar */
.mc-topbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

/* Credits pill — already exists, override margin */
.mc-topbar .mc-topbar-credits { margin-left: 0; }

/* Avatar button */
.mc-topbar-avatar {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--mc-accent,#6366f1), #8b5cf6);
  border: 2px solid rgba(255,255,255,.25);
  color: #fff;
  font-size: 13px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  overflow: hidden;
  transition: opacity .15s, border-color .15s;
}
.mc-topbar-avatar:hover { opacity: .88; border-color: rgba(255,255,255,.5); }
.mc-topbar-avatar img {
  width: 100%; height: 100%;
  object-fit: cover; border-radius: 50%;
}


/* ══════════════════════════════════════════════════════════════════
   SETTINGS SHELL  (wraps menu + sub-panels)
══════════════════════════════════════════════════════════════════ */
.mc-settings-shell {
  position: relative;
  overflow: hidden;           /* clip sliding sub-panels */
  min-height: 400px;
}

/* ── SETTINGS MENU (level-1) ─────────────────────────────────── */
.mc-sf-menu {
  display: flex;
  flex-direction: column;
  transition: transform .28s cubic-bezier(.4,0,.2,1), opacity .22s;
}
.mc-settings-shell.mc-sp-open .mc-sf-menu {
  transform: translateX(-100%);
  opacity: 0;
  pointer-events: none;
}

/* Header */
.mc-sf-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 20px 18px;
  border-bottom: 1px solid var(--mc-border, #e8edf2);
  flex-shrink: 0;
}
.mc-sf-header-identity {
  display: flex; align-items: center; gap: 13px; flex: 1; min-width: 0;
}

/* Avatar with completeness ring */
.mc-sf-avatar {
  position: relative;
  width: 56px; height: 56px; flex-shrink: 0;
}
.mc-sf-avatar img {
  width: 56px; height: 56px;
  border-radius: 50%; object-fit: cover; display: block;
}
/* Fallback initial */
.mc-sf-avatar:not(:has(img)) {
  background: linear-gradient(135deg, var(--mc-accent,#6366f1), #8b5cf6);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 22px; font-weight: 700;
}
.mc-sf-avatar-ring {
  position: absolute; inset: -5px;
  width: calc(100% + 10px); height: calc(100% + 10px);
  transform: rotate(-90deg);
  pointer-events: none;
}
.mc-sf-ring-track {
  fill: none; stroke: var(--mc-border,#e8edf2); stroke-width: 4;
}
.mc-sf-ring-fill {
  fill: none; stroke: var(--mc-accent,#6366f1); stroke-width: 4;
  stroke-linecap: round;
  transition: stroke-dasharray .7s cubic-bezier(.4,0,.2,1);
}
.mc-sf-ring-fill.mc-ring-mid  { stroke: var(--mc-gold,#f0a500); }
.mc-sf-ring-fill.mc-ring-high { stroke: #16a34a; }

.mc-sf-identity-text {
  display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.mc-sf-name {
  font-size: 15px; font-weight: 700; color: var(--mc-text,#1e293b);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sf-email {
  font-size: 12px; color: var(--mc-text3,#94a3b8);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sf-plan-badge {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 700; padding: 2px 8px;
  border-radius: 20px; background: var(--mc-border,#e8edf2);
  color: var(--mc-text2,#64748b); margin-top: 3px;
  width: fit-content; letter-spacing: .02em; text-transform: uppercase;
}
.mc-sf-plan-badge--premium {
  background: linear-gradient(120deg,rgba(99,102,241,.14),rgba(168,85,247,.14));
  color: var(--mc-accent,#6366f1);
  border: 1px solid rgba(99,102,241,.25);
}

/* Completeness label beside avatar */
.mc-sf-pct-wrap {
  display: flex; flex-direction: column; align-items: center;
  gap: 2px; flex-shrink: 0;
}
.mc-sf-pct-val {
  font-size: 17px; font-weight: 800; color: var(--mc-accent,#6366f1);
  line-height: 1;
}
.mc-sf-pct-lbl { font-size: 10px; color: var(--mc-text3,#94a3b8); }

/* Upgrade banner */
.mc-sf-upgrade-banner {
  display: flex; align-items: center; gap: 12px;
  width: 100%; padding: 13px 20px; border: none; border-radius: 0; cursor: pointer;
  background: linear-gradient(135deg,rgba(99,102,241,.1),rgba(168,85,247,.1));
  border-bottom: 1px solid rgba(99,102,241,.2);
  text-decoration: none; color: inherit;
  transition: background .14s; flex-shrink: 0;
  font-family: inherit;
}
.mc-sf-upgrade-banner:hover {
  background: linear-gradient(135deg,rgba(99,102,241,.18),rgba(168,85,247,.18));
}
.mc-sf-upgrade-left { display:flex; align-items:center; gap:10px; flex:1; }
.mc-sf-upgrade-icon { font-size: 20px; }
.mc-sf-upgrade-title { font-size:13px; font-weight:700; color:var(--mc-text,#1e293b); }
.mc-sf-upgrade-sub   { font-size:11px; color:var(--mc-text3,#94a3b8); }
.mc-sf-upgrade-banner > svg { color: var(--mc-text3,#94a3b8); }

/* Settings body */
.mc-sf-body { padding: 12px 12px 32px; overflow-y: auto; }

/* Section label */
.mc-sf-section-label {
  font-size: 11px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: var(--mc-text3,#94a3b8);
  padding: 14px 8px 6px;
}

/* Section card */
.mc-sf-section {
  background: var(--mc-card,#fff);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 14px; overflow: hidden; margin-bottom: 4px;
}
.mc-sf-section--logout { margin-top: 8px; background: transparent; border-color: transparent; }

/* Row */
.mc-sf-row {
  display: flex; align-items: center; gap: 13px; width: 100%;
  padding: 13px 14px; background: transparent; border: none;
  border-bottom: 1px solid var(--mc-border,#e8edf2);
  cursor: pointer; text-align: left;
  transition: background .12s; font-family: inherit;
}
.mc-sf-row:last-child { border-bottom: none; }
.mc-sf-row:hover { background: rgba(99,102,241,.05); }
.mc-sf-row--logout:hover { background: rgba(239,68,68,.06); }
.mc-sf-row--logout .mc-sf-row-label { color: #dc2626; }

/* Row icon chip */
.mc-sf-row-icon {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; color: #fff;
}
.mc-sf-icon--purple { background: #7c3aed; }
.mc-sf-icon--blue   { background: #2563eb; }
.mc-sf-icon--green  { background: #16a34a; }
.mc-sf-icon--orange { background: #ea580c; }
.mc-sf-icon--amber  { background: #d97706; }
.mc-sf-icon--teal   { background: #0891b2; }
.mc-sf-icon--slate  { background: #475569; }
.mc-sf-icon--red    { background: #dc2626; }

/* Row text */
.mc-sf-row-text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mc-sf-row-label { font-size: 14px; font-weight: 600; color: var(--mc-text,#1e293b); }
.mc-sf-row-desc  {
  font-size: 12px; color: var(--mc-text3,#94a3b8);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sf-row-chevron { color: var(--mc-text3,#94a3b8); flex-shrink: 0; transition: transform .12s; }
.mc-sf-row:hover .mc-sf-row-chevron { transform: translateX(2px); color: var(--mc-accent,#6366f1); }


/* ══════════════════════════════════════════════════════════════════
   SUB-PANELS  — slide in from right
══════════════════════════════════════════════════════════════════ */
.mc-sf-subpanel {
  position: absolute;
  inset: 0;
  background: var(--mc-bg,#f1f5f9);
  transform: translateX(100%);
  transition: transform .28s cubic-bezier(.4,0,.2,1);
  display: flex; flex-direction: column;
  z-index: 10;
  overflow-y: auto;
}
.mc-sf-subpanel.mc-sp-active {
  transform: translateX(0);
}

/* Sub-panel header */
.mc-sp-head {
  display: flex; align-items: center; gap: 10px;
  padding: 16px 18px;
  background: var(--mc-card,#fff);
  border-bottom: 1px solid var(--mc-border,#e8edf2);
  flex-shrink: 0;
  position: sticky; top: 0; z-index: 5;
}
.mc-sp-back {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--mc-bg,#f1f5f9);
  border: 1.5px solid var(--mc-border,#e8edf2);
  display: flex; align-items: center; justify-content: center;
  color: var(--mc-text2,#64748b); cursor: pointer;
  flex-shrink: 0; transition: background .13s, color .13s;
}
.mc-sp-back:hover { background: var(--mc-accent,#6366f1); color: #fff; border-color: var(--mc-accent,#6366f1); }
.mc-sp-title {
  font-size: 15px; font-weight: 700; color: var(--mc-text,#1e293b);
}

/* Sub-panel body */
.mc-sp-body {
  padding: 20px 18px 40px;
  display: flex; flex-direction: column; gap: 16px;
}
.mc-sp-intro {
  font-size: 13px; color: var(--mc-text2,#64748b); line-height: 1.6; margin: 0;
}

/* Avatar row in Personal Info */
.mc-sp-avatar-row {
  display: flex; align-items: center; gap: 14px;
  background: var(--mc-card,#fff);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 14px; padding: 14px;
}
.mc-sp-avatar-preview {
  width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
  overflow: hidden;
  background: linear-gradient(135deg, var(--mc-accent,#6366f1), #8b5cf6);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px; font-weight: 700;
}
.mc-sp-avatar-preview img { width: 100%; height: 100%; object-fit: cover; }
.mc-sp-avatar-info { flex: 1; min-width: 0; }
.mc-sp-avatar-info strong { display: block; font-size: 14px; color: var(--mc-text,#1e293b); }
.mc-sp-avatar-info span  { font-size: 12px; color: var(--mc-text3,#94a3b8); line-height: 1.5; }
.mc-sp-avatar-info a { color: var(--mc-accent,#6366f1); }

/* Progress bar in Personal Info */
.mc-sp-progress-bar-wrap {
  display: flex; align-items: center; gap: 10px;
}
.mc-sp-progress-bar {
  flex: 1; height: 6px; border-radius: 99px;
  background: var(--mc-border,#e8edf2); overflow: hidden;
}
.mc-sp-progress-fill {
  height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, var(--mc-accent,#6366f1), #8b5cf6);
  transition: width .7s cubic-bezier(.4,0,.2,1);
}
.mc-sp-progress-lbl { font-size: 12px; color: var(--mc-text3,#94a3b8); white-space: nowrap; }

/* Info card (Security) */
.mc-sp-info-card {
  display: flex; align-items: center; gap: 13px;
  background: var(--mc-card,#fff);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 12px; padding: 14px;
  color: var(--mc-accent,#6366f1);
}
.mc-sp-info-card div { display: flex; flex-direction: column; gap: 2px; }
.mc-sp-info-card strong { font-size: 13px; color: var(--mc-text,#1e293b); }
.mc-sp-info-card span  { font-size: 12px; color: var(--mc-text3,#94a3b8); }

/* Billing card */
.mc-billing-card {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 18px; border-radius: 12px;
  border: 1.5px solid var(--mc-border,#e8edf2);
  background: var(--mc-card,#fff);
}
.mc-billing-card--premium {
  border-color: rgba(99,102,241,.3);
  background: rgba(99,102,241,.06);
}
.mc-billing-card-icon { font-size: 28px; }
.mc-billing-card-text { display: flex; flex-direction: column; gap: 3px; }
.mc-billing-card-text strong { font-size: 14px; font-weight: 700; color: var(--mc-text,#1e293b); }
.mc-billing-card-text span   { font-size: 12px; color: var(--mc-text3,#94a3b8); }
.mc-billing-manage-note { font-size: 13px; color: var(--mc-text3,#94a3b8); line-height: 1.6; margin: 0; }

/* Billing credits */
.mc-billing-credits-card {
  background: var(--mc-card,#fff);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 8px;
}
.mc-billing-credits-top {
  display: flex; align-items: center; gap: 7px;
  font-size: 13px; color: var(--mc-text2,#64748b);
}
.mc-billing-credits-top svg { color: var(--mc-gold,#f0a500); }
.mc-billing-credits-top strong { margin-left: auto; font-size: 14px; color: var(--mc-text,#1e293b); }
.mc-billing-credits-reset { font-size: 11px; color: var(--mc-text3,#94a3b8); }

/* Upgrade button big */
.mc-btn-upgrade-big {
  background: linear-gradient(135deg, var(--mc-accent,#6366f1), #8b5cf6) !important;
  gap: 8px;
}

/* Full-width button */
.mc-btn-full { width: 100%; justify-content: center; gap: 7px; }

/* Referral rates */
.mc-sp-ref-rates {
  display: flex; align-items: center;
  background: var(--mc-card,#fff);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 12px; overflow: hidden;
}
.mc-sp-ref-rate-item {
  flex: 1; display: flex; flex-direction: column; align-items: center;
  padding: 14px 10px; gap: 4px;
}
.mc-sp-ref-rate-val {
  font-size: 18px; font-weight: 800; color: var(--mc-accent,#6366f1);
}
.mc-sp-ref-rate-lbl { font-size: 11px; color: var(--mc-text3,#94a3b8); }
.mc-sp-ref-rate-divider {
  width: 1px; align-self: stretch; background: var(--mc-border,#e8edf2);
}

/* Referral stats */
.mc-sp-ref-stats {
  display: flex; gap: 0;
  background: var(--mc-card,#fff);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 12px; overflow: hidden;
}
.mc-sp-ref-stat {
  flex: 1; display: flex; flex-direction: column; align-items: center;
  padding: 14px 8px; gap: 4px;
  border-right: 1px solid var(--mc-border,#e8edf2);
}
.mc-sp-ref-stat:last-child { border-right: none; }
.mc-sp-ref-stat-num {
  font-size: 20px; font-weight: 800; color: var(--mc-text,#1e293b);
}
.mc-sp-ref-stat--pts .mc-sp-ref-stat-num { color: var(--mc-gold,#f0a500); }
.mc-sp-ref-stat span { font-size: 11px; color: var(--mc-text3,#94a3b8); }

/* Referral code/link display */
.mc-ref-code-row, .mc-ref-link-row {
  display: flex; align-items: center; gap: 10px;
}
.mc-ref-code-display {
  flex: 1; font-family: monospace; font-size: 14px;
  background: var(--mc-bg,#f1f5f9);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 8px; padding: 8px 12px;
  color: var(--mc-text,#1e293b); display: block;
}
.mc-ref-link-display {
  flex: 1; font-size: 12px; color: var(--mc-text2,#64748b);
  background: var(--mc-bg,#f1f5f9);
  border: 1px solid var(--mc-border,#e8edf2);
  border-radius: 8px; padding: 8px 12px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block;
}

/* Share row */
.mc-sp-share-row {
  display: flex; gap: 10px;
}
.mc-sp-share-row .mc-btn { flex: 1; justify-content: center; gap: 7px; }


/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE — desktop sidebar: topbar is hidden, but keep styles
   ready for mobile media queries
══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .mc-topbar { display: flex; }   /* already controlled by existing rules */

  /* Settings shell takes full width in the profile panel */
  .mc-settings-shell { min-height: calc(100vh - 120px); }
}


/* ══════════════════════════════════════════════════════════════════
   LEADERBOARD — Underline Tab Switcher
══════════════════════════════════════════════════════════════════ */

/* Tab bar wrapper */
.mc-lb-pill-bar {
  display: flex;
  flex-direction: column;
  border-bottom: 1.5px solid var(--mc-border, #e8edf2);
  padding: 0 18px;
}

/* Single row: all tabs live here, no inner border box */
.mc-lb-pill-row {
  display: flex;
  align-items: stretch;
  gap: 0;
}

/* Strip the bordered pill track — just a transparent flex row now */
.mc-lb-pills {
  display: flex;
  flex: 1;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  gap: 0;
}

/* Each tab — underline style, div-safe */
.mc-lb-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  background: transparent;
  border: none;
  border-bottom: 2.5px solid transparent;
  border-radius: 0;
  padding: 13px 16px 11px;
  margin: 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-text2, #64748b);
  cursor: pointer;
  transition: color .15s, border-color .15s;
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
  user-select: none;
  -webkit-user-select: none;
  outline: none;
}
.mc-lb-pill:hover { color: var(--mc-navy, #0f2040); }
.mc-lb-pill.active {
  color: var(--mc-navy, #0f2040);
  border-bottom-color: var(--mc-navy, #0f2040);
  font-weight: 700;
}

/* Prize Board tab — same underline style, amber accent */
.mc-lb-pill-prize-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 13px 16px 11px;
  margin: 0;
  border: none;
  border-bottom: 2.5px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--mc-text2, #64748b);
  cursor: pointer;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
  flex-shrink: 0;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  outline: none;
  line-height: 1.2;
}
.mc-lb-pill-prize-btn:hover {
  color: #b45309;
}
.mc-lb-pill-prize-btn.active {
  color: #b45309;
  border-bottom-color: #d97706;
  font-weight: 700;
}

/* live dot on prize button */
.mc-lb-prize-live-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #16a34a;
  flex-shrink: 0;
  animation: mc-pulse-dot 1.5s ease-in-out infinite;
  box-shadow: 0 0 4px #16a34a;
}
/* live dot always visible in underline tab mode */

/* Row 2: filters */
.mc-lb-filters {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 18px;
}
.mc-lb-filters input,
.mc-lb-filters select {
  font-size: 13px;
  border-radius: 8px;
  border: 1.5px solid var(--mc-border, #e8edf2);
  padding: 6px 10px;
  background: var(--mc-card, #fff);
  color: var(--mc-text, #1e293b);
  font-family: inherit;
}

/* Rankings panel gets breathing room below the pill bar */
#mc-lb-panel-rankings { padding: 14px 18px 0; }
#mc-lb-panel-prize { padding: 0 18px; }

/* Panels */
.mc-lb-panel { padding: 0; }
.mc-lb-panel--active { display: block; }

/* ── Prize row — name always fully visible ─────────────────────── */
.mc-lb-row--prize {
  align-items: flex-start;
}
.mc-lb-row--prize .mc-lb-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mc-lb-row--prize .mc-lb-name {
  white-space: normal;
  word-break: break-word;
  font-weight: 700;
  color: var(--mc-text, #1e293b);
}
.mc-lb-row--prize .mc-lb-right {
  flex-shrink: 0;
  text-align: right;
}
.mc-prize-row-inline {
  display: inline-block;
  margin-top: 1px;
}
.mc-prize-row-inline .mc-prize-row-prize {
  font-size: 11px;
  font-weight: 700;
}

/* dark theme overrides for name */
#mc-lb-panel-prize .mc-lb-row--prize .mc-lb-name { color: #e0eaf8; }

/* Prize board header */
/* ═══════════════════════════════════════════════════════════════
   PRIZE BOARD — Galaxy Dark-Space Theme
   No gradients. Stars via box-shadow on pseudo-elements.
═══════════════════════════════════════════════════════════════ */

/* ── Panel wrapper: deep space ─────────────────────────── */
#mc-lb-panel-prize {
  background: #07071a;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
}

/* Starfield backdrop — tiny box-shadow stars, no gradient */
#mc-lb-panel-prize::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  border-radius: 12px;
  box-shadow:
    /* scattered star dots — coordinates are (x y) offsets */
    12px  18px 0 0 rgba(255,255,255,.55),
    45px  60px 0 0 rgba(255,255,255,.35),
    78px  22px 0 0 rgba(255,255,255,.6),
    130px 45px 0 0 rgba(255,255,255,.3),
    180px 15px 0 0 rgba(255,255,255,.5),
    220px 70px 0 0 rgba(255,255,255,.25),
    260px 38px 0 0 rgba(255,255,255,.55),
    310px 10px 0 0 rgba(255,255,255,.4),
    30px  100px 0 0 rgba(255,255,255,.3),
    90px  130px 0 0 rgba(255,255,255,.5),
    160px 110px 0 0 rgba(255,255,255,.25),
    240px 140px 0 0 rgba(255,255,255,.45),
    290px 90px 0 0 rgba(255,255,255,.35),
    340px 120px 0 0 rgba(255,255,255,.6),
    55px  170px 0 0 rgba(255,255,255,.3),
    120px 200px 0 0 rgba(255,255,255,.4),
    200px 185px 0 0 rgba(255,255,255,.5),
    270px 210px 0 0 rgba(255,255,255,.28),
    20px  240px 0 0 rgba(255,255,255,.45),
    150px 255px 0 0 rgba(255,255,255,.35),
    /* slightly larger "brighter" stars */
    70px  50px  1px 0 rgba(255,255,255,.8),
    190px 30px  1px 0 rgba(255,255,240,.9),
    320px 65px  1px 0 rgba(255,255,255,.75),
    100px 160px 1px 0 rgba(255,240,200,.85),
    230px 175px 1px 0 rgba(255,255,255,.8);
  width: 1px; height: 1px;
  background: transparent;
}

#mc-lb-panel-prize > * { position: relative; z-index: 1; }

/* ── Board header ──────────────────────────────────────── */
.mc-prize-board-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 16px 10px;
}
.mc-prize-board-icon {
  width: 44px; height: 44px;
  background: #1a1a3e;
  border: 1.5px solid #f5c842;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #f5c842;
  flex-shrink: 0;
  box-shadow: 0 0 10px rgba(245,200,66,.25);
}
.mc-prize-board-title {
  font-size: 15px;
  font-weight: 700;
  color: #f0e6c8;
  margin: 0 0 4px;
  line-height: 1.3;
  text-shadow: 0 0 8px rgba(255,220,100,.2);
}
.mc-prize-board-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── Status badges ─────────────────────────────────────── */
.mc-prize-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  letter-spacing: .03em;
}
.mc-prize-status--live   { background: rgba(22,163,74,.18); color: #4ade80; border: 1px solid rgba(74,222,128,.25); }
.mc-prize-status--closed { background: rgba(239,68,68,.12); color: #f87171; border: 1px solid rgba(248,113,113,.2); }
.mc-prize-status--draft  { background: rgba(148,163,184,.1); color: #94a3b8; border: 1px solid rgba(148,163,184,.2); }
.mc-prize-pulse {
  width: 6px; height: 6px;
  background: #4ade80;
  border-radius: 50%;
  display: inline-block;
  animation: mc-pulse-dot 1.5s ease-in-out infinite;
  box-shadow: 0 0 4px #4ade80;
}
@keyframes mc-pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(1.4); }
}
.mc-prize-closes { font-size: 12px; color: #94a3b8; }

/* ── XP sync notice ────────────────────────────────────── */
.mc-prize-xp-notice {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 14px 10px;
  padding: 7px 12px;
  background: rgba(245,200,66,.06);
  border: 1px solid rgba(245,200,66,.18);
  border-radius: 8px;
  font-size: 12px;
  color: #c9a84c;
  font-weight: 600;
}
.mc-prize-xp-notice svg { flex-shrink: 0; color: #f5c842; }

/* ── Prize cards: galaxy relic look ───────────────────── */
.mc-prize-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 4px 14px 14px;
}

.mc-prize-card {
  border-radius: 12px;
  padding: 14px 10px 12px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  position: relative;
  overflow: hidden;
  background: #0e0e2a;
}

/* star micro-texture per card (unique offsets) */
.mc-prize-card::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  width: 1px; height: 1px;
  background: transparent;
}

/* GOLD card */
.mc-prize-card--gold {
  border: 1.5px solid #a87c20;
  box-shadow:
    inset 0 0 18px rgba(212,175,55,.08),
    0 0 12px rgba(212,175,55,.15);
}
.mc-prize-card--gold::before {
  box-shadow:
    8px  10px 0 0 rgba(255,215,0,.6),
    22px 30px 0 0 rgba(255,215,0,.35),
    45px 15px 0 0 rgba(255,215,0,.5),
    60px 38px 0 0 rgba(255,255,200,.4),
    30px 55px 0 0 rgba(255,215,0,.3),
    50px 8px  1px 0 rgba(255,215,0,.85),
    15px 48px 1px 0 rgba(255,220,100,.75);
}

/* SILVER card */
.mc-prize-card--silver {
  border: 1.5px solid #5a6a80;
  box-shadow:
    inset 0 0 18px rgba(192,192,220,.06),
    0 0 10px rgba(150,170,200,.1);
}
.mc-prize-card--silver::before {
  box-shadow:
    10px 12px 0 0 rgba(200,220,255,.5),
    28px 35px 0 0 rgba(200,220,255,.3),
    50px 18px 0 0 rgba(200,220,255,.45),
    65px 40px 0 0 rgba(220,230,255,.35),
    20px 50px 1px 0 rgba(210,225,255,.7),
    55px 10px 1px 0 rgba(200,220,255,.65);
}

/* BRONZE card */
.mc-prize-card--bronze {
  border: 1.5px solid #7a4a20;
  box-shadow:
    inset 0 0 18px rgba(205,127,50,.06),
    0 0 10px rgba(180,100,40,.12);
}
.mc-prize-card--bronze::before {
  box-shadow:
    12px 14px 0 0 rgba(255,140,60,.5),
    25px 32px 0 0 rgba(255,140,60,.3),
    48px 16px 0 0 rgba(255,140,60,.45),
    62px 42px 0 0 rgba(255,160,80,.35),
    18px 52px 1px 0 rgba(255,150,70,.7),
    52px 9px  1px 0 rgba(255,140,60,.6);
}

.mc-prize-card-medal { font-size: 22px; line-height: 1; position: relative; z-index: 1; }
.mc-prize-card-position {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  position: relative; z-index: 1;
}
.mc-prize-card--gold   .mc-prize-card-position { color: #a87c20; }
.mc-prize-card--silver .mc-prize-card-position { color: #7a8ea8; }
.mc-prize-card--bronze .mc-prize-card-position { color: #8a5020; }

.mc-prize-card-icon { margin: 2px 0; position: relative; z-index: 1; }
.mc-prize-card--gold   .mc-prize-card-icon { color: #f5c842; }
.mc-prize-card--silver .mc-prize-card-icon { color: #a0b4cc; }
.mc-prize-card--bronze .mc-prize-card-icon { color: #cd7f32; }

.mc-prize-card-value {
  font-size: 13px;
  font-weight: 800;
  word-break: break-word;
  line-height: 1.2;
  position: relative; z-index: 1;
}
.mc-prize-card--gold   .mc-prize-card-value { color: #f5c842; text-shadow: 0 0 8px rgba(245,200,66,.35); }
.mc-prize-card--silver .mc-prize-card-value { color: #c8d8ec; text-shadow: 0 0 6px rgba(200,216,236,.2); }
.mc-prize-card--bronze .mc-prize-card-value { color: #cd8040; text-shadow: 0 0 6px rgba(205,128,64,.25); }
.mc-prize-card-value--empty { color: #4a5a7a; font-weight: 600; }

.mc-prize-card-label {
  font-size: 10px;
  color: #5a6a8a;
  position: relative; z-index: 1;
}

/* ── Lower prizes ──────────────────────────────────────── */
.mc-prize-lower-list {
  margin: 0 14px 12px;
  background: #0c0c24;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(100,120,160,.2);
}
.mc-prize-lower-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(100,120,160,.12);
  font-size: 13px;
}
.mc-prize-lower-row:last-child { border-bottom: none; }
.mc-prize-lower-pos {
  font-weight: 700;
  min-width: 30px;
  color: #5a7099;
}
.mc-prize-lower-value { font-weight: 600; color: #c0cce0; }
.mc-prize-lower-label { color: #5a7099; font-size: 12px; }

/* ── Standings header ──────────────────────────────────── */
.mc-prize-board-standings-head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px 8px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #5a7099;
  border-top: 1px solid rgba(100,120,160,.15);
}

/* ── Prize-board standings rows ────────────────────────── */
#mc-lb-panel-prize .mc-lb-list { background: transparent; }
#mc-lb-panel-prize .mc-lb-row {
  border-color: rgba(100,120,160,.12);
  color: #c0cce0;
}
#mc-lb-panel-prize .mc-lb-row:hover { background: rgba(255,255,255,.03); }

.mc-lb-list--prize .mc-lb-row--top {
  background: rgba(212,175,55,.05);
  border-left: 2px solid rgba(212,175,55,.3);
}
.mc-lb-list--prize .mc-lb-me { background: rgba(100,160,255,.06) !important; }
#mc-lb-panel-prize .mc-lb-name { color: #e0eaf8; }
#mc-lb-panel-prize .mc-lb-meta { color: #4a6080; }
#mc-lb-panel-prize .mc-lb-pts-val { color: #f0e6c8; }
#mc-lb-panel-prize .mc-lb-pts-val em { color: #5a7099; }

.mc-prize-row-prize {
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  margin-right: 6px;
}
.mc-prize-speed-bonus {
  font-size: 11px;
  color: #f5c842;
  font-weight: 700;
  margin-left: 2px;
}
.mc-lb-rank-num--medal { font-size: 17px; min-width: 30px; }

/* ── My position banner (prize) ────────────────────────── */
.mc-my-rank--prize {
  background: rgba(245,200,66,.06);
  border-left: 3px solid #a87c20;
  color: #c9a84c;
}

/* ── Empty state ───────────────────────────────────────── */
.mc-lb-empty-msg {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 16px;
  color: var(--mc-text2,#64748b);
  font-size: 14px;
  text-align: center;
}
#mc-lb-panel-prize .mc-lb-empty-msg { color: #4a6080; }

@media (max-width: 480px) {
  .mc-prize-cards { grid-template-columns: repeat(3,1fr); gap: 5px; }
  .mc-prize-card { padding: 10px 6px; }
  .mc-prize-card-value { font-size: 12px; }
  .mc-lb-tab { padding: 7px 10px; font-size: 12px; }
}

/* ══════════════════════════════════════════════════════════════════
   NATIVE APP OVERRIDES — v1.6.4-native
   Goal: edge-to-edge header, borderless cards, full text visibility
══════════════════════════════════════════════════════════════════ */

/* ── 1. TOPBAR: true edge-to-edge on mobile ──────────────────── */
/* Remove any margin/border-radius that prevents full bleed */
.mc-topbar {
  margin: 0 !important;
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.07) !important;
  /* Safe area: push content below notch/status bar */
  padding-top: calc(12px + env(safe-area-inset-top, 0px)) !important;
  padding-left: calc(16px + env(safe-area-inset-left, 0px)) !important;
  padding-right: calc(16px + env(safe-area-inset-right, 0px)) !important;
  padding-bottom: 12px !important;
  min-height: calc(58px + env(safe-area-inset-top, 0px)) !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Ensure mc-body fills width fully so topbar stretches edge to edge */
.mc-body {
  width: 100% !important;
  max-width: 100% !important;
}

/* ── 2. REMOVE BORDERS from section cards & feature items ─────── */
/* Cards should feel like native surfaces, not web boxes */
.mc-section-card {
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.mc-feature-item {
  border: none !important;
  box-shadow: 0 1px 4px rgba(15,32,64,.06) !important;
}
.mc-feature-item:hover {
  box-shadow: 0 4px 16px rgba(15,32,64,.09) !important;
  border: none !important;
}

/* Stat cards: keep subtle shadow, remove border */
.mc-stat-card {
  border: none !important;
  box-shadow: 0 1px 4px rgba(15,32,64,.06) !important;
}

/* Interview cards */
.mc-interview-card {
  border: none !important;
  box-shadow: 0 1px 4px rgba(15,32,64,.06) !important;
}

/* Topic items */
.mc-topic-item {
  border: none !important;
  box-shadow: 0 1px 3px rgba(15,32,64,.05) !important;
}

/* Roadmap cards */
.mc-road-card {
  border: none !important;
}
.mc-road-card-path {
  border: none !important;
}
.mc-road-card-cert {
  border: none !important;
}

/* Roadmap section headings — remove bottom border */
.mc-roadmap-section h4 {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

/* Challenge type-in field */
.mc-chal-tf-btn {
  border-color: transparent !important;
  box-shadow: 0 1px 4px rgba(15,32,64,.07) !important;
}

/* Referral section dividers */
.mc-ref-link-section {
  border-bottom: 1px solid rgba(0,0,0,.05) !important;
}
.mc-ref-row {
  border-bottom: none !important;
}

/* Leaderboard table rows */
.mc-lb-row {
  border-bottom: none !important;
}

/* ── 3. LEADERBOARD PILL BAR — remove bottom border ──────────── */
.mc-lb-pill-bar {
  border-bottom: 1px solid rgba(0,0,0,.06) !important;
}

/* Leaderboard filter inputs */
.mc-lb-filters input,
.mc-lb-filters select {
  border: none !important;
  background: var(--mc-bg, #f4f6fb) !important;
  box-shadow: none !important;
}

/* ── 4. CITATION OUTPUT — fully visible, no clipping ──────────── */
.mc-citation-output {
  border: none !important;
  border-radius: 10px !important;
  background: #f8fafc !important;
  padding: 16px !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  white-space: pre-wrap !important;
  /* No overflow:hidden — text must be fully visible */
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}

/* Writing output — same treatment */
.mc-writing-output {
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}

/* Writing tabs — remove bottom border */
.mc-writing-tabs {
  border-bottom: 1px solid rgba(0,0,0,.06) !important;
}

/* ── 5. PRIZE BOARD TEXT — always fully visible ───────────────── */
.mc-prize-board-title {
  white-space: normal !important;
  word-break: break-word !important;
  overflow: visible !important;
  text-overflow: unset !important;
  -webkit-line-clamp: unset !important;
  display: block !important;
  max-width: 100% !important;
}

.mc-prize-board-meta {
  white-space: normal !important;
  flex-wrap: wrap !important;
  overflow: visible !important;
}

.mc-prize-closes {
  white-space: normal !important;
  word-break: break-word !important;
  overflow: visible !important;
  text-overflow: unset !important;
}

/* Prize board rows — remove borders */
.mc-lb-row--prize {
  border-bottom: none !important;
}

.mc-lb-row--prize .mc-lb-name {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  word-break: break-word !important;
}

/* Prize board header */
.mc-prize-board-header {
  overflow: visible !important;
}

/* ── 6. AUTH TABS & PANEL BORDERS ─────────────────────────────── */
.mc-auth-tabs {
  border-bottom: 1px solid rgba(0,0,0,.07) !important;
}

/* ── 7. MOBILE BOTTOM NAV — no top border ─────────────────────── */
.mc-mob-nav {
  border-top: none !important;
  box-shadow: 0 -1px 12px rgba(0,0,0,.12) !important;
}

/* ── 8. SIDEBAR — no inner horizontal dividers ─────────────────── */
/* Keep sidebar nav clean */
.mc-sidebar-brand,
.mc-sidebar-user,
.mc-sidebar-tier {
  border-bottom: none !important;
}

/* ── 9. FORM INPUTS — native feel ─────────────────────────────── */
.mc-form-control,
.mc-input,
input.mc-form-control {
  border: none !important;
  background: var(--mc-bg, #f4f6fb) !important;
  box-shadow: none !important;
}
.mc-form-control:focus,
.mc-input:focus {
  border: none !important;
  box-shadow: 0 0 0 2px rgba(99,102,241,.25) !important;
  outline: none !important;
}

/* ── 10. MAIN CONTENT — no side padding on mobile (full bleed) ─── */
@media (max-width: 768px) {
  .mc-main {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Let inner widgets handle their own horizontal padding */
  .mc-panel-header {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .mc-section-card,
  .mc-wr-hero,
  .mc-writing-actions,
  .mc-writing-output,
  .mc-citation-output {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* Feature list: full width, card-style with slight inset */
  .mc-feature-list {
    margin: 0 14px !important;
    padding: 0 !important;
  }
  /* Stats row & section title: full width inset */
  .mc-stats-row,
  .mc-fl-section-title {
    margin-left: 14px !important;
    margin-right: 14px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Hero carousel: truly edge-to-edge on mobile (mc-main has 0 padding here) */
  .mc-hero-carousel {
    width: 100% !important;
    margin: 0 0 24px !important;
  }
  .mc-hero-slide { border-radius: 0; padding: 28px 20px 40px; }
  /* Panel sections: proper padding */
  .mc-lb-pill-bar {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  #mc-lb-panel-rankings,
  #mc-lb-panel-prize {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* ══════════════════════════════════════════════════════════════════
   NATIVE APP v2 — Edge-to-edge header + per-feature hero headers
   + Citation tab fix
══════════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────────
   1. TRUE EDGE-TO-EDGE TOPBAR
   The AI plugin uses position:fixed top:0 left:0 right:0 on its
   .msm-app so the header literally starts at pixel 0.
   Achieva uses height-based layout. We fix the topbar by making
   .mc-app itself start at top:0 and the topbar absorbs the
   safe-area-inset-top for the status bar.
───────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {

  /* App shell: start from the very top — extend upward by the bottom nav height */
  body.mc-campus-page .mc-app {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border: none !important;
  }

  /* Topbar: true edge-to-edge, absorbs status bar with safe-area */
  body.mc-campus-page .mc-topbar {
    padding-top: max(14px, env(safe-area-inset-top, 0px)) !important;
    padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
    padding-bottom: 13px !important;
    min-height: calc(54px + env(safe-area-inset-top, 0px)) !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: 0 1px 8px rgba(0,0,0,.15) !important;
    display: flex !important;
    align-items: center !important;
    background: var(--mc-navy, #0f2040) !important;
  }

  /* mc-body fills 100% width, no gaps */
  body.mc-campus-page .mc-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Bottom nav: also edge-to-edge, absorbs home indicator */
  .mc-mob-nav {
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    padding-left: env(safe-area-inset-left, 0px) !important;
    padding-right: env(safe-area-inset-right, 0px) !important;
    border-top: none !important;
    box-shadow: 0 -1px 16px rgba(0,0,0,.18) !important;
  }

  /* ── mc-main content area — give room below for bottom nav ── */
  body.mc-campus-page .mc-main {
    padding: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255,255,255,.18) transparent !important;
  }
}

/* ─────────────────────────────────────────────────────────────────
   2. WRITING TABS — fix "Citation" getting cut off
   Make the tab bar horizontally scrollable with momentum on mobile
───────────────────────────────────────────────────────────────── */
.mc-wr-tabs {
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  flex-wrap: nowrap !important;
  /* keep existing bleed: margin: 0 -18px; padding: 0 18px; */
}
.mc-wr-tabs::-webkit-scrollbar { display: none !important; }

/* Tabs never wrap — they scroll */
.mc-wr-tab {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

/* ─────────────────────────────────────────────────────────────────
   3. HERO HEADERS FOR EVERY FEATURE
   Each panel gets a distinctive colour-coded gradient hero strip
   matching the writing widget pattern but with its own colour.
   Applied to .mc-widget-header, .mc-cl-header, .mc-ref-header,
   .mc-cv-topbar, .mc-lb-pill-bar
───────────────────────────────────────────────────────────────── */

/* ── Shared hero base ── */
.mc-widget-hero,
.mc-widget-header,
.mc-cl-header,
.mc-ref-header {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
  padding: 22px 18px 18px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  border: none !important;
  border-bottom: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* ── Interview Prep — violet/purple ── */
.mc-iv-card .mc-widget-header {
  background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%) !important;
  border-bottom: 1.5px solid #ddd6fe !important;
}
.mc-iv-card .mc-widget-header .mc-h3-icon {
  background: rgba(124,58,237,.13) !important;
  color: #7c3aed !important;
}
.mc-iv-card .mc-widget-header-text h3 {
  color: #4c1d95 !important;
}
.mc-iv-card .mc-widget-header-text p {
  color: #6d28d9 !important;
  opacity: .8;
}

/* ── Research Suggester — emerald green ── */
.mc-res-card .mc-widget-header {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%) !important;
  border-bottom: 1.5px solid #bbf7d0 !important;
}
.mc-res-card .mc-widget-header .mc-h3-icon {
  background: rgba(22,163,74,.13) !important;
  color: #16a34a !important;
}
.mc-res-card .mc-widget-header-text h3 {
  color: #14532d !important;
}
.mc-res-card .mc-widget-header-text p {
  color: #166534 !important;
  opacity: .8;
}

/* ── Career Roadmap — warm blue ── */
.mc-rm-card .mc-widget-header {
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%) !important;
  border-bottom: 1.5px solid #bfdbfe !important;
}
.mc-rm-card .mc-widget-header .mc-h3-icon {
  background: rgba(37,99,235,.12) !important;
  color: #2563eb !important;
}
.mc-rm-card .mc-widget-header-text h3 {
  color: #1e3a8a !important;
}
.mc-rm-card .mc-widget-header-text p {
  color: #1d4ed8 !important;
  opacity: .8;
}

/* ── Cover Letter — amber/gold ── */
.mc-cl-card .mc-cl-header {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) !important;
  border-bottom: 1.5px solid #fde68a !important;
}
.mc-cl-card .mc-cl-header .mc-h3-icon,
.mc-cl-card .mc-cl-header .mc-cl-icon {
  background: rgba(217,119,6,.13) !important;
  color: #d97706 !important;
  width: 36px !important; height: 36px !important; border-radius: 10px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  flex-shrink: 0 !important;
}
.mc-cl-card .mc-cl-header-text h3 {
  color: #78350f !important;
}
.mc-cl-card .mc-cl-header-text p {
  color: #92400e !important;
  opacity: .8;
}

/* ── Referral — warm gold/orange ── */
.mc-ref-wrap .mc-ref-header {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%) !important;
  border-bottom: 1.5px solid #fed7aa !important;
  padding: 22px 22px 18px !important;
}
.mc-ref-wrap .mc-ref-icon-wrap {
  background: rgba(234,88,12,.13) !important;
  color: #ea580c !important;
}
.mc-ref-wrap .mc-ref-heading {
  color: #7c2d12 !important;
}
.mc-ref-wrap .mc-ref-subhead {
  color: #9a3412 !important;
  opacity: .8;
}

/* ── Leaderboard pill bar — navy/gold hero ── */
.mc-lb-wrap .mc-lb-pill-bar {
  background: linear-gradient(135deg, #f8faff 0%, #eef2ff 100%) !important;
  border-bottom: 1.5px solid #c7d2fe !important;
  padding: 0 !important;
}
/* Add a mini hero above the pills */
.mc-lb-wrap::before {
  content: '';
  display: block;
  height: 0;
}

/* ── Challenge widget gets a header hero added via CSS on wrapper ── */
.mc-challenge-wrap {
  position: relative;
}

/* ── CV topbar hero ── */
.mc-cv-topbar {
  background: linear-gradient(135deg, #fdf4ff 0%, #fae8ff 100%) !important;
  border-bottom: 1.5px solid #e9d5ff !important;
  border-radius: 0 !important;
  border-left: none !important; border-right: none !important; border-top: none !important;
}
.mc-cv-topbar-title {
  color: #581c87 !important;
}

/* ── Consistent hero margin flush on mobile ── */
@media (max-width: 768px) {
  .mc-widget-header,
  .mc-cl-header,
  .mc-ref-header {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Hero strips bleed to edges on mobile (no side padding on mc-main) */
  .mc-iv-card,
  .mc-res-card,
  .mc-rm-card,
  .mc-cl-card,
  .mc-ref-wrap {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Writing tabs on mobile: make sure no side padding clips Citation */
  .mc-wr-tabs {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .mc-wr-tab {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* Writing hero full bleed */
  .mc-wr-hero {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* ─────────────────────────────────────────────────────────────────
   4. WRITING HERO — ensure full bleed top-of-panel on mobile
───────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .mc-wr-hero {
    margin: 0 !important;
    border-radius: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ─────────────────────────────────────────────────────────────────
   5. PANEL CONTENT — inner padding so body text breathes
───────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .mc-panel-header {
    padding: 20px 16px 0 !important;
  }
  /* Panels within feature sections */
  .mc-iv-card,
  .mc-res-card,
  .mc-rm-card,
  .mc-cl-card,
  .mc-ref-wrap {
    padding: 0 !important;
  }
  /* Inner content of each panel gets 16px side padding */
  .mc-iv-card > *:not(.mc-widget-header),
  .mc-res-card > *:not(.mc-widget-header),
  .mc-rm-card > *:not(.mc-widget-header),
  .mc-cl-card > *:not(.mc-cl-header),
  .mc-ref-wrap > *:not(.mc-ref-header) {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* CV builder inner content */
  .mc-cv-builder > *:not(.mc-cv-topbar):not(.mc-gate) {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  /* Writing widget inner panel */
  .mc-wr-panel {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* ══════════════════════════════════════════════════════════════════
   NATIVE APP v3 — Fix hero colour implementation
   Problem: .mc-section-card { background: transparent !important }
   from v1 pass was overriding the hero gradient backgrounds.
   Also: .mc-widget-header had margin-bottom pushing it away from
   the card edge instead of sitting flush at the top.
══════════════════════════════════════════════════════════════════ */

/* ── Override the v1 transparent background for section cards ──── */
/* Each named card keeps its own background; only the outer wrapper
   needs to be transparent — the inner hero handles its own colour */
.mc-section-card.mc-iv-card,
.mc-section-card.mc-res-card,
.mc-section-card.mc-rm-card,
.mc-section-card.mc-cl-card,
.mc-section-card.mc-ref-wrap {
  background: var(--mc-card, #fff) !important;
  border-radius: 0 !important;
  border: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}

/* ── Hero headers: flush to top, full width, no margin-bottom gap ── */
.mc-iv-card .mc-widget-header,
.mc-res-card .mc-widget-header,
.mc-rm-card .mc-widget-header,
.mc-cl-card .mc-cl-header,
.mc-ref-wrap .mc-ref-header {
  margin: 0 !important;
  margin-bottom: 0 !important;
  padding: 20px 18px 18px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
}

/* ── INTERVIEW PREP — violet ── */
.mc-iv-card .mc-widget-header {
  background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%) !important;
  border-bottom: 1.5px solid #ddd6fe !important;
}
.mc-iv-card .mc-widget-header .mc-h3-icon {
  background: rgba(124,58,237,.14) !important;
  color: #7c3aed !important;
}
.mc-iv-card .mc-widget-header-text h3 { color: #4c1d95 !important; }
.mc-iv-card .mc-widget-header-text p  { color: #6d28d9 !important; }

/* ── RESEARCH SUGGESTER — emerald ── */
.mc-res-card .mc-widget-header {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%) !important;
  border-bottom: 1.5px solid #bbf7d0 !important;
}
.mc-res-card .mc-widget-header .mc-h3-icon {
  background: rgba(22,163,74,.14) !important;
  color: #16a34a !important;
}
.mc-res-card .mc-widget-header-text h3 { color: #14532d !important; }
.mc-res-card .mc-widget-header-text p  { color: #166534 !important; }

/* ── CAREER ROADMAP — blue ── */
.mc-rm-card .mc-widget-header {
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%) !important;
  border-bottom: 1.5px solid #bfdbfe !important;
}
.mc-rm-card .mc-widget-header .mc-h3-icon {
  background: rgba(37,99,235,.12) !important;
  color: #2563eb !important;
}
.mc-rm-card .mc-widget-header-text h3 { color: #1e3a8a !important; }
.mc-rm-card .mc-widget-header-text p  { color: #1d4ed8 !important; }

/* ── COVER LETTER — amber ── */
.mc-cl-card .mc-cl-header {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) !important;
  border-bottom: 1.5px solid #fde68a !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
}
.mc-cl-card .mc-cl-header .mc-cl-icon,
.mc-cl-card .mc-cl-header .mc-h3-icon {
  background: rgba(217,119,6,.14) !important;
  color: #d97706 !important;
}
.mc-cl-card .mc-cl-header-text h3 { color: #78350f !important; }
.mc-cl-card .mc-cl-header-text p  { color: #92400e !important; }

/* ── REFERRAL — warm orange ── */
.mc-ref-wrap .mc-ref-header {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%) !important;
  border-bottom: 1.5px solid #fed7aa !important;
  padding: 20px 22px 18px !important;
}
.mc-ref-wrap .mc-ref-icon-wrap {
  background: rgba(234,88,12,.14) !important;
  color: #ea580c !important;
}
.mc-ref-wrap .mc-ref-heading { color: #7c2d12 !important; }
.mc-ref-wrap .mc-ref-subhead { color: #9a3412 !important; }

/* ── CV BUILDER topbar — soft purple ── */
.mc-cv-topbar {
  background: linear-gradient(135deg, #fdf4ff 0%, #fae8ff 100%) !important;
  border-bottom: 1.5px solid #e9d5ff !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
}
.mc-cv-topbar-title { color: #581c87 !important; }

/* ── LEADERBOARD pill bar — indigo tint ── */
.mc-lb-wrap .mc-lb-pill-bar {
  background: linear-gradient(135deg, #f8faff 0%, #eef2ff 100%) !important;
  border-bottom: 1.5px solid #c7d2fe !important;
  padding-top: 0 !important;
}


/* ══════════════════════════════════════════════════════════════════
   v4 FIX — Hero description text: make it prominent & readable
   The <p> inside .mc-widget-header-text was 13px var(--mc-muted)
   — nearly invisible on coloured gradient backgrounds.
   Boost size, weight, and use on-brand colours per feature.
══════════════════════════════════════════════════════════════════ */

/* Base: hero header title bigger & bolder */
.mc-iv-card .mc-widget-header-text h3,
.mc-res-card .mc-widget-header-text h3,
.mc-rm-card .mc-widget-header-text h3,
.mc-cl-card .mc-cl-header-text h3,
.mc-ref-wrap .mc-ref-heading {
  font-size: 17px !important;
  font-weight: 800 !important;
  margin-bottom: 5px !important;
  line-height: 1.25 !important;
}

/* Base: description paragraph — visible & readable on gradient */
.mc-iv-card .mc-widget-header-text p,
.mc-res-card .mc-widget-header-text p,
.mc-rm-card .mc-widget-header-text p,
.mc-cl-card .mc-cl-header-text p,
.mc-ref-wrap .mc-ref-subhead {
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  opacity: 1 !important;
}

/* Per-feature description colours — readable on each gradient */
.mc-iv-card .mc-widget-header-text p  { color: #5b21b6 !important; }
.mc-res-card .mc-widget-header-text p { color: #15803d !important; }
.mc-rm-card .mc-widget-header-text p  { color: #1d4ed8 !important; }
.mc-cl-card .mc-cl-header-text p      { color: #b45309 !important; }
.mc-ref-wrap .mc-ref-subhead          { color: #c2410c !important; font-size: 13.5px !important; }

/* Writing widget hero — already well designed, just ensure sub is readable */
.mc-wr-hero-sub {
  font-size: 13.5px !important;
  color: #0369a1 !important;
  line-height: 1.5 !important;
  opacity: 1 !important;
}
.mc-wr-hero-title {
  font-size: 19px !important;
}


/* ══════════════════════════════════════════════════════════════════
   v1.6.5 UI POLISH — Leaderboard intro, filter labels, referral
   redesign, CV hero, widget spacing
══════════════════════════════════════════════════════════════════ */

/* ── 1. LEADERBOARD INTRO BANNER ──────────────────────────────── */
.mc-lb-intro {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 18px 16px;
  border-bottom: 1px solid var(--mc-border, #e8edf2);
}
.mc-lb-intro-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #1a3a6e 0%, #1a6fe8 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mc-lb-intro-icon svg { width: 20px; height: 20px; }
.mc-lb-intro-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--mc-navy, #0f2040);
  margin: 0 0 4px;
}
.mc-lb-intro-desc {
  font-size: 13px;
  color: var(--mc-text2, #64748b);
  line-height: 1.55;
  margin: 0;
}
[data-theme="dark"] .mc-lb-intro-icon { background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%); }
[data-theme="dark"] .mc-lb-intro-title { color: #f1f5f9; }
[data-theme="dark"] .mc-lb-intro-desc  { color: #94a3b8; }

/* ── 2. FILTER ITEMS WITH LABELS ──────────────────────────────── */
.mc-lb-filters {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 18px 14px;
}
.mc-lb-filter-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mc-lb-filter-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--mc-muted, #94a3b8);
  text-transform: uppercase;
  letter-spacing: .4px;
  padding-left: 2px;
}
.mc-lb-filter-label svg { opacity: .7; }
.mc-lb-filter-item input[type="month"],
.mc-lb-filter-item select {
  font-size: 13px;
  border-radius: 9px;
  border: 1.5px solid var(--mc-border, #e8edf2);
  padding: 7px 10px;
  background: var(--mc-card, #fff);
  color: var(--mc-text, #1e293b);
  font-family: inherit;
  min-width: 130px;
  cursor: pointer;
  transition: border-color .15s;
}
.mc-lb-filter-item input[type="month"]:focus,
.mc-lb-filter-item select:focus {
  border-color: #1a6fe8;
  outline: none;
}
[data-theme="dark"] .mc-lb-filter-item input,
[data-theme="dark"] .mc-lb-filter-item select {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.12);
  color: #f1f5f9;
}
[data-theme="dark"] .mc-lb-filter-label { color: #64748b; }

/* ── 3. REFERRAL HERO BANNER ──────────────────────────────────── */
.mc-ref-hero {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--mc-border, #e8edf2);
}
.mc-ref-hero-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(135deg, #ea580c 0%, #f97316 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mc-ref-hero-icon svg { width: 20px; height: 20px; }
.mc-ref-hero-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--mc-navy, #0f2040);
  margin: 0 0 5px;
}
.mc-ref-hero-desc {
  font-size: 13px;
  color: var(--mc-text2, #64748b);
  line-height: 1.55;
  margin: 0;
}
[data-theme="dark"] .mc-ref-hero-title { color: #f1f5f9; }
[data-theme="dark"] .mc-ref-hero-desc  { color: #94a3b8; }

/* ── Reward cards ── */
.mc-ref-rewards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--mc-border, #e8edf2);
}
.mc-ref-reward-card {
  border-radius: 12px;
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}
.mc-ref-reward--signup {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
}
.mc-ref-reward--sub {
  background: #fef9c3;
  border: 1.5px solid #fde68a;
}
[data-theme="dark"] .mc-ref-reward--signup { background: rgba(22,163,74,.08); border-color: rgba(22,163,74,.2); }
[data-theme="dark"] .mc-ref-reward--sub    { background: rgba(217,119,6,.08); border-color: rgba(217,119,6,.2); }
.mc-ref-reward-pts {
  font-size: 18px;
  font-weight: 800;
  color: var(--mc-navy, #0f2040);
  letter-spacing: -.3px;
}
.mc-ref-reward--signup .mc-ref-reward-pts { color: #15803d; }
.mc-ref-reward--sub    .mc-ref-reward-pts { color: #b45309; }
[data-theme="dark"] .mc-ref-reward--signup .mc-ref-reward-pts { color: #4ade80; }
[data-theme="dark"] .mc-ref-reward--sub    .mc-ref-reward-pts { color: #fbbf24; }
.mc-ref-reward-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mc-ref-reward--signup .mc-ref-reward-icon { background: #dcfce7; color: #15803d; }
.mc-ref-reward--sub    .mc-ref-reward-icon { background: #fef9c3; color: #b45309; }
.mc-ref-reward-icon svg { width: 14px; height: 14px; }
.mc-ref-reward-label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mc-text2, #64748b);
  line-height: 1.3;
}

/* Referral row icon — replace emoji with SVG sizing */
.mc-ref-row-icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 8px;
}
.mc-ref-row-icon svg { width: 13px; height: 13px; }
.mc-ref-row-icon.subscribed svg { stroke: #b45309; }
.mc-ref-row-icon.signup     svg { stroke: #15803d; }
.mc-ref-row-icon.other      svg { stroke: var(--mc-muted, #94a3b8); }

/* Recent label */
.mc-ref-recent-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--mc-muted, #94a3b8);
  margin: 0 0 10px;
}

/* ── 4. CV BUILDER HERO ────────────────────────────────────────── */
.mc-cv-hero {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 20px 0;
  margin-bottom: 18px;
}
.mc-cv-hero-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #1a3a6e 0%, #1a6fe8 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mc-cv-hero-icon svg { width: 22px; height: 22px; }
.mc-cv-hero-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--mc-navy, #0f2040);
  margin: 0 0 5px;
}
.mc-cv-hero-desc {
  font-size: 13px;
  color: var(--mc-text2, #64748b);
  line-height: 1.6;
  margin: 0 0 10px;
}
.mc-cv-hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.mc-cv-hero-tag {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 99px;
  background: #dbeafe;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}
[data-theme="dark"] .mc-cv-hero-icon    { background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%); }
[data-theme="dark"] .mc-cv-hero-title   { color: #f1f5f9; }
[data-theme="dark"] .mc-cv-hero-desc    { color: #94a3b8; }
[data-theme="dark"] .mc-cv-hero-tag     { background: rgba(37,99,235,.15); color: #93c5fd; border-color: rgba(37,99,235,.25); }

/* ── 5. WIDGET SPACING — hero → pills/form gap ─────────────────── */
/* Cover Letter: more space between header and type pills */
.mc-cl-form {
  gap: 20px !important;
  padding-top: 6px !important;
}
.mc-cl-type-row {
  margin-top: 4px;
}
/* Interview: breathing room above question bank */
.mc-iv-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.mc-iv-qbank-wrap {
  padding-top: 6px;
}
/* Roadmap: breathing room above form */
.mc-rm-form {
  padding-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ── Consistent hero-to-content gap for header dividers ─────────── */
.mc-iv-card .mc-widget-header,
.mc-rm-card .mc-widget-header,
.mc-cl-card .mc-cl-header {
  margin-bottom: 0 !important;
  padding-bottom: 18px !important;
}
.mc-iv-card .mc-iv-form,
.mc-rm-card .mc-rm-form,
.mc-cl-card .mc-cl-form {
  padding-top: 18px !important;
}

/* ── Global toast notification ───────────────────────────────────────
   mcToast() in campus.js creates #mc-toast-el dynamically and toggles
   .mc-toast-show. Without these rules the element is invisible.
──────────────────────────────────────────────────────────────────── */
#mc-toast-el.mc-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  z-index: 99999;
  min-width: 220px;
  max-width: 88vw;
  padding: 12px 22px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
  box-shadow: 0 4px 18px rgba(0,0,0,.18);
}
#mc-toast-el.mc-toast.mc-toast-show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
#mc-toast-el.mc-toast-success { background: #1a7f4b; color: #fff; }
#mc-toast-el.mc-toast-error   { background: #c0392b; color: #fff; }
#mc-toast-el.mc-toast-info    { background: #2563eb; color: #fff; }

/* ── Save button spinner ─────────────────────────────────────────── */
.mc-btn-spinner {
  display: inline-block;
  width: 13px;
  height: 13px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: mc-spin .6s linear infinite;
  vertical-align: middle;
  margin-right: 4px;
}
@keyframes mc-spin {
  to { transform: rotate(360deg); }
}

/* ── University toggle visual feedback ──────────────────────────── */
#prof-lb-show-uni {
  accent-color: var(--mc-primary, #6c3fc5);
  width: 16px;
  height: 16px;
  cursor: pointer;
  transition: transform .15s ease;
}
#prof-lb-show-uni:active { transform: scale(0.88); }
.mc-field-privacy-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  cursor: pointer;
  font-size: 13px;
  color: var(--mc-text2, #64748b);
  user-select: none;
}

/* ── Pro lock badges on disabled pills/tabs ─────────────────── */
.mc-pro-lock {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(135deg, #d97706, #f59e0b);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 1px 5px;
    border-radius: 4px;
    margin-left: 4px;
    vertical-align: middle;
    line-height: 14px;
}
.mc-pill-locked,
.mc-tab-locked {
    opacity: .55;
    cursor: not-allowed !important;
    pointer-events: none;
}
.mc-pill-locked:hover,
.mc-tab-locked:hover {
    background: inherit !important;
    color: inherit !important;
}

/* ── Pricing page enhancements ──────────────────────────────── */
.mc-plan-tagline {
    font-size: 12px;
    color: #6b7280;
    margin: -6px 0 10px;
    font-style: italic;
}
.mc-plan-badge-pro {
    background: linear-gradient(135deg, #d97706, #f59e0b) !important;
    color: #fff !important;
}
.mc-pricing-note {
    max-width: 620px;
    margin: 24px auto 0;
    padding: 14px 20px;
    background: #f8fafc;
    border-left: 3px solid #3b82f6;
    border-radius: 8px;
    font-size: 13px;
    color: #374151;
    line-height: 1.6;
    text-align: center;
}

/* ── Gate card (full-page lock screen) ──────────────────────── */
.mc-gate-large {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 48px 24px;
    min-height: 320px;
    background: #fff;
    border-radius: 16px;
    margin: 16px;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.mc-gate-large .mc-gate-icon {
    font-size: 40px;
    margin-bottom: 12px;
    line-height: 1;
}
.mc-gate-large h3 {
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #111827;
}
.mc-gate-large p {
    font-size: 14px;
    color: #6b7280;
    margin: 0 0 24px;
    max-width: 280px;
    line-height: 1.5;
}
.mc-gate-large .mc-btn {
    white-space: nowrap;
    padding: 12px 28px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 10px;
    min-width: 220px;
}

/* ── Locked hero tag ────────────────────────────────────────── */
.mc-tag-locked {
    opacity: .7;
    background: #f3f4f6 !important;
    color: #6b7280 !important;
    border: 1px dashed #d1d5db;
}

/* ══════════════════════════════════════════════════════════════
   UPGRADE / GATE BUTTONS — Premium treatment
   ══════════════════════════════════════════════════════════════ */

/* Base upgrade button — replaces plain mc-btn-primary in gate contexts */
.mc-gate .mc-btn,
.mc-gate-large .mc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none !important;
    white-space: nowrap;
    letter-spacing: .01em;
    box-shadow: 0 2px 0 rgba(0,0,0,.18), 0 4px 16px rgba(26,58,107,.18);
    transition: transform .15s, box-shadow .15s, opacity .15s;
}
.mc-gate .mc-btn:hover,
.mc-gate-large .mc-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 rgba(0,0,0,.16), 0 8px 24px rgba(26,58,107,.22);
    text-decoration: none !important;
}
.mc-gate .mc-btn:active,
.mc-gate-large .mc-btn:active {
    transform: translateY(1px);
    box-shadow: 0 1px 0 rgba(0,0,0,.18);
}

/* Basic upgrade button — deep navy, clean */
.mc-gate .mc-btn-primary,
.mc-gate-large .mc-btn-primary {
    background: #0f2040;
    border-color: #0f2040;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    padding: 13px 28px;
    border-radius: 10px;
    min-width: 200px;
    width: auto;           /* override mc-btn-full stretching */
    max-width: 320px;
    align-self: center;
}
.mc-gate .mc-btn-primary::before {
    content: '⚡';
    font-size: 13px;
    margin-right: 2px;
}
.mc-gate .mc-btn-primary:hover {
    background: #1a3a6b;
    border-color: #1a3a6b;
    color: #fff;
}

/* Pro upgrade button — rich purple/blue, premium feel */
.mc-gate .mc-btn-pro,
.mc-gate-large .mc-btn-pro {
    background: #4f2ca8;
    border: none;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    padding: 13px 28px;
    border-radius: 10px;
    min-width: 200px;
    max-width: 320px;
    align-self: center;
    box-shadow: 0 2px 0 rgba(0,0,0,.2), 0 6px 20px rgba(79,44,168,.28);
}
.mc-gate .mc-btn-pro::before {
    content: '✦';
    font-size: 12px;
    margin-right: 2px;
}
.mc-gate .mc-btn-pro:hover {
    background: #3b1f8a;
    color: #fff;
    box-shadow: 0 4px 0 rgba(0,0,0,.18), 0 10px 28px rgba(79,44,168,.32);
}

/* Gate container — give it a subtle card feel */
.mc-gate {
    background: #fff;
    border: 1px solid #e5e9f0;
    border-radius: 14px;
    padding: 36px 24px;
    margin: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.mc-gate p {
    font-size: 14px;
    color: #4b5563;
    margin-bottom: 20px;
    max-width: 300px;
    line-height: 1.55;
}

/* Pill below button — "or compare plans" style hint */
.mc-gate .mc-btn + .mc-gate-hint {
    display: block;
    margin-top: 10px;
    font-size: 11px;
    color: #9ca3af;
}

/* Override mc-btn-full inside gates — don't stretch full width */
.mc-gate .mc-btn-full,
.mc-gate-large .mc-btn-full {
    width: auto;
}
