/* =========================================================
   Math Q&A Academy — main.css (COMPLETE)
   Homepage-first stabilization pass:
   - Fix header alignment issues (logo link + centered nav)
   - Add missing homepage styles used in index.html
   - Keep existing global/page styles intact
========================================================= */

/* =========================
   0) TOKENS + BASE RESET
========================= */
:root{
  /* Core colors */
  --bg0:#0b0d1c;
  --bg1:#0f1125;
  --text:#f5f7ff;
  --muted:rgba(255,255,255,.82);
  --muted2:rgba(255,255,255,.68);

  /* Theme accents */
  --gold:#ffd447;
  --goldSoft:rgba(255,212,71,.14);
  --blue:#3b66ff;
  --blueSoft:rgba(59,102,255,.18);

  /* Surfaces */
  --panel:rgba(255,255,255,.05);
  --panelStrong:rgba(255,255,255,.07);
  --ink:rgba(0,0,0,.16);

  /* Borders + shadows */
  --border:rgba(168,182,255,.18);
  --border2:rgba(168,182,255,.25);
  --shadow:0 10px 22px rgba(0,0,0,.14);
  --shadow2:0 18px 46px rgba(0,0,0,.46);

  /* Radius */
  --radius:18px;
  --radius2:14px;

  /* Layout */
  --max:1120px;
  --pad:18px;

  /* Pills */
  --pillH:42px;
}

:root[data-theme="light"]{
  --bg0:#f6f7ff;
  --bg1:#edf0ff;
  --text:#111322;
  --muted:rgba(17,19,34,.82);
  --muted2:rgba(17,19,34,.66);

  --panel:rgba(0,0,0,.05);
  --panelStrong:rgba(0,0,0,.07);
  --ink:rgba(0,0,0,.06);

  --border:rgba(0,0,0,.14);
  --border2:rgba(0,0,0,.22);
  --shadow:0 10px 22px rgba(0,0,0,.10);
  --shadow2:0 18px 46px rgba(0,0,0,.18);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  min-height:100vh;
  color:var(--text);
  font-family:Poppins, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 700px at 50% 0%, var(--blueSoft), transparent 60%),
    radial-gradient(900px 700px at 85% 0%, var(--goldSoft), transparent 55%),
    linear-gradient(180deg, var(--bg1), var(--bg0));
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;}
:focus-visible{outline:2px solid rgba(255,212,71,.9);outline-offset:2px;}

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

.muted{color:var(--muted2);}
.tiny-note{font-size:12px;color:var(--muted2);line-height:1.45;}

/* Line clamp helpers */
.clamp-1,.clamp-2,.clamp-3,.clamp-4{
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
}
.clamp-1{-webkit-line-clamp:1;}
.clamp-2{-webkit-line-clamp:2;}
.clamp-3{-webkit-line-clamp:3;}
.clamp-4{-webkit-line-clamp:4;}

/* =========================
   1) GLOBAL WRAPPERS
========================= */
.page-main,
.home-main,
.courses-main,
.videos-main,
.games-main,
.dashboard-main,
.leaderboards-main{
  max-width:var(--max);
  margin:0 auto;
  padding:18px 14px 54px;
}

/* Defensive spacing */
.page-main > *:first-child,
.home-main > *:first-child,
.courses-main > *:first-child,
.videos-main > *:first-child,
.games-main > *:first-child,
.dashboard-main > *:first-child,
.leaderboards-main > *:first-child{margin-top:0;}

/* =========================
   2) PRIMITIVES
========================= */
.panel{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}

.card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius2);
  box-shadow:var(--shadow);
  padding:14px;
  min-width:0;
}

.card h3{margin:0 0 6px;font-size:16px;line-height:1.25;}
.card p{margin:0;color:var(--muted);line-height:1.5;font-size:13px;}
.card-actions{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;}

.empty{
  text-align:center;
  padding:16px 12px;
  border-radius:var(--radius);
  border:1px solid var(--border);
  background:rgba(0,0,0,.10);
  color:var(--muted);
}

.grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}

/* Gold hover highlight for “cards” */
.card:hover,
.video-card:hover,
.game-card:hover,
.stat-card:hover,
.lb-card:hover,
.feature:hover,
.course-card:hover,
.home-card:hover,
.home-course-card:hover,
.quicklink:hover{
  border-color:rgba(255,212,71,.55);
  box-shadow:0 0 0 3px rgba(255,212,71,.10), var(--shadow);
  background:linear-gradient(180deg, rgba(255,212,71,.10), rgba(0,0,0,.06));
  transform:translateY(-1px);
}

/* =========================
   3) BUTTONS + CONTROLS
========================= */
.btn,
.header-login-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  height:var(--pillH);
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--border2);
  background:rgba(0,0,0,.14);
  color:rgba(255,255,255,.92);
  font-weight:900;
  cursor:pointer;
  box-shadow:var(--shadow);
  transition:transform .12s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

:root[data-theme="light"] .btn,
:root[data-theme="light"] .header-login-btn{
  background:rgba(255,255,255,.55);
  color:rgba(17,19,34,.92);
}

.btn:hover,
.header-login-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(255,212,71,.60);
  box-shadow:0 0 0 3px rgba(255,212,71,.10), var(--shadow);
  background:rgba(255,212,71,.10);
}

.btn-primary{
  border-color:rgba(59,102,255,.65);
  background:rgba(59,102,255,.22);
}
.btn-primary:hover{
  border-color:rgba(255,212,71,.70);
  background:rgba(255,212,71,.16);
}

.btn-ghost{background:rgba(0,0,0,.10);}
.btn-small{height:36px;padding:0 12px;font-size:13px;}

/* Inputs */
.input,
.challenge-input,
input[type="text"],
input[type="number"]{
  height:var(--pillH);
  border-radius:999px;
  border:1px solid var(--border2);
  background:rgba(0,0,0,.16);
  color:rgba(255,255,255,.92);
  padding:0 14px;
  outline:none;
}
:root[data-theme="light"] .input,
:root[data-theme="light"] .challenge-input,
:root[data-theme="light"] input[type="text"],
:root[data-theme="light"] input[type="number"]{
  background:rgba(255,255,255,.70);
  color:rgba(17,19,34,.92);
}
.input:focus,
.challenge-input:focus,
input[type="text"]:focus,
input[type="number"]:focus{
  border-color:rgba(255,212,71,.65);
  box-shadow:0 0 0 3px rgba(255,212,71,.12);
}

/* Selects */
.ui-select,
select{
  height:var(--pillH);
  width:100%;
  border-radius:999px;
  border:1px solid var(--border2);
  background:rgba(0,0,0,.16);
  color:rgba(255,255,255,.92);
  padding:0 14px;
  font-weight:800;
  outline:none;
  appearance:none;
}
:root[data-theme="light"] .ui-select,
:root[data-theme="light"] select{
  background:rgba(255,255,255,.70);
  color:rgba(17,19,34,.92);
}
.ui-select:focus,
select:focus{
  border-color:rgba(255,212,71,.65);
  box-shadow:0 0 0 3px rgba(255,212,71,.12);
}

/* =========================
   4) HEADER (site-header.js + auth.js)
========================= */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  width:100%;
  backdrop-filter:blur(12px);
  background:rgba(15,17,37,.80);
  border-bottom:1px solid rgba(168,182,255,.12);

  /* Grid keeps the center nav perfectly aligned between left + right */
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;

  padding:12px 16px;
  gap:14px;
}

/* ✅ Homepage/header fix:
   - Keep the logo centered vertically + clickable area consistent
   - Center the nav between logo + right controls
*/
.header-left{display:flex;align-items:center;gap:12px;flex:0 0 auto;}
.header-left a{display:flex;align-items:center;justify-content:center;line-height:0;}
.nav-links{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 1 auto;flex-wrap:wrap;}
.header-right{display:flex;align-items:center;gap:10px;flex:0 0 auto;}
/* ===== Mobile header controls (hamburger + dropdown) ===== */
.nav-toggle-btn{
  display:none;
  width:42px;height:42px;
  border-radius:999px;
  border:1px solid rgba(168,182,255,.18);
  background:rgba(255,255,255,.06);
  box-shadow:0 10px 18px rgba(0,0,0,.18);
  cursor:pointer;
  position:relative;
}
.nav-toggle-btn:hover{ transform:translateY(-1px); }
.nav-toggle-btn:active{ transform:translateY(0); }

.nav-toggle-icon{
  position:absolute;
  left:50%; top:50%;
  width:18px; height:12px;
  transform:translate(-50%,-50%);
}
.nav-toggle-icon::before,
.nav-toggle-icon::after,
.nav-toggle-icon span{
  content:"";
  position:absolute;
  left:0; right:0;
  height:2px;
  border-radius:2px;
  background:rgba(255,255,255,.92);
}
.nav-toggle-icon::before{ top:0; }
.nav-toggle-icon span{ top:5px; }
.nav-toggle-icon::after{ bottom:0; }

.mobile-nav-open .nav-toggle-icon::before{ transform:translateY(5px) rotate(45deg); }
.mobile-nav-open .nav-toggle-icon::after{ transform:translateY(-5px) rotate(-45deg); }
.mobile-nav-open .nav-toggle-icon span{ opacity:0; }

/* Mobile dropdown panel (fixed for iOS overflow: no left/right + margin combo) */
.mobile-nav-panel{
  display:none;
  position:absolute;
  top:100%;
  left:12px;
  right:12px;
  margin-top:10px;
  padding:12px;
  border-radius:18px;
  background:rgba(15,17,37,.92);
  border:1px solid rgba(168,182,255,.16);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 34px rgba(0,0,0,.38);
  box-sizing:border-box;
}
.mobile-nav-links{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.mobile-nav-links a{
  justify-content:flex-start;
  width:100%;
}

/* Mobile header layout */
@media (max-width: 768px){
  .nav-links{ display:none !important; }
  .nav-toggle-btn{ display:inline-flex; align-items:center; justify-content:center; }
  .mobile-nav-panel{ display:block; }
  .mobile-nav-panel[hidden]{ display:none !important; }

  /* iOS Safari: prevent any remaining horizontal wiggle */
  html, body{ overflow-x:hidden; max-width:100%; }

  /* Tables: stop global min-width from shrinking the page on mobile */
  table{ min-width:0 !important; }
}

/* --- Header alignment + dropdown robustness (hotfix) --- */
.nav-links a{ line-height:1; }
.header-right{ position:relative; z-index:2; }
.user-dropdown.show,
.user-dropdown.active,
.user-dropdown[data-open="true"]{ display:block; }


:root[data-theme="light"] .site-header{
  background:rgba(245,247,255,.85);
  border-bottom:1px solid rgba(0,0,0,.10);
}

.brand-logo{
  width:52px;height:52px;
  object-fit:contain;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.25));

  /* Larger logo without increasing header height */
  transform:scale(1.22);
  transform-origin:left center;
}


/* Nav pills */
.nav-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:var(--pillH);
  padding:0 14px;
  border-radius:999px;
  border:1px solid transparent;
  color:rgba(255,255,255,.86);
  font-weight:900;
  transition:background .18s ease, border-color .18s ease, transform .12s ease;
  white-space:nowrap;
}
:root[data-theme="light"] .nav-links a{color:rgba(17,19,34,.86);}

.nav-links a:hover{
  background:rgba(0,0,0,.12);
  border-color:rgba(168,182,255,.18);
  transform:translateY(-1px);
}
:root[data-theme="light"] .nav-links a:hover{
  background:rgba(0,0,0,.06);
  border-color:rgba(0,0,0,.14);
}

.nav-links a.is-active,
.nav-links a[aria-current="page"]{
  background:rgba(0,0,0,.16);
  border-color:rgba(255,212,71,.60);
  box-shadow:0 0 0 3px rgba(255,212,71,.10);
  pointer-events:none;
}
:root[data-theme="light"] .nav-links a.is-active,
:root[data-theme="light"] .nav-links a[aria-current="page"]{
  background:rgba(0,0,0,.06);
}

/* Theme toggle */
.theme-toggle-btn{
  width:44px;height:44px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(0,0,0,.12);
  color:rgba(255,255,255,.90);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:var(--shadow);
  transition:transform .12s ease, border-color .18s ease, background .18s ease;
}
:root[data-theme="light"] .theme-toggle-btn{
  background:rgba(0,0,0,.04);
  color:rgba(17,19,34,.86);
}
.theme-toggle-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(255,212,71,.60);
  background:rgba(255,212,71,.10);
}

/* Auth menu */
.user-menu{position:relative;display:inline-flex;align-items:center;}
.user-pill,
.user-menu-toggle{
  display:inline-flex;
  align-items:center;
  gap:10px;
  height:var(--pillH);
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(168,182,255,.18);
  background:rgba(0,0,0,.12);
  color:rgba(255,255,255,.92);
  font-weight:900;
  cursor:pointer;
  box-shadow:var(--shadow);
}
:root[data-theme="light"] .user-pill,
:root[data-theme="light"] .user-menu-toggle{
  background:rgba(0,0,0,.04);
  color:rgba(17,19,34,.90);
  border-color:rgba(0,0,0,.14);
}
.user-pill:hover,
.user-menu-toggle:hover{
  border-color:rgba(255,212,71,.60);
  box-shadow:0 0 0 3px rgba(255,212,71,.10), var(--shadow);
}

.user-avatar,
.user-chip{
  width:26px;height:26px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(168,182,255,.18);
  display:flex;align-items:center;justify-content:center;
  font-weight:900;
  font-size:12px;
  color:rgba(255,255,255,.90);
}
:root[data-theme="light"] .user-avatar,
:root[data-theme="light"] .user-chip{
  background:rgba(0,0,0,.06);
  color:rgba(17,19,34,.88);
  border-color:rgba(0,0,0,.14);
}

.user-dropdown{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:220px;
  border-radius:16px;
  border:1px solid rgba(168,182,255,.18);
  background:rgba(15,17,37,.92);
  backdrop-filter:blur(10px);
  box-shadow:var(--shadow2);
  padding:10px;
  display:none;
}
:root[data-theme="light"] .user-dropdown{
  background:rgba(245,247,255,.92);
  border-color:rgba(0,0,0,.12);
}

.user-dropdown.open,
.user-dropdown.is-open{display:block;}

.user-dropdown a,
.user-dropdown button{
  width:100%;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(168,182,255,.14);
  background:rgba(0,0,0,.10);
  color:rgba(255,255,255,.92);
  font-weight:900;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
:root[data-theme="light"] .user-dropdown a,
:root[data-theme="light"] .user-dropdown button{
  background:rgba(0,0,0,.04);
  color:rgba(17,19,34,.90);
  border-color:rgba(0,0,0,.12);
}

.user-dropdown a + a,
.user-dropdown a + button,
.user-dropdown button + a,
.user-dropdown button + button{margin-top:10px;}

.user-dropdown a:hover,
.user-dropdown button:hover{
  border-color:rgba(255,212,71,.60);
  box-shadow:0 0 0 3px rgba(255,212,71,.10);
  background:rgba(255,212,71,.10);
}

/* Responsive header */
@media (max-width:860px){
  .site-header{flex-wrap:wrap;}
  .nav-links{gap:8px;justify-content:flex-start;flex:1 1 100%;}
}

/* =========================
   5) SHARED HERO
========================= */
.home-kicker{
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--muted2);
  margin:0 0 8px;
}

.page-hero{padding:16px;margin-bottom:14px;}
.page-hero-top{display:flex;align-items:center;gap:14px;}
.page-hero-q{
  width:66px;height:66px;
  object-fit:contain;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.22));
  flex:0 0 auto;
}
.page-title{margin:0 0 6px;font-size:28px;letter-spacing:.2px;}
.page-subtitle{margin:0;color:var(--muted);line-height:1.45;max-width:78ch;}

@media (max-width:620px){
  .page-hero-top{align-items:flex-start;}
  .page-hero-q{width:58px;height:58px;}
  .page-title{font-size:24px;}
}

/* =========================
   6) HOME PAGE (index.html)
========================= */
.home-hero{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:14px;
  align-items:start;
  margin-top:14px;
}
@media (max-width:980px){
  .home-hero{grid-template-columns:1fr;}
}

/* Make the left hero block look like a card even though it's a plain div */
.home-hero-left{
  padding:18px;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}

.home-hero-right{display:flex;flex-direction:column;gap:14px;}

/* Hero typography */
.home-title{
  margin:0 0 10px;
  font-size:40px;
  line-height:1.05;
  letter-spacing:-.02em;
}
.home-subtitle{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.5;
  max-width:64ch;
}

@media (max-width:520px){
  .home-title{font-size:32px;}
}

/* Q hero */
.q-hero{
  width:clamp(120px, 14vw, 180px);
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.20));
  animation:qFloat 4.6s ease-in-out infinite;
  transform-origin:50% 70%;
  margin-bottom:10px;
}
@keyframes qFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}

/* Pills under hero */
.home-micro{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}
.micro-pill{
  display:inline-flex;
  align-items:center;
  height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(0,0,0,.10);
  font-weight:900;
  font-size:12px;
  color:rgba(255,255,255,.86);
}
:root[data-theme="light"] .micro-pill{
  background:rgba(0,0,0,.04);
  color:rgba(17,19,34,.86);
}

/* Right-side cards */
.home-card,
.hero-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
  min-width:0;
  backdrop-filter:blur(10px);
}

.card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.hero-card-title{
  margin:0;
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted2);
}

.card-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  height:30px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(255,212,71,.55);
  background:rgba(255,212,71,.10);
  color:rgba(255,212,71,.95);
  font-weight:900;
  font-size:12px;
}

.hero-card-problem{
  margin:0 0 6px;
  font-weight:900;
  font-size:16px;
}
.hero-card-meta{
  margin:0 0 10px;
  color:var(--muted2);
  font-size:12px;
}

/* Challenge form (homepage) */
.challenge-form{display:flex;gap:10px;align-items:center;}
.challenge-form .challenge-input{flex:1;}
.challenge-submit{
  height:var(--pillH);
  padding:0 16px;
  border-radius:999px;
  border:1px solid rgba(59,102,255,.65);
  background:rgba(59,102,255,.22);
  color:rgba(255,255,255,.92);
  font-weight:900;
  cursor:pointer;
  box-shadow:var(--shadow);
  transition:transform .12s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
:root[data-theme="light"] .challenge-submit{
  color:rgba(17,19,34,.92);
  background:rgba(59,102,255,.14);
}
.challenge-submit:hover{
  transform:translateY(-1px);
  border-color:rgba(255,212,71,.70);
  box-shadow:0 0 0 3px rgba(255,212,71,.10), var(--shadow);
  background:rgba(255,212,71,.16);
}

.challenge-feedback{margin:10px 0 0;color:var(--muted);min-height:18px;}

/* Quick links block */
.home-quicklinks{padding:0;overflow:hidden;}
.quicklink{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border-top:1px solid rgba(168,182,255,.12);
  background:rgba(0,0,0,.06);
  transition:background .18s ease, transform .12s ease, border-color .18s ease, box-shadow .18s ease;
}
.quicklink:first-child{border-top:none;}
:root[data-theme="light"] .quicklink{background:rgba(0,0,0,.03);}
.quick-ico{
  width:40px;height:40px;
  border-radius:12px;
  border:1px solid rgba(168,182,255,.18);
  background:rgba(0,0,0,.10);
  display:flex;align-items:center;justify-content:center;
  font-weight:900;
}
:root[data-theme="light"] .quick-ico{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.12);}
.quick-main{min-width:0;display:flex;flex-direction:column;gap:2px;}
.quick-title{font-weight:900;}
.quick-sub{font-size:12px;color:var(--muted2);}
.quick-arrow{margin-left:auto;font-weight:900;color:rgba(255,255,255,.70);}
:root[data-theme="light"] .quick-arrow{color:rgba(17,19,34,.65);}

/* “Top 3 today” strip */
.top-players-strip{
  margin-top:14px;
  background:rgba(0,0,0,.10);
  border:1px solid rgba(168,182,255,.14);
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
:root[data-theme="light"] .top-players-strip{
  background:rgba(0,0,0,.04);
  border-color:rgba(0,0,0,.12);
}
.top-players-inner{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  flex-wrap:wrap;
}
.top-players-label{font-weight:900;}
.top-players-list{display:flex;gap:10px;flex-wrap:wrap;align-items:center;min-width:0;}
.top3-loading{color:var(--muted2);font-weight:800;}
.top-players-link{
  margin-left:auto;
  font-weight:900;
  color:rgba(255,212,71,.95);
  white-space:nowrap;
}
@media (max-width:640px){
  .top-players-link{margin-left:0;}
}

/* Steps section */
.home-steps{margin-top:14px;}
.steps-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.step-card{
  grid-column:span 12;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:16px;
}
@media (min-width:900px){ .step-card{grid-column:span 4;} }
.step-card h2{margin:0 0 6px;font-size:16px;}
.step-card p{margin:0;color:var(--muted);line-height:1.5;}

/* Courses section (homepage) */
.home-courses{margin-top:14px;}
.home-section-head{margin:0 0 10px;}
.home-section-head h2{margin:0 0 4px;font-size:18px;}
.home-section-head p{margin:0;color:var(--muted2);}

.home-course-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.home-course-card{
  grid-column:span 12;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:16px;
}
@media (min-width:900px){ .home-course-card{grid-column:span 3;} }
.home-course-card h3{margin:0 0 6px;}
.home-course-card p{margin:0 0 12px;color:var(--muted);line-height:1.5;}

/* CTA section (homepage) */
.home-cta{margin-top:14px;}
.cta-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px;
  border-radius:22px;
  border:1px solid var(--border);
  background:
    radial-gradient(900px 260px at 20% 0%, var(--blueSoft), transparent 55%),
    var(--panel);
  box-shadow:var(--shadow);
}
@media (max-width:820px){
  .cta-card{flex-wrap:wrap;justify-content:flex-start;}
}
.q-cta{
  width:60px;height:60px;
  object-fit:contain;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.22));
  flex:0 0 auto;
}
.cta-text{min-width:0;}
.cta-text h2{margin:0 0 6px;font-size:18px;}
.cta-text p{margin:0;color:var(--muted);}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;}

/* Logged-in streak strip (homepage) */
.personal-strip{
  max-width:var(--max);
  margin:14px auto 0;
  padding:0 14px;
}
.personal-strip-content{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(168,182,255,.14);
  background:rgba(0,0,0,.10);
  box-shadow:var(--shadow);
  flex-wrap:wrap;
}
:root[data-theme="light"] .personal-strip-content{
  background:rgba(0,0,0,.04);
  border-color:rgba(0,0,0,.12);
}
.personal-strip-label{font-weight:900;color:var(--muted2);}
.personal-strip-value{font-weight:900;}
.personal-strip-link{
  font-weight:900;
  color:rgba(255,212,71,.95);
  white-space:nowrap;
}
.personal-strip--hidden{display:none;}

/* =========================
   7) COURSES PAGE
========================= */
.courses-hero{padding:16px;overflow:hidden;position:relative;}
.courses-hero::after{
  content:"";
  position:absolute;
  right:-90px;
  top:-90px;
  width:420px;
  height:420px;
  border-radius:999px;
  background:radial-gradient(circle at 30% 30%, var(--blueSoft), transparent 60%);
  opacity:.25;
  pointer-events:none;
}

.courses-hero-inner{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:14px;
  align-items:start;
}
@media (max-width:980px){ .courses-hero-inner{grid-template-columns:1fr;} }

.q-hero--courses{
  width:70px;height:70px;
  object-fit:contain;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.25));
}

.course-tabs{margin-top:12px;display:flex;flex-wrap:wrap;gap:10px;}
.pill{
  height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(168,182,255,.18);
  background:rgba(0,0,0,.10);
  color:rgba(255,255,255,.92);
  font-weight:900;
  cursor:pointer;
}
:root[data-theme="light"] .pill{background:rgba(0,0,0,.04);color:rgba(17,19,34,.90);border-color:rgba(0,0,0,.12);}
.pill:hover{border-color:rgba(255,212,71,.60);box-shadow:0 0 0 3px rgba(255,212,71,.10);}
.pill.active{border-color:rgba(255,212,71,.70);box-shadow:0 0 0 3px rgba(255,212,71,.12);}

.courses-content{
  margin-top:14px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
@media (max-width:980px){ .courses-content{grid-template-columns:1fr;} }
.content-col{padding:14px;}

/* ✅ NEW: context line (Courses page) */
.content-context{
  margin-left: 32px;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 700;
  color: rgba(255,255,255,.75);
  letter-spacing: .2px;
}
:root[data-theme="light"] .content-context{
  color: rgba(17,19,34,.70);
}

/* Critical fix: injected cards in a 12-col grid must span columns */
.courses-main .grid > .card{grid-column:span 12;}
@media (min-width:720px){ .courses-main .grid > .card{grid-column:span 6;} }
@media (min-width:1024px){
  .courses-main #videos-grid.grid > .card{grid-column:span 3;}
  .courses-main #games-grid.grid > .card{grid-column:span 4;}
}

/* =========================
   8) VIDEOS PAGE
========================= */
.videos-section{margin-top:14px;}
.videos-section-header{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.videos-section-header h2{margin:0;font-size:18px;}

.videos-section-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--border2);
  background:rgba(0,0,0,.10);
  font-weight:900;
}
.videos-section-link:hover{
  border-color:rgba(255,212,71,.60);
  box-shadow:0 0 0 3px rgba(255,212,71,.10);
  background:rgba(255,212,71,.10);
}

.video-loading,
.video-error{padding:12px 0;color:var(--muted);}

.video-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;}

.video-card{
  grid-column:span 12;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  min-width:0;
  transition:transform .12s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
@media (min-width:720px){ .video-card{grid-column:span 6;} }
@media (min-width:1024px){ .video-card{grid-column:span 4;} }

.video-card-thumb-wrapper{
  display:block;
  aspect-ratio:16/9;
  background:rgba(0,0,0,.20);
  overflow:hidden;
}
.video-card-thumb-wrapper img{width:100%;height:100%;object-fit:cover;transform:scale(1.01);}

.video-card-body{padding:12px;}
.video-card-title{
  margin:0 0 6px;
  font-size:15px;
  line-height:1.25;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.video-card-meta{margin:0;color:var(--muted2);font-size:12px;}

/* =========================
   9) GAMES PAGE
========================= */
.filters{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:12px;
}
.filters select{grid-column:span 12;}
@media (min-width:900px){ .filters select{grid-column:span 4;} }

#games-grid{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.game-card,
#games-grid > .card{
  grid-column:span 12;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
  min-width:0;
}
@media (min-width:900px){ .game-card, #games-grid > .card{grid-column:span 6;} }
.games-empty{grid-column:span 12;}

/* =========================
   10) DASHBOARD PAGE
========================= */
.dashboard-hero{padding:16px;margin-bottom:14px;}
.dashboard-hero h1{margin:0 0 6px;font-size:28px;}
.dashboard-hero p{margin:0;color:var(--muted);}

.dashboard-stats{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
  margin-bottom:14px;
}
.stat-card{
  grid-column:span 12;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
}
@media (min-width:900px){ .stat-card{grid-column:span 4;} }

.stat-card h2{margin:0 0 6px;font-size:14px;color:rgba(255,255,255,.85);}
:root[data-theme="light"] .stat-card h2{color:rgba(17,19,34,.85);}

.stat-value{margin:0 0 4px;font-size:26px;font-weight:900;color:var(--gold);}
.stat-caption{margin:0;color:var(--muted2);font-size:12px;line-height:1.45;}

.dashboard-section{padding:14px;margin-top:14px;}
.dashboard-section-title{margin:0 0 6px;font-size:18px;}
.dashboard-section-subtitle{margin:0 0 10px;color:var(--muted2);}

.topics-list{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:12px;
}
.topic-row{
  grid-column:span 12;
  background:rgba(0,0,0,.10);
  border:1px solid rgba(168,182,255,.16);
  border-radius:14px;
  padding:12px;
}
:root[data-theme="light"] .topic-row{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.12);}
@media (min-width:900px){ .topic-row{grid-column:span 6;} }

/* =========================
   11) LEADERBOARDS PAGE
========================= */
.leaderboards-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
}
.lb-card{
  grid-column:span 12;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
  min-width:0;
}
@media (min-width:900px){ .lb-card{grid-column:span 6;} }

.lb-controls{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:12px;
  margin-top:12px;
}
.lb-controls select{grid-column:span 12;}
@media (min-width:900px){ .lb-controls select{grid-column:span 4;} }

/* Tables */
.table-wrap,
.lb-table-wrapper{
  overflow:auto;
  border-radius:14px;
  border:1px solid rgba(168,182,255,.14);
  background:rgba(0,0,0,.10);
}
:root[data-theme="light"] .table-wrap,
:root[data-theme="light"] .lb-table-wrapper{
  background:rgba(0,0,0,.03);
  border-color:rgba(0,0,0,.12);
}

.lb-table,
table{
  width:100%;
  border-collapse:collapse;
  min-width:520px;
}
.lb-table th,
.lb-table td,
table th,
table td{
  padding:10px;
  border-bottom:1px solid rgba(168,182,255,.10);
  text-align:left;
  font-size:13px;
}
:root[data-theme="light"] .lb-table th,
:root[data-theme="light"] .lb-table td,
:root[data-theme="light"] table th,
:root[data-theme="light"] table td{
  border-bottom:1px solid rgba(0,0,0,.10);
}

.lb-table th,
table th{
  color:rgba(255,255,255,.85);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:rgba(0,0,0,.16);
  position:sticky;
  top:0;
  z-index:1;
}
:root[data-theme="light"] .lb-table th,
:root[data-theme="light"] table th{
  color:rgba(17,19,34,.85);
  background:rgba(0,0,0,.04);
}

/* =========================
   12) ABOUT PAGE
========================= */
.about-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:14px;
  margin-top:14px;
}
.about-grid .panel{grid-column:span 12;padding:14px;}
@media (min-width:900px){ .about-grid .panel{grid-column:span 6;} }

/* =========================
   13) FOOTER
========================= */
.site-footer,
footer.site-footer{
  max-width:var(--max);
  margin:18px auto 0;
  padding:22px 14px 34px;
  text-align:center;
  color:var(--muted2);
  font-weight:700;
  font-size:13px;
}
.footer-secondary{margin-top:6px;color:var(--muted2);}


/* =========================================================
   Homepage – Steps hover highlight (EXTENSION)
========================================================= */
.step-card {
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.15s ease;
}

.step-card:hover {
  background: linear-gradient(
    180deg,
    rgba(255, 212, 71, 0.22),
    rgba(255, 212, 71, 0.10)
  );
  border-color: rgba(255, 212, 71, 0.7);
  box-shadow:
    0 0 0 3px rgba(255, 212, 71, 0.18),
    var(--shadow);
  transform: translateY(-2px);
}

/* =========================================================
   Courses page — full-width content tabs + YouTube-style grid
   (scoped so we don't affect other pages)
   ========================================================= */
.page-courses .courses-filters{
  margin-top: 14px;
}

.page-courses .content-tabs{
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.page-courses .content-tab{
  height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(0,0,0,.10);
  color: rgba(255,255,255,.92);
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1 1 180px;
  transition: background .2s ease, border-color .2s ease, transform .12s ease;
}

.page-courses .content-tab:hover{
  transform: translateY(-1px);
  border-color: rgba(255,212,71,.45);
}

.page-courses .content-tab[aria-selected="true"]{
  background: linear-gradient(180deg, rgba(255,212,71,.18), rgba(255,212,71,.06));
  border-color: rgba(255,212,71,.70);
  box-shadow: 0 0 0 3px rgba(255,212,71,.14), var(--shadow);
}

.page-courses .content-panel{ display: none; margin-top: 14px; }
.page-courses .content-panel.active{ display: block; }

.page-courses .panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.page-courses .panel-head-left{
  display:flex;
  align-items:center;
  gap: 12px;
  min-width: 0;
}
.page-courses .panel-head-left h2{ margin: 0; }
.page-courses .panel-head-left p{ margin: 2px 0 0 0; }

.page-courses .panel-q{
  width: 92px;
  height: auto;
  max-width: 92px;
  flex: 0 0 auto;
}
@media (max-width: 520px){
  .page-courses .panel-q{ width: 74px; max-width: 74px; }
}

/* YouTube-like grid */
.page-courses .yt-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

@media (max-width: 1200px){
  .page-courses .yt-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px){
  .page-courses .yt-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .page-courses .yt-grid{ grid-template-columns: 1fr; }
}

.page-courses .yt-item{
  display:flex;
  flex-direction:column;
  gap: 10px;
  text-decoration:none;
  color: inherit;
}

.page-courses .yt-thumb{
  position:relative;
  aspect-ratio: 16 / 9;
  border-radius: 14px;
  overflow:hidden;
  border: 1px solid rgba(168,182,255,.16);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow);
}

.page-courses .yt-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  background: rgba(0,0,0,.25);
}

.page-courses .yt-overlay{
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.06), rgba(0,0,0,.35));
  opacity:0;
  transition: opacity .18s ease;
}

.page-courses .yt-thumb:hover .yt-overlay{ opacity: 1; }

.page-courses .yt-duration{
  position:absolute;
  right: 10px;
  bottom: 10px;
  padding: 4px 8px;
  border-radius: 10px;
  background: rgba(0,0,0,.65);
  color: rgba(255,255,255,.95);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .2px;
}

.page-courses .yt-title{
  font-weight: 900;
  line-height: 1.25;
  font-size: 15px;
  margin: 0;
}

.page-courses .yt-meta{
  color: rgba(255,255,255,.68);
  font-size: 13px;
  margin: 0;
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items:center;
}

.page-courses .yt-tag{
  display:inline-flex;
  align-items:center;
  height: 22px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(0,0,0,.18);
  color: rgba(255,255,255,.82);
  font-size: 12px;
  font-weight: 900;
}

.page-courses .yt-tag.is-watched{
  border-color: rgba(255,212,71,.70);
  background: rgba(255,212,71,.12);
  color: rgba(255,255,255,.92);
}

/* Games + quizzes grids (clean, arcade-ish) */
.page-courses .cards-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 980px){
  .page-courses .cards-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .page-courses .cards-grid{ grid-template-columns: 1fr; }
}

.page-courses .mini-card{
  border-radius: 16px;
  border: 1px solid rgba(168,182,255,.16);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow);
  padding: 14px;
}
.page-courses .mini-card h3{ margin: 0 0 8px; }
.page-courses .mini-card p{ margin: 0 0 12px; color: rgba(255,255,255,.72); }
.page-courses .mini-card .meta-row{ display:flex; gap: 10px; flex-wrap: wrap; align-items:center; }

/* iOS Safari: prevent slight horizontal overflow on Home hero + Today’s Challenge (mobile only) */
@media (max-width: 768px){

  /* Ensure nothing can force a wider scroll area */
  html, body { max-width: 100%; overflow-x: hidden; }

  /* Clip any visual overflow (filters/shadows) inside top sections */
  .home-hero,
  .home-hero-left,
  .home-hero-right,
  .hero-card,
  .home-cta,
  .cta-card{
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Today’s Challenge form: allow wrap so input + button never exceed viewport */
  .challenge-form{
    flex-wrap: wrap;
  }
  .challenge-form .challenge-input{
    min-width: 0;
    width: 100%;
  }
  .challenge-submit{
    width: 100%;
  }
}

@media (max-width: 768px){
  table{ min-width: 0 !important; }
}

/* =========================================================
   VIDEOS PAGE — YouTube Home feed UI (scoped)
   ========================================================= */

.page-videos .yt-toolbar{
  padding: 14px;
  margin-top: 14px;
  display:flex;
  flex-direction:column;
  gap: 10px;
}

.page-videos .yt-toolbar-left{
  display:flex;
  flex-direction:column;
  gap: 2px;
}

.page-videos .yt-toolbar-title{
  margin: 0;
  font-size: 18px;
}

.page-videos .yt-toolbar-sub{
  margin: 0;
  color: var(--muted2);
  font-size: 12px;
}

.page-videos .yt-toolbar-right{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}

.page-videos .yt-active-filters{
  display:flex;
  align-items:center;
  gap: 8px;
  flex-wrap: wrap;
  padding-top: 4px;
}

.page-videos .yt-active-muted{
  color: var(--muted2);
  font-weight: 800;
  font-size: 12px;
}

.page-videos .yt-chip{
  display:inline-flex;
  align-items:center;
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(0,0,0,.14);
  color: rgba(255,255,255,.90);
  font-weight: 900;
  font-size: 12px;
}

:root[data-theme="light"] .page-videos .yt-chip{
  background: rgba(0,0,0,.05);
  color: rgba(17,19,34,.90);
  border-color: rgba(0,0,0,.12);
}

/* Grid like YouTube: 1 col mobile, 2 tablet, 3 desktop, 4 wide */
.page-videos .yt-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}

.page-videos .yt-card{
  grid-column: span 12;
  min-width: 0;
}

@media (min-width: 720px){
  .page-videos .yt-card{ grid-column: span 6; }
}
@media (min-width: 1024px){
  .page-videos .yt-card{ grid-column: span 4; }
}
@media (min-width: 1240px){
  .page-videos .yt-card{ grid-column: span 3; }
}

.page-videos .yt-card-btn{
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap: 10px;
}

.page-videos .yt-thumb{
  position:relative;
  display:block;
  aspect-ratio: 16 / 9;
  border-radius: 14px;
  overflow:hidden;
  border: 1px solid rgba(168,182,255,.16);
  background: rgba(255,255,255,.04);
  box-shadow: var(--shadow);
}

.page-videos .yt-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform: scale(1.01);
}

.page-videos .yt-duration{
  position:absolute;
  right: 10px;
  bottom: 10px;
  padding: 4px 8px;
  border-radius: 10px;
  background: rgba(0,0,0,.70);
  color: rgba(255,255,255,.95);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .2px;
}

.page-videos .yt-title{
  margin: 0 2px;
  font-weight: 900;
  line-height: 1.25;
  font-size: 15px;
  display:-webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow:hidden;
}

/* Bottom sheet */
.page-videos .yt-sheet-overlay{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.52);
  z-index: 9998;
}

.page-videos .yt-sheet{
  position:fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 9999;
  border-radius: 22px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(15,17,37,.96);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow2);
  overflow:hidden;
}

:root[data-theme="light"] .page-videos .yt-sheet{
  background: rgba(245,247,255,.96);
  border-color: rgba(0,0,0,.12);
}

.page-videos .yt-sheet-handle{
  width: 56px;
  height: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  margin: 10px auto 6px;
}
:root[data-theme="light"] .page-videos .yt-sheet-handle{
  background: rgba(0,0,0,.12);
}

.page-videos .yt-sheet-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 12px;
  padding: 10px 14px 12px;
  border-bottom: 1px solid rgba(168,182,255,.12);
}

.page-videos .yt-sheet-title{
  margin: 0;
  font-size: 16px;
}
.page-videos .yt-sheet-sub{
  margin: 2px 0 0;
  color: var(--muted2);
  font-size: 12px;
}

.page-videos .yt-sheet-close{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(0,0,0,.10);
  color: rgba(255,255,255,.90);
  cursor:pointer;
  font-weight: 900;
}
:root[data-theme="light"] .page-videos .yt-sheet-close{
  background: rgba(0,0,0,.04);
  color: rgba(17,19,34,.90);
  border-color: rgba(0,0,0,.12);
}

.page-videos .yt-sheet-body{
  padding: 12px 14px 14px;
  display:flex;
  flex-direction:column;
  gap: 12px;
}

.page-videos .yt-field{
  display:flex;
  flex-direction:column;
  gap: 6px;
}

.page-videos .yt-label{
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
}
:root[data-theme="light"] .page-videos .yt-label{
  color: rgba(17,19,34,.72);
}

.page-videos .yt-sheet-actions{
  display:flex;
  gap: 10px;
  justify-content:flex-end;
  padding-top: 4px;
}

/* Embedded player modal */
.page-videos .yt-player-overlay{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.60);
  z-index: 10000;
}

.page-videos .yt-player-modal{
  position:fixed;
  left: 14px;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10001;
  border-radius: 22px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(15,17,37,.96);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow2);
  padding: 14px;
}

:root[data-theme="light"] .page-videos .yt-player-modal{
  background: rgba(245,247,255,.96);
  border-color: rgba(0,0,0,.12);
}

.page-videos .yt-player-close{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(168,182,255,.18);
  background: rgba(0,0,0,.10);
  color: rgba(255,255,255,.90);
  cursor:pointer;
  font-weight: 900;
  float:right;
}

:root[data-theme="light"] .page-videos .yt-player-close{
  background: rgba(0,0,0,.04);
  color: rgba(17,19,34,.90);
  border-color: rgba(0,0,0,.12);
}

.page-videos .yt-player-frame-wrap{
  clear: both;
  margin-top: 10px;
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid rgba(168,182,255,.16);
  background: rgba(0,0,0,.20);
  aspect-ratio: 16 / 9;
}

.page-videos .yt-player-frame-wrap iframe{
  width:100%;
  height:100%;
  display:block;
}

/* Prevent scroll behind overlays */
.yt-modal-open,
.yt-sheet-open{
  overflow: hidden;
}

/* Videos: kill any inherited "white pill" styling on mobile */
@media (max-width: 719px){
  .page-videos .yt-grid,
  .page-videos .videos-section{
    background: transparent !important;
  }

  .page-videos .yt-card,
  .page-videos .yt-card *{
    background: transparent !important;
    box-shadow: none !important;
  }

  .page-videos .yt-card{
    border: 0 !important;
    border-radius: 0 !important;
  }

  /* make sure title isn't default blue link styling */
  .page-videos .yt-title{
    color: inherit !important;
    text-decoration: none !important;
  }

  /* keep only the thumbnail "card" look */
  .page-videos .yt-thumb{
    background: rgba(255,255,255,.04) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }
}
