:root{
 /* Color tokens */
 /* Page background (SaaS-style) */
 --medexp-page-bg:#f5f7fb;
 --medexp-bg:#ffffff;
 --medexp-surface:#f8fafc;
 --medexp-card:#ffffff;
 --medexp-text:#0f172a;
 --medexp-muted:#475569;
 --medexp-border:#e2e8f0;
 --medexp-primary:var(--medexp-brand-blue);
 --medexp-primary-contrast:#ffffff;
 --medexp-accent:var(--medexp-brand-teal);
 --medexp-success:#16a34a;
 --medexp-warning:#f59e0b;
 --medexp-danger:#dc2626;
 --medexp-info:var(--medexp-brand-teal);

 /* Typography tokens */
 /* Prefer MPJEReview-like typography when available */
 --medexp-font-sans:"Rethink Sans", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
 --medexp-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
 --medexp-text-sm:0.875rem;
 --medexp-text-base:1rem;
 --medexp-text-lg:1.125rem;
 --medexp-text-xl:1.25rem;
 --medexp-text-2xl:1.5rem;
 --medexp-line-height:1.55;
 /* Wider app canvas for lesson pages */
 --medexp-max-width:93.75rem; /* 1500px */

 /* Layout tokens */
 --medexp-radius-sm:10px;
 --medexp-radius-md:18px;
 --medexp-radius-lg:26px;
 /* Extra radii used by the SaaS shell */
 --medexp-radius-2xl:32px;
 --medexp-shadow-xs:0 1px 2px rgba(15,23,42,0.06);
 --medexp-shadow-sm:0 10px 30px rgba(15,23,42,0.06);
 --medexp-shadow-md:0 18px 50px rgba(15,23,42,0.10);
 --medexp-shadow-lg:0 28px 70px rgba(15,23,42,0.14);
 --medexp-space-1:0.25rem;
 --medexp-space-2:0.5rem;
 --medexp-space-3:0.75rem;
 --medexp-space-4:1rem;
 --medexp-space-5:1.25rem;
 --medexp-space-6:1.5rem;
 --medexp-space-7:1.75rem;
 --medexp-space-8:2rem;
 --medexp-space-9:2.25rem;
 --medexp-space-10:2.5rem;
 --medexp-space-12:3rem;

 /* MPJEReview-ish gradients */
 --medexp-primary-grad:linear-gradient(90deg, var(--medexp-brand-blue-dark) 0%, var(--medexp-brand-teal) 100%);

 /* Component tokens */
 --medexp-btn-radius:12px;
 --medexp-btn-padding-y:0.65rem;
 --medexp-btn-padding-x:1rem;
 --medexp-callout-border-width:3px;
 --medexp-table-header-bg:#f1f5f9;
 --medexp-table-row-hover:#f8fafc;
}

/* === Layout primitives (single source of truth) === */
.medexp-container{
  width:100%;
  max-width: var(--medexp-max-width);
  margin: 0 auto;
  padding: var(--medexp-space-6) var(--medexp-space-4);
}
@media (max-width: 640px){
  .medexp-container{
    padding-left: var(--medexp-space-3);
    padding-right: var(--medexp-space-3);
  }
}


.medexp-card{
  background: var(--medexp-card);
  border: 1px solid var(--medexp-border);
  border-radius: var(--medexp-radius-2xl);
  box-shadow: var(--medexp-shadow-md);
  padding: var(--medexp-space-4);
  display:flex;
  flex-direction:column;
}


/* ========================================================================== */
/* LearnQ.ai-inspired UI theme overrides */
/* - Flatter surfaces (less glass/gradients) */
/* - Rounded-rect buttons (not pills) */
/* - Cleaner typography + spacing */
/*
 NOTE: We intentionally override (rather than rewrite) earlier styles so
 existing pages keep working while adopting a LearnQ-like look.
*/

/* --- Core tokens ----------------------------------------------------------- */
:root{
  /* =========================================================
     Princeton Premium Theme (brand palette)
     ========================================================= */
  --brand-navy:#0f172a;
  --brand-teal:#00a676;
  --brand-blue:#1a4f9c;

  --medexp-brand-navy: var(--brand-navy);
  --medexp-brand-teal: var(--brand-teal);
  --medexp-brand-blue: var(--brand-blue);

  --medexp-brand-navy-rgb: 15,23,42;
  --medexp-brand-teal-rgb: 0,166,118;
  --medexp-brand-blue-rgb: 26,79,156;
  --medexp-brand-blue-dark:#143f7f;
  --medexp-brand-teal-dark:#008964;
  --medexp-brand-teal-ink:#00785a;
  --medexp-brand-teal-ink-rgb:0,120,90;

  /* Surfaces */
  --medexp-page-bg:#f8fafc;
  --medexp-bg:#ffffff;
  --medexp-surface:#ffffff;
  --medexp-card:#ffffff;

  /* Type */
  --medexp-font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --medexp-text:#1e293b;
  --medexp-muted:#475569;
  --medexp-muted-2:#64748b;
  --medexp-border:#e2e8f0;

  /* Brand accents */
  --medexp-primary: var(--medexp-brand-teal);
  --medexp-primary-contrast:#ffffff;
  --medexp-accent: var(--medexp-brand-blue);
  --medexp-info: var(--medexp-brand-blue);
  --medexp-success: var(--medexp-brand-teal);
  --medexp-warning:#f59e0b;
  --medexp-danger:#dc2626;

  /* Radius + shadow (premium, soft) */
  --medexp-radius-sm:10px;
  --medexp-radius-md:16px;
  --medexp-radius-lg:22px;
  --medexp-radius-2xl:26px;

  --medexp-shadow-xs:0 1px 2px rgba(0,0,0,0.05);
  --medexp-shadow-sm:0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
  --medexp-shadow-md:0 20px 25px -5px rgba(0,0,0,0.10), 0 10px 10px -5px rgba(0,0,0,0.04);
  --medexp-shadow-lg:0 26px 70px rgba(15,23,42,0.18);

  /* Buttons */
  --medexp-btn-radius:9999px;
  --medexp-btn-padding-y:0.65rem;
  --medexp-btn-padding-x:1.15rem;

  /* Primary button: subtle highlight + depth */
  --medexp-primary-grad:
      linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0.08) 100%),
      var(--medexp-brand-teal);
}

/* --- App shell ------------------------------------------------------------- */
.medexp-shell{background:var(--medexp-page-bg);}
.medexp-shell::before,
.medexp-shell::after{display:none !important;}
/* ~1152px (close to screenshots) */

/* Appbar: white, crisp, no frosted glass */
.medexp-appbar{
 background:#fff;
 backdrop-filter:none;
 border-bottom:1px solid var(--medexp-border);
}
.medexp-appbar__inner{padding:0.85rem 0;}
.medexp-brand{font-weight:800;letter-spacing:-0.02em;}
.medexp-appbar__link{color:var(--medexp-muted);}
.medexp-appbar__current{font-weight:700;}

/* Page header + cards */
.medexp-pageheader,
.medexp-card,
.medexp-lesson,
.medexp-hero{
 background:#fff;
 border:1px solid var(--medexp-border);
 border-radius:var(--medexp-radius-lg);
 box-shadow:var(--medexp-shadow-xs);
}
/* make base card spacing consistent */
.medexp-card:hover{transform:none;box-shadow:var(--medexp-shadow-sm);border-color:var(--medexp-border);} 

/* Titles closer to LearnQ */
.medexp-title{font-size:1.6rem;line-height:1.2;font-weight:800;letter-spacing:-0.02em;}
.medexp-subtitle{font-size:0.95rem;color:var(--medexp-muted);}
.medexp-scope h1{font-size:clamp(1.6rem, 2.6vw, 2.0rem);} 
.medexp-scope h2{font-size:1.25rem;}

/* --- Buttons --------------------------------------------------------------- */
.medexp-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  font-weight:900;
  font-size:1rem;
  padding:var(--medexp-btn-padding-y) var(--medexp-btn-padding-x);
  border-radius:var(--medexp-btn-radius);
  border:1px solid rgba(0,0,0,0.06);
  letter-spacing:-0.01em;
  line-height:1;
  white-space:nowrap;
  box-shadow:none;
  transition:
    transform 0.2s cubic-bezier(0.4,0,0.2,1),
    box-shadow 0.2s cubic-bezier(0.4,0,0.2,1),
    filter 0.2s cubic-bezier(0.4,0,0.2,1),
    background-color 0.2s cubic-bezier(0.4,0,0.2,1),
    border-color 0.2s cubic-bezier(0.4,0,0.2,1),
    color 0.2s cubic-bezier(0.4,0,0.2,1);
}
.medexp-btn:focus-visible{outline:3px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);outline-offset:4px;}

.medexp-btn--lg{font-size:1.05rem;padding:0.75rem 1.4rem;}
.medexp-btn--sm{font-size:0.9rem;padding:0.5rem 0.9rem;}

.medexp-btn--primary{
  background:var(--medexp-primary-grad);
  color:#ffffff !important;
  box-shadow:
    0 14px 26px -20px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95),
    0 10px 18px -14px rgba(0,0,0,0.18);
  text-shadow:0 1px 1px rgba(0,0,0,0.22);
}
.medexp-btn--primary *{ color:inherit !important; }
.medexp-btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:
    0 20px 32px -22px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95),
    0 18px 26px -18px rgba(0,0,0,0.18);
  filter:brightness(0.96);
}

.medexp-btn--secondary{
  background:
    linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0.08) 100%),
    var(--medexp-brand-blue) !important;
  color:#ffffff !important;
  box-shadow:
    0 14px 26px -20px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.85),
    0 10px 18px -14px rgba(0,0,0,0.18);
  text-shadow:0 1px 1px rgba(0,0,0,0.20);
}
.medexp-btn--secondary *{ color:inherit !important; }
.medexp-btn--secondary:hover{transform:translateY(-2px);filter:brightness(0.97);} 

.medexp-btn--danger{
  background:linear-gradient(180deg, #ef4444, #dc2626);
  color:#ffffff !important;
  border-color:rgba(220,38,38,0.4);
  box-shadow:0 14px 26px -20px rgba(220,38,38,0.7), 0 10px 18px -14px rgba(0,0,0,0.14);
  text-shadow:0 1px 1px rgba(0,0,0,0.18);
}
.medexp-btn--danger *{ color:inherit !important; }
.medexp-btn--danger:hover{
  transform:translateY(-2px);
  filter:brightness(0.95);
  box-shadow:0 20px 32px -22px rgba(220,38,38,0.75), 0 18px 26px -18px rgba(0,0,0,0.18);
}

.medexp-btn--ghost{
  background-color:rgba(255,255,255,0.98);
  color:var(--medexp-brand-blue);
  border:2px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.38);
  box-shadow:0 10px 18px -16px rgba(var(--medexp-brand-navy-rgb,15,23,42),0.14);
}
.medexp-btn--ghost:hover{
  border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.75);
  color:var(--medexp-brand-blue);
  background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);
  transform:none;
}

/* Inputs */
.medexp-scope input,
.medexp-scope select,
.medexp-scope textarea{
 border-radius:10px;
 border-color:var(--medexp-border);
}
.medexp-scope input:focus,
.medexp-scope select:focus,
.medexp-scope textarea:focus{
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);
 box-shadow:0 0 0 4px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.14);
}

/* Outline tree: subtle active state like LearnQ */
.medexp-outline-tree a:hover{background:#f3f4f6;}
.medexp-outline-tree a.is-active{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);
}

/* Pills/badges: keep small + neutral */
.medexp-chip,.medexp-badge{
 border-color:var(--medexp-border);
 background:#f9fafb;
}


.medexp-scope, .medexp_scope{background:var(--medexp-page-bg);color:var(--medexp-text);font-family:var(--medexp-font-sans);line-height:var(--medexp-line-height);}
.medexp-grid{display:grid;gap:var(--medexp-space-4);}
.medexp-card:hover{transform:none;box-shadow:var(--medexp-shadow-md);border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);}
.medexp-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--medexp-space-3);padding-bottom:var(--medexp-space-3);margin-bottom:var(--medexp-space-3);border-bottom:1px solid rgba(226,232,240,0.8);}
.medexp-card__body{flex:1 1 auto;min-width:0;}
.medexp-divider{height:1px;background:var(--medexp-border);margin:var(--medexp-space-6) 0;}

/* Theme-proof: override aggressive theme button/label color resets (e.g. Reign sets button color:#fff). */
.medexp-scope button,
.medexp-scope [type="button"],
.medexp-scope [type="submit"],
.medexp-scope [role="button"],
.medexp-scope label,
.medexp-scope span,
.medexp-scope div{
 color:inherit;
}
/* Theme-proof: kill WP theme global button border on hover/focus (e.g. theme sets button:hover{border-color:blue}). */
.medexp-scope button:hover,
.medexp-scope button:focus,
.medexp-scope [type="button"]:hover,
.medexp-scope [type="button"]:focus{
 outline:none !important;
 border-color:inherit !important;
 border-style:inherit !important;
 border-width:inherit !important;
}
.medexp-scope .medexp-btn:hover{ border-color:rgba(0,0,0,0.06) !important; }
.medexp-scope .medexp-btn--ghost:hover{ border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.75) !important; }
.medexp-scope .medexp-btn--danger:hover{ border-color:rgba(220,38,38,0.4) !important; }

/* === THEME ISOLATION — prevent WP themes from overriding plugin styles === */
/* Many themes (Reign, BuddyBoss, Divi, Astra, etc.) use broad selectors like
   body a, #content a, .entry-content a, button, a:visited that stomp on plugin CSS.
   IMPORTANT: We use :not() to exclude plugin-specific link classes (.tw-navlink, .tw-btn,
   .medexp-btn, etc.) so their own color rules aren't stomped by the generic anchor override. */
.medexp-scope a:not([class*="tw-"]):not([class*="medexp-"]):not([class]),
.medexp-scope a:not([class*="tw-"]):not([class*="medexp-"]):not([class]):link,
.medexp-scope a:not([class*="tw-"]):not([class*="medexp-"]):not([class]):visited{
 color:var(--medexp-brand-blue) !important;
 text-decoration:none !important;
}
.medexp-scope a:not([class*="tw-"]):not([class*="medexp-"]):hover{
 text-decoration:underline !important;
}
/* Button links: no underlines */
.medexp-scope a.medexp-btn,
.medexp-scope a.medexp-btn:link,
.medexp-scope a.medexp-btn:visited,
.medexp-scope a.tw-btn,
.medexp-scope a.tw-btn:link,
.medexp-scope a.tw-btn:visited{
 text-decoration:none !important;
}
/* Primary/secondary buttons: always white text */
.medexp-scope a.medexp-btn--primary,
.medexp-scope a.medexp-btn--primary:link,
.medexp-scope a.medexp-btn--primary:visited,
.medexp-scope a.medexp-btn--secondary,
.medexp-scope a.medexp-btn--secondary:link,
.medexp-scope a.medexp-btn--secondary:visited{
 color:#fff !important;
}
.medexp-scope a.medexp-btn--ghost,
.medexp-scope a.medexp-btn--ghost:link,
.medexp-scope a.medexp-btn--ghost:visited{
 color:var(--medexp-brand-blue) !important;
}
/* Prevent themes from adding underlines to our buttons */
.medexp-scope .medexp-btn,
.medexp-scope .tw-btn{
 text-decoration:none !important;
}
.medexp-scope .medexp-btn:hover,
.medexp-scope .tw-btn:hover{
 text-decoration:none !important;
}
/* Reset theme heading styles */
.medexp-scope h1,
.medexp-scope h2,
.medexp-scope h3,
.medexp-scope h4,
.medexp-scope h5,
.medexp-scope h6{
 color:var(--medexp-text) !important;
 font-family:var(--medexp-font-sans) !important;
 margin-top:0;
 line-height:1.3;
}
/* Reset theme paragraph/text styles */
.medexp-scope p{
 color:var(--medexp-muted) !important;
 font-family:var(--medexp-font-sans) !important;
}
/* Reset theme form element styles */
.medexp-scope input,
.medexp-scope select,
.medexp-scope textarea{
 font-family:var(--medexp-font-sans) !important;
 color:var(--medexp-text) !important;
}
/* Reset images from theme max-width/height overrides */
.medexp-scope img{
 max-width:100%;
 height:auto;
}
/* === END THEME ISOLATION === */

/* Base typography + SaaS-ish polish */
.medexp-scope *, .medexp_scope *{box-sizing:border-box;}
.medexp-scope{ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
.medexp-scope a{color:var(--medexp-brand-blue);text-decoration:none;font-weight:800;}
.medexp-scope a:hover{text-decoration:underline;}
.medexp-scope h1{font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-0.02em;margin:0 0 var(--medexp-space-3);} 
.medexp-scope h2{font-size:var(--medexp-text-2xl);letter-spacing:-0.01em;margin:var(--medexp-space-6) 0 var(--medexp-space-3);} 
.medexp-scope h3{font-size:var(--medexp-text-xl);margin:var(--medexp-space-4) 0 var(--medexp-space-2);} 
.medexp-scope p{margin:0 0 var(--medexp-space-3);color:var(--medexp-muted);} 
.medexp-scope ul, .medexp-scope ol{margin:0 0 var(--medexp-space-4) 1.25rem;}
.medexp-scope code{font-family:var(--medexp-font-mono);font-size:0.95em;background:var(--medexp-table-header-bg);padding:0.1rem 0.35rem;border-radius:8px;}

/* Hero / landing bits */
.medexp-hero{
 background:linear-gradient(135deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.045));
 border:1px solid var(--medexp-border);
 border-radius:var(--medexp-radius-lg);
 padding:var(--medexp-space-8);
 box-shadow:var(--medexp-shadow-sm);
}
@supports (background: color-mix(in srgb, white 50%, black)){
 .medexp-hero{
  background:linear-gradient(135deg,
    color-mix(in srgb, white 93%, var(--medexp-primary) 7%),
    color-mix(in srgb, white 95%, var(--medexp-accent) 5%)
  );
 }
} 
.medexp-hero__title{margin:0 0 var(--medexp-space-2);}
.medexp-hero__subtitle{margin:0 0 var(--medexp-space-4);color:var(--medexp-muted);font-size:var(--medexp-text-lg);max-width:120ch;}
.medexp-hero__cta{display:flex;gap:var(--medexp-space-2);flex-wrap:wrap;}
.medexp-hero__continue{margin-top:0.55rem;color:var(--medexp-muted);font-size:0.92rem;}
.medexp-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px, 28vw, 420px);gap:var(--medexp-space-6);align-items:stretch;margin-top:var(--medexp-space-5);}
.medexp-hero__left{min-width:0;}
.medexp-hero__right{min-width:0;display:flex;flex-direction:column;}
.medexp-hero__right > .medexp-progress{flex:1 1 auto;}


/* Next up hero card (primary action driver) */
.medexp-nextUp{
 padding:var(--medexp-space-6);
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.22);
 background:linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,255,255,0.74));
 box-shadow:var(--medexp-shadow-lg);
}
@supports (background: color-mix(in srgb, white 50%, black)){
 .medexp-nextUp{
  border-color:color-mix(in srgb, var(--medexp-primary) 22%, var(--medexp-border));
  background:linear-gradient(180deg,
    color-mix(in srgb, white 92%, var(--medexp-primary) 8%),
    color-mix(in srgb, white 94%, var(--medexp-accent) 6%)
  );
 }
}
/* Subtle separation when the hero itself is tinted */
.medexp-hero .medexp-nextUp{
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);
}

.medexp-nextUp__kicker{
 font-size:0.72rem;
 letter-spacing:0.14em;
 text-transform:uppercase;
 color:var(--medexp-muted);
 font-weight:800;
 margin:0 0 var(--medexp-space-2);
}
.medexp-nextUp__label{
 font-size:0.95rem;
 color:var(--medexp-muted);
 font-weight:700;
 margin:0;
}
.medexp-nextUp__path{
 margin:0.1rem 0 var(--medexp-space-3);
 font-size:clamp(1.15rem, 1.55vw, 1.55rem);
 line-height:1.2;
 font-weight:850;
 letter-spacing:-0.02em;
 color:var(--medexp-text);
}
.medexp-nextUp__meta{
 margin:0 0 var(--medexp-space-4);
 color:var(--medexp-muted);
 font-size:0.92rem;
}
.medexp-nextUp__actions{
 display:flex;
 gap:var(--medexp-space-2);
 flex-wrap:wrap;
 align-items:center;
}
.medexp-nextUp__actions .medexp-btn--primary{flex:1 1 220px;}
@media (max-width: 640px){
 .medexp-nextUp{padding:var(--medexp-space-5);}
 .medexp-nextUp__actions .medexp-btn{width:100%;}
}

.medexp-badge{display:inline-flex;align-items:center;gap:0.4rem;background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);color:var(--medexp-text);border:1px solid var(--medexp-border);padding:0.2rem 0.55rem;border-radius:999px;font-size:var(--medexp-text-sm);margin-right:0.4rem;}



/* Buttons */
.medexp-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;border-radius:var(--medexp-btn-radius);padding:var(--medexp-btn-padding-y) var(--medexp-btn-padding-x);border:1px solid transparent;text-decoration:none;cursor:pointer;font-weight:600;color:var(--medexp-text);}
.medexp-btn--primary{background:var(--medexp-primary-grad);color:var(--medexp-primary-contrast);}
/* secondary btn — detailed definition above (line ~248) wins via !important */
.medexp-btn--ghost{background:transparent;border-color:var(--medexp-border);color:var(--medexp-text);}
.medexp-btn--lg{font-size:var(--medexp-text-lg);}
.medexp-btn--sm{font-size:var(--medexp-text-sm);padding:0.45rem 0.75rem;}

/* Lesson contract */
.medexp-lesson{background:var(--medexp-surface);border:1px solid var(--medexp-border);border-radius:var(--medexp-radius-lg);box-shadow:var(--medexp-shadow-sm);overflow:hidden;}
.medexp-lesson__header,.medexp-lesson__content,.medexp-lesson__footer{padding:var(--medexp-space-4);}
.medexp-lesson__header{background:var(--medexp-card);border-bottom:1px solid var(--medexp-border);}
.medexp-lesson__footer{border-top:1px solid var(--medexp-border);background:var(--medexp-card);}
.medexp-lesson__meta{color:var(--medexp-muted);font-size:var(--medexp-text-sm);}

/* -------------------------------------------------------------------------- */
/* Lesson header meta cards (Estimated time / Prereqs / Key outputs)           */
/* -------------------------------------------------------------------------- */
.medexp-metaCard{
 padding:0.9rem 1rem;
 border:1px solid var(--medexp-border);
 border-radius:var(--medexp-radius-lg);
 background:var(--medexp-card-bg);
 box-shadow:var(--medexp-shadow-xs);
 margin:0;
}

.medexp-lesson__header .medexp-metaCard p{margin:0.35rem 0 0 0;}
.medexp-lesson__header .medexp-metaCard ul,
.medexp-lesson__header .medexp-metaCard ol{margin:0.45rem 0 0.2rem 1.1rem;}

.medexp-metaHeading{
 --medexp-pill-accent: var(--medexp-primary);
 display:inline-flex;
 align-items:center;
 gap:.5rem;
 width:fit-content;
 padding:.22rem .7rem;
 margin:0 0 0.25rem 0;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.35);
 background:rgba(15,23,42,0.035);
 box-shadow:0 10px 28px rgba(2,6,23,0.08);
 font-weight:800;
 letter-spacing:0.11em;
 font-size:0.72rem;
 text-transform:uppercase;
}

@supports (background: color-mix(in srgb, white 50%, black)){
 .medexp-metaHeading{
  background: color-mix(in srgb, var(--medexp-pill-accent) 12%, white);
  border-color: color-mix(in srgb, var(--medexp-pill-accent) 22%, rgba(148,163,184,0.35));
  color: color-mix(in srgb, var(--medexp-pill-accent) 55%, rgba(15,23,42,0.92));
 }
}

.medexp-metaHeading__ico{
 width:22px;height:22px;
 border-radius:12px;
 display:grid;place-items:center;
 border:1px solid rgba(148,163,184,0.30);
 background:rgba(255,255,255,0.7);
}

@supports (background: color-mix(in srgb, white 50%, black)){
 .medexp-metaHeading__ico{
  background: color-mix(in srgb, var(--medexp-pill-accent) 10%, white);
  border-color: color-mix(in srgb, var(--medexp-pill-accent) 18%, rgba(148,163,184,0.30));
 }
}

.medexp-metaHeading__svg{width:14px;height:14px;color:var(--medexp-pill-accent);}
.medexp-metaHeading__txt{line-height:1;}

.medexp-metaHeading[data-kind="time"]{--medexp-pill-accent: var(--medexp-info);}
.medexp-metaHeading[data-kind="prereqs"]{--medexp-pill-accent: var(--medexp-success);}
.medexp-metaHeading[data-kind="outputs"]{--medexp-pill-accent: var(--medexp-primary);}

/* -------------------------------------------------------------------------- */
/* Lesson headings: scan-friendly section pills + numbered/letter badges */
/* -------------------------------------------------------------------------- */

.medexp-lesson__content h2{font-weight:800;}
.medexp-lesson__content h3{font-weight:800;letter-spacing:-0.01em;}
.medexp-lesson__content h4{font-weight:800;letter-spacing:-0.01em;margin-top:var(--medexp-space-4);}
/* Emphasize numbered H3 (e.g., 5.2.1.3 ...) as the main intra-section headers */
.medexp-lesson__content h3.medexp-headingDecor{
 font-size:1.25rem;
 line-height:1.18;
 margin-top:var(--medexp-space-7);
 margin-bottom:var(--medexp-space-3);
}
/* First H3 after a section pill shouldn't look like it starts a new chapter */
.medexp-sectionHeader + h3.medexp-headingDecor{ margin-top:var(--medexp-space-4); }

.medexp-lesson__content h4.medexp-headingDecor{
 font-size:1.08rem;
 line-height:1.22;
 margin-top:var(--medexp-space-4);
 margin-bottom:var(--medexp-space-2);
}


/* H2 wrapper injected at render-time */

.medexp-visuallyHidden{
 position:absolute !important;
 width:1px !important;
 height:1px !important;
 padding:0 !important;
 margin:-1px !important;
 overflow:hidden !important;
 clip:rect(0 0 0 0) !important;
 white-space:nowrap !important;
 border:0 !important;
}
.medexp-sectionHeader{display:flex;flex-direction:column;gap:0.45rem;margin:0 0 var(--medexp-space-3);} 
.medexp-sectionHeader h2{margin:0;}
.medexp-sectionTitle{margin:0;}

/* Step O: section-level learner report action */
.medexp-sectionReportBtn{
 align-self:flex-end;
 margin-top:-0.15rem;
 font-size:0.78rem;
 padding:0.3rem 0.55rem;
 border-radius:999px;
}
.medexp-sectionHeader .medexp-sectionReportBtn{
 line-height:1;
}
@media (max-width: 520px){
 .medexp-sectionReportBtn{ align-self:flex-start; margin-top:0.25rem; }
}


.medexp-sectionPill{
 --medexp-pill-accent: var(--medexp-primary);
 display:inline-flex;
 align-items:center;
 gap:.5rem;
 width:fit-content;
 padding:.22rem .7rem;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.35);
 background:rgba(15,23,42,0.035);
 box-shadow:0 10px 28px rgba(2,6,23,0.08);
 font-weight:800;
 letter-spacing:0.11em;
 font-size:0.72rem;
 text-transform:uppercase;
}
@supports (background: color-mix(in srgb, white 50%, black)){
 .medexp-sectionPill{
 background: color-mix(in srgb, var(--medexp-pill-accent) 12%, white);
 border-color: color-mix(in srgb, var(--medexp-pill-accent) 22%, rgba(148,163,184,0.35));
 color: color-mix(in srgb, var(--medexp-pill-accent) 55%, rgba(15,23,42,0.92));
 }
}

.medexp-sectionPill__ico{
 width:22px;height:22px;
 border-radius:12px;
 display:grid;place-items:center;
 border:1px solid rgba(148,163,184,0.30);
 background:rgba(255,255,255,0.7);
}
@supports (background: color-mix(in srgb, white 50%, black)){
 .medexp-sectionPill__ico{
 background: color-mix(in srgb, var(--medexp-pill-accent) 10%, white);
 border-color: color-mix(in srgb, var(--medexp-pill-accent) 18%, rgba(148,163,184,0.30));
 }
}

.medexp-sectionPill__svg{width:14px;height:14px;color:var(--medexp-pill-accent);}
.medexp-sectionPill__txt{line-height:1;}

/* Per-section accents */
.medexp-sectionHeader[data-section="core-content"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-primary);}
.medexp-sectionHeader[data-section="learning-objectives"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-success);}
.medexp-sectionHeader[data-section="why-it-matters"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-info);}
.medexp-sectionHeader[data-section="key-terms"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-success);}
.medexp-sectionHeader[data-section="exam-traps"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-danger);}
.medexp-sectionHeader[data-section="differentials"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-warning);}
.medexp-sectionHeader[data-section="algorithm"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-primary);}
.medexp-sectionHeader[data-section="rapid-review"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-accent);}
.medexp-sectionHeader[data-section="references"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-info);}
.medexp-sectionHeader[data-section="common-pitfalls"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-warning);}
.medexp-sectionHeader[data-section="self-check-quiz"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-info);}
.medexp-sectionHeader[data-section="answer-key"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-danger);}
.medexp-sectionHeader[data-section="high-yield"] .medexp-sectionPill{--medexp-pill-accent: var(--medexp-accent);}

/* Badges injected into heading text */
.medexp-hnum,.medexp-hlet{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:.25rem;
 padding:.12rem .5rem;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.30);
 background:rgba(15,23,42,0.04);
 color:rgba(15,23,42,0.86);
 font-weight:800;
 transform: translateY(-1px);
}
.medexp-hnum{font-family:var(--medexp-font-mono);font-size:0.85em;}
.medexp-hlet{min-width:1.6rem;font-size:0.86em;}


.medexp-callout{border:1px solid var(--medexp-border);border-left-width:var(--medexp-callout-border-width);border-radius:var(--medexp-radius-md);padding:var(--medexp-space-3);background:var(--medexp-card);}
.medexp-callout[data-variant="high-yield"]{border-left-color:var(--medexp-primary);}
.medexp-callout[data-variant="warning"]{border-left-color:var(--medexp-warning);}
.medexp-callout[data-variant="trap"]{border-left-color:var(--medexp-danger);}
.medexp-callout[data-variant="tip"]{border-left-color:var(--medexp-success);}
.medexp-callout[data-variant="info"]{border-left-color:var(--medexp-info);}

.medexp-table__wrap{overflow:auto;border:1px solid var(--medexp-border);border-radius:var(--medexp-radius-md);background:var(--medexp-card);}
.medexp-table{width:100%;border-collapse:collapse;font-size:var(--medexp-text-sm);}
.medexp-table th{background:var(--medexp-table-header-bg);text-align:left !important;padding:0.6rem;border-bottom:1px solid var(--medexp-border);}
.medexp-table td{padding:0.6rem;border-bottom:1px solid var(--medexp-border);}
.medexp-table tr:hover td{background:var(--medexp-table-row-hover);}

/* Outline */
.medexp-outline{background:var(--medexp-card);border:1px solid var(--medexp-border);border-radius:var(--medexp-radius-md);padding:var(--medexp-space-4);}
.medexp-outline__node{padding:0.35rem 0;}
.medexp-outline__toggle{margin-right:0.35rem;}
.medexp-outline__link{color:var(--medexp-primary);text-decoration:none;}
.medexp-outline__status{font-size:var(--medexp-text-sm);color:var(--medexp-muted);margin-left:0.5rem;}

/* Topic multi-select (batch generation) */
.medexp-outline__node--topic{display:grid;align-items:center;gap:0.5rem;grid-template-columns:auto minmax(0,1fr) auto;}
.medexp-outline__node--topic .medexp-outline__link{min-width:0;}
.medexp-outline__pick{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:6px;border:1px solid var(--medexp-border);background:var(--medexp-bg);cursor:pointer;flex:0 0 auto;box-shadow:0 1px 0 rgba(0,0,0,.03);}
.medexp-outline__pickMark{width:10px;height:10px;border-radius:3px;background:transparent;transition:all .12s ease;}
.medexp-outline__pick input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;}
.medexp-outline__pick input:checked + .medexp-outline__pickMark{background:var(--medexp-primary);}
.medexp-outline__pick:hover{border-color:rgba(0,0,0,.18);}


/* Outline hierarchy polish */
.medexp-outline details{margin:0;}
.medexp-outline details > summary{
 cursor:pointer;
 list-style:none;
 display:grid;
 grid-template-columns:auto minmax(0, 1fr) auto auto;
 grid-template-areas:"chev title actions count";
 align-items:center;
 column-gap:0.5rem;
 row-gap:0.35rem;
 padding:0.42rem 0.5rem;
 border-radius:12px;
 border:1px solid transparent;
 background:rgba(15,23,42,0.015);
 transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .06s ease;
}

/* Outline summary layout: keep title + pills from colliding when titles wrap */
.medexp-outline details > summary .medexp-outline__chev{grid-area:chev;}
.medexp-outline details > summary .medexp-outline__summaryTitle{grid-area:title;}
.medexp-outline details > summary .medexp-outline__actions{grid-area:actions;justify-self:end;align-self:center;display:flex;flex-wrap:wrap;}
.medexp-outline details > summary .medexp-outline__count{grid-area:count;justify-self:end;align-self:center;}

.medexp-outline details > summary::-webkit-details-marker{display:none;}
.medexp-outline details > summary:hover{background:rgba(15,23,42,0.04);border-color:rgba(15,23,42,0.08);box-shadow:0 1px 0 rgba(15,23,42,0.04);}
.medexp-outline details > summary:active{transform:translateY(1px);}
.medexp-outline details > summary:focus-visible{outline:2px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);outline-offset:2px;}
.medexp-outline__node--chapter{margin-top:var(--medexp-space-2);}
.medexp-outline__node--section{margin-left:0.75rem;border-left:1px dashed var(--medexp-border);padding-left:0.75rem;}
.medexp-outline__node--subsection{margin-left:0.75rem;border-left:1px dashed var(--medexp-border);padding-left:0.75rem;}
.medexp-outline__node--topic{margin-left:1.5rem;padding:0.08rem 0.2rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0.5rem;border-radius:12px;}
.medexp-outline__metaRight{display:flex;align-items:center;justify-content:flex-end;gap:0.35rem;flex-wrap:wrap;min-width:0;}
.medexp-outline__node--topic:hover{background:rgba(15,23,42,0.04);}
.medexp-outline__node--topic:focus-within{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);}
.medexp-outline__link{display:flex;align-items:center;gap:0.4rem;flex:1;min-width:0;padding:0.22rem 0.45rem;border-radius:10px;}
.medexp-outline__link:hover{text-decoration:none;}
.medexp-outline__num{display:inline-block;min-width:2.4em;font-variant-numeric:tabular-nums;opacity:0.75;}
.medexp-outline__status{display:inline-flex;align-items:center;border:1px solid var(--medexp-border);border-radius:999px;padding:0.05rem 0.45rem;font-size:0.75rem;}
.medexp-outline__status[data-status="generated"]{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);}
.medexp-outline__status[data-status="published"]{background:rgba(22,163,74,0.10);}

/* Outline accordion header enhancements */
.medexp-outline__toggle{display:flex;align-items:center;gap:0.5rem;}
.medexp-outline__chev{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border-radius:10px;border:1px solid var(--medexp-border);background:rgba(15,23,42,0.03);transition:transform .15s ease, background .15s ease;transform:rotate(-90deg);flex:0 0 auto;}
.medexp-outline details[open] > summary .medexp-outline__chev{transform:rotate(0deg);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);}
.medexp-outline__summaryTitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.medexp-outline__count{margin-left:0;display:inline-flex;align-items:center;justify-content:center;font-size:0.75rem;color:var(--medexp-muted);border:1px solid var(--medexp-border);background:rgba(255,255,255,0.75);border-radius:999px;padding:0.08rem 0.45rem;}

/* Contextual Practice + Flashcards actions inside outline */
.medexp-outline__actions{margin-left:0;display:inline-flex;align-items:center;gap:0.35rem;flex:0 0 auto;}
.medexp-outline__action{display:inline-flex;align-items:center;gap:0.35rem;padding:0.16rem 0.42rem;border-radius:999px;border:1px solid var(--medexp-border);background:rgba(255,255,255,0.75);color:var(--medexp-text);text-decoration:none;font-size:0.75rem;line-height:1.2;white-space:nowrap;}
.medexp-outline__action:hover{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.20);text-decoration:none;}
.medexp-outline__action:focus-visible{outline:2px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);outline-offset:2px;}
.medexp-outline__actionLabel{font-weight:600;}
.medexp-outline__actionCount{color:var(--medexp-muted);font-variant-numeric:tabular-nums;}
.medexp-outline__actionCount{display:inline-flex;align-items:center;gap:0.35rem;}
.medexp-outline__actionCountLabel{font-size:0.72em;opacity:0.78;}
.medexp-outline__actionCountNum{font-weight:800;}
.medexp-outline__action--practice{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);}
.medexp-outline__action--flashcards{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06);}

/* Hide topic-level actions until hover/focus to avoid clutter */
.medexp-outline__node--topic .medexp-outline__actions{margin-left:0;opacity:0;pointer-events:none;transform:translateY(1px);transition:opacity .12s ease, transform .12s ease;}
.medexp-outline__node--topic:hover .medexp-outline__actions,
.medexp-outline__node--topic:focus-within .medexp-outline__actions{opacity:1;pointer-events:auto;transform:translateY(0);}
/* In practice sidebar, keep outline extra-minimal */
.medexp-scope--practice .medexp-outline__node--topic .medexp-outline__actions{display:none;}

/* Completion badges (learner progress) */
.medexp-outline__status[data-kind="completion"][data-status="complete"]{background:rgba(22,163,74,0.12);border-color:rgba(22,163,74,0.20);color:rgba(20,83,45,1);}
.medexp-outline__status[data-kind="completion"][data-status="in-progress"]{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);color:rgba(30,58,138,1);}
.medexp-outline__status[data-kind="completion"][data-status="not-started"]{background:rgba(15,23,42,0.04);color:var(--medexp-muted);}
.medexp-outline__node--topic[data-completion="complete"] .medexp-outline__link{opacity:0.92;}
.medexp-outline__node--topic[data-completion="complete"] .medexp-outline__num{color:rgba(22,163,74,1);opacity:0.95;}
.medexp-outline__node--topic[data-completion="in-progress"] .medexp-outline__link{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);border-radius:10px;padding:0.22rem 0.5rem;}

/* Course page outline header */
.medexp-outlineHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--medexp-space-4);margin-bottom:var(--medexp-space-4);}
.medexp-outlineHeader__actions{display:flex;gap:var(--medexp-space-2);flex-wrap:wrap;justify-content:flex-end;}

/* Progress card (course home) */
.medexp-progress{padding:var(--medexp-space-4);display:flex;flex-direction:column;}
.medexp-progress__top{display:flex;align-items:center;justify-content:space-between;gap:var(--medexp-space-3);margin-bottom:var(--medexp-space-3);}
.medexp-progress__leftHead{display:flex;align-items:center;gap:0.75rem;min-width:0;}
.medexp-progress__badge{flex:0 0 auto;line-height:0;}
.medexp-progress__badge .medexp-courseCover{box-shadow:0 10px 22px rgba(15,23,42,0.10);border:1px solid rgba(15,23,42,0.10);border-radius:14px;}

.medexp-progress__title{font-weight:800;letter-spacing:-0.01em;}
.medexp-progress__pct{font-weight:800;font-size:1.35rem;}
.medexp-progress__bar{height:12px;background:rgba(15,23,42,0.06);border:1px solid var(--medexp-border);border-radius:999px;overflow:hidden;}
.medexp-progress__fill{height:100%;background:linear-gradient(90deg, var(--medexp-primary), var(--medexp-accent));border-radius:999px;}
.medexp-progress__meta{display:grid;gap:0.55rem;margin-top:var(--medexp-space-4);}
.medexp-progress__stat{display:flex;align-items:center;justify-content:space-between;gap:var(--medexp-space-3);font-size:0.9rem;}
.medexp-progress__label{color:var(--medexp-muted);}
.medexp-progress__value{font-weight:700;}
.medexp-progress__actions{display:flex;gap:var(--medexp-space-2);flex-wrap:wrap;margin-top:auto;padding-top:var(--medexp-space-4);}

/* Lesson navigation module */
.medexp-lessonNav{margin-top:var(--medexp-space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--medexp-space-3);padding:var(--medexp-space-3) var(--medexp-space-4);}
.medexp-lessonNav__left,.medexp-lessonNav__right{display:flex;gap:var(--medexp-space-2);align-items:center;}
.medexp-lessonNav__center{display:flex;gap:var(--medexp-space-2);justify-content:center;flex:1;}
.medexp-lessonNav__spacer{display:inline-block;min-width:110px;}



/* === Smart lesson CTA (bottom of lesson pages) === */
.medexp-lessonCtaWrap{ margin-top: var(--medexp-space-4); }
.medexp-lessonCta{ position:relative; overflow:hidden; padding:1rem; }
.medexp-lessonCta::before{
 content:"";
 position:absolute;
 inset:-2px;
 background:
  radial-gradient(520px circle at 0% 0%, rgba(79,70,229,.14), transparent 45%),
  radial-gradient(420px circle at 100% 120%, rgba(var(--medexp-brand-teal-rgb,0,166,118),.12), transparent 55%);
 pointer-events:none;
}
.medexp-lessonCta__inner{ position:relative; z-index:1; display:flex; flex-direction:column; gap:0.9rem; }
.medexp-lessonCta__grid{
 display:grid;
 gap:0.85rem;
 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.medexp-lessonCta__tile{ display:flex; flex-direction:column; justify-content:space-between; min-height:9.75rem; }
.medexp-lessonCta__tileTop{ display:flex; flex-direction:column; gap:0.35rem; }
.medexp-lessonCta__tileTitle{ font-weight:800; letter-spacing:-0.01em; }
.medexp-lessonCta__tileMeta{ font-size:0.9rem; color: var(--tw-gray-600,#4b5563); }
.medexp-lessonCta__tileActions{ display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; margin-top:0.75rem; }
.medexp-lessonCta__hint{ font-size:0.78rem; color: var(--tw-gray-600,#4b5563); }
.medexp-lessonCta__nav{ display:flex; align-items:center; justify-content:space-between; gap:0.75rem; padding-top:0.25rem; }
.medexp-lessonCta__navLeft,.medexp-lessonCta__navCenter,.medexp-lessonCta__navRight{ display:flex; align-items:center; gap:0.5rem; }
.medexp-lessonCta__tile.is-recommended{
 border-color: rgba(79,70,229,.45) !important;
 box-shadow: 0 18px 55px rgba(2,6,23,.14);
}
.medexp-lessonCta__tile.is-recommended::after{
 content:"Recommended";
 position:absolute;
 top:0.9rem;
 right:0.9rem;
 font-size:0.7rem;
 font-weight:800;
 letter-spacing:0.02em;
 padding:0.22rem 0.48rem;
 border-radius:999px;
 background: rgba(79,70,229,.10);
 color: rgba(79,70,229,1);
 border: 1px solid rgba(79,70,229,.20);
}
.medexp-lessonCta__tile{ position:relative; }


/* Tables inside lesson when model forgets classes */
.medexp-lesson table{width:100%;border-collapse:collapse;font-size:var(--medexp-text-sm);}
.medexp-lesson table th{background:var(--medexp-table-header-bg);text-align:left !important;padding:0.6rem;border-bottom:1px solid var(--medexp-border);} 
.medexp-lesson table td{padding:0.6rem;border-bottom:1px solid var(--medexp-border);} 

/* ===== SaaS layout (matches your screenshot style) ===== */
.medexp-shell{min-height:100vh;}

.medexp-pageheader{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--medexp-space-4);margin-bottom:var(--medexp-space-4);
 background:linear-gradient(135deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08));
 border:1px solid var(--medexp-border);
 border-radius:var(--medexp-radius-lg);
 padding:var(--medexp-space-6);
 box-shadow:var(--medexp-shadow-sm);
}
.medexp-pageheader__left{min-width:0;}
.medexp-breadcrumbs{display:flex;flex-wrap:wrap;gap:0.35rem;align-items:center;color:var(--medexp-muted);font-size:var(--medexp-text-sm);margin-bottom:0.35rem;}
.medexp-breadcrumbs a{color:var(--medexp-muted);}
.medexp-breadcrumbs a:hover{color:var(--medexp-text);text-decoration:none;}
.medexp-breadcrumbs__sep{opacity:0.55;}

/* Small (non-hero) breadcrumbs: pill style like LearnQ screenshots */
.medexp-breadcrumbs--sm{gap:0.55rem;margin-bottom:0.75rem;}
.medexp-breadcrumbs--sm > a,
.medexp-breadcrumbs--sm > span:not(.medexp-breadcrumbs__sep){
 display:inline-flex;align-items:center;gap:0.45rem;
 padding:0.34rem 0.78rem;
 background:rgba(15,23,42,0.045);
 border:1px solid rgba(148,163,184,0.35);
 border-radius:999px;
 color:var(--medexp-text);
 font-weight:500;
 line-height:1.1;
}
.medexp-breadcrumbs--sm > a{color:var(--medexp-text);}
.medexp-breadcrumbs--sm > a:hover{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.085);border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);text-decoration:none;}
.medexp-breadcrumbs--sm .medexp-breadcrumbs__sep{opacity:1;font-size:0;line-height:0;}
.medexp-breadcrumbs--sm .medexp-breadcrumbs__sep::before{content:'›';font-size:0.95rem;line-height:1;color:rgba(100,116,139,0.85);}
.medexp-breadcrumbs--sm > a:first-child::before{
 content:'';
 width:14px;height:14px;display:inline-block;flex:0 0 auto;
 background-color:currentColor;
 -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 3.2 2.5 10.8a1 1 0 0 0 1.25 1.56L5 11.36V20a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4.25c0-.41.34-.75.75-.75h.5c.41 0 .75.34.75.75V20a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-8.64l1.25 1a1 1 0 0 0 1.25-1.56L12 3.2z'/></svg>");
 -webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;
 mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 3.2 2.5 10.8a1 1 0 0 0 1.25 1.56L5 11.36V20a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4.25c0-.41.34-.75.75-.75h.5c.41 0 .75.34.75.75V20a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-8.64l1.25 1a1 1 0 0 0 1.25-1.56L12 3.2z'/></svg>");
 mask-size:contain;mask-repeat:no-repeat;mask-position:center;
}
.medexp-title{margin:0;}
.medexp-subtitle{margin:0;color:var(--medexp-muted);max-width:80ch;}
.medexp-pageheader__actions{display:flex;gap:var(--medexp-space-2);flex-wrap:wrap;justify-content:flex-end;}

.medexp-chip{display:inline-flex;align-items:center;gap:0.35rem;border:1px solid var(--medexp-border);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);padding:0.2rem 0.55rem;border-radius:999px;font-size:0.75rem;color:var(--medexp-text);} 

.medexp-layout{display:grid;grid-template-columns:clamp(380px, 30vw, 560px) minmax(0,1fr);gap:calc(var(--medexp-space-4) + .5rem);align-items:start;}
.medexp-layout.medexp-layout--single{grid-template-columns:1fr;}
.medexp-main{display:grid;gap:var(--medexp-space-4);}
.medexp-main .medexp-lesson{box-shadow:var(--medexp-shadow-md);}
.medexp-sidebar{position:relative;}
.medexp-sidebar__inner{
 display:grid;
 gap:var(--medexp-space-4);
 max-height:calc(100vh - 2.5rem);
 /* Prevent the common "mystery" horizontal scrollbar caused by long words/links.
    Sidebar should scroll vertically only. */
 overflow-y:auto;
 overflow-x:hidden;
 /* Reserve enough gutter so the scrollbar never covers card borders,
 and add a small inset so card shadows/borders aren't visually clipped. */
 padding:0.2rem 1.05rem 0.2rem 0.2rem;
 scrollbar-gutter:stable both-edges;
 overscroll-behavior:contain;
 scrollbar-width:thin;
 scrollbar-color:rgba(148,163,184,0.65) transparent;
}

/* Sticky sidebar only on larger screens (desktop/laptop) */
@media (min-width: 860px){
 .medexp-sidebar{position:sticky;top:1.25rem;}
}
.medexp-sidebar__inner::-webkit-scrollbar{width:10px;}
.medexp-sidebar__inner::-webkit-scrollbar-track{background:transparent;}
.medexp-sidebar__inner::-webkit-scrollbar-thumb{
 background:rgba(148,163,184,0.55);
 border-radius:999px;
 border:3px solid transparent;
 background-clip:content-box;
}
.medexp-sidebar__inner:hover::-webkit-scrollbar-thumb{background:rgba(148,163,184,0.68);border:3px solid transparent;background-clip:content-box;}

/* Avoid nested sticky/scroll behavior inside the sidebar (removes double scrollbars) */
.medexp-sidebar__inner .medexp-card{position:relative !important;top:auto !important;max-height:none !important;overflow:visible !important;}

/* Sidebar search: avoid the "squeezed" input by stacking input above scope+button */
.medexp-sidebar .medexp-courseSearch__form{
 grid-template-columns:minmax(0,1fr) auto;
 grid-template-areas:
 "input input"
 "scope btn";
}
.medexp-sidebar .medexp-courseSearch__input{grid-area:input;}
.medexp-sidebar .medexp-courseSearch__scope{grid-area:scope;min-width:0;}
.medexp-sidebar .medexp-courseSearch__btn{grid-area:btn;white-space:nowrap;}

/* Practice page keeps the sidebar itself scrollable (it is a single card) */
.medexp-scope--practice .medexp-sidebar{max-height:calc(100vh - 2rem);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,0.65) transparent;}
.medexp-scope--practice .medexp-sidebar::-webkit-scrollbar{width:10px;}
.medexp-scope--practice .medexp-sidebar::-webkit-scrollbar-track{background:transparent;}
.medexp-scope--practice .medexp-sidebar::-webkit-scrollbar-thumb{background:rgba(148,163,184,0.55);border-radius:999px;border:3px solid transparent;background-clip:content-box;}
.medexp-toc{backdrop-filter:saturate(180%) blur(8px);}
.medexp-toc__title{font-weight:700;margin:0 0 var(--medexp-space-2);font-size:0.95rem;}
.medexp-toc .medexp-outline{border:0;padding:0;background:transparent;}
.medexp-toc .medexp-outline__link{color:var(--medexp-text);font-weight:500;font-size:0.875rem;padding:0.25rem 0.5rem;border-radius:10px;}
.medexp-toc .medexp-outline__link{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
.medexp-toc .medexp-outline__link:hover{text-decoration:none;background:rgba(15,23,42,0.04);}
.medexp-outline__link.is-active{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);border-radius:10px;padding:0.25rem 0.5rem;text-decoration:none;}


/* === Lesson sidebar: "On this page" (H2/H3) + collapsible course outline === */
.medexp-toc__header{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin:0 0 var(--medexp-space-2);}
.medexp-toc__body{display:block;}
.medexp-tocLinks{list-style:none;margin:0;padding:0;display:grid;gap:0.15rem;}
.medexp-tocLink a{
 display:block;
 padding:0.25rem 0.5rem;
 border-radius:10px;
 color:var(--medexp-text);
 text-decoration:none;
 font-size:0.875rem;
 font-weight:500;
 max-width:100%;
 white-space:normal;
 overflow-wrap:anywhere;
 word-break:break-word;
}
.medexp-tocLink a:hover{background:rgba(15,23,42,0.04);text-decoration:none;}
.medexp-tocLink.is-sub a{
 padding-left:1.15rem;
 font-size:0.84rem;
 font-weight:450;
 color:var(--medexp-muted);
}

/* Collapsible "Course outline" card */
details.medexp-toc--courseOutline > summary{
 list-style:none;
 cursor:pointer;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:0.6rem;
 margin:0;
 padding:0;
}
details.medexp-toc--courseOutline > summary::-webkit-details-marker{display:none;}
.medexp-toc--courseOutline .medexp-toc__title{margin:0;font-size:0.95rem;font-weight:700;}
.medexp-toc__chev{opacity:0.65;transition:transform 160ms ease;}
details.medexp-toc--courseOutline[open] .medexp-toc__chev{transform:rotate(180deg);}

/* Make anchor jumps land below the sticky appbar */
.medexp-sectionHeader,
.medexp-lesson__content h3,
.medexp-lesson__content h4{scroll-margin-top:7.25rem;}

/* === Practice outline: compact navigation tools === */
.medexp-scope--practice .medexp-outlineTools{display:grid;gap:0.4rem;margin:0 0 0.65rem 0;}
.medexp-scope--practice .medexp-outlineTools__row{display:flex;gap:0.5rem;align-items:center;}
.medexp-scope--practice .medexp-outlineSearch{flex:1;min-width:0;border:1px solid var(--medexp-border);background:rgba(255,255,255,0.85);border-radius:12px;padding:0.45rem 0.6rem;font-size:0.86rem;}
.medexp-scope--practice .medexp-outlineSearch:focus{outline:none;border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);}
.medexp-scope--practice .medexp-outlineBtn{padding:0.42rem 0.65rem;white-space:nowrap;}
.medexp-scope--practice .medexp-outlineTools__meta{display:flex;justify-content:space-between;align-items:center;color:var(--medexp-muted);font-size:0.75rem;}

/* === Practice subject filters === */
.medexp-scope--practice details.medexp-subjects{margin:0 0 0.65rem 0;}
details.medexp-subjects > summary{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin:0;padding:0;cursor:pointer;}
details.medexp-subjects > summary::-webkit-details-marker{display:none;}
details.medexp-subjects > summary .medexp-toc__title{margin:0;font-size:0.95rem;font-weight:700;}
details.medexp-subjects[open] .medexp-toc__chev{transform:rotate(180deg);}
.medexp-subjects__hint{color:var(--medexp-muted);font-size:0.75rem;margin:0.25rem 0 0.55rem 0;}
.medexp-subjects__search{width:100%;border:1px solid var(--medexp-border);background:rgba(255,255,255,0.85);border-radius:12px;padding:0.45rem 0.6rem;font-size:0.86rem;margin:0 0 0.45rem 0;}
.medexp-subjects__search:focus{outline:none;border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);}
.medexp-subjects__actions{display:flex;gap:0.5rem;margin:0 0 0.45rem 0;}
.medexp-subjects__actions .medexp-outlineBtn{padding:0.38rem 0.6rem;}
.medexp-subjects__list{display:grid;gap:0.25rem;max-height:240px;overflow:auto;padding-right:0.2rem;}
.medexp-subjects__item{display:flex;align-items:flex-start;gap:0.5rem;font-size:0.84rem;line-height:1.2;color:var(--medexp-text);padding:0.12rem 0;}
.medexp-subjects__scroll{position:relative;}
.medexp-subjects__scroll::after{content:'';position:absolute;left:0;right:0;bottom:0;height:28px;background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.95));opacity:0;pointer-events:none;transition:opacity 140ms ease;}
.medexp-subjects__scrollHint{position:absolute;left:50%;bottom:6px;transform:translateX(-50%) translateY(4px);display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,0.88);border:1px solid rgba(15,23,42,0.10);font-size:12px;font-weight:800;color:rgba(15,23,42,0.70);opacity:0;pointer-events:none;transition:opacity 140ms ease, transform 140ms ease;}
.medexp-subjects__scrollHint .tw-ico{width:16px;height:16px;}
.medexp-subjects__scroll.is-overflow:not(.is-at-bottom)::after{opacity:1;}
.medexp-subjects__scroll.is-overflow:not(.is-at-bottom) .medexp-subjects__scrollHint{opacity:1;transform:translateX(-50%) translateY(0);}

.medexp-subjects__item input{margin-top:0.12rem;}
.medexp-subjects__empty{color:var(--medexp-muted);font-size:0.82rem;}

/* Make outline denser in practice sidebar */
.medexp-scope--practice .medexp-outline__node{padding:0.18rem 0;}
.medexp-scope--practice .medexp-outline details > summary{padding:0.08rem 0;}
.medexp-scope--practice .medexp-outline__node--section,
.medexp-scope--practice .medexp-outline__node--subsection{margin-left:0.55rem;padding-left:0.65rem;}
.medexp-scope--practice .medexp-outline__node--topic{margin-left:1.05rem;gap:0.45rem;padding:0.1rem 0;}
.medexp-scope--practice .medexp-outline__num{min-width:2.1em;}
.medexp-scope--practice .medexp-toc .medexp-outline__link{padding:0.18rem 0.45rem;font-size:0.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.medexp-scope--practice .medexp-toc .medexp-outline__link .medexp-outline__num{opacity:0.72;}

/* Reduce visual noise */
.medexp-scope--practice .medexp-outline__pick{display:none;}
.medexp-scope--practice .medexp-outline__status[data-status="none"]{display:none;}

/* Section cards: make each H2 block feel like a SaaS "module" */
.medexp-section{padding:var(--medexp-space-4);}
.medexp-section__title{margin:0 0 var(--medexp-space-2);font-size:var(--medexp-text-xl);}

/* Responsive */
@media (min-width: 981px){
 /* Sticky sidebar only on larger screens */
 .medexp-sidebar{position:sticky;top:1.25rem;}
}

@media (min-width: 981px){
  .medexp-landingMetrics{margin-top:-26px;}
}



/* --- Hero offer (PrincetonReview-style) ---------------------------------- */
.medexp-landingSection--hero_offer{padding:0;}
.medexp-landingHeroOffer{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  background:#0b1220;
  background-image:var(--medexp-hero-bg) !important !important;
  background-size:cover !important !important;
  background-position:center !important !important;
  position:relative;
  overflow:hidden;
}
.medexp-landingHeroOffer::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(2,6,23,0.80) 0%, rgba(2,6,23,0.55) 55%, rgba(2,6,23,0.25) 100%);
}
.medexp-landingHeroOffer__grid{
  position:relative;
  max-width:74rem;
  margin:0 auto;
  padding:clamp(32px, 6vw, 70px) clamp(16px, 4vw, 36px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px, 420px);
  gap:clamp(18px, 3vw, 34px);
  align-items:center;
}
.medexp-landingHeroOffer__kicker{
  font-size:0.76rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:900;
  color:rgba(255,255,255,0.78);
  margin:0 0 12px;
}
.medexp-landingHeroOffer__h1{
  font-size:clamp(2.25rem, 4.6vw, 3.3rem);
  line-height:1.05;
  font-weight:950;
  letter-spacing:-0.035em;
  margin:0 0 12px;
  color:#fff;
}
.medexp-landingHeroOffer__lead{
  margin:0;
  color:rgba(255,255,255,0.84);
  font-size:1.08rem;
  line-height:1.55;
  max-width:70ch;
}
.medexp-offerCard{
  background:#fff;
  border:1px solid rgba(226,232,240,0.9);
  border-radius:20px;
  box-shadow:0 18px 50px rgba(15,23,42,0.18);
  padding:18px 18px 16px;
}
.medexp-offerCard__ttl{font-weight:950;letter-spacing:-0.02em;margin:0 0 10px;}
.medexp-offerCard__opts{display:flex;flex-direction:column;gap:10px;margin:8px 0 14px;}
.medexp-offerOpt{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 10px;
  border-radius:14px;
  border:1px solid var(--medexp-border);
  cursor:pointer;
  background:#fff;
}
.medexp-offerOpt input{margin-top:2px;accent-color:var(--medexp-primary);}
.medexp-offerOpt__row{display:flex;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;}
.medexp-offerOpt__left{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;}
.medexp-offerOpt__price{font-weight:950;}
.medexp-offerOpt__label{font-weight:850;color:var(--medexp-muted);}
.medexp-offerOpt__sub{font-weight:800;color:var(--medexp-muted);white-space:nowrap;}
.medexp-offerCard__cta{margin-top:4px;}
.medexp-offerCard__help{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--medexp-border);
}
.medexp-offerCard__helpTxt{font-weight:850;color:var(--medexp-text);line-height:1.2;}
.medexp-offerCard__helpSub{font-weight:800;color:var(--medexp-muted);font-size:0.85rem;margin-top:4px;}
.medexp-btn--pill{border-radius:999px;}
.medexp-btn--pillOutline{
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--medexp-primary) 35%, var(--medexp-border));
  background:#fff;
  color:var(--medexp-primary);
  padding:0.6rem 1rem;
  font-weight:900;
  box-shadow:none;
}
.medexp-btn--pillOutline:hover{background:color-mix(in srgb, var(--medexp-primary) 7%, white);}

/* --- Two-column checks ---------------------------------------------------- */
.medexp-landingTwoCol__headline{text-align:center;margin:0 0 18px;}
.medexp-landingTwoCol{
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  background:#fff;
  box-shadow:var(--medexp-shadow-xs);
  padding:clamp(16px, 3vw, 28px);
}
.medexp-landingTwoCol__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(18px, 3vw, 34px);
}
.medexp-landingTwoCol__head{
  display:flex;
  gap:10px;
  align-items:center;
  padding-bottom:12px;
  border-bottom:1px solid var(--medexp-border);
  margin-bottom:12px;
}
.medexp-landingTwoCol__ico{
  width:34px;
  height:34px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--medexp-border);
  background:color-mix(in srgb, var(--medexp-primary) 10%, white);
}
.medexp-landingTwoCol__svg{width:18px;height:18px;}
.medexp-landingTwoCol__ttl{font-weight:950;letter-spacing:-0.02em;}
.medexp-landingBullets--checks .medexp-bulletSvg{color:var(--medexp-primary);}
.medexp-landingTwoCol__p{margin:0 0 10px;color:var(--medexp-muted);line-height:1.55;}
.medexp-landingTwoCol__links{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.medexp-landingTwoCol__link{color:var(--medexp-primary);font-weight:850;text-decoration:none;}
.medexp-landingTwoCol__link:hover{text-decoration:underline;}

/* --- Stepper -------------------------------------------------------------- */
.medexp-landingStepper{
  margin-top:16px;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  background:#fff;
  box-shadow:var(--medexp-shadow-sm);
  padding:clamp(16px, 3vw, 28px);
}
.medexp-landingStepper__grid{
  display:grid;
  grid-template-columns:minmax(0, 420px) minmax(0,1fr);
  gap:clamp(16px, 3vw, 34px);
  align-items:center;
}
.medexp-landingStepper__steps{display:flex;flex-direction:column;gap:12px;}
.medexp-stepItem{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:14px;
  border-radius:18px;
  border:1px solid var(--medexp-border);
  background:#fff;
}
.medexp-stepItem.is-active{
  background:color-mix(in srgb, var(--medexp-primary) 10%, white);
  border-color:color-mix(in srgb, var(--medexp-primary) 25%, var(--medexp-border));
}
.medexp-stepItem__num{
  width:36px;
  height:36px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  border:2px solid color-mix(in srgb, var(--medexp-primary) 45%, var(--medexp-border));
  background:#fff;
  color:var(--medexp-primary);
  flex:0 0 auto;
}
.medexp-stepItem.is-active .medexp-stepItem__num{
  background:var(--medexp-primary);
  color:var(--medexp-primary-contrast);
  border-color:var(--medexp-primary);
}
.medexp-stepItem__ttl{font-weight:950;letter-spacing:-0.02em;margin:0 0 6px;}
.medexp-stepItem__body{color:var(--medexp-muted);line-height:1.45;}
.medexp-landingStepper__img{
  width:100%;
  height:auto;
  border-radius:var(--medexp-radius-lg);
  border:1px solid rgba(15,23,42,0.10);
  box-shadow:var(--medexp-shadow-sm);
}
.medexp-landingStepper__imgPh{
  width:100%;
  aspect-ratio:16 / 10;
  border-radius:var(--medexp-radius-lg);
  border:1px dashed rgba(148,163,184,0.65);
  background:rgba(148,163,184,0.10);
}

/* --- Feature grid (3 cards + demo) --------------------------------------- */
.medexp-landingFeatureGrid{margin-top:16px;}
.medexp-landingFeatureGrid__cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.medexp-featureCard{
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-lg);
  background:#fff;
  box-shadow:var(--medexp-shadow-xs);
  padding:14px 14px 16px;
}
.medexp-featureCard__ttl{font-weight:950;letter-spacing:-0.02em;margin:0 0 8px;}
.medexp-featureCard__body{color:var(--medexp-muted);line-height:1.55;}
.medexp-landingFeatureGrid__demo{
  margin-top:14px;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  background:#fff;
  box-shadow:var(--medexp-shadow-sm);
  padding:clamp(14px, 2.5vw, 20px);
}
.medexp-landingFeatureGrid__demoInner{
  display:grid;
  grid-template-columns:minmax(0, 340px) minmax(0,1fr);
  gap:18px;
  align-items:center;
}
.medexp-demoCallout__row{display:flex;gap:10px;align-items:center;margin:0 0 8px;}
.medexp-demoCallout__box{width:18px;height:18px;border-radius:4px;border:2px solid var(--medexp-border);background:#fff;flex:0 0 auto;}
.medexp-demoCallout__ttl{font-weight:950;letter-spacing:-0.02em;}
.medexp-demoCallout__body{color:var(--medexp-muted);line-height:1.55;}
.medexp-landingFeatureGrid__img{
  width:100%;
  height:auto;
  border-radius:var(--medexp-radius-lg);
  border:1px solid rgba(15,23,42,0.10);
  box-shadow:var(--medexp-shadow-sm);
}
.medexp-landingFeatureGrid__imgPh{
  width:100%;
  aspect-ratio:16 / 9;
  border-radius:var(--medexp-radius-lg);
  border:1px dashed rgba(148,163,184,0.65);
  background:rgba(148,163,184,0.10);
}

/* --- Price CTA ------------------------------------------------------------ */
.medexp-landingPriceCta{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:16px 0 0;
}
.medexp-landingPriceCta__price{
  font-size:2.1rem;
  font-weight:950;
  letter-spacing:-0.03em;
  line-height:1.0;
}


@media (max-width: 980px){
 .medexp-layout{grid-template-columns:1fr;}
 .medexp-sidebar{position:relative;top:auto;}
 .medexp-hero__grid{grid-template-columns:1fr;}
 .medexp-lessonNav{flex-wrap:wrap;}
 .medexp-lessonNav__center{justify-content:flex-start;}

  .medexp-landingHeroOffer__grid{grid-template-columns:1fr;}
  .medexp-landingTwoCol__grid{grid-template-columns:1fr;}
  .medexp-landingStepper__grid{grid-template-columns:1fr;}
  .medexp-landingFeatureGrid__cards{grid-template-columns:1fr;}
  .medexp-landingFeatureGrid__demoInner{grid-template-columns:1fr;}
  .medexp-offerOpt__sub{white-space:normal;}
}



/* === SaaS Template Port (medexp-*) v0.3.14 === */
body.medexp-page{background:var(--medexp-page-bg) !important;}
/* -------------------------------------------------------------------------- */
/* Enterprise app shell: neutralize theme chrome & make MedEx pages full-bleed */
/* -------------------------------------------------------------------------- */
body.medexp-app-shell,
body.medexp-page{
 font-size:16px;
}

/* Remove common theme content constraints */
body.medexp-app-shell #page,
body.medexp-app-shell .site,
body.medexp-app-shell .wp-site-blocks,
body.medexp-app-shell main,
body.medexp-app-shell .site-main,
body.medexp-app-shell #primary,
body.medexp-app-shell #content,
body.medexp-app-shell .content-area,
body.medexp-app-shell .entry-content{
 max-width:none !important;
 width:100% !important;
 margin:0 !important;
 padding:0 !important;
}

/* Hide common theme headers/footers so MedEx feels like a standalone app */
body.medexp-app-shell #masthead,
body.medexp-app-shell header#masthead,
body.medexp-app-shell header.site-header,
body.medexp-app-shell .site-header,
body.medexp-app-shell .wp-block-template-part.site-header,
/* Additional theme header patterns (block + classic themes) */
body.medexp-app-shell header[role="banner"],
body.medexp-app-shell #header,
body.medexp-app-shell .header,
body.medexp-app-shell .site-branding,
body.medexp-app-shell .site-title,
body.medexp-app-shell .site-description,
body.medexp-app-shell .wp-block-site-title,
body.medexp-app-shell .wp-block-site-logo,
body.medexp-app-shell .wp-block-site-tagline,
body.medexp-app-shell #colophon,
body.medexp-app-shell footer#colophon,
body.medexp-app-shell footer.site-footer,
body.medexp-app-shell .site-footer,
body.medexp-app-shell .wp-block-template-part.site-footer{
 display:none !important;
}

/* Some classic themes (e.g., Twenty Twenty-Three) inject separators/empty wrappers even after the header is hidden.
 Remove those so the app bar starts flush at the very top of the document. */
body.medexp-app-shell #page{ margin-top:0 !important; padding-top:0 !important; }
body.medexp-app-shell #page > hr,
body.medexp-app-shell hr{ display:none !important; }
body.medexp-app-shell main{ margin-top:0 !important; padding-top:0 !important; }

/* Ensure the plugin surface starts flush (admin bar is handled by WP) */
body.medexp-app-shell .medexp-scope{
 padding:0;
}

/* Stronger, theme-proof baseline inside the app surface */
.medexp-scope, .medexp_scope{
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
 text-rendering:optimizeLegibility;
 font-size:var(--medexp-text-base);
}

.medexp-scope h1{font-size:clamp(1.5rem, 2.4vw, 2.15rem); margin:0 0 var(--medexp-space-3);}
.medexp-scope h2{font-size:clamp(1.15rem, 1.55vw, 1.45rem); margin:var(--medexp-space-5) 0 var(--medexp-space-2);}
.medexp-scope h3{font-size:1.05rem; margin:var(--medexp-space-4) 0 var(--medexp-space-2);}
.medexp-scope p{font-size:0.975rem; line-height:1.65;}

/* Cards feel tighter + more enterprise */
/* Inputs: consistent, theme-proof */
.medexp-scope input[type="text"],
.medexp-scope input[type="search"],
.medexp-scope input[type="email"],
.medexp-scope input[type="password"],
.medexp-scope select,
.medexp-scope textarea{
 font:inherit;
 color:var(--medexp-text);
 background:rgba(255,255,255,0.92);
 border:1px solid rgba(148,163,184,0.55);
 border-radius:14px;
 padding:.65rem .85rem;
 outline:none;
}
.medexp-scope input:focus,
.medexp-scope select:focus,
.medexp-scope textarea:focus{
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);
 box-shadow:0 0 0 4px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.14);
}

/* Buttons: consistent weight & spacing */
.medexp-btn{
 font-weight:750;
 letter-spacing:-0.01em;
}
.medexp-btn--primary{box-shadow:0 12px 28px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.22);}
.medexp-btn--ghost{background:transparent;}

.medexp-scope{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";color:var(--medexp-text);}

.medexp-shell{position:relative;min-height:100vh;background:var(--medexp-page-bg);padding-bottom:var(--medexp-space-10);overflow:visible;}
/* glow blobs like the reference template */
.medexp-shell::before,
.medexp-shell::after{
 content:"";position:absolute;z-index:0;filter:blur(48px);opacity:0.75;pointer-events:none;
 width:44rem;height:18rem;border-radius:999px;
}
.medexp-shell::before{top:-7rem;left:50%;transform:translateX(-50%);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);}
.medexp-shell::after{bottom:-7rem;left:33%;background:rgba(34,211,238,0.30);}
/*
  Some WordPress themes constrain post content to a narrow width.
  For interactive session UIs, we want a wider, app-like layout.
*/
/*
  "Bleed" container for app-like UIs.

  Earlier builds used a 100vw + negative-margin trick to escape narrow theme
  content columns. That can mis-align the app surface on themes where the
  content column isn't perfectly centered, making everything appear "stuck"
  on the left.

  Use a safer approach: expand to the available container width (100%), then
  rely on .medexp-card--wide to cap and center the actual app card.
*/
.medexp-container--bleed{
 /*
  Break out of narrow WP theme content columns.
  Use a centered full-bleed pattern so the app surface can be wide,
  while the inner .medexp-card--wide remains capped + centered.
 */
 width:100vw;
 max-width:100vw;
 margin-left:calc(50% - 50vw);
 margin-right:calc(50% - 50vw);
 padding-left:1.25rem;
 padding-right:1.25rem;
}
.medexp-card--wide{
 width:100%;
 max-width:1800px;
 margin-left:auto;
 margin-right:auto;
}
@media (max-width:520px){
 .medexp-container--bleed{padding-left:0.75rem;padding-right:0.75rem;}
}

.medexp-appbar{
 position:sticky;top:0;z-index:50;
 background:rgba(255,255,255,0.80);
 backdrop-filter:blur(10px);
 border-bottom:1px solid rgba(148,163,184,0.45);
}
.medexp-appbar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--medexp-space-4);padding:0.7rem 0;}
.medexp-brand{display:flex;align-items:center;gap:0.55rem;font-weight:800;letter-spacing:-0.02em;color:var(--medexp-text);text-decoration:none;}
.medexp-brand:hover{color:var(--medexp-primary);text-decoration:none;}
.medexp-brand__logo{height:auto;width:auto;max-height:36px;max-width:140px;display:block;object-fit:contain;}
@media (max-width:520px){.medexp-brand__logo{max-height:28px;max-width:120px;}}
.medexp-appbar__crumbs{display:flex;align-items:center;gap:0.5rem;min-width:0;flex:1;justify-content:flex-end;}

.medexp-appbar__actions{display:flex;align-items:center;gap:0.5rem;flex:0 0 auto;}
.medexp-appbar__actions .tw-userMenu__name{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.medexp-appbar--hasActions .medexp-appbar__crumbs{justify-content:center;}
@media (max-width:720px){.medexp-appbar__actions .tw-userMenu__name{display:none;}}

/* ==========================================================
   App header: top-right actions (EXP pill, notifications, account menu)
   Ensures SVG icons don't render at default 300x150 and that dropdown is hidden until opened.
   ========================================================== */
.medexp-appbar__actions.tw-topbarActions{display:flex;align-items:center;gap:.6rem;justify-content:flex-end;}
.medexp-appbar__actions .tw-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid rgba(148,163,184,0.55);background:rgba(255,255,255,0.92);border-radius:999px;color:rgba(15,23,42,0.92);font-weight:800;line-height:1;cursor:pointer;}
.medexp-appbar__actions .tw-btn:hover{background:rgba(248,250,252,1);}
.medexp-appbar__actions svg.tw-ico{width:20px !important;height:20px !important;display:block !important;flex:0 0 auto;}
.medexp-appbar__actions svg.tw-menuIco{width:20px !important;height:20px !important;display:block !important;flex:0 0 auto;}
.medexp-appbar__actions svg.tw-caretIco{width:18px !important;height:18px !important;display:block !important;flex:0 0 auto;}

/* EXP pill */
.medexp-appbar__actions .tw-expPillWrap{position:relative;}
.medexp-appbar__actions .tw-expPill{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .75rem;border-radius:999px;font-weight:900;background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);color:rgba(15,23,42,0.92);border:1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.22);}
.medexp-appbar__actions .tw-expPill.is-expired{background:rgba(239,68,68,0.12);border-color:rgba(239,68,68,0.22);}
.medexp-appbar__actions .tw-expTooltip{position:absolute;right:0;top:calc(100% + 10px);min-width:240px;max-width:320px;background:rgba(15,23,42,0.92);color:#fff;padding:.65rem .75rem;border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,0.18);display:none;z-index:10010;font-weight:800;font-size:.9rem;}
.medexp-appbar__actions .tw-expPillWrap:hover .tw-expTooltip,
.medexp-appbar__actions .tw-expPillWrap:focus-within .tw-expTooltip{display:block;}

/* Notifications bell */
.medexp-appbar__actions .medexp-notifyWrap{position:relative;}
.medexp-appbar__actions .medexp-notifyBell{position:relative;width:44px;height:44px;padding:0 !important;display:flex;align-items:center;justify-content:center;}
.medexp-appbar__actions .medexp-notifyBadge{position:absolute;top:-6px;right:-6px;background:rgba(239,68,68,1);color:#fff;border-radius:999px;padding:2px 6px;font-size:12px;font-weight:900;line-height:1;min-width:20px;text-align:center;}
.medexp-appbar__actions .medexp-notifyDrop{position:absolute;right:0;top:calc(100% + 10px);z-index:10020;background:rgba(255,255,255,0.98);border:1px solid rgba(226,232,240,0.9);box-shadow:0 22px 60px rgba(15,23,42,0.14);border-radius:18px;min-width:min(360px,92vw);max-width:min(520px,92vw);padding:.85rem;max-height:min(34rem,calc(100vh - 140px));overflow:auto;overscroll-behavior:contain;}

/* Notifications dropdown content (course pages / appbar) */
.medexp-appbar__actions .medexp-notifyDrop__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;}
.medexp-appbar__actions .medexp-notifyDrop__title{font-weight:900;letter-spacing:-0.01em;font-size:1rem;}
.medexp-appbar__actions .medexp-notifyDrop__topActions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;}
.medexp-appbar__actions .medexp-notifyBtn{border:1px solid rgba(226,232,240,0.95);background:rgba(248,250,252,1) !important;color:rgba(15,23,42,0.88) !important;padding:.42rem .6rem;border-radius:14px;font-weight:900;font-size:.8rem;cursor:pointer;line-height:1;}
.medexp-appbar__actions .medexp-notifyBtn:hover{background:rgba(241,245,249,1) !important;}
.medexp-appbar__actions .medexp-notifyBtn[disabled]{opacity:.55;cursor:not-allowed;}
.medexp-appbar__actions .medexp-notifyPrimary{border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),.35);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),.10);color:rgba(var(--medexp-brand-blue-rgb,26,79,156),.95);padding:.45rem .75rem;border-radius:16px;font-weight:900;cursor:pointer;line-height:1;}
.medexp-appbar__actions .medexp-notifyPrimary:hover{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),.14);}
.medexp-appbar__actions .medexp-notifyDrop__section{margin-top:.75rem;}
.medexp-appbar__actions .medexp-notifyDrop__sub{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(71,85,105,0.85);font-weight:900;margin-bottom:.45rem;}
.medexp-appbar__actions .medexp-notifyItem{border:1px solid rgba(226,232,240,0.95);border-radius:16px;padding:.75rem;margin-bottom:.6rem;background:rgba(255,255,255,1);}
.medexp-appbar__actions .medexp-notifyItem.is-unread{background:linear-gradient(180deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),.07), transparent 70%), rgba(255,255,255,1);}
.medexp-appbar__actions .medexp-notifyItem__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;}
.medexp-appbar__actions .medexp-notifyItem__title{font-weight:900;}
.medexp-appbar__actions .medexp-notifyItem__time{font-size:.75rem;color:rgba(100,116,139,0.9);font-weight:900;white-space:nowrap;}
.medexp-appbar__actions .medexp-notifyItem__body{margin-top:.35rem;color:rgba(51,65,85,0.95);font-size:.9rem;line-height:1.25rem;}
.medexp-appbar__actions .medexp-notifyItem__actions{display:flex;align-items:center;gap:.6rem;margin-top:.55rem;}
.medexp-appbar__actions .medexp-notifyLink{font-weight:900;color:rgba(var(--medexp-brand-blue-rgb,26,79,156),.95);text-decoration:none;}
.medexp-appbar__actions .medexp-notifyLink:hover{text-decoration:underline;}
.medexp-appbar__actions .medexp-notifyMark{border:none;background:transparent;color:rgba(71,85,105,0.95);font-weight:900;cursor:pointer;padding:0;}
.medexp-appbar__actions .medexp-notifyMark:hover{color:rgba(15,23,42,0.95);}
.medexp-appbar__actions .medexp-notifyEmpty{color:rgba(71,85,105,0.95);font-weight:800;padding:.4rem 0;}
.medexp-appbar__actions .medexp-notifyPager{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.55rem;}
.medexp-appbar__actions .medexp-notifyPager__info{font-size:.8rem;color:rgba(71,85,105,0.95);font-weight:900;white-space:nowrap;}
.medexp-appbar__actions .medexp-notifyPager .medexp-notifyBtn{padding:.38rem .55rem;border-radius:14px;}
.medexp-appbar__actions .medexp-notifySettings{border:1px dashed rgba(226,232,240,0.95);border-radius:16px;padding:.75rem;background:rgba(248,250,252,0.75);position:relative;overflow:hidden;}
.medexp-appbar__actions .medexp-notifySettings.is-loading{opacity:.9;}
.medexp-appbar__actions .medexp-notifySkel{position:absolute;inset:0;padding:.75rem;background:rgba(248,250,252,0.78);border-radius:16px;pointer-events:none;}
.medexp-appbar__actions .tw-skelList{display:grid;gap:.55rem;width:100%;}
.medexp-appbar__actions .tw-skel{height:14px;border-radius:10px;background:#dde4ee;position:relative;overflow:hidden;}
.medexp-appbar__actions .tw-skel::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg, transparent 0%, transparent 25%, rgba(255,255,255,0.55) 50%, transparent 75%, transparent 100%);animation:medexpShimmer 1.5s ease-in-out infinite;pointer-events:none;}
.medexp-appbar__actions .medexp-notifyToggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:900;color:rgba(15,23,42,0.88);}
.medexp-appbar__actions .medexp-notifyToggle input{transform:translateY(1px);}
.medexp-appbar__actions .medexp-notifyRow{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end;margin-top:.5rem;}
.medexp-appbar__actions .medexp-notifyRow label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:900;color:rgba(51,65,85,0.95);}
.medexp-appbar__actions .medexp-notifyRow input{border:1px solid rgba(226,232,240,0.95);border-radius:14px;padding:.45rem .6rem;background:rgba(255,255,255,1);min-width:130px;}
.medexp-appbar__actions .medexp-notifyHint{margin-top:.55rem;color:rgba(100,116,139,0.95);font-size:.82rem;line-height:1.15rem;font-weight:800;}


/* Account menu */
.medexp-appbar__actions .tw-userMenu{position:relative;}
.medexp-appbar__actions .tw-userMenu__btn{display:flex;align-items:center;gap:.55rem;border:1px solid rgba(148,163,184,0.55);background:rgba(255,255,255,0.92) !important;color:var(--medexp-text,#0f172a) !important;border-radius:999px;padding:.5rem .65rem;cursor:pointer;}
.medexp-appbar__actions .tw-userMenu__btn:hover{background:rgba(248,250,252,1) !important;}
.medexp-appbar__actions .tw-avatar{width:30px;height:30px;border-radius:999px;background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);display:flex;align-items:center;justify-content:center;font-weight:900;color:rgba(15,23,42,0.88);}
.medexp-appbar__actions .tw-userMenu__drop{display:none;position:absolute;right:0;top:calc(100% + 10px);z-index:10030;background:rgba(255,255,255,0.98);border:1px solid rgba(226,232,240,0.9);box-shadow:0 22px 60px rgba(15,23,42,0.14);border-radius:18px;min-width:260px;max-width:320px;padding:10px;}
.medexp-appbar__actions .tw-userMenu.is-open .tw-userMenu__drop{display:block;}
.medexp-appbar__actions .tw-userMenu__meta{font-size:.82rem;color:rgba(71,85,105,0.9);padding:.55rem .65rem .35rem .65rem;font-weight:900;}
.medexp-appbar__actions .tw-userMenu__item{display:flex;align-items:center;gap:10px;padding:.6rem .65rem;border-radius:14px;font-weight:900;color:rgba(15,23,42,0.92);text-decoration:none;}
.medexp-appbar__actions .tw-userMenu__item:hover{background:rgba(241,245,249,1);}
.medexp-appbar__actions .tw-userMenu__icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex:0 0 20px;color:rgba(51,65,85,0.85);}
.medexp-appbar__actions .tw-userMenu__sep{height:1px;background:rgba(226,232,240,1);margin:.5rem .55rem;}
.medexp-appbar__actions .tw-userMenu__signout{color:rgba(185,28,28,0.95);}
.medexp-appbar__actions .tw-userMenu__foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .65rem .35rem .65rem;font-size:.82rem;font-weight:900;color:rgba(71,85,105,0.9);}
.medexp-appbar__actions .tw-userMenu__foot a{color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);text-decoration:none;font-weight:900;}
.medexp-appbar__actions .tw-userMenu__foot a:hover{text-decoration:underline;}


.medexp-appbar__link{color:var(--medexp-muted);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw;}
.medexp-appbar__link:hover{color:var(--medexp-text);text-decoration:none;}
.medexp-appbar__sep{color:rgba(100,116,139,0.8);}
.medexp-appbar__current{color:var(--medexp-text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw;}


/* Lesson read progress (progress bar + "% read") */
.medexp-appbar__progress{display:flex;align-items:center;gap:0.75rem;padding:0 0 0.65rem 0;}
.medexp-appbar__progress[hidden]{display:none !important;}
.medexp-appbar__progressBar{position:relative;flex:1;min-width:180px;height:8px;border-radius:999px;overflow:hidden;border:1px solid rgba(148,163,184,0.45);background:rgba(248,250,252,0.8);}
.medexp-appbar__progressFill{display:block;height:100%;width:0%;background:linear-gradient(90deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.92), rgba(var(--medexp-brand-blue-rgb,26,79,156),0.92));border-radius:999px;}
.medexp-appbar__progressText{font-size:0.8rem;color:var(--medexp-muted);white-space:nowrap;}
.medexp-appbar__progressPct{font-variant-numeric:tabular-nums;font-weight:750;color:var(--medexp-text);}
@media (max-width: 520px){.medexp-appbar__progressText{display:block;} .medexp-appbar__progressWord{display:none;}}
/* medexp-progress-mobile-tuning: make lesson read progress full-width and keep compact % label on phones */
@media (max-width: 520px){
  body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim{
    gap: 0.45rem;
    padding: 0.45rem 0.9rem 0.5rem !important;
    align-items: flex-start;
  }
  body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-appbar__progress{
    flex: 1 0 100%;
    width: 100%;
    padding: 0.15rem 0 0.35rem 0;
    align-self: stretch;
  }
  body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-appbar__progressBar{
    min-width: 0;
  }
}



.medexp-pageheader{
 margin-top:var(--medexp-space-6);
 border-radius:var(--medexp-radius-2xl);
 background:rgba(255,255,255,0.85);
 border:1px solid rgba(148,163,184,0.45);
 box-shadow:0 1px 2px rgba(15,23,42,0.06), 0 8px 30px rgba(15,23,42,0.06);
}
.medexp-title{font-size:1.75rem;line-height:1.15;letter-spacing:-0.02em;}
.medexp-subtitle{font-size:0.95rem;}
.medexp-card:hover{box-shadow:0 2px 6px rgba(15,23,42,0.08), 0 18px 50px rgba(15,23,42,0.08);}

.medexp-section{padding:var(--medexp-space-6);}
.medexp-section > h2:first-child{margin-top:0;}
.medexp-lesson h2{font-size:1.15rem;letter-spacing:-0.01em;}
.medexp-lesson p{font-size:1rem;line-height:1.7;}

.medexp-chip,.medexp-badge{
 display:inline-flex;align-items:center;gap:0.4rem;
 padding:0.25rem 0.55rem;border-radius:999px;
 font-size:0.75rem;font-weight:600;
 border:1px solid rgba(148,163,184,0.45);
 background:rgba(248,250,252,0.9);
 color:rgba(15,23,42,0.85);
}
.medexp-badge--indigo{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);color:rgba(67,56,202,0.95);}
.medexp-badge--emerald{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.25);color:rgba(var(--medexp-brand-teal-ink-rgb,0,120,90),0.95);}
.medexp-badge--amber{background:rgba(245,158,11,0.14);border-color:rgba(245,158,11,0.28);color:rgba(180,83,9,0.98);}
.medexp-badge--rose{background:rgba(244,63,94,0.12);border-color:rgba(244,63,94,0.25);color:rgba(190,18,60,0.96);}

.medexp-callout{
 border-radius:var(--medexp-radius-2xl);
 border:1px solid rgba(148,163,184,0.45);
 background:rgba(255,255,255,0.9);
}
.medexp-callout--info{background:rgba(56,189,248,0.10);border-color:rgba(56,189,248,0.25);}
.medexp-callout--success{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.25);}
.medexp-callout--warning{background:rgba(245,158,11,0.10);border-color:rgba(245,158,11,0.25);}
.medexp-callout--danger{background:rgba(244,63,94,0.10);border-color:rgba(244,63,94,0.25);}

.medexp-sidebar .medexp-card{position:sticky;top:5.25rem;max-height:calc(100vh - 6rem);overflow:auto;}
.medexp-outline-tree a{border-radius:0.75rem;}
.medexp-outline-tree a:hover{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);}
.medexp-outline-tree a.is-active{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.14);border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);}

.medexp-btn{border-radius:999px;}
.medexp-btn--primary{box-shadow:0 1px 2px rgba(15,23,42,0.12), 0 12px 24px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);}
.medexp-btn--primary:hover{box-shadow:0 2px 6px rgba(15,23,42,0.14), 0 18px 40px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.22);}

/* === Flashcards (Frontend) === */
.medexp-flashcards .medexp-container{padding-top:var(--medexp-space-6);padding-bottom:var(--medexp-space-8);} 
.medexp-fc-header{display:flex;flex-direction:column;gap:var(--medexp-space-1);} 
.medexp-fc-header__title{font-size:var(--medexp-text-2xl);font-weight:800;letter-spacing:-0.02em;} 
.medexp-fc-header__sub{color:var(--medexp-muted);max-width:52rem;} 

.medexp-fc-toolbar{display:flex;gap:var(--medexp-space-2);align-items:center;justify-content:space-between;flex-wrap:wrap;} 
.medexp-fc-search{flex:1 1 280px;min-width:220px;padding:.65rem .85rem;border:1px solid var(--medexp-border);border-radius:var(--medexp-radius-md);background:var(--medexp-card);box-shadow:var(--medexp-shadow-sm);} 

.medexp-fc-deckgrid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.25rem;} 
@media (max-width: 980px){.medexp-fc-deckgrid{grid-template-columns:repeat(2, minmax(0, 1fr));}}
@media (max-width: 640px){.medexp-fc-deckgrid{grid-template-columns:repeat(1, minmax(0, 1fr));}}

.medexp-fc-deck{cursor:pointer;position:relative;overflow:hidden;} 
.medexp-fc-deck__title{font-size:var(--medexp-text-lg);font-weight:800;margin:0 0 .25rem 0;} 
.medexp-fc-deck__meta{display:flex;gap:var(--medexp-space-2);align-items:center;color:var(--medexp-muted);font-size:var(--medexp-text-sm);} 
.medexp-fc-deck__course{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:24rem;} 
.medexp-fc-deck__cta{margin-top:var(--medexp-space-3);} 
.medexp-fc-deck__shine{position:absolute;inset:-50%;background:linear-gradient(120deg, rgba(255,255,255,.0) 0%, rgba(255,255,255,.28) 42%, rgba(255,255,255,.42) 50%, rgba(255,255,255,.28) 58%, rgba(255,255,255,.0) 70%);transform:rotate(18deg) translateX(-100%);transition:transform .5s cubic-bezier(.34,1.56,.64,1), opacity .2s ease;pointer-events:none;opacity:0;z-index:1;}
.medexp-fc-deck:hover .medexp-fc-deck__shine{opacity:1;transform:rotate(18deg) translateX(40%);}

/* Deck cards (list view) — v2 layout used by assets/flashcards.js */
.medexp-fc-deck.medexp-card{
 appearance:none !important;
 width:100%;
 text-align:left !important;
 padding:var(--medexp-space-5);
 display:flex;
 flex-direction:column;
 gap:var(--medexp-space-3);
 cursor:pointer;
 user-select:none;
 background:linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,250,252,0.93));
 border:1px solid rgba(148,163,184,0.32);
 border-radius:18px;
 box-shadow:0 1px 0 rgba(17,24,39,.03), 0 8px 24px rgba(2,6,23,.07), 0 20px 48px rgba(2,6,23,.04);
 transition:transform .22s cubic-bezier(.34,1.56,.64,1), box-shadow .22s ease, border-color .22s ease;
 backdrop-filter:blur(10px);
}
.medexp-fc-deck.medexp-card::before{
 content:"";
 position:absolute;
 inset:0;
 border-radius:inherit;
 background:
 radial-gradient(600px 200px at 12% 0%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10), transparent 60%),
 radial-gradient(500px 220px at 88% 0%, rgba(23,157,153,0.09), transparent 55%);
 opacity:1;
 transition:opacity .2s ease;
 pointer-events:none;
}
.medexp-fc-deck.medexp-card:hover{
 transform:translateY(-4px);
 border-color:rgba(23,157,153,0.35);
 box-shadow:0 1px 0 rgba(17,24,39,.03), 0 12px 32px rgba(2,6,23,.10), 0 28px 64px rgba(2,6,23,.07);
}
.medexp-fc-deck.medexp-card:hover::before{
 background:
 radial-gradient(600px 200px at 12% 0%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18), transparent 60%),
 radial-gradient(500px 220px at 88% 0%, rgba(23,157,153,0.15), transparent 55%);
}
.medexp-fc-deck.medexp-card:focus{outline:none;}
.medexp-fc-deck.medexp-card:focus-visible{
 box-shadow:0 0 0 3px rgba(23,157,153,.22), 0 12px 32px rgba(2,6,23,.10), 0 28px 64px rgba(2,6,23,.07);
}
.medexp-fc-deck__top{position:relative;display:flex;flex-direction:column;gap:var(--medexp-space-2);}
.medexp-fc-deck__name{
 font-size:var(--medexp-text-xl);
 font-weight:900;
 letter-spacing:-0.025em;
 line-height:1.15;
 color:rgba(15,23,42,0.94);
}
.medexp-fc-deck__meta{flex-wrap:wrap;color:rgba(15,23,42,0.72);} 
.medexp-fc-deck__desc{
 position:relative;
 color:var(--medexp-muted);
 font-size:var(--medexp-text-sm);
 line-height:1.55;
 display:-webkit-box;
 -webkit-line-clamp:2;
 -webkit-box-orient:vertical;
 overflow:hidden;
 min-height:2.8em;
}
.medexp-fc-deck__desc--empty{color:rgba(15,23,42,0.62);font-weight:700;}
.medexp-fc-deck__cta{
 margin-top:auto;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:.35rem;
 color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);
 font-weight:800;
 letter-spacing:-0.01em;
}
.medexp-fc-deck__ctaRight{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;}
.medexp-fc-deck__ctaText{
 display:inline-flex;
 align-items:center;
 padding:.4rem .8rem;
 border-radius:999px;
 border:1px solid rgba(23,157,153,0.25);
 background:linear-gradient(135deg, rgba(59,198,194,0.10) 0%, rgba(23,157,153,0.08) 100%);
 font-size:var(--medexp-text-sm);
 font-weight:800;
 color:rgba(17,118,115,0.95);
 transition:background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.medexp-fc-deck__ctaIcon{font-size:1.05rem;transform:translateY(0.5px);}
.medexp-fc-deck.medexp-card:hover .medexp-fc-deck__ctaText{
 background:linear-gradient(135deg, rgba(59,198,194,0.16) 0%, rgba(23,157,153,0.12) 100%);
 border-color:rgba(23,157,153,0.38);
 box-shadow:0 2px 8px rgba(17,118,115,0.12);
}
.medexp-fc-deck__deleteBtn{border-color:rgba(239,68,68,0.25);background:rgba(239,68,68,0.06);color:rgba(185,28,28,0.95);}
.medexp-fc-deck__deleteBtn:hover{background:rgba(239,68,68,0.10);border-color:rgba(239,68,68,0.35);}
.medexp-fc-deck__deleteBtn:disabled{opacity:.55;cursor:not-allowed;}

.medexp-fc-pill{display:inline-flex;align-items:center;gap:.4rem;border:1px solid rgba(148,163,184,0.35);background:rgba(255,255,255,0.55);backdrop-filter:blur(8px);color:rgba(15,23,42,0.78);padding:.3rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;transition:background .15s ease;}

.medexp-fc-loading{display:flex;gap:var(--medexp-space-3);align-items:center;} 
.medexp-fc-loading__spinner{width:18px;height:18px;border-radius:999px;border:2px solid var(--medexp-border);border-top-color:var(--medexp-primary);animation:medexpSpin .8s linear infinite;} 
@keyframes medexpSpin{to{transform:rotate(360deg);}}
.medexp-fc-loading__title{font-weight:800;}
.medexp-fc-loading__muted{color:var(--medexp-muted);font-size:var(--medexp-text-sm);}

/* ── Mochi mascot deck loading ──────────────────────────────────── */
@keyframes medexpMochiFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes medexpMochiGlow{
  0%,100%{box-shadow:0 4px 14px rgba(23,157,153,.15),0 0 0 0 rgba(23,157,153,0)}
  50%{box-shadow:0 6px 24px rgba(23,157,153,.25),0 0 0 8px rgba(59,198,194,.08)}
}
@keyframes medexpMochiDot{
  0%,80%,100%{transform:translateY(0);opacity:.35}
  40%{transform:translateY(-6px);opacity:1}
}
@keyframes medexpMochiFadeIn{
  from{opacity:0;transform:translateY(12px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes medexpMochiMsgIn{
  from{opacity:0;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}

.medexp-fc-mochiLoad{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.25rem;min-height:320px;padding:3rem 1.5rem;
  animation:medexpMochiFadeIn .4s cubic-bezier(.34,1.56,.64,1) both;
  transition:opacity .35s ease,transform .35s ease;
}
.medexp-fc-mochiLoad.is-leaving{
  opacity:0;transform:translateY(-10px) scale(.97);pointer-events:none;
}

/* Mascot avatar — hero-sized teal circle */
.medexp-fc-mochiLoad__mascot{
  width:80px;height:80px;border-radius:50%;
  background:linear-gradient(135deg,rgba(23,157,153,.15),rgba(59,198,194,.25));
  display:flex;align-items:center;justify-content:center;
  animation:medexpMochiFloat 2.5s ease-in-out infinite,medexpMochiGlow 2.5s ease-in-out infinite;
  position:relative;
}
.medexp-fc-mochiLoad__emoji{
  font-size:2.2rem;line-height:1;user-select:none;
}

/* Rotating message */
.medexp-fc-mochiLoad__msg{
  font-weight:800;font-size:.95rem;
  color:var(--medexp-muted,#6b7a90);
  text-align:center;min-height:1.5em;
  animation:medexpMochiMsgIn .3s ease;
}

/* Animated dots */
.medexp-fc-mochiLoad__dots{display:flex;gap:6px;align-items:center;}
.medexp-fc-mochiLoad__dot{
  width:7px;height:7px;border-radius:50%;
  background:rgba(23,157,153,.55);
  animation:medexpMochiDot 1.4s ease-in-out infinite;
}
.medexp-fc-mochiLoad__dot:nth-child(2){animation-delay:.16s}
.medexp-fc-mochiLoad__dot:nth-child(3){animation-delay:.32s}

/* Responsive */
@media(max-width:520px){
  .medexp-fc-mochiLoad{min-height:260px;padding:2rem 1rem;gap:1rem;}
  .medexp-fc-mochiLoad__mascot{width:64px;height:64px;}
  .medexp-fc-mochiLoad__emoji{font-size:1.8rem;}
  .medexp-fc-mochiLoad__msg{font-size:.85rem;}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .medexp-fc-mochiLoad,
  .medexp-fc-mochiLoad__mascot,
  .medexp-fc-mochiLoad__dot{animation:none !important;}
  .medexp-fc-mochiLoad.is-leaving{transition:none !important;}
}

.medexp-fc-study{display:grid;gap:var(--medexp-space-4);} 
.medexp-fc-study__top{
 display:flex;gap:1.5rem;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;
 padding:1.25rem 1.5rem;
 background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(241,245,249,.90));
 border:1.5px solid rgba(148,163,184,.12);
 border-radius:16px;
 backdrop-filter:blur(8px);
}
.medexp-fc-study__left{display:flex;flex-direction:column;gap:.75rem;}
.medexp-fc-study__title{font-weight:900;font-size:1.35rem;color:#0f172a;letter-spacing:-.02em;}
.medexp-fc-study__stats{display:flex;gap:.5rem;flex-wrap:wrap;}
.medexp-fc-stat{
 display:flex;flex-direction:column;align-items:center;gap:.15rem;
 padding:.5rem .85rem;
 background:rgba(255,255,255,.80);
 border:1.5px solid rgba(148,163,184,.10);
 border-radius:12px;
 min-width:60px;
}
.medexp-fc-stat__val{font-weight:900;font-size:1.15rem;color:#0f172a;line-height:1.2;}
.medexp-fc-stat__label{font-weight:600;font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em;}
.medexp-fc-stat.is-due .medexp-fc-stat__val{color:#2563eb;}
.medexp-fc-stat.is-overdue .medexp-fc-stat__val{color:#dc2626;}
.medexp-fc-stat.is-new .medexp-fc-stat__val{color:#7c3aed;}

.medexp-fc-study__right{display:flex;flex-direction:column;gap:.45rem;text-align:right;}
.medexp-fc-study__meta{display:flex;align-items:baseline;gap:.5rem;justify-content:flex-end;}
.medexp-fc-meta__label{font-weight:500;font-size:.78rem;color:#94a3b8;}
.medexp-fc-meta__val{font-weight:700;font-size:.82rem;color:#334155;}
.medexp-fc-meta__val.is-good{color:#059669;}
.medexp-fc-meta__val.is-ok{color:#d97706;}
.medexp-fc-meta__val.is-low{color:#dc2626;}

@media(max-width:600px){
 .medexp-fc-study__top{flex-direction:column;padding:1rem;}
 .medexp-fc-study__right{text-align:left;}
 .medexp-fc-study__meta{justify-content:flex-start;}
} 

.medexp-fc-progress{display:flex;align-items:center;gap:.65rem;}
.medexp-fc-progressbar{
 flex:1 1 280px;max-width:420px;height:8px;border-radius:999px;
 background:rgba(255,255,255,.45);overflow:hidden;
 border:1px solid rgba(148,163,184,.35);
 box-shadow:0 2px 6px rgba(2,6,23,.06);
}
.medexp-fc-progressbar > div{
 height:100%;
 background:linear-gradient(90deg, #3BC6C2, #117673);
 border-radius:999px;
 width:0%;transition:width .25s ease;
 position:relative;overflow:hidden;
}
/* Shine sweep on progress fill */
.medexp-fc-progressbar > div::after{
 content:"";position:absolute;inset:0;
 background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.30) 40%, rgba(255,255,255,.30) 60%, transparent 100%);
 animation:fcShineSweep 1.8s ease-in-out infinite;
}
@keyframes fcShineSweep{0%{transform:translateX(-120%);}100%{transform:translateX(250%);}}
.medexp-fc-progressmeta{color:rgba(15,23,42,.55);font-size:.85rem;font-weight:700;} 

/* ── Flashcard study card — iOS-inspired premium design ── */
.medexp-fc-card{
 position:relative;
 border-radius:22px;
 border:1px solid rgba(148,163,184,.35);
 box-shadow:
  0 1px 0 rgba(17,24,39,.03),
  0 16px 40px rgba(2,6,23,.09),
  0 32px 64px rgba(2,6,23,.04);
 background:linear-gradient(180deg, #E8EFF4 0%, #F8FAFB 100%);
 min-height:340px;
 perspective:1200px;
 cursor:pointer;
 outline:none;
 overflow:hidden;
}
.medexp-fc-card:focus{box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),.22), 0 16px 40px rgba(2,6,23,.09);}
.medexp-fc-card__inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.34,1.56,.64,1);}
.medexp-fc-card.is-flipped .medexp-fc-card__inner{transform:rotateY(180deg);}

.medexp-fc-face{
 position:absolute;inset:0;
 padding:1.5rem 1.6rem;
 backface-visibility:hidden;
 display:flex;flex-direction:column;gap:.75rem;
 border-radius:inherit;
}
/* Front face: clean surface */
.medexp-fc-face:not(.medexp-fc-face--back){
 background:linear-gradient(180deg, #E8EFF4 0%, #F8FAFB 100%);
}
/* Back face: teal-tinted */
.medexp-fc-face--back{
 transform:rotateY(180deg);
 background:linear-gradient(135deg, rgba(59,198,194,.18) 0%, #F8FAFB 65%, #F2F6F8 100%);
}

.medexp-fc-face__label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.medexp-fc-face__badge{
 display:inline-flex;align-items:center;gap:.4rem;
 padding:.3rem .65rem;border-radius:999px;
 backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
 background:rgba(255,255,255,.55);
 border:1px solid rgba(148,163,184,.45);
 font-weight:800;font-size:.75rem;color:rgba(15,23,42,.65);
}
/* Back badge: teal tint */
.medexp-fc-face--back .medexp-fc-face__badge{
 background:rgba(255,255,255,.62);
 border-color:rgba(23,157,153,.22);
 color:rgba(17,118,115,.85);
}
.medexp-fc-face__content{font-size:1.15rem;font-weight:800;letter-spacing:-0.015em;white-space:pre-wrap;line-height:1.55;color:rgba(22,44,85,.92);}
.medexp-fc-face__meta{margin-top:auto;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;}
.medexp-fc-hint{color:rgba(15,23,42,.45);font-size:.85rem;font-weight:700;}

/* ── Rating controls — glass morphism buttons ── */
.medexp-fc-controls{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.medexp-fc-controls__group{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.medexp-fc-btn{
 appearance:none !important;
 border:1px solid rgba(148,163,184,.45);
 background:rgba(255,255,255,.72);
 backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
 border-radius:999px;
 padding:.6rem 1rem;
 font-weight:800;
 cursor:pointer;
 color:rgba(22,44,85,.88);
 box-shadow:0 2px 8px rgba(2,6,23,.06), 0 8px 18px rgba(2,6,23,.04);
 transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.medexp-fc-btn:hover{
 transform:none;
 box-shadow:0 2px 8px rgba(2,6,23,.08), 0 12px 24px rgba(2,6,23,.06);
 background:rgba(255,255,255,.88);
}
.medexp-fc-btn:active{transform:scale(0.985);opacity:.92;}
/* Good button — green gradient like iOS */
.medexp-fc-btn--primary{
 background:linear-gradient(135deg, #3BC6C2 0%, #117673 100%);
 border-color:rgba(255,255,255,.14);
 color:#fff;
 box-shadow:0 2px 8px rgba(17,118,115,.18), 0 10px 22px rgba(17,118,115,.14);
}
.medexp-fc-btn--primary:hover{
 color:#fff;
 box-shadow:0 2px 8px rgba(17,118,115,.22), 0 14px 28px rgba(17,118,115,.18);
}
/* Again/Hard/Easy — frosted glass */
.medexp-fc-btn--ghost{background:rgba(255,255,255,.55);box-shadow:0 1px 4px rgba(2,6,23,.04);color:rgba(22,44,85,.82);}
.medexp-fc-btn--ghost:hover{background:rgba(255,255,255,.78);}
.medexp-fc-kbd{font-family:var(--medexp-font-mono);font-size:.72rem;border:1px solid rgba(148,163,184,.35);border-bottom-width:2px;padding:.1rem .4rem;border-radius:8px;background:rgba(148,163,184,.12);color:rgba(15,23,42,.5);} 

body.medexp-fc-fullscreen{overflow:hidden;} 
body.medexp-fc-fullscreen .medexp-flashcards{position:fixed;inset:0;z-index: 999999;background:var(--medexp-page-bg);} 
body.medexp-fc-fullscreen .medexp-flashcards .medexp-container{max-width:92rem;padding-top:var(--medexp-space-6);} 

/* === Flashcards (Premium UI v2) ===
 Inspired by modern flashcard apps, but built with our own tokens.
*/
/* ── Flashcard Viewer v2 (polished) ── */

.medexp-fc2{display:flex;flex-direction:column;gap:1.35rem;}

/* ── Header bar ── */
.medexp-fc2-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-fc2-back{appearance:none !important;border:1px solid rgba(227,237,242,0.95);background:rgba(255,255,255,0.92);backdrop-filter:saturate(140%) blur(8px);border-radius:14px;padding:.55rem 1rem;font-weight:800;font-size:.9rem;cursor:pointer;box-shadow:0 2px 8px rgba(2,6,23,0.06);color:#162C55;transition:all .15s ease;}
.medexp-fc2-back:hover{box-shadow:0 4px 14px rgba(2,6,23,0.10);background:#fff;}
.medexp-fc2-title{display:flex;flex-direction:column;gap:.3rem;min-width:220px;flex:1;text-align:center;}
.medexp-fc2-title__name{font-weight:850;letter-spacing:-0.025em;font-size:1.2rem;color:#162C55;line-height:1.3;}
.medexp-fc2-title__meta{color:rgba(59,74,102,0.72);font-size:.85rem;font-weight:600;}
.medexp-fc2-topRight{display:flex;gap:.45rem;align-items:center;}

/* ── Tool icon buttons ── */
.medexp-fc2-icon{appearance:none !important;border:1px solid rgba(227,237,242,0.95);background:rgba(255,255,255,0.92);backdrop-filter:saturate(140%) blur(8px);border-radius:50%;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(2,6,23,0.06);color:#162C55;transition:all .12s ease;}
.medexp-fc2-icon:hover{box-shadow:0 4px 14px rgba(2,6,23,0.10);background:#fff;transform:scale(1.04);}
.medexp-fc2-icon:active{transform:scale(0.97);}
.medexp-fc2-icon svg{width:18px;height:18px;display:block;fill:none;stroke:#162C55;stroke-width:1.8;}
.medexp-fc2-icon.is-on{border-color:rgba(23,157,153,0.40);background:rgba(23,157,153,0.08);box-shadow:0 4px 16px rgba(23,157,153,0.15);}
.medexp-fc2-icon.is-on svg{stroke:#117673;}

/* ── Card stage ── */
.medexp-fc2-stage{display:flex;justify-content:center;}
.medexp-fc2-cardWrap{--medexp-swipe-x:0px;position:relative;width:min(960px, 100%);}
.medexp-fc2-cardWrap{transform:translateX(var(--medexp-swipe-x));transition:transform 220ms cubic-bezier(.2,.9,.2,1);touch-action:pan-y;}
.medexp-fc2-cardWrap.is-dragging{transition:none;}
.medexp-fc2-cardWrap.is-swipe-left{transform:translateX(-110%) rotate(-5deg);opacity:.0;}
.medexp-fc2-cardWrap.is-swipe-right{transform:translateX(110%) rotate(5deg);opacity:.0;}

/* ── Star button ── */
.medexp-fc2-star{position:absolute;top:16px;right:16px;z-index:3;width:38px;height:38px;border-radius:50%;}
.medexp-fc2-star.is-on{border-color:rgba(245,158,11,0.50);background:rgba(245,158,11,0.08);box-shadow:0 4px 18px rgba(245,158,11,0.22);}
.medexp-fc2-star.is-on svg{stroke:#d97706;}

/* ── The card ── */
.medexp-fc2-card{position:relative;overflow:hidden;border-radius:24px;border:1px solid rgba(227,237,242,0.95);background:linear-gradient(180deg,#f8fafb,#eff5f9);box-shadow:0 8px 32px rgba(2,6,23,0.08),0 2px 8px rgba(2,6,23,0.04);min-height:400px;perspective:1400px;cursor:pointer;outline:none;transition:box-shadow .2s ease;}
.medexp-fc2-card:hover{box-shadow:0 12px 40px rgba(2,6,23,0.10),0 2px 8px rgba(2,6,23,0.04);}
.medexp-fc2-card:focus{box-shadow:0 0 0 3px rgba(23,157,153,0.25),0 8px 32px rgba(2,6,23,0.08);}

/* ── 3D flip ── */
.medexp-fc2-cardInner{position:absolute;inset:0;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;will-change:transform;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.medexp-fc2-card.is-flipped .medexp-fc2-cardInner{transform:rotateY(180deg);}

/* ── Face (front & back common) ── */
.medexp-fc2-face{position:absolute;inset:0;padding:2rem 2.25rem 1.75rem;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;display:flex;flex-direction:column;gap:.85rem;}
.medexp-fc2-face--front{transform:rotateY(0deg) translateZ(1px);background:linear-gradient(180deg,#f8fafb,#eff5f9);}
.medexp-fc2-face--back{transform:rotateY(180deg) translateZ(1px);background:linear-gradient(180deg,rgba(59,198,194,0.06),rgba(17,118,115,0.04));}

/* ── Face label row ── */
.medexp-fc2-faceLabel{display:flex;align-items:center;justify-content:space-between;gap:.65rem;}

/* ── FRONT / BACK badge ── */
.medexp-fc2-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:10px;font-weight:800;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;}
.medexp-fc2-face--front .medexp-fc2-badge{color:#3b4a66;background:rgba(255,255,255,0.75);border:1px solid rgba(227,237,242,0.95);backdrop-filter:blur(4px);}
.medexp-fc2-face--front .medexp-fc2-badge::before{content:"\2753";font-size:.65rem;filter:grayscale(1) opacity(0.6);}
.medexp-fc2-face--back .medexp-fc2-badge{color:#117673;background:rgba(255,255,255,0.70);border:1px solid rgba(23,157,153,0.22);backdrop-filter:blur(4px);}
.medexp-fc2-face--back .medexp-fc2-badge::before{content:"\2705";font-size:.65rem;filter:grayscale(0.3);}

/* ── Tag pills (horizontal scroll) ── */
.medexp-fc2-tags{display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;justify-content:flex-end;max-width:65%;mask-image:linear-gradient(to left,#000 90%,transparent);-webkit-mask-image:linear-gradient(to left,#000 90%,transparent);}
.medexp-fc2-tags::-webkit-scrollbar{display:none;}
.medexp-fc2-face .medexp-fc-pill{padding:.2rem .5rem;font-size:.65rem;font-weight:600;white-space:nowrap;flex-shrink:0;border:1px solid rgba(227,237,242,0.95);background:rgba(255,255,255,0.60);color:#3b4a66;max-width:140px;overflow:hidden;text-overflow:ellipsis;display:inline-block;}
.medexp-fc2-face--back .medexp-fc-pill{border-color:rgba(23,157,153,0.18);color:rgba(22,44,85,0.85);}

/* ── Face content ── */
.medexp-fc2-faceContent{backface-visibility:hidden;-webkit-backface-visibility:hidden;font-size:clamp(1.05rem, 2.1vw, 1.4rem);font-weight:800;letter-spacing:-0.02em;line-height:1.48;white-space:pre-wrap;overflow:auto;padding-right:.25rem;flex:1;}
.medexp-fc2-face--front .medexp-fc2-faceContent{color:#162C55;}
.medexp-fc2-face--back .medexp-fc2-faceContent{color:#0f2137;}

/* ── Cloze styling ── */
.medexp-fc2-faceContent .medexp-cloze{display:inline-block;vertical-align:baseline;padding:0 .3em;border-radius:.45em;transition:all .15s ease;}
.medexp-fc2-faceContent .medexp-cloze--blank{border-bottom:2px solid rgba(22,44,85,0.30);background:rgba(22,44,85,0.04);font-weight:800;letter-spacing:.02em;}
.medexp-fc2-faceContent .medexp-cloze--reveal{background:rgba(23,157,153,0.10);border:1px solid rgba(23,157,153,0.28);font-weight:800;color:#117673;}
.medexp-fc2-faceContent .medexp-clozeHint{margin-left:.35em;font-size:.85em;color:rgba(59,74,102,0.72);font-weight:700;}

/* ── Scrollbar ── */
.medexp-fc2-faceContent::-webkit-scrollbar{width:8px;}
.medexp-fc2-faceContent::-webkit-scrollbar-thumb{background:rgba(148,163,184,0.35);border-radius:999px;border:2px solid transparent;background-clip:padding-box;}
.medexp-fc2-faceContent::-webkit-scrollbar-track{background:transparent;}

/* ── Flip hint ── */
.medexp-fc2-hint{margin-top:.65rem;color:rgba(59,74,102,0.55);font-weight:700;font-size:.88rem;text-align:center;letter-spacing:.01em;}
.medexp-fc2-hint::before{content:"";display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(148,163,184,0.30),transparent);margin:0 auto .7rem;max-width:60%;}

/* ── Sticky control bar ── */
.medexp-fc2-bar{display:flex;align-items:center;justify-content:space-between;gap:.85rem;flex-wrap:wrap;position:sticky;bottom:1rem;z-index:5;padding:.85rem 1.1rem;border-radius:18px;border:1px solid rgba(227,237,242,0.95);background:rgba(255,255,255,0.92);backdrop-filter:saturate(160%) blur(12px);box-shadow:0 8px 32px rgba(2,6,23,0.08),0 2px 8px rgba(2,6,23,0.04);}
.medexp-fc2-barLeft,.medexp-fc2-barCenter,.medexp-fc2-barRight{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;}

/* ── Counter pill ── */
.medexp-fc2-counter{font-weight:850;letter-spacing:-0.02em;font-size:.95rem;min-width:80px;text-align:center;color:#162C55;background:rgba(22,44,85,0.05);padding:.35rem .75rem;border-radius:12px;border:1px solid rgba(227,237,242,0.95);}

/* ── Toggle switches ── */
.medexp-fc2-toggle{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;color:rgba(22,44,85,0.88);}
.medexp-fc2-toggle input{position:absolute;opacity:0;pointer-events:none;}
.medexp-fc2-toggleLabel{font-size:.88rem;white-space:nowrap;}
.medexp-fc2-toggleUi{width:42px;height:24px;border-radius:999px;border:1px solid rgba(227,237,242,0.95);background:rgba(148,163,184,0.18);position:relative;transition:all .18s ease;cursor:pointer;}
.medexp-fc2-toggleUi::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 2px 8px rgba(2,6,23,0.12);transition:transform .18s cubic-bezier(.2,.9,.2,1);}
.medexp-fc2-toggle input:checked + .medexp-fc2-toggleUi{background:linear-gradient(135deg,#3BC6C2,#179D99);border-color:rgba(23,157,153,0.45);}
.medexp-fc2-toggle input:checked + .medexp-fc2-toggleUi::after{transform:translateX(18px);}
.medexp-fc2-toggle--starOnly input:checked + .medexp-fc2-toggleUi{background:linear-gradient(135deg,#FBBF24,#F59E0B);border-color:rgba(245,158,11,0.45);}

/* ── Combined progress + scrubber ── */
@keyframes medexp-fc-shine{0%{transform:translateX(-100%)}100%{transform:translateX(200%)}}
.medexp-fc2-scrubWrap{position:relative;width:100%;height:24px;display:flex;align-items:center;}
.medexp-fc2-scrubTrack{position:absolute;left:0;right:0;height:6px;border-radius:999px;background:rgba(227,237,242,0.70);overflow:hidden;border:1px solid rgba(227,237,242,0.95);box-shadow:inset 0 1px 2px rgba(2,6,23,0.04);pointer-events:none;}
.medexp-fc2-scrubFill{height:100%;width:0%;background:linear-gradient(90deg,#3BC6C2,#117673);border-radius:999px;transition:width .3s ease;position:relative;overflow:hidden;}
.medexp-fc2-scrubFill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.30) 50%,transparent 100%);animation:medexp-fc-shine 2s ease-in-out infinite;}
.medexp-fc2-scrubber{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:transparent;cursor:pointer;margin:0;padding:10px 0;outline:none;position:relative;z-index:2;}
.medexp-fc2-scrubber::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:transparent;}
.medexp-fc2-scrubber::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #179D99;box-shadow:0 2px 8px rgba(2,6,23,0.12);margin-top:-6px;cursor:grab;transition:transform .12s ease,box-shadow .12s ease;}
.medexp-fc2-scrubber::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 4px 14px rgba(23,157,153,0.25);}
.medexp-fc2-scrubber::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.05);}
.medexp-fc2-scrubber::-moz-range-track{height:6px;border-radius:999px;background:transparent;}
.medexp-fc2-scrubber::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #179D99;box-shadow:0 2px 8px rgba(2,6,23,0.12);cursor:grab;}

/* ── Topic breadcrumb ── */
.medexp-fc2-title__topic{color:rgba(23,157,153,0.88);font-size:.78rem;font-weight:700;letter-spacing:0.01em;line-height:1.3;max-width:420px;margin:0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.15rem .6rem;border-radius:8px;background:rgba(23,157,153,0.06);border:1px solid rgba(23,157,153,0.12);display:none;}

/* ── Counter clickable / jump-to ── */
.medexp-fc2-counter--interactive{cursor:pointer;position:relative;user-select:none;transition:all .15s ease;}
.medexp-fc2-counter--interactive:hover{background:rgba(22,44,85,0.09);border-color:rgba(23,157,153,0.30);}
.medexp-fc2-counter__text{display:inline;}
.medexp-fc2-counter__input{display:none;width:4em;border:none;background:transparent;text-align:center;font-weight:850;font-size:inherit;color:#162C55;outline:none;font-family:inherit;letter-spacing:-0.02em;-moz-appearance:textfield;}
.medexp-fc2-counter__input::-webkit-outer-spin-button,.medexp-fc2-counter__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.medexp-fc2-counter.is-editing{border-color:rgba(23,157,153,0.50);background:rgba(23,157,153,0.06);box-shadow:0 0 0 3px rgba(23,157,153,0.15);}
.medexp-fc2-counter.is-editing .medexp-fc2-counter__text{display:none;}
.medexp-fc2-counter.is-editing .medexp-fc2-counter__input{display:inline;}

/* ── Fullscreen ── */
body.medexp-fc-fullscreen .medexp-fc2{gap:1rem;}
body.medexp-fc-fullscreen .medexp-fc2-card{min-height:calc(100vh - 240px);}

/* ── Mobile responsive ── */
@media (max-width: 720px){
 .medexp-fc2-face{padding:1.5rem 1.15rem 1.15rem;}
 .medexp-fc2-card{min-height:340px;border-radius:20px;}
 .medexp-fc2-bar{bottom:.6rem;padding:.7rem .75rem;border-radius:16px;gap:.6rem;}
 .medexp-fc2-barLeft,.medexp-fc2-barCenter,.medexp-fc2-barRight{gap:.45rem;}
 .medexp-fc2-counter{min-width:68px;font-size:.88rem;padding:.3rem .6rem;}
 .medexp-fc2-toggleLabel{font-size:.82rem;}
 .medexp-fc2-icon{width:36px;height:36px;}
 .medexp-fc2-icon svg{width:16px;height:16px;}
 .medexp-fc2-title__name{font-size:1.05rem;}
 .medexp-fc2-tags{max-width:55%;}
 .medexp-fc2-star{top:12px;right:12px;width:34px;height:34px;}
 .medexp-fc2-title__topic{font-size:.72rem;max-width:240px;padding:.1rem .45rem;}
 .medexp-fc2-counter__input{width:3.5em;}
 .medexp-fc2-scrubber::-webkit-slider-thumb{width:22px;height:22px;margin-top:-8px;}
 .medexp-fc2-scrubber::-moz-range-thumb{width:22px;height:22px;}
 .medexp-fc2-scrubTrack{height:5px;}
}

/* ========================================================================== */
/* QBank (Practice + Case Case Study) */
/* ========================================================================== */

.medexp-qb{display:flex;flex-direction:column;gap:1rem;color:rgba(15,23,42,0.92);}
.medexp-qb-scope{display:flex;flex-direction:column;gap:.55rem;}
.medexp-qb-scope__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}
.medexp-qb-scope__label{font-weight:800;color:rgba(30,41,59,0.92);}
.medexp-qb-scope__hint{color:var(--medexp-muted);font-weight:800;font-size:.92rem;line-height:1.45;}
.medexp-qb-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-title{font-size:1.25rem;font-weight:800;letter-spacing:-0.02em;margin:0;}
.medexp-qb-subtitle{margin:.25rem 0 0;color:var(--medexp-muted);font-weight:700;}
.medexp-qb-toolbar{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;}
.medexp-qb-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .7rem;border-radius:999px;border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.65);font-weight:800;color:rgba(30,41,59,0.92);} 
.medexp-qb-pill strong{font-weight:800;}

.medexp-qb-btn{appearance:none !important;border:1px solid rgba(148,163,184,0.55);background:rgba(255,255,255,0.92);color:rgba(30,41,59,0.92);border-radius:12px;padding:.55rem .85rem;font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(15,23,42,0.10);} 
.medexp-qb-btn:hover{transform:none;box-shadow:0 10px 28px rgba(15,23,42,0.14);} 
.medexp-qb-btn:active{transform:translateY(0);} 
.medexp-qb-btn--primary{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.40);background:linear-gradient(180deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.15), rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06));}
.medexp-qb-btn--ghost{background:transparent;box-shadow:none;}

/* QBank generator: topic batch selection */
.medexp-qb-btn.medexp-qb-btn--sm{padding:0.35rem 0.65rem;font-size:12px;}
.medexp-qb-muted{color:var(--medexp-muted);font-size:var(--medexp-text-sm);}

.medexp-qb-topicTools{display:flex;gap:0.5rem;align-items:center;margin-top:0.25rem;}
.medexp-qb-topicBtns{display:flex;gap:0.4rem;flex:0 0 auto;}
.medexp-qb-topicList{max-height:260px;overflow:auto;border:1px solid var(--medexp-border);border-radius:12px;padding:0.5rem;background:rgba(255,255,255,0.75);}
.medexp-qb-topicRow{display:flex;align-items:center;gap:0.6rem;padding:0.45rem 0.5rem;border-radius:10px;cursor:pointer;}
.medexp-qb-topicRow:hover{background:rgba(148,163,184,0.12);}
.medexp-qb-topicRow input{flex:0 0 auto;}
.medexp-qb-topicTitle{flex:1;min-width:0;font-size:var(--medexp-text-sm);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.medexp-qb-topicId{font-size:12px;color:var(--medexp-muted);white-space:nowrap;}
.medexp-qb-topicCheck{width:16px;height:16px;}

.medexp-qb-btn[disabled]{opacity:.55;cursor:not-allowed;transform:none;}

.medexp-qb-tabs{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.medexp-qb-tab{appearance:none !important;border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.85);padding:.45rem .75rem;border-radius:999px;font-weight:800;cursor:pointer;color:rgba(15,23,42,0.92);}
.medexp-qb-tab.is-active{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45);background:linear-gradient(180deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.16), rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06));}
.medexp-qb-search{flex:1;min-width:220px;max-width:420px;}
.medexp-qb-search input{width:100%;border:1px solid rgba(148,163,184,0.55);background:rgba(255,255,255,0.92);border-radius:12px;padding:.55rem .85rem;font-weight:800;outline:none;}
.medexp-qb-search input:focus{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);} 

.medexp-qb-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;align-items:start;}

/* QBank Hub grid spans */
.medexp-qb-section{grid-column:span 6;min-width:0;}
@media (max-width: 1100px){
 .medexp-qb-section{grid-column:span 12;}
}

.medexp-qb-col-8{grid-column:span 8;}
.medexp-qb-col-4{grid-column:span 4;}
@media (max-width: 980px){
 .medexp-qb-col-8,.medexp-qb-col-4{grid-column:span 12;}
}

.medexp-qb-list{display:flex;flex-direction:column;gap:.75rem;}
.medexp-qb-listItem{border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.92);border-radius:16px;padding:.9rem 1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.medexp-qb-liMain{min-width:0;}
.medexp-qb-liTitle{margin:0 0 .15rem;font-weight:800;letter-spacing:-0.01em;}
.medexp-qb-liMeta{display:flex;gap:.5rem;flex-wrap:wrap;margin:.25rem 0 .35rem;}
.medexp-qb-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem;border-radius:999px;background:rgba(241,245,249,0.75);border:1px solid rgba(148,163,184,0.35);font-weight:800;color:rgba(30,41,59,0.92);font-size:.85rem;}
.medexp-qb-liExcerpt{margin:0;color:var(--medexp-muted);font-weight:700;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.medexp-qb-liActions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}

.medexp-qb-session{border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.55);border-radius:18px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;}
.medexp-qb-sessionTitle{margin:0;font-weight:800;}
.medexp-qb-kpiRow{display:flex;gap:.75rem;flex-wrap:wrap;}
.medexp-qb-kpi{flex:1;min-width:140px;border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.86);border-radius:14px;padding:.7rem .8rem;}
.medexp-qb-kpiLabel{font-weight:800;color:var(--medexp-muted);font-size:.85rem;}
.medexp-qb-kpiValue{font-weight:800;font-size:1.1rem;margin-top:.15rem;}

.medexp-qb-question{display:flex;flex-direction:column;gap:1rem;}
.medexp-qb-qHead{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-qNum{font-weight:800;letter-spacing:-0.01em;}
.medexp-qb-progress{height:8px;border-radius:999px;background:rgba(148,163,184,0.22);border:1px solid rgba(148,163,184,0.35);overflow:hidden;}
.medexp-qb-progressFill{height:100%;width:0%;background:linear-gradient(90deg, var(--medexp-primary), var(--medexp-accent));transition:width .25s ease;}

.medexp-qb-stem{padding:1.1rem 1.15rem;border:1px solid rgba(148,163,184,0.25);border-radius:18px;background:linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,250,251,0.92));box-shadow:0 1px 3px rgba(2,6,23,0.04);} 
.medexp-qb-stimulus{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.85rem;}
.medexp-qb-block{border:1px solid rgba(148,163,184,0.35);background:rgba(241,245,249,0.65);border-radius:14px;padding:.75rem .85rem;}
.medexp-qb-blockTitle{margin:0 0 .4rem;font-weight:800;}
.medexp-qb-stemHtml p{margin:.45rem 0;}

.medexp-mathblock{margin:.55rem 0 .35rem;padding:.55rem .75rem;border:1px dashed rgba(148,163,184,0.40);border-radius:14px;background:rgba(248,250,252,0.78);overflow:auto;}

.medexp-qb-options{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;}
.medexp-qb-opt{border:1px solid rgba(148,163,184,0.45);border-radius:14px;background:rgba(255,255,255,0.94);padding:.65rem .75rem;display:flex;gap:.65rem;align-items:flex-start;cursor:pointer;}
.medexp-qb-opt:hover{box-shadow:0 10px 28px rgba(15,23,42,0.10);} 
.medexp-qb-opt input{margin-top:.2rem;}
.medexp-qb-optBody{min-width:0;}
.medexp-qb-optLabel{font-weight:800;margin-right:.35rem;}
.medexp-qb-optHtml p{margin:.35rem 0;}

.medexp-qb-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-actionsLeft,.medexp-qb-actionsRight{display:flex;gap:.6rem;flex-wrap:wrap;}

.medexp-qb-feedback{border:1px solid rgba(148,163,184,0.2);border-radius:18px;background:linear-gradient(180deg, rgba(241,245,249,0.65), rgba(248,250,251,0.45));padding:1.1rem;box-shadow:0 1px 3px rgba(2,6,23,0.03);}
.medexp-qb-feedbackHead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-badge{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .65rem;border-radius:999px;font-weight:800;border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.9);} 
.medexp-qb-badge--ok{border-color:rgba(34,197,94,0.40);background:rgba(34,197,94,0.10);} 
.medexp-qb-badge--no{border-color:rgba(239,68,68,0.38);background:rgba(239,68,68,0.08);} 
.medexp-qb-feedbackBody{margin-top:.7rem;color:rgba(30,41,59,0.92);}
.medexp-qb-feedbackBody p{margin:.45rem 0;}
.medexp-qb-key{margin-top:.75rem;border-top:1px solid rgba(148,163,184,0.35);padding-top:.75rem;}
.medexp-qb-keypretty{margin-top:.5rem;}
.medexp-qb-keypretty__label{font-weight:800;margin:0 0 .35rem;}
.medexp-qb-keypretty__list{margin:.15rem 0 0 1.2rem;padding:0;}
.medexp-qb-keypretty__list li{margin:.25rem 0;}

/* --- Error DNA block (diagnostic + repair pack) --- */
.medexp-dna{
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-md);
  padding:var(--medexp-space-4);
  margin:var(--medexp-space-4) 0;
  background:linear-gradient(180deg, rgba(59,130,246,0.08), rgba(45,212,191,0.05));
  box-shadow:var(--medexp-shadow-xs);
}

html.medexp-theme-dark .medexp-dna{
  background:linear-gradient(180deg, rgba(59,130,246,0.14), rgba(45,212,191,0.06));
}

.medexp-dna__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--medexp-space-4);flex-wrap:wrap;}
.medexp-dna__headLeft{min-width:240px;}
.medexp-dna__kicker{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--medexp-muted);}
.medexp-dna__gene{font-size:1.05rem;font-weight:800;color:var(--medexp-fg);margin-top:.15rem;}

.medexp-dna__chips{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-top:.45rem;}
.medexp-dna__chip,
.medexp-dna__badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--medexp-border);background:var(--medexp-card);color:var(--medexp-muted);font-size:.78rem;line-height:1.2;}
.medexp-dna__chip--code{font-weight:800;color:var(--medexp-fg);}
.medexp-dna__chip--secondary{background:rgba(148,163,184,0.10);}
.medexp-dna__chip--conf{background:rgba(16,185,129,0.10);border-color:rgba(16,185,129,0.35);color:var(--medexp-fg);font-weight:800;}
.medexp-dna__chip--habit{background:rgba(245,158,11,0.12);border-color:rgba(245,158,11,0.35);color:var(--medexp-fg);margin-top:.55rem;}

.medexp-dna__sectionTitle{font-size:.86rem;font-weight:800;color:var(--medexp-fg);margin:.6rem 0 .25rem;}
.medexp-dna__evidence{margin:.25rem 0 .25rem 1.25rem;color:var(--medexp-fg);}
.medexp-dna__evidence li{margin:.25rem 0;}

.medexp-dna__next{display:flex;gap:.55rem;align-items:baseline;flex-wrap:wrap;margin-top:.55rem;}
.medexp-dna__nextLabel{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--medexp-muted);}
.medexp-dna__nextText{font-size:.95rem;font-weight:700;color:var(--medexp-fg);}

.medexp-dna__fix{margin-top:.65rem;padding:.7rem .8rem;border-radius:14px;border:1px dashed rgba(148,163,184,0.55);background:rgba(255,255,255,0.55);}
html.medexp-theme-dark .medexp-dna__fix{background:rgba(0,0,0,0.18);border-color:rgba(148,163,184,0.25);}
.medexp-dna__fixText{color:var(--medexp-fg);}

.medexp-dna__actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.8rem;}
.medexp-dna__btn.is-loading{opacity:.75;}
.medexp-dna__loading{margin-top:.55rem;font-size:.92rem;color:var(--medexp-muted);}

/* Inline spinner for buttons during async actions */
.medexp-btn.is-loading{
  position: relative;
  padding-right: 2.1rem;
}

.medexp-btn.is-loading::after{
  content: '';
  position: absolute;
  right: .65rem;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 999px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  opacity: .85;
  animation: medexp-spin .75s linear infinite;
}

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

/* Repair pack */
.medexp-dna__pack{margin-top:.65rem;}
.medexp-dnaPack{border-top:1px solid var(--medexp-border);padding-top:.6rem;}
.medexp-dnaPack__summary{cursor:pointer;font-weight:800;color:var(--medexp-fg);list-style:none;}
.medexp-dnaPack__summary::-webkit-details-marker{display:none;}
.medexp-dnaPack__summary::before{content:'▸';display:inline-block;margin-right:.45rem;transition:transform .15s ease;}
.medexp-dnaPack[open] > .medexp-dnaPack__summary::before{transform:rotate(90deg);}

.medexp-dnaPack__inner{margin-top:.55rem;}
.medexp-dnaPack__meta{font-size:.92rem;color:var(--medexp-muted);margin-bottom:.55rem;}

.medexp-dnaPack__drill{padding:.75rem 0;border-bottom:1px dashed var(--medexp-border);}
.medexp-dnaPack__drillHead{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.35rem;}
.medexp-dnaPack__type{font-weight:800;font-size:.92rem;color:var(--medexp-fg);}
.medexp-dnaPack__step{font-size:.8rem;color:var(--medexp-muted);}
.medexp-dnaPack__prompt{margin:.25rem 0 .45rem;color:var(--medexp-fg);}
.medexp-dnaPack__opts{margin:.25rem 0 .4rem 1.25rem;color:var(--medexp-fg);}
.medexp-dnaPack__opts li{margin:.18rem 0;}

.medexp-dnaPack__reveal{margin-top:.35rem;}
.medexp-dnaPack__revealSummary{cursor:pointer;font-weight:800;color:var(--medexp-link);list-style:none;}
.medexp-dnaPack__revealSummary::-webkit-details-marker{display:none;}
.medexp-dnaPack__revealSummary::before{content:'+';display:inline-block;width:1ch;margin-right:.35rem;opacity:.85;}
.medexp-dnaPack__reveal[open] > .medexp-dnaPack__revealSummary::before{content:'–';}

.medexp-dnaPack__answer{margin-top:.35rem;color:var(--medexp-fg);}
.medexp-dnaPack__explain{margin-top:.25rem;color:var(--medexp-muted);}

/* Back-compat for any older DNA renderers */
.medexp-dna__badge{
  display:inline-flex;
  align-items:center;
  padding:.2rem .55rem;
  border-radius:999px;
  border:1px solid var(--medexp-border);
  background:var(--medexp-card);
  color:var(--medexp-fg);
  font-weight:800;
  font-size:.78rem;
}

/* --- Exam Fix Plan (Exam-level summary) --- */
.medexp-dnaSummary{margin-top:.35rem;}
.medexp-dnaSummary__section{margin-top:.85rem;}
.medexp-dnaSummary__geneGrid{display:flex;flex-direction:column;gap:.6rem;margin-top:.55rem;}
.medexp-dnaSummary__geneRow{display:flex;gap:.7rem;align-items:flex-start;border:1px solid rgba(148,163,184,0.30);border-radius:14px;background:rgba(248,250,252,0.70);padding:.7rem .8rem;}
.medexp-dnaSummary__genePct{min-width:46px;font-weight:900;color:var(--medexp-fg);}
.medexp-dnaSummary__geneTitle{font-weight:900;color:var(--medexp-fg);margin:0 0 .15rem;}
.medexp-dnaSummary__geneFix{color:var(--medexp-muted);font-weight:700;}
.medexp-dnaSummary__geneMeta{color:var(--medexp-muted);font-size:.88rem;font-weight:700;margin-top:.15rem;}
.medexp-dnaSummary__twoCol{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.75rem;}
@media (max-width: 920px){.medexp-dnaSummary__twoCol{grid-template-columns:1fr;}}
.medexp-dnaSummary__list{margin:.25rem 0 0 1.2rem;color:var(--medexp-fg);}
.medexp-dnaSummary__col .medexp-dnaSummary__list{margin-top:.35rem;}

/* --- Answer review (learner friendly) --- */
.medexp-qb-reviewWrap{margin-top:.85rem;}
.medexp-qb-reviewWrap__meta{display:flex;align-items:center;gap:.5rem;margin:.25rem 0 .55rem;}
.medexp-qb-ic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;font-weight:800;font-size:13px;line-height:1;}
.medexp-qb-ic.is-ok{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.14);border:1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35);color:rgba(var(--medexp-brand-teal-ink-rgb,0,120,90),0.95);}
.medexp-qb-ic.is-bad{background:rgba(239,68,68,0.10);border:1px solid rgba(239,68,68,0.28);color:rgba(153,27,27,0.95);}
.medexp-qb-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem;border-radius:999px;border:1px solid rgba(148,163,184,0.40);background:rgba(255,255,255,0.7);font-size:12px;font-weight:800;color:rgba(15,23,42,0.82);}
.medexp-qb-pill.is-ok{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.30);background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08);color:rgba(var(--medexp-brand-teal-ink-rgb,0,120,90),0.95);}
.medexp-qb-pill.is-bad{border-color:rgba(239,68,68,0.25);background:rgba(239,68,68,0.06);color:rgba(153,27,27,0.95);}
.medexp-qb-pill.is-muted{opacity:.85;}

.medexp-qb-review{border:1px solid rgba(148,163,184,0.35);border-radius:16px;background:rgba(255,255,255,0.55);padding:.85rem;}
.medexp-qb-review__title{font-weight:800;margin:0 0 .6rem;}
.medexp-qb-review__grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
@media (max-width: 920px){.medexp-qb-review__grid{grid-template-columns:1fr;}}
.medexp-qb-review__col{border:1px solid rgba(148,163,184,0.28);border-radius:14px;background:rgba(248,250,252,0.75);padding:.7rem;}
.medexp-qb-review__h{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:rgba(51,65,85,0.85);margin:0 0 .45rem;}
.medexp-qb-review__body{color:rgba(15,23,42,0.88);}
.medexp-qb-review__list{margin:.2rem 0 0 1.1rem;padding:0;}
.medexp-qb-review__olist{margin:.15rem 0 0 1.3rem;padding:0;}
.medexp-qb-review__li{margin:.25rem 0;padding:.15rem .2rem;border-radius:10px;}
.medexp-qb-review__li.is-ok{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08);}
.medexp-qb-review__li.is-bad{background:rgba(239,68,68,0.06);}

.medexp-qb-review__rows{display:flex;flex-direction:column;gap:.5rem;}
.medexp-qb-reviewRow{display:grid;grid-template-columns:minmax(160px, 1fr) 2fr;gap:.65rem;border:1px solid rgba(148,163,184,0.30);border-radius:14px;background:rgba(248,250,252,0.7);padding:.7rem;}
@media (max-width: 920px){.medexp-qb-reviewRow{grid-template-columns:1fr;}}
.medexp-qb-reviewRow.is-ok{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.28);background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.05);}
.medexp-qb-reviewRow.is-bad{border-color:rgba(239,68,68,0.22);background:rgba(239,68,68,0.04);}
.medexp-qb-reviewRow__k{font-weight:800;color:rgba(15,23,42,0.9);}
.medexp-qb-reviewRow__v{display:grid;grid-template-columns:1fr 1fr 26px;gap:.5rem;align-items:start;}
@media (max-width: 920px){.medexp-qb-reviewRow__v{grid-template-columns:1fr;}}
.medexp-qb-reviewRow__cell{border:1px dashed rgba(148,163,184,0.35);border-radius:12px;background:rgba(255,255,255,0.65);padding:.45rem .55rem;color:rgba(15,23,42,0.88);}
.medexp-qb-reviewRow__cell.is-single{grid-column:1 / span 2;}
.medexp-qb-reviewRow__lbl{display:inline-block;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:rgba(51,65,85,0.75);margin-right:.35rem;}
.medexp-qb-reviewRow__hdr{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;margin:0 0 .35rem;}
.medexp-qb-reviewRow__stack{margin-top:.05rem;}
.medexp-qb-reviewRow__mark{display:flex;align-items:center;justify-content:center;}

/* Bowtie review: Case-style rows with tinted backgrounds + right/wrong icons */
.medexp-qb-review--bowtie .medexp-qb-review__rows{display:grid;gap:.75rem;}
.medexp-qb-review--bowtie .medexp-qb-reviewRow{padding:.85rem .9rem;border-radius:16px;grid-template-columns:minmax(210px, 0.9fr) 2.1fr;}
@media (max-width: 920px){.medexp-qb-review--bowtie .medexp-qb-reviewRow{grid-template-columns:1fr;}}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__k{font-weight:800;font-size:14px;letter-spacing:.01em;}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__v{grid-template-columns:1fr 1fr 44px;gap:.65rem;align-items:stretch;}
@media (max-width: 920px){.medexp-qb-review--bowtie .medexp-qb-reviewRow__v{grid-template-columns:1fr;}}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__cell{padding:.6rem .7rem;border-radius:14px;background:rgba(255,255,255,0.78);border:1px dashed rgba(148,163,184,0.42);line-height:1.35;}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__lbl{font-size:10px;color:rgba(51,65,85,0.68);}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__mark{align-items:center;justify-content:center;}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__mark .medexp-qb-ic{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;font-weight:800;border:1px solid transparent;}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__mark .medexp-qb-ic.is-ok{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.16);border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.28);color:rgba(var(--medexp-brand-teal-ink-rgb,0,120,90),0.95);}
.medexp-qb-review--bowtie .medexp-qb-reviewRow__mark .medexp-qb-ic.is-bad{background:rgba(239,68,68,0.12);border-color:rgba(239,68,68,0.22);color:rgba(220,38,38,0.95);}

/* Choice (MCQ/SATA) review rows – match Bowtie styling */
.medexp-qb-review--choice .medexp-qb-reviewRow{padding:.85rem .9rem;border-radius:16px;grid-template-columns:minmax(220px, 1fr) 2fr;}
@media (max-width: 920px){.medexp-qb-review--choice .medexp-qb-reviewRow{grid-template-columns:1fr;}}
.medexp-qb-review--choice .medexp-qb-reviewRow--single{grid-template-columns:1fr;}
.medexp-qb-review--choice .medexp-qb-reviewRow__v{grid-template-columns:1fr 1fr 44px;gap:.65rem;align-items:stretch;}
@media (max-width: 920px){.medexp-qb-review--choice .medexp-qb-reviewRow__v{grid-template-columns:1fr;}}
.medexp-qb-review--choice .medexp-qb-reviewRow__cell{padding:.6rem .7rem;border-radius:14px;background:rgba(255,255,255,0.78);border:1px dashed rgba(148,163,184,0.42);line-height:1.35;}
.medexp-qb-review--choice .medexp-qb-reviewRow__lbl{font-size:10px;color:rgba(51,65,85,0.68);}
.medexp-qb-review--choice .medexp-qb-reviewRow__mark .medexp-qb-ic{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;font-weight:800;border:1px solid transparent;}
.medexp-qb-review--choice .medexp-qb-reviewRow__mark .medexp-qb-ic.is-ok{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.16);border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.28);color:rgba(var(--medexp-brand-teal-ink-rgb,0,120,90),0.95);} 
.medexp-qb-review--choice .medexp-qb-reviewRow__mark .medexp-qb-ic.is-bad{background:rgba(239,68,68,0.12);border-color:rgba(239,68,68,0.22);color:rgba(220,38,38,0.95);} 

/* --- Answer key (clear chips + missed/wrong states) --- */
.medexp-qb-reviewRow--ak{grid-template-columns:minmax(240px, 1fr) 1fr;}
@media (max-width: 920px){.medexp-qb-reviewRow--ak{grid-template-columns:1fr;}}
.medexp-qb-reviewRow__v--ak{grid-template-columns:1fr 44px;align-items:center;}
@media (max-width: 920px){.medexp-qb-reviewRow__v--ak{grid-template-columns:1fr;}}
.medexp-qb-reviewRow.is-miss{border-color:rgba(245,158,11,0.26);background:rgba(245,158,11,0.06);}
.medexp-qb-review--choice .medexp-qb-reviewRow__mark .medexp-qb-ic.is-warn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;font-weight:800;border:1px solid rgba(245,158,11,0.28);background:rgba(245,158,11,0.16);color:rgba(180,83,9,0.98);} 

.medexp-qb-akBadges{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;justify-content:flex-start;}
.medexp-qb-akTag{display:inline-flex;align-items:center;gap:.25rem;padding:.22rem .55rem;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.01em;border:1px solid rgba(148,163,184,0.35);background:rgba(255,255,255,0.75);color:rgba(15,23,42,0.88);}
.medexp-qb-akTag.is-correct{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.30);background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);color:rgba(var(--medexp-brand-teal-ink-rgb,0,120,90),0.98);}
.medexp-qb-akTag.is-selected{border-color:rgba(59,130,246,0.30);background:rgba(59,130,246,0.10);color:rgba(29,78,216,0.98);}
.medexp-qb-akTag.is-missed{border-color:rgba(245,158,11,0.30);background:rgba(245,158,11,0.10);color:rgba(180,83,9,0.98);}
.medexp-qb-akTag.is-wrong{border-color:rgba(239,68,68,0.26);background:rgba(239,68,68,0.08);color:rgba(220,38,38,0.98);}

.medexp-qb-akSummary{border:1px solid rgba(148,163,184,0.30);border-radius:16px;background:rgba(248,250,252,0.75);padding:.75rem .85rem;margin:.25rem 0 .65rem;}
.medexp-qb-akSummary__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.25rem 0;}
.medexp-qb-akSummary__k{font-weight:800;color:rgba(15,23,42,0.90);}
.medexp-qb-akSummary__v{display:flex;justify-content:flex-end;}

.medexp-qb-choiceKey{display:flex;gap:.65rem;align-items:center;}
.medexp-qb-choiceKey__badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg, rgba(241,245,249,0.95), rgba(226,232,240,0.7));border:1px solid rgba(148,163,184,0.3);font-weight:800;color:rgba(15,23,42,0.85);}
.medexp-qb-choiceKey__text{font-weight:700;color:rgba(15,23,42,0.88);line-height:1.35;}

.medexp-qb-keyTitle{font-weight:800;margin:0 0 .25rem;}
.medexp-qb-code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:.9rem;white-space:pre-wrap;background:rgba(255,255,255,0.92);border:1px solid rgba(148,163,184,0.35);border-radius:14px;padding:.65rem .75rem;}

/* Matrix */
.medexp-qb-matrix{overflow:auto;border:1px solid rgba(148,163,184,0.45);border-radius:16px;background:rgba(255,255,255,0.92);} 
.medexp-qb-matrix table{width:100%;border-collapse:collapse;}
.medexp-qb-matrix th,.medexp-qb-matrix td{padding:.55rem .6rem;border-bottom:1px solid rgba(148,163,184,0.25);text-align:left !important;vertical-align:top;}
.medexp-qb-matrix th{font-weight:800;background:rgba(241,245,249,0.65);} 
.medexp-qb-matrix td input{margin-right:.35rem;}


.medexp-qb-matrix-wrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;}
.medexp-qb-matrix{width:100%;border-collapse:collapse;min-width:720px;}
@media (max-width:900px){.medexp-qb-matrix{min-width:620px;}}
/* Ordering */
.medexp-qb-orderList{display:flex;flex-direction:column;gap:.55rem;}
.medexp-qb-orderRow{border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.92);border-radius:14px;padding:.6rem .7rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.medexp-qb-orderRowMain{display:flex;align-items:center;gap:.65rem;min-width:0;}
.medexp-qb-orderIdx{width:28px;height:28px;border-radius:10px;border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.75);display:flex;align-items:center;justify-content:center;font-weight:800;}
.medexp-qb-orderText{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.medexp-qb-orderBtns{display:flex;gap:.4rem;}
.medexp-qb-miniBtn{border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.75);border-radius:10px;padding:.25rem .5rem;font-weight:800;cursor:pointer;}
.medexp-qb-miniBtn:hover{background:rgba(241,245,249,0.95);} 

/* Case study */
.medexp-qb-case{display:grid;grid-template-columns:360px 1fr;gap:1rem;align-items:start;}
@media (max-width: 980px){
 .medexp-qb-case{grid-template-columns:1fr;}
}
.medexp-qb-exhibits{position:sticky;top:1rem;display:flex;flex-direction:column;gap:.75rem;}
.medexp-qb-exTabs{display:flex;gap:.5rem;flex-wrap:wrap;}
.medexp-qb-exTab{appearance:none !important;border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.9);border-radius:999px;padding:.35rem .65rem;font-weight:800;cursor:pointer;}
.medexp-qb-exTab.is-active{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45);background:linear-gradient(180deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.16), rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06));}
.medexp-qb-exPanel{border:1px solid rgba(148,163,184,0.45);border-radius:18px;background:rgba(255,255,255,0.92);padding:1rem;}
.medexp-qb-exTitle{margin:0 0 .5rem;font-weight:800;}
.medexp-qb-stepper{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.medexp-qb-step{width:30px;height:30px;border-radius:12px;border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.75);display:flex;align-items:center;justify-content:center;font-weight:800;cursor:pointer;}
.medexp-qb-step.is-active{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);} 
.medexp-qb-step.is-done{border-color:rgba(34,197,94,0.40);background:rgba(34,197,94,0.10);} 

/* Loading / empty */
.medexp-qb-empty{padding:1.25rem;border:1px dashed rgba(148,163,184,0.55);border-radius:16px;color:var(--medexp-muted);font-weight:800;background:rgba(241,245,249,0.35);}

/* Human-friendly inputs */
.medexp-topicField{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.medexp-topicField__chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:34px;}
.medexp-topicField__chips .medexp-muted{font-weight:700;}
.medexp-qb-presets{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 6px;}

/* Topic picker modal */
.medexp-topicPicker{display:flex;flex-direction:column;gap:10px;}
.medexp-topicPicker__top{display:flex;gap:10px;align-items:center;}
.medexp-topicPicker__search{flex:1;min-width:240px;}
.medexp-topicPicker__meta{font-weight:800;color:var(--medexp-muted);white-space:nowrap;}
.medexp-topicPicker__main{max-height:56vh;overflow:auto;border:1px solid rgba(148,163,184,0.35);border-radius:14px;padding:10px;background:#fff;}
.medexp-topicPicker__row{display:flex;gap:10px;align-items:flex-start;padding:8px 8px;border-radius:12px;cursor:pointer;}
.medexp-topicPicker__row:hover{background:rgba(241,245,249,0.7);}
.medexp-topicPicker__row input{margin-top:3px;}
.medexp-topicPicker__t{font-weight:900;color:var(--medexp-ink);}
.medexp-topicPicker__p{font-size:12px;color:var(--medexp-muted);margin-top:2px;}
.medexp-topicPicker__section{padding-left:14px;border-left:2px solid rgba(148,163,184,0.25);margin-left:6px;}
.medexp-topicPicker__sectionTitle{font-weight:900;color:var(--medexp-muted);margin:10px 6px 4px;}

/* Notebook topic field */
.medexp-nb-topicField{min-width:260px;}
.medexp-qb-skel{border:1px solid rgba(148,163,184,0.35);border-radius:16px;background:#dde4ee;position:relative;overflow:hidden;}
.medexp-qb-skel::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg, transparent 0%, transparent 25%, rgba(255,255,255,0.55) 50%, transparent 75%, transparent 100%);animation:medexpShimmer 1.5s ease-in-out infinite;pointer-events:none;border-radius:inherit;}
/* medexp-qb-skel keyframe removed – unified into medexpShimmer */

/* ---- QBank.js class compatibility (v1) ---------------------------------- */
.medexp-qb-section{display:flex;flex-direction:column;gap:.75rem;}
.medexp-qb-section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-section__title{margin:0;font-weight:800;letter-spacing:-0.01em;}
.medexp-qb-section__sub{margin:.2rem 0 0;color:var(--medexp-muted);font-weight:800;}

.medexp-qb-card{border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.92);border-radius:18px;padding:1rem;box-shadow:0 10px 30px rgba(15,23,42,0.08);} 
.medexp-qb-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-card__stem{margin:.75rem 0 0;}
.medexp-qb-card__bottom{margin-top:.85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;}
.medexp-qb-points{font-weight:800;color:rgba(30,41,59,0.92);} 

.medexp-qb-stats{display:flex;gap:.7rem;flex-wrap:wrap;}
.medexp-qb-stat{border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.55);border-radius:14px;padding:.55rem .7rem;min-width:120px;}
.medexp-qb-stat__label{font-weight:800;color:var(--medexp-muted);font-size:.85rem;}
.medexp-qb-stat__value{font-weight:800;font-size:1.05rem;margin-top:.1rem;}

.medexp-qb-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem;border-radius:999px;background:rgba(241,245,249,0.75);border:1px solid rgba(148,163,184,0.35);font-weight:800;color:rgba(30,41,59,0.92);font-size:.85rem;}

.medexp-qb-msg{margin-top:.75rem;padding:.65rem .75rem;border-radius:14px;border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.55);font-weight:850;color:rgba(30,41,59,0.92);} 
.medexp-qb-msg.is-error{border-color:rgba(239,68,68,0.38);background:rgba(239,68,68,0.08);} 

/* Modal (admin Case generation) */
.medexp-qb-modal{position:fixed;inset:0;z-index: 10100;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,0.35);padding:1rem;}
.medexp-qb-modal__card{width:min(520px, 100%);border-radius:16px;border:1px solid rgba(148,163,184,0.35);background:rgba(255,255,255,0.98);box-shadow:0 26px 70px rgba(15,23,42,0.18);overflow:hidden;}
.medexp-qb-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid rgba(226,232,240,0.8);}
.medexp-qb-modal__title{font-weight:800;font-size:15px;color:rgba(30,41,59,0.92);}
.medexp-qb-modal__sub{font-size:12px;line-height:1.35;color:rgba(100,116,139,0.85);margin-top:2px;}
.medexp-qb-modal__body{padding:.75rem 1rem;}
.medexp-qb-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.6rem 1rem;border-top:1px solid rgba(226,232,240,0.8);}

/* Modal extras (subtitle/close + wide modals) */
.medexp-qb-modal__card.is-wide{width:min(1120px, 100%);} 
.medexp-qb-modal__head{position:relative;} 
.medexp-qb-modal__headLeft{display:flex;flex-direction:column;gap:.2rem;min-width:0;} 
.medexp-qb-modal__sub{color:var(--medexp-muted);font-weight:800;font-size:.9rem;line-height:1.25;max-width:72ch;} 
.medexp-qb-modal__close{border:1px solid rgba(148,163,184,0.45) !important;background:rgba(241,245,249,0.65) !important;border-radius:14px !important;width:40px !important;height:40px !important;min-width:40px !important;min-height:40px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;font-size:22px !important;line-height:1 !important;cursor:pointer !important;flex:0 0 auto !important;color:rgba(51,65,85,0.85) !important;padding:0 !important;margin:0 !important;text-indent:0 !important;text-transform:none !important;letter-spacing:normal !important;font-family:system-ui,-apple-system,sans-serif !important;box-shadow:none !important;text-shadow:none !important;}
.medexp-qb-modal__close:hover{background:rgba(241,245,249,0.95) !important;color:rgba(15,23,42,0.95) !important;}
.medexp-qb-modal__close:focus{outline:none !important;box-shadow:0 0 0 4px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12) !important;border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.45) !important;} 

/* Modal form controls (prevent 100% width overflow due to padding/borders) */
.medexp-qb-modal input,
.medexp-qb-modal select,
.medexp-qb-modal textarea{box-sizing:border-box !important;max-width:100% !important;}
/* Report modal textareas — hardened against WP theme overrides */
.medexp-qb-modal.medexp-reportModal textarea.medexp-notePanel__ta{min-height:3em !important;height:auto !important;font-size:13px !important;line-height:1.4 !important;padding:8px 10px !important;display:block !important;overflow:auto !important;border-radius:10px !important;}
.medexp-qb-modal.medexp-reportModal textarea.medexp-notePanel__ta[rows="4"]{min-height:4em !important;}
.medexp-qb-modal.medexp-reportModal textarea.medexp-notePanel__ta[rows="3"]{min-height:3.2em !important;}

/* Report-an-issue modal (flashcards / decks / QBank unified reports) */
.medexp-qb-modal.medexp-reportModal .medexp-qb-modal__body{display:flex;flex-direction:column;gap:.55rem;}
.medexp-qb-modal.medexp-reportModal .medexp-qb-label{font-weight:800;font-size:13px;color:rgba(15,23,42,0.92);}

.medexp-qb-modal.medexp-reportModal .medexp-reportCats{
 display:grid;
 grid-template-columns:1fr;
 gap:.25rem .75rem;
 padding:.6rem .7rem;
 border:1px solid rgba(226,232,240,0.92);
 border-radius:10px;
 background:rgba(248,250,252,0.75);
}
.medexp-qb-modal.medexp-reportModal .medexp-reportCats .medexp-qb-label{grid-column:1 / -1;margin:0;}
.medexp-qb-modal.medexp-reportModal .medexp-qb-radio{display:flex;align-items:center;gap:.4rem;line-height:1.2;font-weight:700;font-size:13px;color:rgba(30,41,59,0.92);padding:.3rem .4rem;border-radius:8px;cursor:pointer;}
.medexp-qb-modal.medexp-reportModal .medexp-qb-radio:hover{background:rgba(226,232,240,0.55);}
.medexp-qb-modal.medexp-reportModal .medexp-qb-radio input{margin:0;flex:0 0 auto;}
.medexp-qb-modal.medexp-reportModal .medexp-qb-radio input{accent-color:var(--medexp-primary);}

@media (min-width: 480px){
 .medexp-qb-modal.medexp-reportModal .medexp-reportCats{grid-template-columns:1fr 1fr;}
}

/* Report modal: selected text preview + safe scrolling */
.medexp-qb-modal.medexp-reportModal{align-items:flex-start !important;padding-top:clamp(.75rem, 2.5vh, 2rem) !important;}
.medexp-qb-modal.medexp-reportModal .medexp-qb-modal__card{max-height:calc(100vh - 24px);display:flex;flex-direction:column;}
.medexp-qb-modal.medexp-reportModal .medexp-qb-modal__body{overflow-y:auto;scroll-behavior:smooth;}

.medexp-qb-modal.medexp-reportModal .medexp-reportSelection{display:flex;flex-direction:column;gap:.3rem;}
.medexp-qb-modal.medexp-reportModal .medexp-reportSelection__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;}
.medexp-qb-modal.medexp-reportModal .medexp-reportSelection__count{font-size:11px;font-weight:800;color:rgba(100,116,139,0.92);}
.medexp-qb-modal.medexp-reportModal .medexp-reportSelection__box{max-height:72px;overflow:auto;padding:.5rem .6rem;border:1px solid rgba(226,232,240,0.92);border-radius:10px;background:rgba(255,255,255,0.92);font-size:13px;line-height:1.35;color:rgba(15,23,42,0.92);white-space:pre-wrap;}

.medexp-qb-modal.medexp-reportModal .medexp-reportSelection__box.is-context{max-height:140px;}
.medexp-qb-modal.medexp-reportModal .medexp-callout--busy .medexp-callout__title{display:flex;align-items:center;gap:.55rem;}
.medexp-qb-modal.medexp-reportModal .medexp-reportSpinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(148,163,184,0.55);border-top-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);animation:medexp-spin 0.85s linear infinite;flex:0 0 auto;}

.medexp-qb-modal.medexp-reportModal .medexp-reportPreviewGrid{display:grid;grid-template-columns:1fr;gap:.9rem;}
@media (min-width: 760px){
 .medexp-qb-modal.medexp-reportModal .medexp-reportPreviewGrid{grid-template-columns:1fr 1fr;}
}

html.medexp-theme-dark .medexp-qb-modal.medexp-reportModal .medexp-reportSelection__count{color:rgba(148,163,184,0.95);} 
html.medexp-theme-dark .medexp-qb-modal.medexp-reportModal .medexp-reportSelection__box{background:rgba(30,41,59,0.55);border-color:rgba(34,48,74,0.75);color:rgba(226,232,240,0.92);} 

/* Flashcard manager modal */
.medexp-fcMgr{display:grid;grid-template-columns:280px 1fr;gap:1rem;align-items:start;} 
.medexp-fcMgr__sidebar{border:1px solid rgba(148,163,184,0.35);border-radius:18px;background:rgba(241,245,249,0.55);padding:.85rem;} 
.medexp-fcMgr__deckRow{display:flex;align-items:center;gap:.6rem;} 
.medexp-fcMgr__deckLabel{font-weight:900;color:var(--medexp-muted);font-size:.85rem;min-width:42px;} 
.medexp-fcMgr__deckSel{flex:1;min-width:0;padding:.55rem .65rem;border-radius:14px;border:1px solid rgba(148,163,184,0.45);background:#fff;font-weight:800;color:rgba(30,41,59,0.92);} 
.medexp-fcMgr__list{margin-top:.75rem;max-height:58vh;overflow:auto;padding-right:4px;} 
.medexp-fcMgr__cardBtn{width:100%;text-align:left !important;display:block;padding:.6rem .7rem;border-radius:14px;border:1px solid rgba(148,163,184,0.35);background:rgba(255,255,255,0.92);font-weight:800;color:rgba(30,41,59,0.92);cursor:pointer;margin-bottom:.55rem;} 
.medexp-fcMgr__cardBtn:hover{background:rgba(241,245,249,0.95);} 
.medexp-fcMgr__cardBtn.is-active{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.55);box-shadow:0 0 0 4px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);} 
.medexp-fcMgr__main{min-width:0;} 
.medexp-fcMgr__grid{display:grid;grid-template-columns:1fr 56px 1fr;gap:.85rem;align-items:stretch;} 
.medexp-fcMgr__pane{display:flex;flex-direction:column;gap:.5rem;min-width:0;} 
.medexp-fcMgr__paneHead{display:flex;align-items:center;justify-content:space-between;gap:.5rem;} 
.medexp-fcMgr__paneTitle{font-weight:900;color:rgba(30,41,59,0.92);} 
.medexp-fcMgr__count{font-weight:850;color:var(--medexp-muted);font-size:.85rem;} 
.medexp-fcMgr__ta{width:100%;border-radius:18px;border:1px solid rgba(148,163,184,0.45);background:#fff;padding:.75rem .85rem;font-weight:750;color:rgba(30,41,59,0.92);line-height:1.35;min-height:260px;resize:vertical;outline:none;} 
.medexp-fcMgr__ta:focus{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.45);box-shadow:0 0 0 4px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);} 
.medexp-fcMgr__mid{display:flex;align-items:center;justify-content:center;} 
.medexp-fcMgr__swap{width:44px;height:44px;border-radius:12px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:rgba(23,157,153,0.08) !important;border:1px solid rgba(23,157,153,0.2) !important;color:rgba(23,157,153,0.85) !important;transition:all .15s ease;cursor:pointer;}
.medexp-fcMgr__swap:hover{background:rgba(23,157,153,0.14) !important;border-color:rgba(23,157,153,0.35) !important;transform:translateY(-1px);box-shadow:0 2px 8px rgba(23,157,153,0.15);}
.medexp-fcMgr__swap svg{width:20px;height:20px;} 
.medexp-fcMgr__tagsRow{display:flex;align-items:center;gap:.75rem;margin-top:.85rem;} 
.medexp-fcMgr__tagsLabel{font-weight:900;color:var(--medexp-muted);font-size:.85rem;min-width:44px;} 
.medexp-fcMgr__tags{flex:1;min-width:0;padding:.65rem .8rem;border-radius:14px;border:1px solid rgba(148,163,184,0.45);background:#fff;font-weight:750;color:rgba(30,41,59,0.92);outline:none;} 
.medexp-fcMgr__tags:focus{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.45);box-shadow:0 0 0 4px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);} 

@media (max-width: 920px){
 .medexp-qb-modal{padding:.85rem;}
 .medexp-fcMgr{grid-template-columns:1fr;}
 .medexp-fcMgr__list{max-height:26vh;}
 .medexp-fcMgr__grid{grid-template-columns:1fr;gap:.75rem;}
 .medexp-fcMgr__mid{justify-content:flex-start;}
}



/* Generator status/progress (QBank) */
.medexp-qb-status{display:flex;flex-direction:column;gap:0.5rem;padding:0.75rem 0.9rem;border:1px solid rgba(148,163,184,0.35);border-radius:var(--medexp-radius-md);background:rgba(248,250,252,0.75);box-shadow:var(--medexp-shadow-sm);}
.medexp-qb-status__row{display:flex;align-items:center;gap:0.6rem;}
.medexp-qb-status__left{display:flex;align-items:center;gap:0.6rem;min-width:0;}
.medexp-qb-status__text{font-size:0.92rem;color:rgba(15,23,42,0.86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.medexp-qb-spinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(148,163,184,0.55);border-top-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);animation:medexp-spin 0.85s linear infinite;flex:0 0 auto;}
@keyframes medexp-spin{to{transform:rotate(360deg);}}
.medexp-qb-status__bar{height:10px;border-radius:999px;background:rgba(226,232,240,0.95);overflow:hidden;}
.medexp-qb-status__fill{height:100%;width:0%;background:linear-gradient(90deg, var(--medexp-accent), var(--medexp-primary));border-radius:999px;transition:width 180ms ease;}
.medexp-qb-status.is-indeterminate .medexp-qb-status__fill{width:45%;animation:medexp-indeterminate 1.25s ease-in-out infinite;}
@keyframes medexp-indeterminate{0%{transform:translateX(-65%);}50%{transform:translateX(65%);}100%{transform:translateX(-65%);}}
.medexp-qb-input{width:100%;padding:.7rem .85rem;border-radius:14px;border:1px solid rgba(148,163,184,0.45);background:#fff;outline:none;font-weight:700;color:rgba(30,41,59,0.92);}
.medexp-qb-input:focus{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.45);box-shadow:0 0 0 4px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);}
.medexp-qb-formRow{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem;}
.medexp-qb-formRow label{font-size:.85rem;color:var(--medexp-muted);font-weight:800;}
.medexp-qb-formGrid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
.medexp-qb-help{margin-top:.25rem;color:var(--medexp-muted);font-size:.9rem;}

/* Modal controls (question generator) */
.medexp-qb-inline{display:flex;flex-wrap:wrap;gap:.6rem;}
.medexp-qb-radioRow{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;color:rgba(30,41,59,0.92);}
.medexp-qb-radioRow input{transform:translateY(1px);}
.medexp-qb-checkGrid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;border:1px solid rgba(148,163,184,0.35);background:rgba(241,245,249,0.55);border-radius:16px;padding:.65rem .75rem;}
.medexp-qb-checkRow{display:flex;align-items:center;gap:.55rem;font-weight:800;color:rgba(30,41,59,0.92);}
.medexp-qb-checkRow input{transform:translateY(1px);}

.medexp-qb-progress__bar{height:8px;border-radius:999px;background:rgba(148,163,184,0.22);border:1px solid rgba(148,163,184,0.35);overflow:hidden;}
.medexp-qb-progress__bar>span{display:block;height:100%;width:0%;background:linear-gradient(90deg, var(--medexp-primary), var(--medexp-accent));transition:width .25s ease;}

.medexp-qb-choices{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;}
.medexp-qb-choice{border:1px solid rgba(148,163,184,0.3);border-radius:16px;background:rgba(255,255,255,0.96);padding:.75rem .85rem;display:flex;gap:.65rem;align-items:center;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);position:relative;}
.medexp-qb-choice:hover{box-shadow:0 4px 16px rgba(15,23,42,0.08), 0 12px 32px rgba(15,23,42,0.06);border-color:rgba(99,102,241,0.35);transform:translateY(-1px);}
.medexp-qb-choice__left{display:flex;align-items:center;gap:.6rem;flex-shrink:0;}
.medexp-qb-choice__right{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;}
.medexp-qb-choice__meta{flex-shrink:0;color:var(--medexp-muted);font-weight:850;font-size:.9rem;}
.medexp-qb-choice__label{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1px solid rgba(148,163,184,0.4);background:linear-gradient(135deg, rgba(241,245,249,0.95), rgba(226,232,240,0.7));font-weight:800;min-width:0;font-size:.92rem;transition:all .2s ease;}
.medexp-qb-choice__text{font-weight:700;color:rgba(30,41,59,0.92);line-height:1.4;flex:1;min-width:0;}
.medexp-qb-choice__input{accent-color:#6366F1;width:18px;height:18px;flex-shrink:0;cursor:pointer;}
 

.medexp-qb-actionsRow{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.85rem;}

/* Space between action row and feedback so completion buttons don't kiss the feedback border */
.medexp-qb-actionsRow + .medexp-qb-feedback:not(:empty){margin-top:.7rem;}
.medexp-qb-actionsRow__right{display:flex;gap:.6rem;flex-wrap:wrap;}
.medexp-qb-mini{border:1px solid rgba(148,163,184,0.3);background:rgba(241,245,249,0.8);border-radius:12px;padding:.5rem .75rem;font-weight:800;cursor:pointer;transition:all .15s ease;}
.medexp-qb-mini:hover{background:rgba(241,245,249,0.98);box-shadow:0 2px 8px rgba(2,6,23,0.06);transform:translateY(-1px);} 

.medexp-qb-feedback__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.medexp-qb-feedback__body{margin-top:.65rem;color:rgba(30,41,59,0.92);} 
.medexp-qb-references{margin-top:.65rem;padding-top:.55rem;border-top:1px dashed rgba(148,163,184,0.45);color:rgba(30,41,59,0.88);} 
.medexp-qb-references__title{font-weight:800;margin-bottom:.35rem;color:rgba(30,41,59,0.92);} 
.medexp-qb-references__list{margin:0 0 0 1.2rem;padding:0;display:grid;gap:.35rem;} 
.medexp-qb-references__list li{line-height:1.35;}
.medexp-qb-references__lesson{margin:0 0 .35rem 0;font-size:.92rem;color:rgba(30,41,59,0.88);}
.medexp-qb-references__lessonLink{text-decoration:underline;text-underline-offset:2px;}
 
.medexp-qb-result{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .65rem;border-radius:999px;font-weight:800;border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.9);} 
.medexp-qb-result.is-ok{border-color:rgba(34,197,94,0.40);background:rgba(34,197,94,0.10);} 
.medexp-qb-result.is-bad{border-color:rgba(239,68,68,0.38);background:rgba(239,68,68,0.08);} 
.medexp-qb-score{font-weight:800;color:rgba(30,41,59,0.92);} 

.medexp-qb-order__row{border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.92);border-radius:14px;padding:.6rem .7rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.medexp-qb-order__rank{width:28px;height:28px;border-radius:10px;border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.75);display:flex;align-items:center;justify-content:center;font-weight:800;}
.medexp-qb-order__text{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.medexp-qb-order__actions{display:flex;gap:.4rem;}

.medexp-qb-select,.medexp-qb-input{border:1px solid rgba(148,163,184,0.55);background:rgba(255,255,255,0.92);border-radius:12px;padding:.5rem .7rem;font-weight:800;outline:none;}
.medexp-qb-select:focus,.medexp-qb-input:focus{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);} 

.medexp-qb-case__left{position:sticky;top:1rem;}
.medexp-qb-htab__cell,.medexp-qb-highlight__seg{border:1px solid rgba(148,163,184,0.35);background:rgba(241,245,249,0.55);border-radius:12px;padding:.35rem .55rem;font-weight:850;cursor:pointer;}
.medexp-qb-highlight__seg.is-on,.medexp-qb-htab__cell.is-on{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);} 


/* Highlight interaction improvements (v0.3.41) */
.medexp-qb-hint{margin-top:.5rem;margin-bottom:.5rem;color:var(--medexp-muted);font-weight:850;font-size:.92rem;}
.medexp-qb-highlight__seg.is-selected,.medexp-qb-htab__cell.is-selected{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);}
.medexp-qb-highlight__seg.is-limit,.medexp-qb-htab__cell.is-limit{border-color:rgba(239,68,68,0.45);box-shadow:0 0 0 3px rgba(239,68,68,0.12);}

.medexp-qb-exhibit__rowpick{cursor:pointer;transition:background .15s ease, box-shadow .15s ease;}
.medexp-qb-exhibit__rowpick:hover{background:rgba(241,245,249,0.55);}
.medexp-qb-exhibit__rowpick.is-selected{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);box-shadow:inset 0 0 0 2px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);}
.medexp-qb-exhibit__rowpick.is-limit{box-shadow:inset 0 0 0 2px rgba(239,68,68,0.35);}
.medexp-qb-exhibit__lipick{cursor:pointer;transition:background .15s ease, box-shadow .15s ease;}
.medexp-qb-exhibit__lipick:hover{background:rgba(241,245,249,0.55);}
.medexp-qb-exhibit__lipick.is-selected{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);box-shadow:inset 0 0 0 2px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);border-radius:10px;}
.medexp-qb-exhibit__lipick.is-limit{box-shadow:inset 0 0 0 2px rgba(239,68,68,0.35);border-radius:10px;}
.medexp-qb-exhibit__blkpick{cursor:pointer;transition:background .15s ease, box-shadow .15s ease;border-radius:12px;padding:6px 8px;margin:2px 0;}
.medexp-qb-exhibit__blkpick:hover{background:rgba(241,245,249,0.55);}
.medexp-qb-exhibit__blkpick.is-selected{background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);box-shadow:inset 0 0 0 2px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25);}
.medexp-qb-exhibit__blkpick.is-limit{box-shadow:inset 0 0 0 2px rgba(239,68,68,0.35);}

.medexp-qb-bowtie{display:grid;grid-template-columns:1fr;gap:.75rem;}
.medexp-qb-bowtie__zone{border:1px solid rgba(148,163,184,0.45);background:rgba(255,255,255,0.92);border-radius:16px;padding:.75rem;}
.medexp-qb-bowtie__title{font-weight:800;margin:0 0 .5rem;}
.medexp-qb-bowtie__choices{display:flex;flex-direction:column;gap:.5rem;}

/* ========================================================================== */
/* QBank — Case Bowtie (v2) */
/* Real Case bowtie feel: 5 drop targets + pooled option bank. */
/* ========================================================================== */

.medexp-qb-bowtie5{display:flex;flex-direction:column;gap:.85rem;}
.medexp-qb-bowtie5__diagram{
 position:relative;
 display:grid;
 grid-template-columns: 1fr minmax(220px, 300px) 1fr;
 gap: 1rem;
 padding: 1rem;
 border: 1px solid rgba(148,163,184,0.45);
 border-radius: 18px;
 background: rgba(255,255,255,0.92);
 box-shadow: 0 10px 30px rgba(15,23,42,0.06);
}

/* Simple bowtie connector lines */
.medexp-qb-bowtie5__diagram:before{
 content:"";
 position:absolute;
 inset: 0;
 pointer-events:none;
 background:
 linear-gradient(90deg, transparent 0%, rgba(148,163,184,0.26) 34%, transparent 36%) left/50% 100% no-repeat,
 linear-gradient(90deg, transparent 64%, rgba(148,163,184,0.26) 66%, transparent 100%) right/50% 100% no-repeat;
 opacity:.75;
}

.medexp-qb-bowtie5__col{display:flex;flex-direction:column;gap:.75rem;}
.medexp-qb-bowtie5__col.is-center{justify-content:center;}

.medexp-bt-slot{
 position:relative;
 border: 1px dashed rgba(148,163,184,0.75);
 border-radius: 16px;
 background: rgba(241,245,249,0.55);
 padding: .75rem;
 min-height: 88px;
 cursor: pointer;
 transition: background .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.medexp-bt-slot:focus{outline:none;box-shadow: 0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.14);border-color: rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);}
.medexp-bt-slot.is-over{border-color: rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);background: rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);}
.medexp-bt-slot.is-filled{border-style: solid;background: rgba(255,255,255,0.92);}

.medexp-bt-slot__label{font-weight:800;color:rgba(30,41,59,0.92);font-size:.92rem;margin-bottom:.35rem;}
.medexp-bt-slot__placeholder{color:rgba(71,85,105,0.85);font-weight:850;font-size:.92rem;}

.medexp-bt-chip{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem .65rem;border-radius:14px;border:1px solid rgba(148,163,184,0.55);background:rgba(255,255,255,0.96);box-shadow:0 8px 22px rgba(15,23,42,0.06);}
.medexp-bt-chip__text{font-weight:800;color:rgba(15,23,42,0.92);line-height:1.25;}
.medexp-bt-chip__x{border:0;background:rgba(15,23,42,0.06);border-radius:12px;padding:.2rem .45rem;font-weight:800;cursor:pointer;}
.medexp-bt-chip__x:hover{background:rgba(15,23,42,0.10);} 

.medexp-qb-bowtie5__bankTitle{color:var(--medexp-muted);font-weight:850;font-size:.92rem;}
.medexp-qb-bowtie5__bank{
 display:grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: .65rem;
 padding: .75rem;
 border: 1px solid rgba(148,163,184,0.45);
 border-radius: 18px;
 background: rgba(255,255,255,0.92);
}
.medexp-qb-bowtie5__bank.is-over{box-shadow: 0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);} 

.medexp-bt-opt{border:1px solid rgba(148,163,184,0.45);background:rgba(241,245,249,0.55);border-radius:16px;padding:.65rem .75rem;cursor:pointer;user-select:none;transition:transform .08s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;}
.medexp-bt-opt:hover{background:rgba(241,245,249,0.75);box-shadow:0 10px 26px rgba(15,23,42,0.06);} 
.medexp-bt-opt.is-picked{border-color: rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);} 
.medexp-bt-opt.is-used{opacity:.45;filter:grayscale(0.2);cursor:not-allowed;}
.medexp-bt-opt__text{font-weight:800;color:rgba(15,23,42,0.92);line-height:1.25;}

@media (max-width: 920px){
 .medexp-qb-bowtie5__diagram{grid-template-columns:1fr;}
 .medexp-qb-bowtie5__diagram:before{display:none;}
 .medexp-qb-bowtie5__bank{grid-template-columns:1fr;}
}


/* QBank — Cloze (row fallback) */
.medexp-qb-cloze-rows{ display:flex; flex-direction:column; gap:12px; margin-top:14px; }
.medexp-qb-cloze-row{ display:grid; grid-template-columns: 1fr minmax(180px, 260px); gap:12px; align-items:center; padding:12px; border:1px solid var(--medexp-border); border-radius: var(--medexp-radius-lg); background: var(--medexp-surface); }
.medexp-qb-cloze-prompt{ font-weight:600; color: var(--medexp-text); }
.medexp-qb-select{ width:100%; padding:.55rem .7rem; border:1px solid var(--medexp-border); border-radius: var(--medexp-radius-md); background:#fff; }
.medexp-qb-select:focus{ outline:none; box-shadow: 0 0 0 3px rgba(0,0,0,.06); }

/* QBank — Cloze (inline override) */
/* When a template is provided, dropdowns should flow naturally with the text (no awkward row breaks). */
.medexp-qb-cloze{ margin: .45rem 0 .85rem; }
.medexp-qb-cloze__template{
 line-height: 1.9;
 word-break: normal;
}
/* If the model wrapped the sentence in <p>, keep it truly inline */
.medexp-qb-cloze__template p{ display:inline; margin:0; }
.medexp-qb-cloze__template br{ display:none; }

.medexp-qb-cloze__template .medexp-qb-select{
 width: auto;
 display: inline-block;
 margin: .15rem .45rem;
 padding: .42rem .65rem;
 vertical-align: baseline;
 min-width: 140px;
 max-width: min(260px, 82vw);
 border-radius: 999px;
 border: 1px solid rgba(148,163,184,0.55);
 background: rgba(255,255,255,0.96);
 box-shadow: 0 6px 18px rgba(15,23,42,0.06);
}
.medexp-qb-cloze__template .medexp-qb-select:focus{
 outline: none;
 border-color: rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);
 box-shadow: 0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12), 0 10px 28px rgba(15,23,42,0.08);
}



/* QBank — spacing polish (v0.3.54) */
/* Give the header line breathing room so the "cloze dropdown" pill doesn't touch the question text */
.medexp-qb-qHead{ margin-bottom: 1rem; align-items: center; }
.medexp-qb-qNum{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; line-height:1.2; }
.medexp-qb-qHead .medexp-qb-pill,
.medexp-qb-qHead .medexp-qb-tag,
.medexp-qb-qHead .medexp-qb-chip{
 margin-left: .2rem;
}

/* Ensure action buttons don't touch the feedback card below */
.medexp-qb-actions{ margin-top: 1rem; margin-bottom: 1.25rem; }
.medexp-qb-feedback{ margin-top: .15rem; }

/* Slightly increase button spacing on tight layouts */
.medexp-qb-actionsLeft, .medexp-qb-actionsRight{ gap: .75rem; }


/* ========================================================================== */
/* QBank — layout + whitespace polish (v0.3.55) */
/* Goal: reduce the “squeezed” feel on the Practice hub. */
/* ========================================================================== */

/* Give wide screens a bit more breathing room */
@media (min-width: 1200px){
}

/* Overall practice grid spacing */
.medexp-qb{ gap: 1.15rem; }
.medexp-qb-grid{ gap: 1.25rem; }

/* Header + toolbar spacing */
.medexp-qb-top{ gap: 1.1rem; margin-bottom: .35rem; }
.medexp-qb-title{ font-size: 1.4rem; line-height: 1.2; }
.medexp-qb-subtitle{ font-size: 1rem; line-height: 1.55; }
.medexp-qb-toolbar{ gap: .75rem; }

/* KPI / stat cards (Scope / Questions / Case studies) */
.medexp-qb-kpiRow, .medexp-qb-stats{ gap: 1rem; }
.medexp-qb-kpi, .medexp-qb-stat{
 min-width: 160px;
 padding: .85rem .95rem;
 border-radius: 16px;
}
.medexp-qb-kpiLabel, .medexp-qb-stat__label{ font-size: .9rem; }
.medexp-qb-kpiValue, .medexp-qb-stat__value{ font-size: 1.15rem; margin-top: .2rem; }

/* Action buttons row (Start practice / Refresh / Generate...) */
.medexp-qb-btn{ padding: .6rem 1rem; }
.medexp-qb-btn--primary{ box-shadow: 0 10px 26px rgba(15,23,42,0.10); }

/* Main cards feel less cramped */
.medexp-qb-session,
.medexp-qb-listItem,
.medexp-qb-card{
 padding: 1.05rem 1.15rem;
}

/* Question/Case tiles on hub */
.medexp-qb-liExcerpt{ line-height: 1.6; }
.medexp-qb-liTitle{ font-size: 1.05rem; }
.medexp-qb-tag{ padding: .28rem .6rem; }

/* Sidebar readability */
.medexp-outline{ padding: 1rem 1.05rem; }
.medexp-outline__node{ padding: .45rem 0; }
.medexp-outline__node--section,
.medexp-outline__node--subsection{ padding-left: 1rem; }
.medexp-outline__node--topic{ gap: .65rem; padding: .22rem 0; }
.medexp-outline__link{ line-height: 1.35; }

/* On smaller screens, keep things airy but not oversized */
@media (max-width: 720px){
 .medexp-qb-title{ font-size: 1.25rem; }
 .medexp-qb-grid{ gap: 1rem; }
 .medexp-qb-kpi, .medexp-qb-stat{ min-width: 140px; }
}


/* Practice page — make the main QBank panel feel less cramped */
.medexp-main > .medexp-card{padding:1.15rem 1.2rem;}
@media (max-width: 720px){
 .medexp-main > .medexp-card{padding:1rem;}
}


/* === Case Highlight (Inline Passage + Table) v0.3.63 === */
.medexp-qb-hpassage{
 border:1px solid rgba(148,163,184,0.45);
 background:rgba(248,250,252,0.75);
 border-radius:16px;
 padding:14px 16px;
 line-height:1.75;
 font-size:1rem;
}
.medexp-qb-hpassage p{ margin:0 0 .75rem 0; }
.medexp-qb-hpassage p:last-child{ margin-bottom:0; }

.medexp-qb-hseg{
 cursor:pointer;
 border-radius:6px;
 padding:0 .15em;
 transition:background .12s ease, box-shadow .12s ease;
}
.medexp-qb-hseg:hover{ box-shadow:0 0 0 3px rgba(59,130,246,0.12); }
.medexp-qb-hseg.is-selected{
 background:rgba(250,204,21,0.45);
 box-shadow:0 0 0 2px rgba(250,204,21,0.25);
}

.medexp-qb-htab{
 width:100%;
 border-collapse:separate;
 border-spacing:0;
 overflow:hidden;
 border-radius:14px;
}
.medexp-qb-htab thead th{
 background:rgba(248,250,252,0.9);
 font-weight:800;
}
.medexp-qb-htab th, .medexp-qb-htab td{
 border:1px solid rgba(148,163,184,0.35);
 padding:.6rem .65rem;
 vertical-align:top;
}
.medexp-qb-htab__cell__inner{ font-weight:800; }
.medexp-qb-htab__cell__inner.is-empty{ display:flex; align-items:center; justify-content:center; min-height:1.6rem; }
.medexp-qb-htab__hint{ display:inline-block; font-weight:800; font-size:.78rem; padding:.15rem .45rem; border-radius:999px; background:rgba(226,232,240,0.85); color:rgba(100,116,139,0.95); }

.medexp-qb-htab__cell.is-disabled{
 opacity:.55;
 cursor:not-allowed;
 background:rgba(148,163,184,0.10);
}


/* Hotspot (image click) */
.medexp-qb-hotspot{display:flex;flex-direction:column;gap:0.6rem;}
.medexp-qb-hotspot__help{font-size:0.92rem;color:rgba(15,23,42,0.78);line-height:1.35;}
.medexp-qb-hotspot__stage{position:relative;display:block;border:1px solid rgba(148,163,184,0.35);border-radius:var(--medexp-radius-md);overflow:hidden;background:rgba(255,255,255,0.9);cursor:crosshair;box-shadow:var(--medexp-shadow-sm);}
.medexp-qb-hotspot__stage.is-review{cursor:default;}
.medexp-qb-hotspot__img{display:block;width:100%;height:auto;}
.medexp-qb-hotspot__marker{position:absolute;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:999px;background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);box-shadow:0 0 0 3px rgba(255,255,255,0.92), 0 0 0 7px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);pointer-events:none;}
.medexp-qb-hotspot__marker.is-review{background:rgba(15,23,42,0.92);}
.medexp-qb-hotspot__hover{position:absolute;border:2px dashed rgba(var(--medexp-brand-blue-rgb,26,79,156),0.65);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);border-radius:12px;pointer-events:none;box-shadow:0 0 0 4px rgba(255,255,255,0.7) inset;}
.medexp-qb-hotspot__sel{position:absolute;border:3px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);border-radius:12px;pointer-events:none;box-shadow:0 0 0 4px rgba(255,255,255,0.75) inset;}
.medexp-qb-hotspot__region{position:absolute;border:2px solid rgba(148,163,184,0.35);background:rgba(148,163,184,0.08);border-radius:8px;pointer-events:none;}
.medexp-qb-hotspot__region.is-correct{border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95);background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.14);}
.medexp-qb-hotspot__region.is-wrong{border-color:rgba(239,68,68,0.95);background:rgba(239,68,68,0.14);}

/* ==========================================================
 Course Search (SaaS-style)
 ========================================================== */
.medexp-pill{
 display:inline-flex;
 align-items:center;
 gap:.35rem;
 font-weight:800;
 font-size:.72rem;
 padding:.18rem .55rem;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.35);
 background:rgba(248,250,252,0.85);
 color:rgba(51,65,85,0.92);
 letter-spacing:.01em;
}

.medexp-spinner{
 width:16px;height:16px;border-radius:999px;
 border:2px solid rgba(148,163,184,0.40);
 border-top-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95);
 display:inline-block;
 animation:medexpSpin .8s linear infinite;
 flex:0 0 auto;
}
@keyframes medexpSpin{to{transform:rotate(360deg);} }

.medexp-courseSearch{
 padding:1rem 1rem .9rem 1rem;
 overflow:hidden;
}
.medexp-courseSearch[data-variant="compact"]{
 padding:.85rem .85rem .75rem .85rem;
}
.medexp-courseSearch__head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:1rem;
 margin-bottom:.8rem;
}
.medexp-courseSearch__title{
 font-weight:800;
 font-size:1.05rem;
 letter-spacing:-0.01em;
}
.medexp-courseSearch[data-variant="compact"] .medexp-courseSearch__title{
 font-size:.98rem;
}
.medexp-courseSearch__subtitle{
 margin-top:.2rem;
 font-size:.9rem;
 color:rgba(15,23,42,0.70);
 line-height:1.35;
}
.medexp-courseSearch__pillrow{
 display:flex;
 gap:.45rem;
 flex-wrap:wrap;
 justify-content:flex-end;
}
.medexp-courseSearch[data-variant="compact"] .medexp-courseSearch__pillrow{
 display:none;
}

.medexp-courseSearch__form{
 display:grid;
 grid-template-columns: 1fr minmax(160px, 220px) auto;
 gap:.55rem;
 align-items:stretch;
}
@media (max-width: 820px){
 .medexp-courseSearch__form{
 grid-template-columns:1fr;
 }
}

.medexp-courseSearch__input,
.medexp-courseSearch__scope{
 width:100%;
 padding:.7rem .85rem;
 border-radius:14px;
 border:1px solid rgba(148,163,184,0.35);
 background:rgba(255,255,255,0.88);
 outline:none;
 box-shadow:var(--medexp-shadow-xs);
}
.medexp-courseSearch__input:focus,
.medexp-courseSearch__scope:focus{
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);
 box-shadow:0 0 0 4px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12), var(--medexp-shadow-xs);
}
.medexp-courseSearch__scope{
 appearance:none !important;
 background-image:
 linear-gradient(45deg, transparent 50%, rgba(100,116,139,0.85) 50%),
 linear-gradient(135deg, rgba(100,116,139,0.85) 50%, transparent 50%) !important !important;
 background-position:
 calc(100% - 18px) calc(50% - 2px),
 calc(100% - 12px) calc(50% - 2px) !important !important;
 background-size:6px 6px, 6px 6px !important !important;
 background-repeat:no-repeat !important !important;
 padding-right:2.2rem;
}

.medexp-courseSearch__btn{
 white-space:nowrap;
}
.medexp-courseSearch__results{
 margin-top:.85rem;
 display:flex;
 flex-direction:column;
 gap:.85rem;
}
.medexp-courseSearch__hint,
.medexp-courseSearch__loading,
.medexp-courseSearch__empty,
.medexp-courseSearch__error{
 padding:.75rem .85rem;
 border-radius:14px;
 border:1px dashed rgba(148,163,184,0.40);
 background:rgba(248,250,252,0.75);
 color:rgba(15,23,42,0.72);
 font-weight:700;
 display:flex;
 align-items:center;
 gap:.6rem;
}
.medexp-courseSearch__error{
 border-style:solid;
 border-color:rgba(244,63,94,0.28);
 background:rgba(244,63,94,0.06);
 color:rgba(190,18,60,0.92);
}
.medexp-courseSearch__group{
 border:1px solid rgba(148,163,184,0.25);
 border-radius:18px;
 overflow:hidden;
 background:rgba(255,255,255,0.70);
 box-shadow:var(--medexp-shadow-sm);
}
.medexp-courseSearch__groupHead{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:1rem;
 padding:.65rem .85rem;
 background:rgba(248,250,252,0.92);
 border-bottom:1px solid rgba(148,163,184,0.20);
}
.medexp-courseSearch__groupTitle{
 font-weight:800;
 letter-spacing:-0.01em;
}
.medexp-courseSearch__groupCount{
 font-weight:800;
 font-size:.8rem;
 padding:.2rem .55rem;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.30);
 background:rgba(226,232,240,0.55);
 color:rgba(51,65,85,0.92);
}
.medexp-courseSearch__list{
 display:flex;
 flex-direction:column;
}
.medexp-courseSearch__item{
 display:flex;
 gap:.75rem;
 padding:.75rem .85rem;
 text-decoration:none;
 color:inherit;
 border-top:1px solid rgba(148,163,184,0.20);
 transition:transform .12s ease, background .12s ease;
}
.medexp-courseSearch__item:first-child{ border-top:none; }
.medexp-courseSearch__item:hover{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);
 transform:none;
}
.medexp-courseSearch__icon{
 width:34px;
 height:34px;
 border-radius:12px;
 display:flex;
 align-items:center;
 justify-content:center;
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);
 flex:0 0 auto;
}
.medexp-courseSearch__text{
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:.2rem;
}
.medexp-courseSearch__itemTitle{
 font-weight:800;
 line-height:1.2;
}
.medexp-courseSearch__itemSub{
 font-size:.9rem;
 color:rgba(15,23,42,0.72);
 line-height:1.35;
 overflow:hidden;
 text-overflow:ellipsis;
 display:-webkit-box;
 -webkit-line-clamp:2;
 -webkit-box-orient:vertical;
}
.medexp-courseSearch__itemMeta{
 display:flex;
 flex-wrap:wrap;
 gap:.4rem .55rem;
 align-items:center;
 margin-top:.1rem;
}
.medexp-courseSearch__meta{
 font-size:.78rem;
 color:rgba(100,116,139,0.95);
 font-weight:800;
}
.medexp-courseSearch__meta code{
 font-size:.74rem;
 padding:.12rem .35rem;
 border-radius:9px;
 border:1px solid rgba(148,163,184,0.25);
 background:rgba(248,250,252,0.85);
}

/* Alias: warn badge */
.medexp-badge--warn{background:rgba(245,158,11,0.14);border-color:rgba(245,158,11,0.28);color:rgba(180,83,9,0.98);}


/* ==========================================================
 Dashboard
 ========================================================== */
.medexp-dashStats{
 display:grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap:1rem;
 margin:1.1rem 0 1.1rem 0;
}
@media (max-width: 960px){
 .medexp-dashStats{ grid-template-columns:1fr; }
}
.medexp-dashStat{
 padding:1rem 1.1rem .95rem 1.1rem;
 border-radius:14px;
 background:linear-gradient(135deg, rgba(255,255,255,.65) 0%, rgba(248,250,252,.55) 100%);
 border:1.5px solid rgba(148,163,184,.15);
 transition:border-color .15s ease, box-shadow .15s ease;
}
.medexp-dashStat:hover{
 border-color:rgba(23,157,153,.20);
 box-shadow:0 2px 8px rgba(2,6,23,.04);
}
.medexp-dashStat__label{
 font-weight:900;
 font-size:.72rem;
 color:rgba(15,23,42,.50);
 text-transform:uppercase;
 letter-spacing:.06em;
}
.medexp-dashStat__value{
 font-weight:950;
 font-size:1.65rem;
 letter-spacing:-0.03em;
 margin-top:.3rem;
 color:rgba(15,23,42,.90);
}
.medexp-dashStat__sub{
 margin-top:.25rem;
 font-size:.88rem;
 color:rgba(15,23,42,.55);
 font-weight:700;
}

.medexp-dashGrid{
 display:grid;
 grid-template-columns: 1.45fr 1fr;
 gap:1rem;
 align-items:start;
}
@media (max-width: 980px){
 .medexp-dashGrid{ grid-template-columns:1fr; }
}

.medexp-dashSection{
 padding:1rem;
}
.medexp-dashSection__head{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 gap:1rem;
 margin-bottom:.85rem;
}
.medexp-dashSection__sub{
 font-size:.9rem;
 color:rgba(15,23,42,0.70);
 font-weight:700;
 line-height:1.35;
}

.medexp-dashCourses{
 display:flex;
 flex-direction:column;
 gap:.75rem;
}
.medexp-dashCourse{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:1rem;
 padding:.85rem .95rem;
 border-radius:16px;
 border:1.5px solid rgba(148,163,184,.18);
 background:linear-gradient(135deg, rgba(255,255,255,.70) 0%, rgba(248,250,252,.55) 100%);
 backdrop-filter:blur(6px);
 transition:border-color .15s ease, box-shadow .15s ease, transform .18s cubic-bezier(.34,1.56,.64,1);
}
.medexp-dashCourse:hover{
 border-color:rgba(23,157,153,.22);
 box-shadow:0 2px 10px rgba(2,6,23,.06);
 transform:translateY(-1px);
}
@media (max-width: 720px){
 .medexp-dashCourse{ flex-direction:column; align-items:stretch; }
}
.medexp-dashCourse__title a{
 font-weight:800;
 font-size:1.02rem;
 text-decoration:none;
 color:rgba(15,23,42,0.95);
}
.medexp-dashCourse__title a:hover{ text-decoration:underline; }
.medexp-dashCourse__meta{
 display:flex;
 gap:.55rem;
 align-items:center;
 margin-top:.25rem;
 font-size:.86rem;
}
.medexp-dashCourse__muted{
 color:rgba(100,116,139,0.95);
 font-weight:800;
}
.medexp-progress__bar--sm{ height:8px; border-radius:999px; margin-top:.55rem; background:rgba(148,163,184,.12); overflow:hidden; }
.medexp-progress__bar--sm .medexp-progress__fill{ border-radius:999px; background:linear-gradient(90deg, #3BC6C2, #117673); position:relative; overflow:hidden; }
.medexp-progress__bar--sm .medexp-progress__fill::after{
 content:"";
 position:absolute;
 inset:0;
 background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.30) 40%, rgba(255,255,255,.30) 60%, transparent 100%);
 animation:fcShineSweep 1.8s ease-in-out infinite;
}

.medexp-dashCourse__actions{
 display:flex;
 gap:.5rem;
 flex-wrap:wrap;
 justify-content:flex-end;
}
@media (max-width: 720px){
 .medexp-dashCourse__actions{ justify-content:flex-start; }
}

.medexp-dashWeak{
 display:flex;
 flex-direction:column;
 gap:.65rem;
}
.medexp-dashWeak__row{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:1rem;
 padding:.75rem .9rem;
 border-radius:14px;
 border:1.5px solid rgba(148,163,184,.18);
 background:linear-gradient(135deg, rgba(255,255,255,.65) 0%, rgba(248,250,252,.50) 100%);
 transition:border-color .12s ease;
}
.medexp-dashWeak__row:hover{
 border-color:rgba(244,63,94,.20);
}
@media (max-width: 720px){
 .medexp-dashWeak__row{ flex-direction:column; align-items:stretch; }
}
.medexp-dashWeak__title{
 font-weight:800;
}
.medexp-dashWeak__meta{
 margin-top:.2rem;
 font-size:.86rem;
 display:flex;
 gap:.45rem;
 align-items:center;
 flex-wrap:wrap;
}
.medexp-dashWeak__course{
 font-weight:800;
 color:rgba(15,23,42,0.88);
}
.medexp-dashWeak__muted{
 color:rgba(100,116,139,0.95);
 font-weight:800;
}
.medexp-dashWeak__right{
 display:flex;
 align-items:center;
 gap:.6rem;
 flex-wrap:wrap;
 justify-content:flex-end;
}
@media (max-width: 720px){
 .medexp-dashWeak__right{ justify-content:flex-start; }
}

/* === Gamified Dashboard =================================================== */
.medexp-pageheader--dash{ align-items:flex-end; }
.medexp-xpPill{
 display:inline-flex;
 align-items:center;
 gap:.55rem;
 padding:.45rem .6rem;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.25);
 background:rgba(248,250,252,0.7);
 box-shadow:0 10px 30px rgba(2,6,23,0.08);
}
.medexp-xpPill__lvl{
 font-weight:800;
 padding:.22rem .5rem;
 border-radius:999px;
 background:rgba(15,23,42,0.06);
}
.medexp-xpPill__xp{ font-weight:800; color:rgba(15,23,42,0.86); }

.medexp-kicker{
 font-size:.78rem;
 font-weight:800;
 letter-spacing:.02em;
 text-transform:uppercase;
 color:rgba(71,85,105,0.95);
}
.medexp-h2{
 font-size:1.15rem;
 font-weight:800;
 line-height:1.15;
}
.medexp-muted{ color:rgba(100,116,139,0.96); font-weight:700; }

.medexp-dashTop{
 display:grid;
 grid-template-columns: 1.25fr 0.9fr 0.9fr;
 gap:1rem;
 margin: 1.1rem 0 1.1rem 0;
}
@media (max-width: 980px){
 .medexp-dashTop{ grid-template-columns:1fr; }
}

.medexp-missionCard__head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:1rem;
}
.medexp-missionCard__body{ margin-top:.9rem; }
.medexp-missionMeta{ display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.medexp-missionActions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.9rem; }
.medexp-chestHint{
 margin-top:.6rem;
 font-weight:850;
 font-size:.92rem;
 min-height:1.15rem;
}
.medexp-chestHint.is-ok{ color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95); }
.medexp-chestHint.is-err{ color:rgba(244,63,94,0.95); }

.medexp-ring{
 --p: 0;
 width:72px;
 height:72px;
 border-radius:999px;
 display:grid;
 place-items:center;
 background: conic-gradient(rgba(var(--medexp-brand-blue-rgb,26,79,156),0.95) calc(var(--p)*1%), rgba(148,163,184,0.25) 0);
 position:relative;
 box-shadow:0 14px 40px rgba(2,6,23,0.12);
}
.medexp-ring::after{
 content:'';
 position:absolute;
 inset:8px;
 border-radius:999px;
 background:rgba(255,255,255,0.95);
 border:1px solid rgba(148,163,184,0.18);
}
.medexp-ring span{
 position:relative;
 z-index:1;
 font-weight:800;
 color:rgba(15,23,42,0.9);
 font-size:.95rem;
}

.medexp-streakRow{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin:.4rem 0 .75rem 0; }
.medexp-streakValue{ font-size:2.2rem; font-weight:800; letter-spacing:-0.02em; }
.medexp-streakUnit{ font-size:1rem; font-weight:850; margin-left:.35rem; color:rgba(71,85,105,0.95); }
.medexp-streakMeta{ display:flex; flex-direction:column; gap:.2rem; align-items:flex-end; }

.medexp-weeklySprint__head{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; }

.medexp-dashMain{
 display:grid;
 grid-template-columns: 1.35fr 1fr;
 gap:1rem;
 margin-bottom:1.5rem;
}
@media (max-width: 980px){
 .medexp-dashMain{ grid-template-columns:1fr; }
}
.medexp-dashSection{ padding:1.1rem 1.05rem; }
.medexp-dashSection__head{ display:flex; flex-direction:column; gap:.25rem; margin-bottom: .85rem; }
.medexp-dashSection__sub{ color:rgba(71,85,105,0.95); font-weight:750; }

.medexp-journeyList{ display:flex; flex-direction:column; gap:.75rem; }
.medexp-journeyItem{ display:flex; gap:.75rem; align-items:flex-start; }
.medexp-journeyDot{
 width:14px; height:14px; border-radius:999px;
 margin-top:.25rem;
 background:rgba(148,163,184,0.55);
 border:2px solid rgba(148,163,184,0.35);
}
.medexp-journeyItem.is-done .medexp-journeyDot{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95);
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35);
}
.medexp-journeyBody{ flex:1; }
.medexp-journeyLabel{ font-weight:800; color:rgba(15,23,42,0.92); }
.medexp-journeyMeta{ display:flex; gap:.45rem; align-items:center; margin-top:.2rem; flex-wrap:wrap; }

.medexp-heatmap{
 display:grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap:.6rem;
}
@media (max-width: 560px){
 .medexp-heatmap{ grid-template-columns:1fr; }
}
/* ── Weak-area heatmap tiles ── */
.medexp-heatTile{
 display:flex; flex-direction:column; gap:.65rem;
 text-decoration:none; cursor:pointer;
 padding:.9rem 1rem;
 border-radius:16px;
 border:1px solid rgba(148,163,184,0.18);
 background:#fff;
 box-shadow:0 1px 3px rgba(2,6,23,0.04), 0 4px 12px rgba(2,6,23,0.03);
 transition: transform .15s cubic-bezier(.34,1.56,.64,1), box-shadow .15s ease, border-color .15s ease;
 position:relative; overflow:hidden;
}
.medexp-heatTile::before{
 content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
 border-radius:16px 0 0 16px;
}
.medexp-heatTile:hover{
 transform:translateY(-2px);
 box-shadow:0 8px 24px rgba(2,6,23,0.08), 0 2px 6px rgba(2,6,23,0.04);
 border-color:rgba(148,163,184,0.30);
}
/* ── Layout ── */
.medexp-heatTile__body{ display:flex; align-items:center; gap:.75rem; }
.medexp-heatTile__info{ flex:1; min-width:0; }
.medexp-heatTile__title{
 font-weight:700; font-size:.835rem; line-height:1.35;
 color:#0f172a;
 display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.medexp-heatTile__meta{
 display:flex; align-items:center; gap:.45rem; margin-top:.35rem; flex-wrap:wrap;
}
/* ── Accuracy badge pill ── */
.medexp-heatTile__badge{
 display:inline-flex; align-items:center;
 font-size:.68rem; font-weight:700; letter-spacing:.02em; text-transform:uppercase;
 padding:.15rem .5rem; border-radius:99px;
}
.medexp-heatTile__attempts{
 font-size:.75rem; font-weight:500; color:#64748b;
}
/* ── Circular gauge ── */
.medexp-heatTile__gauge{
 position:relative; width:44px; height:44px; flex-shrink:0;
}
.medexp-heatTile__ring{
 width:44px; height:44px; transform:rotate(-90deg);
}
.medexp-heatTile__ringBg{
 fill:none; stroke:#e2e8f0; stroke-width:3;
}
.medexp-heatTile__ringFg{
 fill:none; stroke-width:3; stroke-linecap:round;
 transition: stroke-dasharray .5s ease;
}
.medexp-heatTile__pct{
 position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
 font-size:.7rem; font-weight:800; color:#334155;
}
/* ── Practice action row ── */
.medexp-heatTile__action{
 display:flex; align-items:center; justify-content:center;
 padding:.4rem 0 .05rem;
 font-size:.78rem; font-weight:700; letter-spacing:.01em;
 border-top:1px solid rgba(148,163,184,0.12);
 transition:color .12s ease;
}
.medexp-heatTile__action span{
 display:inline-block; margin-left:.25rem;
 transition:transform .15s ease;
}
.medexp-heatTile:hover .medexp-heatTile__action span{
 transform:translateX(3px);
}
/* ── Color themes by accuracy ── */
.medexp-heatTile.is-bad::before{ background:#f43f5e; }
.medexp-heatTile.is-bad .medexp-heatTile__ringFg{ stroke:#f43f5e; }
.medexp-heatTile.is-bad .medexp-heatTile__badge{ background:rgba(244,63,94,0.10); color:#e11d48; }
.medexp-heatTile.is-bad .medexp-heatTile__action{ color:#e11d48; }
.medexp-heatTile.is-bad .medexp-heatTile__pct{ color:#e11d48; }

.medexp-heatTile.is-mid::before{ background:#f59e0b; }
.medexp-heatTile.is-mid .medexp-heatTile__ringFg{ stroke:#f59e0b; }
.medexp-heatTile.is-mid .medexp-heatTile__badge{ background:rgba(245,158,11,0.10); color:#d97706; }
.medexp-heatTile.is-mid .medexp-heatTile__action{ color:#d97706; }
.medexp-heatTile.is-mid .medexp-heatTile__pct{ color:#d97706; }

.medexp-heatTile.is-good::before{ background:#179d99; }
.medexp-heatTile.is-good .medexp-heatTile__ringFg{ stroke:#179d99; }
.medexp-heatTile.is-good .medexp-heatTile__badge{ background:rgba(23,157,153,0.10); color:#117673; }
.medexp-heatTile.is-good .medexp-heatTile__action{ color:#117673; }
.medexp-heatTile.is-good .medexp-heatTile__pct{ color:#117673; }

.medexp-badgesGrid{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:.65rem; }
@media (max-width: 560px){ .medexp-badgesGrid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.medexp-badgeCard{
 border:1px solid rgba(148,163,184,0.25);
 border-radius:18px;
 padding:.75rem .8rem;
 background:rgba(255,255,255,0.75);
 display:flex;
 align-items:center;
 gap:.6rem;
}
.medexp-badgeCard__icon{
 width:38px; height:38px;
 border-radius:14px;
 display:grid; place-items:center;
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 color:rgba(79,70,229,0.95);
 font-weight:800;
}
.medexp-badgeCard__label{ font-weight:800; color:rgba(15,23,42,0.9); }

.medexp-dashCourses{ display:flex; flex-direction:column; gap:.75rem; }
.medexp-dashCourse{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:1rem;
 padding:.85rem .9rem;
 border-radius:18px;
 border:1px solid rgba(148,163,184,0.25);
 background:rgba(248,250,252,0.7);
}
@media (max-width: 720px){
 .medexp-dashCourse{ flex-direction:column; align-items:stretch; }
}
.medexp-dashCourse__title a{ text-decoration:none; font-weight:800; color:rgba(15,23,42,0.92); }
.medexp-dashCourse__meta{ display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-top:.25rem; }
.medexp-dashCourse__muted{ color:rgba(100,116,139,0.96); font-weight:800; }
.medexp-dashCourse__actions{ display:flex; gap:.55rem; flex-wrap:wrap; justify-content:flex-end; }

.medexp-offers{ display:flex; flex-direction:column; gap:.75rem; }
.medexp-offerCard{
 border:1px solid rgba(148,163,184,0.25);
 border-radius:18px;
 padding:.85rem .9rem;
 background:rgba(255,255,255,0.75);
}
.medexp-offerCard__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }
.medexp-offerCard__title{ font-weight:800; color:rgba(15,23,42,0.92); }
.medexp-offerCard__actions{ margin-top:.75rem; }

.medexp-lbControls{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.medexp-toggle{ display:flex; align-items:center; gap:.5rem; font-weight:800; color:rgba(15,23,42,0.88); }
.medexp-toggle input{ transform: translateY(1px); }
.medexp-lbList{ display:flex; flex-direction:column; gap:.5rem; margin-top:.85rem; }
.medexp-lbRow{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.55rem .65rem; border-radius:14px; border:1px solid rgba(148,163,184,0.22); background:rgba(248,250,252,0.65); }
.medexp-lbRow.is-me{ box-shadow: inset 0 0 0 999px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06); border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25); }
.medexp-lbLeft{ display:flex; align-items:center; gap:.6rem; }
.medexp-lbRank{ width:28px; height:28px; border-radius:12px; display:grid; place-items:center; font-weight:800; background:rgba(15,23,42,0.06); }
.medexp-lbName{ font-weight:800; }
.medexp-lbXP{ font-weight:800; color:rgba(71,85,105,0.98); }

/* -------------------------------------------------------------------------- */
/* Vertical rhythm: prevent cards/sections from "touching" on stacked layouts */
/* -------------------------------------------------------------------------- */
.medexp-container > :where(section,div,article,aside,nav) + :where(section,div,article,aside,nav){
 margin-top: var(--medexp-space-4);
}

/* Lesson bodies are generated as stacked <section class="medexp-card medexp-section"> blocks */
.medexp-lesson__content > :where(section,div,article,aside,nav) + :where(section,div,article,aside,nav){
 margin-top: var(--medexp-space-4);
}

/* Dashboard/main columns often stack card modules inside <section class="medexp-main"> */
.medexp-main > :where(section,div,article,aside,nav) + :where(section,div,article,aside,nav){
 margin-top: var(--medexp-space-4);
}

/* -------------------------------------------------------------------------- */
/* Button/link contrast: anchor buttons were inheriting .medexp-scope a color */
/* -------------------------------------------------------------------------- */
/* .medexp-scope a has higher specificity than .medexp-btn--* (class only). */
/* Ensure anchor buttons keep intended foreground colors everywhere. */
.medexp-scope a.medexp-btn,
.medexp-scope a.medexp-fc-btn,
.medexp-scope a.medexp-qb-btn{
 text-decoration:none;
}

.medexp-scope a.medexp-btn--primary,
.medexp-scope a.medexp-btn--primary:visited,
.medexp-scope a.medexp-btn--secondary,
.medexp-scope a.medexp-btn--secondary:visited{
 color: #fff !important;
}
.medexp-scope .medexp-btn--primary *,
.medexp-scope .medexp-btn--secondary *{ color: inherit !important; }

.medexp-scope a.medexp-btn--ghost,
.medexp-scope a.medexp-btn--ghost:visited{
 color: var(--medexp-text) !important;
}

.medexp-scope a.medexp-fc-btn,
.medexp-scope a.medexp-fc-btn:visited{
 color: var(--medexp-text) !important;
}
.medexp-scope a.medexp-fc-btn--primary,
.medexp-scope a.medexp-fc-btn--primary:visited{
 color: var(--medexp-primary-contrast) !important;
}

.medexp-scope a.medexp-qb-btn,
.medexp-scope a.medexp-qb-btn:visited{
 color: rgba(30,41,59,0.92) !important;
}




/* === Callout polish (final) ===
 Goal: callouts should look intentional, readable, and "stand out".
 Works with either data-variant="..." or legacy modifier classes.
*/
.medexp-callout{
 position:relative;
 padding:calc(var(--medexp-space-4) + 0.1rem) var(--medexp-space-5);
 padding-left:calc(var(--medexp-space-5) + 0.65rem);
 border-radius:var(--medexp-radius-2xl);
 border:1px solid rgba(148,163,184,0.45);
 background:rgba(255,255,255,0.92);
 box-shadow:0 1px 2px rgba(15,23,42,0.06), 0 10px 30px rgba(15,23,42,0.06);
 overflow:hidden;
}
.medexp-callout::before{
 content:"";
 position:absolute;
 left:0;top:0;bottom:0;
 width:10px;
 background:var(--medexp-callout-accent, var(--medexp-primary));
 opacity:0.95;
}
.medexp-callout::after{
 content:"";
 position:absolute;
 left:0;top:0;right:0;bottom:0;
 background:linear-gradient(90deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06), rgba(255,255,255,0));
 pointer-events:none;
}
.medexp-callout > *{position:relative;}
.medexp-callout p{margin:0 0 var(--medexp-space-3);}
.medexp-callout > *:last-child{margin-bottom:0;}
.medexp-callout strong{font-weight:800;}

/* Variant mapping */
.medexp-callout[data-variant="info"], .medexp-callout--info{
 --medexp-callout-accent:var(--medexp-info);
 background:rgba(56,189,248,0.10);
 border-color:rgba(56,189,248,0.28);
}
.medexp-callout[data-variant="tip"], .medexp-callout--success{
 --medexp-callout-accent:var(--medexp-success);
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.28);
}
.medexp-callout[data-variant="warning"], .medexp-callout--warning{
 --medexp-callout-accent:var(--medexp-warning);
 background:rgba(245,158,11,0.12);
 border-color:rgba(245,158,11,0.30);
}
.medexp-callout[data-variant="trap"], .medexp-callout--danger{
 --medexp-callout-accent:var(--medexp-danger);
 background:rgba(244,63,94,0.10);
 border-color:rgba(244,63,94,0.28);
}
.medexp-callout[data-variant="high-yield"]{
 --medexp-callout-accent:var(--medexp-primary);
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.28);
}

/* ========================================================================== */
/* v5: Full-width shell + no horizontal scrollbar + no sidebar overlap */
/* ========================================================================== */

/* Prevent the bottom horizontal scrollbar caused by full-bleed wrappers */
html, body{overflow-x:hidden;}

/* ========================================================================== */
/* v6: Sticky sidebar fix */
/* -------------------------------------------------------------------------- */
/* position: sticky stops working if any ancestor has overflow != visible. */
/* The app shell (.medexp-shell) previously used overflow:hidden for blobs, */
/* which prevents the left rail from sticking on lesson pages. */
/* Keep x-clipping to avoid horizontal scroll, but allow y overflow. */
/* ========================================================================== */
.medexp-shell{
 overflow:visible !important;
 overflow-x:hidden !important;
}

@media (min-width: 981px){
 :root{ --medexp-sticky-top: calc(var(--wp-admin--admin-bar--height, 0px) + 5.75rem); }
 .medexp-sidebar{
 position:sticky !important;
 top:var(--medexp-sticky-top) !important;
 align-self:start;
 }
 /* Practice/course pages sometimes set the sidebar itself scrollable; undo. */
 .medexp-scope--practice .medexp-sidebar{
 max-height:none !important;
 overflow:visible !important;
 }
}

/* Break out of theme "content" containers on lesson pages */
.medexp-shell{
 width:100vw;
 max-width:100vw;
 margin-left:calc(50% - 50vw);
 margin-right:calc(50% - 50vw);
}

/* Let our internal container actually use the available width */
/* Grid children must be allowed to shrink (prevents sidebar overlaying content) */
.medexp-layout > *{min-width:0;}
.medexp-sidebar{max-width:100%;}

/* Make the sidebar sticky (desktop only) without creating an internal scrollbar */
.medexp-sidebar__inner{
 max-height:none;
 overflow:visible;
 padding:0;
 scrollbar-gutter:auto;
}

/* Disable any nested sticky/scroll cards inside the sidebar */
.medexp-sidebar .medexp-card{
 position:static !important;
 top:auto !important;
 max-height:none !important;
 overflow:visible !important;
}

/* Allow long outline titles to wrap instead of forcing the sidebar wider */
.medexp-outline details > summary,
.medexp-outline__summaryTitle,
.medexp-outline__link{
 min-width:0;
}
.medexp-outline__summaryTitle{white-space:normal;overflow:visible;text-overflow:clip;}
.medexp-outline__link{white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:auto;}

/* Keep the main column from being pushed wider by long content */
.medexp-main{min-width:0;}

/* Lesson pages: in the "Course outline" sidebar, stack Practice/Flashcards under the title
 even on desktop to preserve title readability in the narrow rail. */
.medexp-toc--courseOutline .medexp-outline details > summary{
 grid-template-columns:auto minmax(0, 1fr) auto;
 grid-template-areas:
 "chev title count"
 "actions actions actions";
 align-items:start;
}
.medexp-toc--courseOutline .medexp-outline details > summary .medexp-outline__actions{
 justify-self:start;
 margin-top:0.2rem;
}



/* Mobile: stack Practice/Flashcards pills under the title */
@media (max-width: 640px){
 .medexp-outline details > summary{
 grid-template-columns:auto minmax(0, 1fr) auto;
 grid-template-areas:
 "chev title count"
 "actions actions actions";
 align-items:start;
 }
 .medexp-outline details > summary .medexp-outline__actions{
 justify-self:start;
 margin-top:0.2rem;
 }
 .medexp-outline__action{
 font-size:0.72rem;
 padding:0.2rem 0.55rem;
 }
 .medexp-outline__actionCountLabel{display:none;}

 /* Topic rows: let the right-side badges/actions drop under the title */
 .medexp-outline__node--topic{grid-template-columns:auto minmax(0,1fr);align-items:start;}
 .medexp-outline__metaRight{grid-column:1 / -1;justify-content:flex-start;margin-top:0.15rem;}
}



/* ========================================================================== */
/* Sticky sidebar fix */
/* Sticky fails when any ancestor has overflow != visible. The MedEx shell */
/* previously used overflow:hidden (for decorative blobs), which prevented */
/* position:sticky on the sidebar. */
/* ========================================================================== */
.medexp-shell{overflow:visible !important;}
/* Decorative background blobs can cause unintended overflow once visible. */
.medexp-shell::before,
.medexp-shell::after{display:none !important;}

@media (min-width: 860px){
 .medexp-sidebar{position:sticky; top:1.25rem;}
 /* WP admin bar (logged-in) */
 body.admin-bar .medexp-sidebar{top:calc(32px + 1.25rem);}
}



/* Sticky safety: ensure common MedEx layout wrappers don't block sticky */
.medexp-layout,
.medexp-main,
.medexp-content{overflow:visible !important;}

/* ========================================================================== */
/* Step 2.2 — Session Review (exam-style) */
/* ========================================================================== */

/* Make session UIs slightly larger/more readable on desktop. */
.medexp-qb-sessionReview,
.medexp-qb-sessionTake,
.medexp-qb-sessionSummary{font-size:16px; color:rgba(15,23,42,0.92);}
@media (min-width: 1100px){
 .medexp-qb-sessionReview,
 .medexp-qb-sessionTake,
 .medexp-qb-sessionSummary{font-size:17px;}
}
@media (min-width: 1100px){
 .medexp-qb-sessionReview .medexp-qb-case,
 .medexp-qb-sessionTake .medexp-qb-case{grid-template-columns:420px 1fr;}
}
@media (min-width: 1500px){
 .medexp-qb-sessionReview .medexp-qb-case,
 .medexp-qb-sessionTake .medexp-qb-case{grid-template-columns:460px 1fr;}
}
.medexp-qb-sessionReview .medexp-sr-head{
 padding:0.75rem 0.9rem;
 border:1px solid rgba(15, 23, 42, 0.08);
 border-radius:0.9rem;
 background:rgba(255,255,255,0.7);
 margin-bottom:0.8rem;
}
.medexp-qb-sessionReview .medexp-sr-head__title{
 font-weight:800;
 font-size:1.05rem;
 margin-bottom:0.55rem;
}
.medexp-qb-sessionReview .medexp-sr-tabs{
 display:flex;
 gap:0.45rem;
 flex-wrap:wrap;
}
.medexp-qb-sessionReview .medexp-sr-tab{
 display:inline-flex;
 align-items:center;
 gap:0.45rem;
 padding:0.35rem 0.55rem;
 border-radius:999px;
 border:1px solid rgba(15, 23, 42, 0.12);
 background:#fff;
 font-weight:700;
 cursor:pointer;
}
.medexp-qb-sessionReview .medexp-sr-tab.is-active{
 border-color:rgba(15, 23, 42, 0.28);
 box-shadow:0 1px 10px rgba(15, 23, 42, 0.08);
}
.medexp-qb-sessionReview .medexp-sr-tab__count{
 display:inline-flex;
 min-width:1.6rem;
 justify-content:center;
 padding:0.05rem 0.5rem;
 border-radius:999px;
 background:rgba(15, 23, 42, 0.06);
 font-size:0.78rem;
}
.medexp-qb-sessionReview .medexp-sr-meta{
 margin-top:0.55rem;
 color:rgba(15, 23, 42, 0.75);
}
.medexp-qb-sessionReview .medexp-sr-meta__line{margin-top:0.15rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.medexp-qb-sessionReview .medexp-sr-meta__sep{margin:0 0.4rem; opacity:0.6;}

.medexp-qb-sessionReview .medexp-sr-quick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:0.7rem;}
.medexp-qb-sessionReview .medexp-sr-quick .medexp-btn{border-radius:999px;}
.medexp-qb-sessionReview .medexp-sr-flashBtn{border-radius:999px;}
.medexp-qb-sessionReview .medexp-qb-nav__right{gap:12px;}

.medexp-qb-sessionReview .medexp-sr-left__title{
 font-weight:800;
 margin-bottom:0.6rem;
}
.medexp-qb-sessionReview .medexp-sr-list{
 display:flex;
 flex-direction:column;
 gap:0.35rem;
}
.medexp-qb-sessionReview .medexp-sr-row{
 display:flex;
 align-items:center;
 gap:0.45rem;
 width:100%;
 text-align:left !important;
 padding:0.45rem 0.55rem;
 border-radius:0.75rem;
 border:1px solid rgba(15, 23, 42, 0.10);
 background:#fff;
 cursor:pointer;
}
.medexp-qb-sessionReview .medexp-sr-row.is-active{
 border-color:rgba(15, 23, 42, 0.28);
 box-shadow:0 1px 10px rgba(15, 23, 42, 0.08);
}
.medexp-qb-sessionReview .medexp-sr-row__n{font-weight:800; min-width:1.6rem;}
.medexp-qb-sessionReview .medexp-sr-row__dot{font-size:0.65rem; opacity:0.8;}
.medexp-qb-sessionReview .medexp-sr-row__dot.is-ok{color:#16a34a;}
.medexp-qb-sessionReview .medexp-sr-row__dot.is-bad{color:#dc2626;}
.medexp-qb-sessionReview .medexp-sr-row__dot.is-muted{color:rgba(15, 23, 42, 0.35);}
.medexp-qb-sessionReview .medexp-sr-row__type{font-size:0.85rem; opacity:0.8; flex:1;}
.medexp-qb-sessionReview .medexp-sr-row__mark,
.medexp-qb-sessionReview .medexp-sr-row__note{font-size:0.92rem; opacity:0.9;}

.medexp-qb-sessionReview .medexp-sr-qwrap{
 padding:0.2rem 0.1rem;
}
.medexp-qb-sessionReview .medexp-sr-note{
 border:1px solid rgba(15, 23, 42, 0.10);
 border-radius:0.9rem;
 background:#fff;
 padding:0.75rem 0.85rem;
 margin:0.85rem 0;
}
.medexp-qb-sessionReview .medexp-sr-note__title{font-weight:800; margin-bottom:0.35rem;}
.medexp-qb-sessionReview .medexp-sr-why{margin-top:0.75rem;}
.medexp-qb-sessionReview .medexp-sr-why__row{display:grid; grid-template-columns:3rem 1fr; gap:0.6rem; padding:0.4rem 0; border-top:1px solid rgba(15, 23, 42, 0.07);} 
.medexp-qb-sessionReview .medexp-sr-why__row:first-child{border-top:none;}
.medexp-qb-sessionReview .medexp-sr-why__k{font-weight:800; opacity:0.8;}

/* Read-only interactions during review */
.medexp-is-readonly{pointer-events:none;}
.medexp-qb-interaction.is-review .medexp-qb-choice{cursor:default;}
/* Inline correct / wrong / missed indicators on answer option cards */
.medexp-qb-interaction.is-review .medexp-qb-choice:hover{box-shadow:none;transform:none;border-color:inherit;}
.medexp-qb-choice.is-correct{border-color:rgba(16,185,129,0.55) !important;background:linear-gradient(135deg, rgba(16,185,129,0.06), rgba(16,185,129,0.03)) !important;box-shadow:0 0 0 3px rgba(16,185,129,0.06);}
.medexp-qb-choice.is-correct .medexp-qb-choice__label{background:linear-gradient(135deg, rgba(16,185,129,0.25), rgba(16,185,129,0.15));border-color:rgba(16,185,129,0.5);color:#047857;}
.medexp-qb-choice.is-correct .medexp-qb-choice__text{color:#047857;}
.medexp-qb-choice.is-wrong{border-color:rgba(239,68,68,0.5) !important;background:linear-gradient(135deg, rgba(239,68,68,0.06), rgba(239,68,68,0.02)) !important;box-shadow:0 0 0 3px rgba(239,68,68,0.05);}
.medexp-qb-choice.is-wrong .medexp-qb-choice__label{background:linear-gradient(135deg, rgba(239,68,68,0.2), rgba(239,68,68,0.1));border-color:rgba(239,68,68,0.45);color:#dc2626;}
.medexp-qb-choice.is-wrong .medexp-qb-choice__text{color:#b91c1c;}
.medexp-qb-choice.is-missed{border-color:rgba(16,185,129,0.4) !important;border-style:dashed !important;background:linear-gradient(135deg, rgba(16,185,129,0.04), rgba(16,185,129,0.01)) !important;}
.medexp-qb-choice.is-missed .medexp-qb-choice__label{background:rgba(16,185,129,0.12);border-color:rgba(16,185,129,0.35);color:#059669;}
.medexp-qb-choice.is-missed .medexp-qb-choice__text{color:#059669;}
.medexp-qb-choice__status{display:flex;align-items:center;flex-shrink:0;margin-left:auto;}
.medexp-qb-choice__ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:.82rem;font-weight:900;}
.medexp-qb-choice.is-correct .medexp-qb-choice__ic{background:rgba(16,185,129,0.2);color:#047857;box-shadow:0 0 0 3px rgba(16,185,129,0.08);}
.medexp-qb-choice.is-wrong .medexp-qb-choice__ic{background:rgba(239,68,68,0.18);color:#dc2626;box-shadow:0 0 0 3px rgba(239,68,68,0.06);}
.medexp-qb-choice.is-missed .medexp-qb-choice__ic{background:rgba(16,185,129,0.15);color:#059669;box-shadow:0 0 0 3px rgba(16,185,129,0.06);}

/* === Sessions UI (Create Test / My Sessions / Take Session / Summary) === */
.medexp-qb-hub__head{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 gap:12px;
 margin-bottom:12px;
}
.medexp-qb-hub__title{
 font-size:1.25rem;
 font-weight:800;
}
.medexp-qb-help{
 font-size:0.92rem;
 opacity:0.8;
}

/* --- Practice builder polish (friendly UI) --- */
.medexp-qb-hub{display:flex;flex-direction:column;gap:16px;}
.medexp-qb-input--hidden{display:none !important;}

.medexp-qb-hero{
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border-radius:1.15rem;
 padding:1.25rem 1.35rem;
 background:
  radial-gradient(ellipse 65% 55% at 8% 15%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.09) 0%, transparent 70%),
  radial-gradient(ellipse 45% 50% at 92% 80%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06) 0%, transparent 70%),
  linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(248,250,252,0.96) 100%);
 box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 10px 28px rgba(17,24,39,0.06);
}
.medexp-qb-hero__row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.medexp-qb-hero__kicker{font-size:0.78rem;font-weight:900;letter-spacing:0.08em;text-transform:uppercase;color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.90);}
.medexp-qb-hero__title{font-size:1.45rem;font-weight:950;line-height:1.1;margin-top:3px;color:rgba(15,23,42,0.94);}
.medexp-qb-hero__sub{max-width:56ch;margin-top:8px;font-size:0.95rem;color:rgba(15,23,42,0.68);line-height:1.45;}
.medexp-qb-hero__right{min-width:260px;flex:1;display:flex;justify-content:flex-end;}
.medexp-qb-hero__quick{display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.medexp-qb-hero__quickLabel{font-size:0.82rem;font-weight:800;color:rgba(15,23,42,0.65);}
.medexp-qb-presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.medexp-qb-presetBtn{white-space:nowrap;transition:background .15s ease, box-shadow .15s ease, transform .15s ease;}
.medexp-qb-presetBtn:hover{transform:translateY(-1px);}

.medexp-qb-section{border:1px solid rgba(15,23,42,0.08);border-radius:1rem;background:#fff;padding:0.95rem 1rem;box-shadow:0 1px 4px rgba(15,23,42,0.03);}
.medexp-qb-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.medexp-qb-section__title{font-weight:900;font-size:1.0rem;}
.medexp-qb-summaryPill{display:inline-flex;align-items:center;gap:8px;padding:0.3rem 0.6rem;border-radius:999px;border:1px solid rgba(15,23,42,0.10);background:rgba(15,23,42,0.03);font-weight:800;font-size:0.84rem;color:rgba(15,23,42,0.80);}

.medexp-qb-coursePill{display:flex;align-items:center;gap:8px;padding:0.6rem 0.75rem;border-radius:0.95rem;border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.03);font-weight:900;color:rgba(15,23,42,0.92);}
.medexp-qb-coursePill .tw-ico{opacity:0.85;}

.medexp-qb-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;border:1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);border-radius:1.1rem;background:linear-gradient(135deg, rgba(255,255,255,0.98), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.03));padding:1rem 1.05rem;box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 6px 18px rgba(17,24,39,0.05);}
.medexp-qb-footer__left{flex:1;min-width:260px;display:flex;flex-direction:column;gap:6px;}
.medexp-qb-footer__right{display:flex;justify-content:flex-end;}
.medexp-qb-startBtn{padding:0.78rem 1.3rem;font-weight:900;font-size:0.95rem;border-radius:999px;box-shadow:0 2px 10px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.2);transition:box-shadow .15s ease, transform .15s ease;}
.medexp-qb-startBtn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.28);}

/* --- Premium builder layout (v8) --- */
.medexp-qb-builder{
 display:grid;
 grid-template-columns:minmax(0, 1.35fr) minmax(280px, 0.65fr);
 gap:14px;
 align-items:start;
}
@media (max-width: 980px){
 .medexp-qb-builder{grid-template-columns:1fr;}
}

.medexp-qb-builder__main{min-width:0; display:flex; flex-direction:column; gap:14px;}
.medexp-qb-builder__side{min-width:0; display:flex; flex-direction:column; gap:14px;}


/* --- Setup subtabs (v9) --- */
.medexp-qb-tabbed{display:flex;flex-direction:column;gap:12px;}
.medexp-qb-subtabs{
 display:flex;
 gap:4px;
 flex-wrap:nowrap;
 padding:5px;
 border:1px solid rgba(15,23,42,0.10);
 border-radius:999px;
 background:rgba(15,23,42,0.03);
 overflow:auto;
}
.medexp-qb-subtab{
 appearance:none !important;
 border:1px solid transparent;
 background:transparent;
 border-radius:999px;
 padding:0.48rem 0.75rem;
 display:inline-flex;
 align-items:center;
 gap:8px;
 cursor:pointer;
 font-weight:900;
 font-size:0.88rem;
 color:rgba(15,23,42,0.65);
 white-space:nowrap;
 transition:background .15s ease, color .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.medexp-qb-subtab:hover{background:rgba(15,23,42,0.05);}
.medexp-qb-subtab.is-active{
 background:#fff;
 color:rgba(15,23,42,0.92);
 border:1px solid rgba(15,23,42,0.10);
 box-shadow:0 1px 6px rgba(15,23,42,0.08);
}
.medexp-qb-subtab__meta{
 font-size:0.78rem;
 font-weight:900;
 color:rgba(15,23,42,0.65);
 padding:0.12rem 0.45rem;
 border-radius:999px;
 border:1px solid rgba(15,23,42,0.10);
 background:rgba(15,23,42,0.02);
}
.medexp-qb-tabPanes{min-width:0;}
.medexp-qb-tabPane{display:none;animation:medexpFadeIn 120ms ease;}
.medexp-qb-tabPane.is-active{display:block;}
@keyframes medexpFadeIn{
 from{opacity:0;transform:translateY(2px);}
 to{opacity:1;transform:translateY(0);}
}
.medexp-qb-paneIntro{display:flex;align-items:flex-start;gap:10px;margin:4px 0 10px;}
.medexp-qb-paneIntro__title{font-weight:900;}
.medexp-qb-paneIntro__sub{font-size:0.9rem;color:rgba(15,23,42,0.65);margin-top:2px;}

.medexp-qb-filters{display:flex; flex-direction:column; gap:14px;}

.medexp-qb-sticky{
 position:sticky;
 top:92px;
}
@media (max-width: 980px){
 .medexp-qb-sticky{position:static; top:auto;}
}

/* Summary card */
.medexp-qb-summaryCard{
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border-radius:1.1rem;
 background:
  radial-gradient(ellipse 70% 60% at 10% 10%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06) 0%, transparent 65%),
  linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,250,252,0.96) 100%);
 padding:1rem 1.05rem;
 box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 8px 22px rgba(17,24,39,0.06);
}
.medexp-qb-summaryCard__head{
 display:flex;
 align-items:center;
 gap:10px;
 margin-bottom:12px;
 padding-bottom:10px;
 border-bottom:1px solid rgba(15,23,42,0.06);
}
.medexp-qb-summaryCard__title{
 font-weight:950;
 font-size:1.05rem;
}
.medexp-qb-sumRows{display:flex; flex-direction:column; gap:8px; margin-bottom:12px;}
.medexp-qb-sumRow{display:flex; align-items:baseline; justify-content:space-between; gap:10px;}
.medexp-qb-sumRow__k{font-size:0.85rem; color:rgba(15,23,42,0.62); font-weight:800;}
.medexp-qb-sumRow__v{font-size:0.92rem; color:rgba(15,23,42,0.90); font-weight:900; text-align:right;}
.medexp-qb-summaryCard__cta .medexp-btn{width:100%; justify-content:center; gap:10px;}

/* Performance strip (per scope) */
.medexp-qb-perfStrip{
 border-top:1px solid rgba(15,23,42,0.08);
 padding-top:12px;
 margin-top:10px;
 margin-bottom:12px;
}
.medexp-qb-perfStrip__head{display:flex; align-items:center; gap:8px; margin-bottom:10px;}
.medexp-qb-perfStrip__title{font-size:0.84rem; font-weight:900; color:rgba(15,23,42,0.78); letter-spacing:0.02em;}
.medexp-qb-perfStrip__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px;}
.medexp-qb-perfStat{display:flex; align-items:flex-start; gap:8px; padding:9px 10px; border-radius:0.85rem; background:linear-gradient(135deg, rgba(255,255,255,0.95), rgba(15,23,42,0.025)); border:1px solid rgba(15,23,42,0.07);}
.medexp-qb-perfStat .tw-ico{opacity:0.65;}
.medexp-qb-perfStat__body{display:flex; flex-direction:column; min-width:0;}
.medexp-qb-perfStat__k{font-size:0.75rem; font-weight:800; color:rgba(15,23,42,0.62); line-height:1.1;}
.medexp-qb-perfStat__v{font-size:0.92rem; font-weight:950; color:rgba(15,23,42,0.92); margin-top:2px;}
.medexp-qb-perfStrip__hint{margin-top:8px; font-size:0.8rem; color:rgba(15,23,42,0.62); font-weight:700;}
.medexp-qb-perfStrip.is-loading{opacity:0.82; filter:saturate(0.9);} 
@media (max-width: 520px){
 .medexp-qb-perfStrip__grid{grid-template-columns:1fr;}
}


/* CTA stack (Start + Resume) */
.medexp-qb-ctaStack{
 display:flex;
 flex-direction:column;
 gap:8px;
}

/* Recent sessions card */
.medexp-qb-historyCard{
 margin-top:0;
 border:1px solid rgba(15,23,42,0.08);
 border-radius:1.1rem;
 background:#fff;
 padding:1rem 1.05rem;
 box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 6px 18px rgba(17,24,39,0.05);
}
.medexp-qb-historyCard__head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 margin-bottom:12px;
 padding-bottom:10px;
 border-bottom:1px solid rgba(15,23,42,0.06);
}
.medexp-qb-historyCard__left{
 display:flex;
 align-items:center;
 gap:10px;
}
.medexp-qb-historyCard__title{
 font-weight:900;
 font-size:1.0rem;
 color:rgba(15,23,42,0.92);
}
.medexp-qb-historyRows{
 display:flex;
 flex-direction:column;
 gap:8px;
}

.medexp-qb-historyRow{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:10px;
 padding:0.7rem 0.8rem;
 border:1px solid rgba(15,23,42,0.08);
 border-radius:0.95rem;
 background:rgba(15,23,42,0.015);
 text-decoration:none;
 color:inherit;
 transition:background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.medexp-qb-historyRow:hover{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.04);
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18);
 box-shadow:0 2px 8px rgba(15,23,42,0.06);
 transform:translateY(-1px);
}
.medexp-qb-historyRow__left{
 min-width:0;
}
.medexp-qb-historyRow__top{
 display:flex;
 align-items:center;
 gap:8px;
 font-weight:900;
 font-size:0.92rem;
 line-height:1.2;
}
.medexp-qb-historyRow__mode{
 color:rgba(15,23,42,0.92);
}
.medexp-qb-historyRow__meta{
 margin-top:3px;
 font-size:0.82rem;
 color:rgba(15,23,42,0.62);
 font-weight:800;
 display:flex;
 gap:10px;
 flex-wrap:wrap;
}
.medexp-qb-historyRow__right{
 text-align:right;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.medexp-qb-historyRow__stat{
 font-size:0.9rem;
 font-weight:900;
 color:rgba(15,23,42,0.90);
}
.medexp-qb-historyRow__sub{
 font-size:0.8rem;
 color:rgba(15,23,42,0.62);
 font-weight:800;
}


/* Panels (Focus + Advanced) */
.medexp-qb-panel{
 border:1px solid rgba(15,23,42,0.08);
 border-radius:1rem;
 background:#fff;
 overflow:hidden;
 box-shadow:0 1px 4px rgba(15,23,42,0.03);
}
.medexp-qb-panel > summary{
 list-style:none;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 padding:0.85rem 0.9rem;
 cursor:pointer;
 user-select:none;
}
.medexp-qb-panel > summary::-webkit-details-marker{display:none;}
.medexp-qb-panel__sumLeft{display:flex; align-items:center; gap:10px;}
.medexp-qb-panel__sumTitle{font-weight:900;}
.medexp-qb-panel__meta{font-size:0.85rem; color:rgba(15,23,42,0.62); font-weight:800; white-space:nowrap;}
.medexp-qb-panel__body{padding:0 0.9rem 0.9rem;}
.medexp-qb-panel[open] > summary .tw-ico:last-child{transform:rotate(180deg);}
.medexp-qb-panel > summary .tw-ico:last-child{transition:transform 160ms ease;}

/* Icons sizing (match dashboard) */
.medexp-qb-hub .tw-ico{width:16px; height:16px; flex:0 0 auto; opacity:0.92;}
.medexp-qb-presetBtn .tw-ico{width:14px; height:14px; opacity:0.85;}
.medexp-seg__btn .tw-ico{width:14px; height:14px; opacity:0.85; margin-right:0;}
.medexp-qb-chip__ico .tw-ico{width:16px; height:16px; opacity:0.88;}

/* Q-type chips as toggles */
.medexp-qb-chips--toggle .medexp-qb-chip{cursor:pointer; transition:background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;}
.medexp-qb-chips--toggle .medexp-qb-chip input{display:none;}
.medexp-qb-chips--toggle .medexp-qb-chip.is-active{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.30);
 box-shadow:0 1px 10px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
}

/* Slightly tighter section paddings in main column */
@media (min-width: 981px){
 .medexp-qb-section{padding:0.8rem 0.85rem;}
}


.medexp-qb-caseMix{border:1px solid rgba(15,23,42,0.10);border-radius:1rem;background:rgba(15,23,42,0.02);padding:0.75rem 0.85rem;margin-top:12px;}

/* segmented mode switch */
.medexp-seg{display:inline-flex;gap:3px;padding:3px;border-radius:999px;border:1px solid rgba(15,23,42,0.10);background:rgba(15,23,42,0.035);}
.medexp-seg__btn{appearance:none !important;border:none;background:transparent;border-radius:999px;padding:0.48rem 0.75rem;font-weight:900;font-size:0.88rem;color:rgba(15,23,42,0.65);cursor:pointer;
 display:inline-flex;
 align-items:center;
 gap:6px;
 transition:background .15s ease, color .15s ease, box-shadow .15s ease;
}
.medexp-seg__btn:hover{background:rgba(15,23,42,0.05);}
.medexp-seg__btn.is-active{background:#fff;color:rgba(15,23,42,0.92);box-shadow:0 1px 6px rgba(15,23,42,0.10);}

/* bigger chips with icons */
.medexp-qb-chips--big .medexp-qb-chip{padding:0.45rem 0.65rem;}
.medexp-qb-chip__ico{font-size:0.95rem;line-height:1;}
.medexp-qb-chip__txt{font-weight:800;}

/* Friendly advanced grid */
.medexp-qb-advGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;}
.medexp-qb-subcard{border:1px solid rgba(15,23,42,0.10);border-radius:0.95rem;background:rgba(15,23,42,0.02);padding:0.75rem 0.8rem;min-width:0;}
.medexp-qb-subcard__title{font-weight:900;margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.medexp-qb-subcard__title .tw-ico{flex:0 0 auto;}
.medexp-qb-subcard__hint{font-size:0.85rem;color:rgba(15,23,42,0.65);margin-bottom:8px;}

.medexp-qb-advanced--friendly{background:rgba(255,255,255,0.90);}
.medexp-qb-advanced--friendly summary{font-weight:900;}


.medexp-qb-formGrid{
 display:grid;
 grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
 gap:12px;
 margin-bottom:12px;
}
.medexp-qb-formRow{
 display:flex;
 flex-direction:column;
 gap:6px;
 margin-bottom:12px;
}
.medexp-qb-input{
 width:100%;
 padding:0.65rem 0.75rem;
 border:1px solid rgba(15, 23, 42, 0.15);
 border-radius:0.8rem;
 background:#fff;
}

.medexp-qb-combo{display:flex;gap:8px;align-items:stretch;}
.medexp-qb-combo .medexp-qb-input{flex:1 1 auto;}
.medexp-qb-input--preset{flex:0 0 10.5rem;}
@media (max-width:520px){.medexp-qb-input--preset{flex-basis:9rem;}}

/* When preset selects are upgraded into the unified dashboard dropdown UI,
   preserve the intended fixed width so the control doesn't collapse. */
.medexp-qb-combo .tw-courseDropdown.tw-dd.medexp-qb-input--preset{flex:0 0 10.5rem;min-width:10.5rem;}
@media (max-width:520px){
 .medexp-qb-combo .tw-courseDropdown.tw-dd.medexp-qb-input--preset{flex-basis:9rem;min-width:9rem;}
}
.medexp-qb-combo .tw-courseDropdown.tw-dd.medexp-qb-input--preset .tw-courseDropdown__btn{height:100%;}
.medexp-qb-actionsRow{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 flex-wrap:wrap;
 margin-top:10px;
}
.medexp-qb-actionsRow__right{display:flex; gap:8px; flex-wrap:wrap;}

.medexp-qb-chips{display:flex; flex-wrap:wrap; gap:8px;}
.medexp-qb-chip{
 display:inline-flex;
 align-items:center;
 gap:6px;
 padding:0.35rem 0.55rem;
 border-radius:999px;
 background:rgba(15, 23, 42, 0.06);
 border:1px solid rgba(15, 23, 42, 0.10);
 font-size:0.85rem;
 font-weight:700;
}
.medexp-qb-advanced{
 border:1px solid rgba(15, 23, 42, 0.10);
 border-radius:0.9rem;
 padding:0.55rem 0.7rem;
 background:#fff;
 margin:10px 0;
}
.medexp-qb-advanced summary{cursor:pointer; font-weight:800;}
.medexp-qb-advanced__body{padding:0.6rem 0.1rem 0.2rem;}

.medexp-qb-msg{font-size:0.92rem; opacity:0.9;}
.medexp-qb-msg.is-error{color:#dc2626; opacity:1; font-weight:800;}
.medexp-qb-msg.is-warn{color:#b45309; opacity:1; font-weight:800;}
.medexp-qb-msg.is-ok{color:#16a34a; opacity:1; font-weight:800;}

.medexp-sessions-table{
 width:100%;
 border-collapse:separate;
 border-spacing:0;
 overflow:hidden;
 border:1px solid rgba(15, 23, 42, 0.10);
 border-radius:1rem;
 background:#fff;
}
.medexp-sessions-table th,
.medexp-sessions-table td{
 padding:0.65rem 0.7rem;
 border-bottom:1px solid rgba(15, 23, 42, 0.07);
 text-align:left !important;
 font-size:0.92rem;
}
.medexp-sessions-table th{font-weight:800; background:rgba(15, 23, 42, 0.03);}
.medexp-sessions-table tr:last-child td{border-bottom:none;}
.medexp-sessions-actions{display:flex; gap:6px; flex-wrap:wrap;}
.medexp-sessions-pager{display:flex; gap:10px; align-items:center; justify-content:flex-end; margin-top:10px;}

.medexp-summary-card{
 border:1px solid rgba(15, 23, 42, 0.10);
 border-radius:1rem;
 background:#fff;
 padding:0.8rem 0.85rem;
 margin:10px 0;
}
.medexp-summary-card__title{font-weight:800; margin-bottom:0.6rem;}
.medexp-summary-table{
 width:100%;
 border-collapse:separate;
 border-spacing:0;
}
.medexp-summary-table th,
.medexp-summary-table td{
 padding:0.55rem 0.6rem;
 border-bottom:1px solid rgba(15, 23, 42, 0.07);
 text-align:left !important;
 font-size:0.92rem;
}
.medexp-summary-table th{font-weight:800; background:rgba(15, 23, 42, 0.03);}
.medexp-summary-table tr:last-child td{border-bottom:none;}

/* === Session Summary (Dashboard-style) ===================================== */
.medexp-summaryPage{display:flex;flex-direction:column;gap:14px;}
.medexp-summaryHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.medexp-summaryTitle{font-size:1.45rem;font-weight:900;letter-spacing:-0.01em;}
.medexp-summarySub{margin-top:4px;font-size:0.95rem;color:rgba(15,23,42,0.65);}
.medexp-summaryActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.medexp-summaryActions .tw-btn{white-space:nowrap;}

.medexp-summaryKpis{
 display:grid;
 grid-template-columns:repeat(3, minmax(260px, 1fr));
 gap:12px;
 align-items:stretch;
}
@media (max-width: 1100px){
 .medexp-summaryKpis{grid-template-columns:repeat(2, minmax(240px, 1fr));}
 /* Avoid an awkward empty "ghost" column when we only have 3 KPI cards */
 .medexp-summaryKpis > :nth-child(3){grid-column:1 / -1;}
}
@media (max-width: 640px){
 .medexp-summaryKpis{grid-template-columns:1fr;}
 .medexp-summaryKpis > :nth-child(3){grid-column:auto;}
}
.medexp-summaryKpiTop{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.medexp-summaryKpiMeta{display:flex;flex-direction:column;gap:4px;min-width:170px;flex:1;}
.medexp-summaryKpiBig{font-size:1.65rem;font-weight:900;line-height:1;}
.medexp-summaryKpiLabel{font-size:0.82rem;font-weight:900;letter-spacing:0.08em;text-transform:uppercase;color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.80);}
.medexp-summaryKpiSmall{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.medexp-summaryKpiRow{display:flex;justify-content:space-between;gap:10px;font-size:0.9rem;color:rgba(15,23,42,0.72);}
.medexp-summaryKpiRow strong{font-weight:900;color:rgba(15,23,42,0.92);}

.medexp-summaryGrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:start;}
.medexp-summaryCol6{grid-column:span 6;}
.medexp-summaryCol4{grid-column:span 4;}
.medexp-summaryCol8{grid-column:span 8;}
.medexp-summaryCol12{grid-column:span 12;}
@media (max-width: 980px){
  .medexp-summaryCol6,.medexp-summaryCol4,.medexp-summaryCol8{grid-column:span 12;}
}

.medexp-miniChart{width:100%;overflow:hidden;}
.medexp-miniChart svg{width:100%;height:auto;display:block;}

.medexp-hbars{display:flex;flex-direction:column;gap:10px;}
.medexp-hbars__row{display:grid;grid-template-columns:minmax(120px, 1.1fr) minmax(140px, 2.2fr) minmax(92px, 0.8fr);gap:10px;align-items:center;}
@media (max-width: 520px){
  .medexp-hbars__row{grid-template-columns:1fr;}
}
.medexp-hbars__label{font-weight:900;color:rgba(15,23,42,0.86);font-size:0.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.medexp-hbars__bar{height:12px;border-radius:999px;background:rgba(15,23,42,0.08);border:1px solid rgba(15,23,42,0.08);overflow:hidden;position:relative;}
.medexp-hbars__fill{height:100%;border-radius:999px;background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.70);}
.medexp-hbars__meta{font-size:0.85rem;color:rgba(15,23,42,0.65);font-weight:800;text-align:right;}
@media (max-width: 520px){
  .medexp-hbars__meta{text-align:left !important;}
}

/* Donut styles (borrowed from Performance so Summary can reuse the same helpers) */
.medexp-perfDonutWrap{display:flex;gap:var(--medexp-space-3);align-items:center;}
.medexp-perfDonutSolo{display:flex;justify-content:center;}
.medexp-perfDonut{position:relative;width:120px;height:120px;flex:0 0 auto;}
.medexp-perfDonut svg{width:120px;height:120px;transform:rotate(-90deg);}
.medexp-perfDonut__ring{fill:transparent;stroke:var(--medexp-border);stroke-width:3.25;}
.medexp-perfDonut__seg{fill:transparent;stroke:var(--medexp-primary);stroke-width:3.25;stroke-linecap:round;}
.medexp-perfDonut[data-kind="used"] .medexp-perfDonut__seg{stroke:var(--medexp-success);}
.medexp-perfDonut[data-kind="danger"] .medexp-perfDonut__seg{stroke:var(--medexp-danger);}
.medexp-perfDonut[data-kind="warning"] .medexp-perfDonut__seg{stroke:var(--medexp-warning);}
.medexp-perfDonut__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.medexp-perfDonut__pct{font-size:1.55rem;font-weight:800;line-height:1;color:var(--medexp-text);}
.medexp-perfDonut__label{margin-top:3px;font-size:0.82rem;color:var(--medexp-muted);}

.medexp-summaryDetails{margin-top:2px;}
.medexp-summaryDetails summary{font-weight:900;}



/* ---------------- Phase 6: Readiness card (gauge + percentile block) ---------------- */
.medexp-readinessCard{display:flex; flex-direction:column; gap:12px;}
.medexp-readinessCard__top{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}

.medexp-readinessGauge{position:relative; width:92px; height:92px; display:flex; align-items:center; justify-content:center;}
.medexp-readinessGauge__svg{transform:rotate(-90deg);} 
.medexp-readinessGauge__track{fill:none; stroke:rgba(15,23,42,0.10); stroke-width:8;}
.medexp-readinessGauge__value{fill:none; stroke:rgba(34,197,94,0.85); stroke-linecap:round; stroke-width:8;}
.medexp-readinessGauge__center{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;}
.medexp-readinessGauge__pct{font-weight:800; font-size:20px; line-height:1;}
.medexp-readinessGauge__sub{font-size:12px; color:rgba(15,23,42,0.65); margin-top:2px;}

.medexp-readinessScore{min-width:240px; flex:1; border:1px solid rgba(15,23,42,0.08); border-radius:14px; padding:10px 12px; background:rgba(15,23,42,0.02);} 
.medexp-readinessScore__title{font-weight:800; margin-bottom:6px;}
.medexp-readinessScore__rows{display:flex; flex-direction:column; gap:6px;}
.medexp-readinessRow{display:flex; justify-content:space-between; gap:10px; font-size:13px; color:rgba(15,23,42,0.72);} 
.medexp-readinessPill{display:inline-flex; align-items:center; justify-content:center; min-width:32px; padding:2px 8px; border-radius:999px; background:#fff; border:1px solid rgba(15,23,42,0.10); font-weight:800; color:rgba(15,23,42,0.85);} 

.medexp-readinessPercentile{border:1px solid rgba(15,23,42,0.10); border-radius:14px; padding:10px 12px; background:#fff;}
.medexp-readinessPercentile__line{display:flex; align-items:baseline; gap:6px; font-size:13px;}
.medexp-readinessPercentile__k{color:rgba(15,23,42,0.70);}
.medexp-readinessPercentile__v{font-weight:800; color:rgba(15,23,42,0.90);} 

.medexp-readinessBand{margin-top:8px;}
.medexp-readinessBand__labels{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; font-size:12px; color:rgba(15,23,42,0.60);}
.medexp-readinessBand__label{text-align:center;}
.medexp-readinessBand__bar{position:relative; height:10px; border-radius:999px; background:linear-gradient(90deg, rgba(239,68,68,0.20), rgba(234,179,8,0.20), rgba(34,197,94,0.22), rgba(34,197,94,0.34)); border:1px solid rgba(15,23,42,0.08); margin-top:6px; overflow:hidden;}
.medexp-readinessBand__tick{position:absolute; top:-5px; width:0; height:0; border-left:6px solid transparent; border-right:6px solid transparent; border-bottom:10px solid rgba(15,23,42,0.75); transform:translateX(-6px);} 

.medexp-readinessGrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px;}
.medexp-readinessMini{border:1px solid rgba(15,23,42,0.10); border-radius:14px; padding:10px 12px; background:#fff;}
.medexp-readinessMini__k{font-size:12px; color:rgba(15,23,42,0.60); font-weight:800;}
.medexp-readinessMini__v{margin-top:4px; font-weight:800; color:rgba(15,23,42,0.88);} 


/* ---------------- Shimmer skeletons (global) ---------------- */
@keyframes medexpShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.medexp-skel{background:#dde4ee !important;position:relative !important;overflow:hidden !important;}
.medexp-skel::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg, transparent 0%, transparent 25%, rgba(255,255,255,0.55) 50%, transparent 75%, transparent 100%);animation:medexpShimmer 1.5s ease-in-out infinite;pointer-events:none;}
.medexp-skel--line{height:12px;border-radius:999px;}
.medexp-skel--block{border-radius:16px;}
.medexp-skel--circle{border-radius:999px;}
.medexp-skelStack{display:grid;gap:10px;}
.medexp-skelRow{display:flex;gap:10px;align-items:center;}
.medexp-qb-skeleton{padding:10px 0;}
.medexp-qb-input.medexp-is-skel{color:transparent !important;border-color:rgba(15,23,42,0.08) !important;}
.medexp-qb-input.medexp-is-skel{background:#dde4ee !important;position:relative !important;overflow:hidden !important;}
.medexp-qb-input.medexp-is-skel::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg, transparent 0%, transparent 25%, rgba(255,255,255,0.55) 50%, transparent 75%, transparent 100%);animation:medexpShimmer 1.5s ease-in-out infinite;pointer-events:none;}
.medexp-qb-input.medexp-is-skel option{color:initial;}
.medexp-fc-deck{position:relative;}
.medexp-fc-deck.medexp-fc-deck--skel{cursor:default;}
.medexp-fc-deck.medexp-fc-deck--skel *{visibility:hidden;}
.medexp-fc-deck.medexp-fc-deck--skel::before{content:'';display:block;width:100%;height:100%;border-radius:inherit;position:absolute;inset:0;background:#dde4ee;overflow:hidden;}
.medexp-fc-deck.medexp-fc-deck--skel::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(105deg, transparent 0%, transparent 25%, rgba(255,255,255,0.55) 50%, transparent 75%, transparent 100%);animation:medexpShimmer 1.5s ease-in-out infinite;pointer-events:none;}



/* ---------------- Layout overflow fixes (Session Review / Session) ---------------- */
/* Prevent grid/flex children from forcing horizontal overflow (e.g., long math/HTML, tables). */
.medexp-qb-case > *{min-width:0;}
.medexp-qb-case__right{min-width:0;}
.medexp-qb-sessionReview{min-width:0; overflow:hidden;}
.medexp-qb-sessionReview .medexp-sr-right{min-width:0;}
/* Ensure rich content stays inside the card and wraps gracefully */
.medexp-qb-sessionReview .medexp-card{overflow:hidden;}
.medexp-qb-sessionReview .medexp-qb-stem,
.medexp-qb-sessionReview .medexp-qb-block,
.medexp-qb-sessionReview .medexp-qb-review,
.medexp-qb-sessionReview .medexp-qb-key{max-width:100%;}
.medexp-qb-sessionReview img,
.medexp-qb-sessionReview table,
.medexp-qb-sessionReview iframe,
.medexp-qb-sessionReview video{max-width:100%; height:auto;}
.medexp-qb-sessionReview pre,
.medexp-qb-sessionReview code{white-space:pre-wrap; word-break:break-word; overflow-wrap:anywhere;}
.medexp-qb-sessionReview table{display:block; overflow-x:auto;}


/* ===== Phase 3: Review tools (notes, mark, highlight/strikeout, notebook) ===== */

.medexp-reviewToolsBar{
 display:flex;
 gap:6px;
 align-items:center;
 margin-left:8px;
}
.medexp-markBtn{
 font-weight:700;
}

.medexp-notePanel{
 margin-top:12px;
 padding:12px;
 border:1px solid var(--medexp-border);
 border-radius:var(--medexp-radius-sm);
 background:var(--medexp-surface);
 box-shadow:var(--medexp-shadow-xs);
}
.medexp-notePanel__row{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 margin-bottom:8px;
}
.medexp-notePanel__label{
 font-weight:800;
 color:var(--medexp-text);
}
.medexp-notePanel__status{
 font-size:12px;
 color:var(--medexp-muted);
}
.medexp-notePanel__ta{
 width:100% !important;
 padding:10px 12px !important;
 border:1px solid var(--medexp-border) !important;
 border-radius:12px !important;
 background:var(--medexp-bg) !important;
 font-family:var(--medexp-font-sans) !important;
 font-size:.9rem !important;
 line-height:1.45 !important;
 resize:vertical !important;
 min-height:3.6em !important;
 height:auto !important;
 box-sizing:border-box !important;
}
.medexp-notePanel__tags{
 width:100%;
 padding:10px 12px;
 border:1px solid var(--medexp-border);
 border-radius:12px;
 background:var(--medexp-bg);
}

.medexp-annotRoot{
 position:relative;
}

.medexp-annotMenu{
 position:fixed;
 /* Must sit above Exam fullscreen layer (.medexp-qbank uses z-index ~2.1B) */
 z-index: 10200;
 display:flex;
 gap:8px;
 align-items:center;
 padding:8px;
 border:1px solid var(--medexp-border);
 border-radius:14px;
 background:var(--medexp-bg);
 box-shadow:var(--medexp-shadow-sm);
}
.medexp-annotMenu__btn{
 border:1px solid var(--medexp-border);
 background:var(--medexp-surface);
 color:var(--medexp-text);
 border-radius:12px;
 padding:8px 10px;
 font-weight:800;
 cursor:pointer;
}
.medexp-annotMenu__btn:hover{
 border-color:color-mix(in srgb, var(--medexp-primary) 35%, var(--medexp-border));
}
.medexp-anno--hl{
 /* Allow per-highlight colors via JS-set CSS var. */
 background:var(--medexp-anno-hl-bg, rgba(245,158,11,0.25));
 border-radius:6px;
 /* Avoid visual gaps when spans split inside a word */
 padding:0;
}
.medexp-anno--so{
 text-decoration:line-through;
 text-decoration-thickness:2px;
 text-decoration-color:rgba(220,38,38,0.7);
 background:rgba(220,38,38,0.12);
 border-radius:6px;
 /* Avoid visual gaps when spans split inside a word */
 padding:0;
}
.medexp-anno--hl, .medexp-anno--so{
 cursor:pointer;
}

/* Notebook */
.medexp-nb-controls{
 display:flex;
 flex-wrap:wrap;
 align-items:center;
 gap:10px;
 padding:12px;
 margin:0 0 16px;
 border:1px solid var(--medexp-border);
 border-radius:var(--medexp-radius-md);
 background:var(--medexp-surface);
 box-shadow:var(--medexp-shadow-xs);
}
.medexp-nb-controls__actions{
 margin-left:auto;
 display:flex;
 align-items:center;
 gap:8px;
}
@media (max-width: 640px){
 .medexp-nb-controls__actions{
  width:100%;
  margin-left:0;
  justify-content:flex-end;
 }
}

.medexp-nb-input{
 min-width:220px;
 flex:1 1 280px;
}
.medexp-nb-tagsInput{
 flex:1 1 260px;
 min-width:220px;
}
.medexp-nb-select{
 min-width:180px;
}

.medexp-nb-list{
 display:flex;
 flex-direction:column;
 gap:12px;
}
.medexp-nb-card{
 padding:14px 14px;
 border-radius:var(--medexp-radius-md);
}
.medexp-nb-card:hover{
 border-color:color-mix(in srgb, var(--medexp-primary) 22%, var(--medexp-border));
 box-shadow:var(--medexp-shadow-sm);
}
.medexp-nb-meta{
 display:flex;
 flex-wrap:wrap;
 gap:8px;
 font-size:12px;
 color:var(--medexp-muted);
 margin-bottom:10px;
}
.medexp-nb-meta__item{
 background:var(--medexp-bg);
 border:1px solid var(--medexp-border);
 border-radius:999px;
 padding:4px 10px;
}
.medexp-nb-tags{
 display:flex;
 gap:6px;
 flex-wrap:wrap;
 margin-bottom:10px;
}
.medexp-nb-text{
 white-space:pre-wrap;
 color:var(--medexp-text);
 line-height:1.55;
}
.medexp-nb-actions{
 margin-top:12px;
 display:flex;
 justify-content:flex-end;
}
.medexp-nb-pager{
 display:flex;
 justify-content:space-between;
 align-items:center;
 margin-top:14px;
 gap:10px;
}
.medexp-nb-pager__info{
 font-size:12px;
 color:var(--medexp-muted);
}
.medexp-nb-empty{
 padding:22px 14px;
 text-align:center;
}
.medexp-nb-empty__title{
 font-weight:800;
 margin-bottom:6px;
 color:var(--medexp-text);
}


/* Review page tools placement */
.medexp-sr-toolsWrap{
 margin-top:10px;
}
.medexp-sr-toolsTop{
 display:flex;
 gap:8px;
 align-items:center;
}

/* =========================================================
   Flow diagrams / process charts (lesson content)
   ========================================================= */

.medexp-diagram{
 margin:18px 0;
 display:flex;
 flex-direction:column;
 align-items:center;
}

.medexp-diagram > figcaption{
 font-size:14px;
 color:var(--medexp-muted);
 margin-bottom:10px;
 width:100%;
 max-width:820px;
}

/* =========================================================
   Flow diagrams / process charts
   - Always vertical (stacked)
   - Centered in the lesson content
   - Responsive (no horizontal scrolling UI)
   ========================================================= */
.medexp-flow{
 display:flex;
 --medexp-flow-gap:14px;
 gap:var(--medexp-flow-gap);
 align-items:stretch;
 flex-direction:column;
 flex-wrap:nowrap;
 overflow-x:visible;
 padding:6px 2px 8px;
 width:100%;
 max-width:820px;
 margin:0 auto;
}

.medexp-flow__step{
 position:relative;
 display:flex;
 gap:12px;
 min-width:auto;
 flex:1 1 auto;
 width:100%;
}

.medexp-flow__marker{
 /* Prevent flexbox shrink on small screens (keeps the circle perfectly round) */
 width:38px;
 height:38px;
 min-width:38px;
 aspect-ratio:1/1;
 flex:0 0 auto;
 border-radius:50%;
 background:var(--medexp-primary);
 color:#fff;
 display:flex;
 align-items:center;
 justify-content:center;
 font-weight:800;
 box-shadow:0 10px 24px rgba(34, 36, 44, 0.12);
 margin-top:6px;
 position:relative;
 z-index:1;
}

.medexp-flow__marker::after{
 content:"";
 position:absolute;
 inset:-4px;
 border-radius:50%;
 border:2px solid rgba(255,255,255,0.65);
}

.medexp-flow__card{
 border:1px solid var(--medexp-border);
 border-radius:16px;
 background:var(--medexp-card-bg);
 padding:12px 14px;
 box-shadow:0 10px 22px rgba(34, 36, 44, 0.06);
	 min-width:0;
}

.medexp-flow__title{
 font-weight:800;
 font-size:14px;
 color:var(--medexp-text);
	 margin:0 0 4px 0;
	 overflow-wrap:anywhere;
}

.medexp-flow__text{
 margin:0;
 font-size:13px;
 color:var(--medexp-muted);
	 line-height:1.35;
	 overflow-wrap:anywhere;
}

/* "Infographic" layout option: big markers + centered cards (good for 3–6 phases) */
/* "Infographic" option: larger marker, same vertical stacking */
.medexp-flow--infographic{
 padding:8px 2px 10px;
}

.medexp-flow--infographic .medexp-flow__marker{
 width:56px;
 height:56px;
 font-size:16px;
 margin-top:2px;
}

.medexp-flow--infographic .medexp-flow__title{
 font-size:15px;
}

/* Connector between steps (vertical) */
.medexp-flow__step:not(:last-child)::after{
 content:"";
 position:absolute;
 top:44px; /* bottom of marker (38px) + marker margin-top (6px) */
 left:18px; /* centerline of 38px marker */
 width:0;
 height:calc(var(--medexp-flow-gap) + 4px);
 border-top:0;
 border-left:2px dashed var(--medexp-border);
}

.medexp-flow__step:not(:last-child)::before{
 content:"";
 position:absolute;
 top:calc(44px + var(--medexp-flow-gap));
 left:14px;
 width:0;
 height:0;
 border-top:8px solid var(--medexp-border);
 border-left:6px solid transparent;
 border-right:6px solid transparent;
 border-bottom:0;
}

/* Variants */
.medexp-flow__card[data-variant="decision"]{
 border-color:rgba(46, 117, 255, 0.5);
 box-shadow:0 10px 22px rgba(46, 117, 255, 0.08);
}

.medexp-flow__card[data-variant="warning"]{
 border-color:rgba(245, 158, 11, 0.55);
 box-shadow:0 10px 22px rgba(245, 158, 11, 0.10);
}

/* Small phones: make the marker slightly smaller so cards get more room */
@media (max-width: 420px){
 .medexp-flow__marker{
  width:34px;
  height:34px;
  min-width:34px;
  margin-top:4px;
 }
 .medexp-flow__step:not(:last-child)::after{
  top:38px;
  left:16px;
 }
 .medexp-flow__step:not(:last-child)::before{
  top:calc(38px + var(--medexp-flow-gap));
  left:12px;
 }
}


/* ---------------- Timed Exam Simulator (Exam-style) ---------------- */

.medexp-examTop{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 padding:12px 16px;
 border:1px solid rgba(148,163,184,0.18);
 border-radius:16px;
 background:rgba(255,255,255,0.88);
 backdrop-filter:blur(12px);
 -webkit-backdrop-filter:blur(12px);
 box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 4px 14px rgba(2,6,23,0.05);
 position:sticky;
 top:0;
 z-index:5;
}

.medexp-examTop__title{
 font-weight:700;
 font-size:16px;
 line-height:1.2;
}

.medexp-examTop__sub{
 font-size:12px;
 color:var(--medexp-muted);
 margin-top:2px;
}

.medexp-examTop__mid{
 display:flex;
 flex-direction:column;
 align-items:center;
 min-width:120px;
}

.medexp-examTop__timerLabel{
 font-size:12px;
 color:var(--medexp-muted);
}

.medexp-examTop__timer{
 font-variant-numeric: tabular-nums;
 font-weight:800;
 font-size:20px;
 letter-spacing:0.5px;
}

.medexp-examTop__right{
 display:flex;
 gap:8px;
 align-items:center;
 flex-wrap:wrap;
}

.medexp-examLayout{
 display:grid;
 grid-template-columns: 1fr 1fr;
 gap:14px;
 margin-top:12px;
 height: calc(100vh - 220px);
}

.medexp-examLeft,
.medexp-examRight{
 border:1px solid rgba(148,163,184,0.18);
 border-radius:18px;
 background:rgba(255,255,255,0.95);
 overflow:auto;
 box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 4px 14px rgba(2,6,23,0.04), 0 12px 32px rgba(2,6,23,0.03);
}

.medexp-examLeft.is-hidden{
 display:none;
}
.medexp-examLeft.is-hidden + .medexp-examRight{
 grid-column: 1 / -1;
}

.medexp-examPassage{
 padding:14px;
 line-height:1.55;
}
.medexp-examBlock{
 margin-bottom:10px;
}

/* Case passage tabs (Scenario + exhibits) */
.medexp-examTabs{
 display:flex;
 gap:6px;
 padding:10px 10px 0 10px;
 border-bottom:1px solid var(--medexp-border);
 overflow-x:auto;
 background:rgba(0,0,0,0.015);
 position:sticky;
 top:0;
 z-index:3;
}
.medexp-examTab{
 appearance:none !important;
 border:1px solid var(--medexp-border);
 border-bottom:none;
 background:#fff;
 padding:6px 10px;
 border-top-left-radius:10px;
 border-top-right-radius:10px;
 font-size:13px;
 cursor:pointer;
 white-space:nowrap;
}
.medexp-examTab.is-active{
 border-color:#cfcfcf;
 background:#fff;
 font-weight:700;
}
.medexp-examPassage--empty{
 color:var(--medexp-muted);
 font-size:13px;
}

.medexp-examQHead{
 display:flex;
 align-items:center;
 gap:10px;
 padding:10px 14px;
 border-bottom:1px solid rgba(148,163,184,0.12);
 background:linear-gradient(180deg, rgba(248,250,251,0.85), rgba(255,255,255,0.6));
 backdrop-filter:blur(8px);
 -webkit-backdrop-filter:blur(8px);
 position:sticky;
 top:0;
 z-index:2;
}

.medexp-examQHead__n{
 width:30px;
 height:30px;
 border-radius:9px;
 background:linear-gradient(135deg, #162C55, #1E3A6E);
 color:#fff;
 display:flex;
 align-items:center;
 justify-content:center;
 font-weight:800;
 font-variant-numeric: tabular-nums;
 font-size:.85rem;
 box-shadow:0 2px 6px rgba(22,44,85,0.25);
}

.medexp-examMark,
.medexp-examReport{
 border:1px solid rgba(148,163,184,0.25);
 background:rgba(255,255,255,0.85);
 border-radius:999px;
 padding:6px 12px;
 font-size:12px;
 cursor:pointer;
 font-weight:600;
 transition:all .15s ease;
}
.medexp-examMark:hover,
.medexp-examReport:hover{
 background:rgba(241,245,249,0.95);
 box-shadow:0 2px 6px rgba(2,6,23,0.06);
}

.medexp-examReport{
 color:var(--medexp-muted);
}

.medexp-examQHead__spacer{ flex:1; }

.medexp-examQBody{
 padding:18px;
}

.medexp-examNotes{
 padding:12px 14px 14px;
 border-top:1px dashed var(--medexp-border);
}
.medexp-examNotes__row{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 margin-bottom:8px;
}
.medexp-examNotes__label{
 font-weight:700;
 font-size:12px;
 color:var(--medexp-muted);
}

.medexp-examNav{
 margin-top:12px;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 padding:10px 14px;
 border:1px solid rgba(148,163,184,0.18);
 border-radius:16px;
 background:rgba(255,255,255,0.88);
 backdrop-filter:blur(12px);
 -webkit-backdrop-filter:blur(12px);
 box-shadow:0 -1px 0 rgba(17,24,39,0.02), 0 4px 14px rgba(2,6,23,0.05);
 position:sticky;
 bottom:0;
 z-index:4;
}

.medexp-examNav__mid{
 display:flex;
 align-items:center;
 gap:8px;
 font-size:13px;
 color:var(--medexp-muted);
}
.medexp-examNav__select{
 border:1px solid var(--medexp-border);
 border-radius:10px;
 padding:6px 10px;
 background:#fff;
}

.medexp-examSummary{
 margin-top:14px;
 padding:16px;
 border:1px solid rgba(148,163,184,0.18);
 border-radius:18px;
 background:rgba(255,255,255,0.92);
 backdrop-filter:blur(10px);
 box-shadow:0 1px 0 rgba(17,24,39,0.02), 0 4px 14px rgba(2,6,23,0.05);
}
.medexp-examSummary__score{
 font-size:22px;
 font-weight:800;
}
.medexp-examSummary__meta{
 margin-top:6px;
 color:var(--medexp-muted);
 font-size:13px;
}

.medexp-examGrid{
 margin-top:12px;
 display:grid;
 grid-template-columns: repeat(auto-fill, minmax(46px, 1fr));
 gap:8px;
}

.medexp-examGrid__btn{
 border:1px solid var(--medexp-border);
 background:#fff;
 border-radius:12px;
 padding:10px 0;
 font-weight:800;
 cursor:pointer;
 font-variant-numeric: tabular-nums;
}

.medexp-examGrid__btn.is-ok{
 border-color: rgba(34,197,94,0.35);
 box-shadow: 0 0 0 3px rgba(34,197,94,0.10);
}
.medexp-examGrid__btn.is-bad{
 border-color: rgba(239,68,68,0.35);
 box-shadow: 0 0 0 3px rgba(239,68,68,0.10);
}

@media (max-width: 980px){
 .medexp-examLayout{
  grid-template-columns: 1fr;
  height:auto;
 }
 .medexp-examLeft{
  max-height: 42vh;
 }
 .medexp-examRight{
  max-height: 54vh;
 }
}


/* Access gate (expired / not enrolled) */
.medexp-paywall{max-width:760px;margin:0 auto;}
.medexp-paywall__actions{display:flex;gap:var(--medexp-space-2);flex-wrap:wrap;margin-top:var(--medexp-space-3);}


/* ===== QBank Practice: button layout polish (exam/LMS-style) ===== */

/* The QBank renderer uses these navigation/action classes; make them true toolbars. */
.medexp-qb-nav{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 flex-wrap:wrap;
}
.medexp-qb-nav__mid{
 flex:1 1 260px;
 min-width:220px;
 display:flex;
 align-items:center;
 justify-content:center;
 gap:8px;
}
.medexp-qb-nav__count{font-weight:800; letter-spacing:-0.01em;}
.medexp-qb-nav__right{
 display:flex;
 align-items:center;
 justify-content:flex-end;
 gap:8px;
 flex-wrap:wrap;
}

/* Mobile: keep navigation controls on top; move count/type to its own line. */
@media (max-width: 720px){
 .medexp-qb-nav__mid{
  order:3;
  flex:1 1 100%;
  min-width:0;
  justify-content:flex-start;
 }
 .medexp-qb-nav__right{order:2; width:100%; justify-content:flex-start;}
}

/* Progress bar inside the nav area (renderer uses __bar). */
.medexp-qb-progress__bar{
 height:100%;
 width:0%;
 background:linear-gradient(90deg, var(--medexp-primary), var(--medexp-accent));
 transition:width .25s ease;
}

/* Action row: exam/LMS-like bottom bar (Prev/Next/Mark/Notes left; Submit right). */
.medexp-qb-actionsRow{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 flex-wrap:wrap;
}
.medexp-qb-actionsRow__left,
.medexp-qb-actionsRow__right{
 display:flex;
 align-items:center;
 gap:8px;
 flex-wrap:wrap;
}
.medexp-qb-actionsRow__left{order:2; margin-right:auto;}
.medexp-qb-actionsRow__right{order:3; margin-left:auto; justify-content:flex-end;}
.medexp-qb-msg{order:1; flex:1 1 100%;}

@media (max-width: 720px){
 .medexp-qb-actionsRow__right{width:100%; justify-content:flex-start;}
}

/* Alias: older renderer uses --small but base UI uses --sm */
.medexp-btn--small{
 font-size:var(--medexp-text-sm);
 padding:0.45rem 0.75rem;
 border-radius:10px;
}

/* -----------------------------
   UIX improvements (2026-01)
   ----------------------------- */

/* Consistent container sizing scoped to MedExp pages */
.medexp-scope{ --medexp-max-width: 86rem; }
.medexp-scope--practice{ --medexp-max-width: 90rem; }
.medexp-scope .medexp-container{
  max-width: var(--medexp-max-width);
  margin: 0 auto;
  padding-left: var(--medexp-space-4);
  padding-right: var(--medexp-space-4);
}
@media (max-width: 860px){
  .medexp-scope .medexp-container{
    padding-left: var(--medexp-space-3);
    padding-right: var(--medexp-space-3);
  }
}

/* Course search: clear button + recents + keyboard active state */
.medexp-courseSearch__inputWrap{ position: relative; }
.medexp-courseSearch__clear{
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  background: rgba(255,255,255,0.9);
  color: #111;
  line-height: 1;
  font-size: 1.1rem;
  cursor: pointer;
}
.medexp-courseSearch__clear:hover{ background: #fff; }
.medexp-courseSearch__clear:focus-visible{
  outline: 3px solid rgba(79,70,229,0.35);
  outline-offset: 2px;
}

.medexp-courseSearch__recents{ margin-top: .5rem; }
.medexp-courseSearch__recentsHead{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .5rem;
}
.medexp-courseSearch__recentsTitle{
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .82rem;
  color: rgba(0,0,0,0.68);
}
.medexp-courseSearch__recentsTitle svg{ width: 16px; height: 16px; }
.medexp-courseSearch__recentsClear{
  border: none;
  background: transparent;
  color: rgba(0,0,0,0.62);
  cursor: pointer;
  font-size: .82rem;
  padding: .15rem .35rem;
  border-radius: .4rem;
}
.medexp-courseSearch__recentsClear:hover{ background: rgba(0,0,0,0.06); }

.medexp-courseSearch__chipRow{ display: flex; flex-wrap: wrap; gap: .4rem; }
.medexp-courseSearch__chip{
  border: 1px solid rgba(0,0,0,0.12);
  background: rgba(255,255,255,0.9);
  padding: .25rem .5rem;
  border-radius: 999px;
  font-size: .82rem;
  cursor: pointer;
}
.medexp-courseSearch__chip:hover{ background: #fff; }
.medexp-courseSearch__chip:focus-visible{
  outline: 3px solid rgba(79,70,229,0.35);
  outline-offset: 2px;
}

.medexp-courseSearch__item.is-active,
.medexp-courseSearch__item:focus-visible{
  background: rgba(79,70,229,0.08);
  border-color: rgba(79,70,229,0.28);
}
.medexp-courseSearch__icon svg{ width: 18px; height: 18px; display: block; }

.medexp-mark{
  background: rgba(250,204,21,0.35);
  padding: 0 .08em;
  border-radius: .2em;
}

/* On this page scrollspy */
.medexp-tocLink.is-active a,
.medexp-tocLink a[aria-current="true"]{
  color: #111;
  font-weight: 700 !important;
}
.medexp-tocLink.is-active a::before,
.medexp-tocLink a[aria-current="true"]::before{
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(79,70,229,0.85);
  margin-right: .45rem;
  vertical-align: middle;
}

/* Toasts */
.medexp-toastHost{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 16px;
  display: flex;
  justify-content: center;
  pointer-events: none;
  z-index: 999999;
}
.medexp-toast{
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: .75rem;
  background: rgba(17,17,17,0.92);
  color: #fff;
  border-radius: 999px;
  padding: .6rem .9rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.22);
  max-width: min(720px, calc(100vw - 24px));
}
.medexp-toast__msg{ font-size: .92rem; }
.medexp-toast__action{
  border: 1px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.08);
  color: #fff;
  border-radius: 999px;
  padding: .35rem .6rem;
  cursor: pointer;
  font-size: .85rem;
}
.medexp-toast__action:hover{ background: rgba(255,255,255,0.14); }
.medexp-toast__action:focus-visible{
  outline: 3px solid rgba(255,255,255,0.35);
  outline-offset: 2px;
}
.medexp-toast--success{ background: rgba(var(--medexp-brand-teal-rgb,0,166,118),0.92); }
.medexp-toast--error{ background: rgba(239,68,68,0.92); }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ scroll-behavior:auto !important; }
  .medexp-toast,
  .medexp-card,
  .tw-card,
  .tw-btn,
  .medexp-btn,
  .medexp-courseSearch__result,
  .tw-courseDropdown__opt{
    transition:none !important;
  }
  .medexp-skeleton,
  .medexp-skel::after,
  .medexp-qb-skel::after,
  .tw-skel::after,
  .medexp-spinner,
  .tw-spinner{
    animation:none !important;
  }
}



/* === Mobile outline drawer (lesson sidebar) === */
.medexp-mobileTocBtn{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:10040;
  display:none;
  align-items:center;
  gap:0.5rem;
  padding:0.7rem 0.9rem;
  border-radius:999px;
  box-shadow: var(--medexp-shadow-md);
}
.medexp-mobileTocBtn .tw-ico{ width:18px; height:18px; }

.medexp-mobileBackdrop{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,0.45);
  backdrop-filter:saturate(180%) blur(6px);
  z-index:10030;
}

@media (max-width: 859px){
  .medexp-mobileTocBtn{ display:flex; }
  /* Keep layout single-column on mobile */
  .medexp-layout{ grid-template-columns: 1fr !important; }
  body.medexp-lesson-fullscreen .medexp-lessonWorkspace{ grid-template-columns: 1fr !important; }
  /* Sidebar becomes an off-canvas drawer */
  .medexp-sidebar{
    display:none;
  }
  .medexp-sidebar.is-mobile-open{
    display:block;
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(92vw, 440px);
    z-index:10050;
    margin:0 !important;
    border-radius:0 !important;
    overflow:hidden;
  }
  .medexp-sidebar.is-mobile-open .medexp-sidebar__inner{
    max-height:100vh;
    height:100%;
    overflow:auto;
    padding: var(--medexp-space-4);
  }
}



/* === Theme title hiding (scoped to MedEx shortcode surfaces) === */
body.medexp-page.medexp-surface-medexp_dashboard h1.entry-title,
body.medexp-page.medexp-surface-medexp_study_plan h1.entry-title,
body.medexp-page.medexp-surface-medexp_performance h1.entry-title,
body.medexp-page.medexp-surface-medexp_qbank h1.entry-title,
body.medexp-page.medexp-surface-medexp_flashcards h1.entry-title,
body.medexp-page.medexp-surface-medexp_flashcards_today h1.entry-title{
  display:none !important;
}


body.medexp-modalOpen{overflow:hidden;}


.medexp-nextHint{
  margin-top:0.35rem;
  font-size:0.85rem;
  color:var(--medexp-muted);
  line-height:1.35;
}


/* === Mastery Map (Duolingo-style Skill Tree) === */
/*
  Notes:
  - Designed for the default light SaaS canvas (var(--medexp-*) tokens)
  - Keeps the “Duolingo” feel with a clean rail + connected nodes
  - Removes the odd alternating “floating dots” look on the left
*/
.medexp-mapCard{position:relative; overflow:hidden;}
.medexp-mapHeader{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:10px;}
.medexp-mapTitle{margin:0; font-size:1.25rem; letter-spacing:-0.02em; color:var(--medexp-text);}
.medexp-mapLegend{display:flex; flex-wrap:wrap; gap:8px; margin: 6px 0 14px;}
.medexp-mapLegend__item{display:inline-flex; align-items:center; gap:8px; padding:8px 10px; border-radius:999px; border:1px solid var(--medexp-border); background:var(--medexp-surface); font-size:0.82rem; color:var(--medexp-muted); box-shadow:var(--medexp-shadow-xs);}
.medexp-mapLegend__item::before{content:''; width:10px; height:10px; border-radius:999px; background:#cbd5e1;}
.medexp-mapLegend__item.is-l1::before{background:var(--medexp-warning);} /* amber */
.medexp-mapLegend__item.is-l2::before{background:#3b82f6;} /* blue */
.medexp-mapLegend__item.is-l3::before{background:var(--medexp-brand-blue, #1a4f9c);} /* indigo */
.medexp-mapLegend__item.is-l4::before{background:var(--medexp-success);} /* green */

.medexp-mapBody{display:flex; flex-direction:column; gap:14px;}
.medexp-mapChapter{border:1px solid var(--medexp-border); background:var(--medexp-card); border-radius:var(--medexp-radius-lg); padding:14px; box-shadow:var(--medexp-shadow-sm);}
.medexp-mapChapter__head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:2px 2px 10px;}
.medexp-mapChapter__title{font-weight:800; letter-spacing:-0.02em; color:var(--medexp-text);}
.medexp-mapChapter__meta{font-size:0.85rem; color:var(--medexp-muted);}

/* Rail + node column sizing */
.medexp-mapPath{position:relative; padding:10px 0 6px; --node-col:96px; --node-gap:14px; --rail-x:calc(var(--node-col) * .5);}
.medexp-mapPath::before{content:''; position:absolute; left:var(--rail-x); top:0; bottom:0; width:3px; border-radius:999px;
  background:linear-gradient(to bottom, rgba(var(--medexp-brand-blue-rgb,26,79,156),.18), rgba(var(--medexp-brand-blue-rgb,26,79,156),.06) 40%, rgba(15,23,42,.08));
}

.medexp-mapRow{display:grid; grid-template-columns:var(--node-col) 1fr; gap:var(--node-gap); padding:14px 0; position:relative;}
/* horizontal connector from rail to the card */
.medexp-mapRow::before{content:''; position:absolute; left:var(--rail-x); top:43px;
  width:calc(var(--node-col) + var(--node-gap) - var(--rail-x)); height:2px; border-radius:2px;
  background:linear-gradient(90deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),.18), rgba(15,23,42,.10));
}

.medexp-mapDotWrap{position:relative; display:flex; justify-content:center; padding-top:6px;}
/* kill the old alternating zig-zag */
.medexp-mapRow.is-right .medexp-mapDotWrap{justify-content:center;}
.medexp-mapDotWrap::after{display:none !important;}

.medexp-mapDot{cursor:pointer; width:58px; height:58px; border-radius:999px; border:1px solid var(--medexp-border);
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  box-shadow:var(--medexp-shadow-sm);
  display:flex; align-items:center; justify-content:center; position:relative;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.medexp-mapDot:hover{transform:none; box-shadow:var(--medexp-shadow-md); border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),.30);}
.medexp-mapDot:focus{outline:none; box-shadow:0 0 0 4px rgba(var(--medexp-brand-blue-rgb,26,79,156),.16), var(--medexp-shadow-md); border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),.45);}

/* Tooltip-like mastery label (instead of the weird always-on text under the dot) */
.medexp-mapDot__txt{position:absolute; left:calc(100% + 10px); top:50%; transform:translateY(-50%) translateX(-4px);
  display:flex; flex-direction:column; gap:2px; width:140px;
  padding:8px 10px; border-radius:14px; border:1px solid var(--medexp-border); background:var(--medexp-card);
  box-shadow:var(--medexp-shadow-sm);
  opacity:0; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.medexp-mapDot:hover .medexp-mapDot__txt,
.medexp-mapDot:focus .medexp-mapDot__txt{opacity:1; transform:translateY(-50%) translateX(0);}
.medexp-mapDot__pct{font-size:0.82rem; font-weight:900; color:var(--medexp-text);}
.medexp-mapDot__mini{font-size:0.74rem; color:var(--medexp-muted);}

/* Progress ring + center icon */
.medexp-mapRing{--p:0; --ring-track:rgba(15,23,42,.10); --ring-color:rgba(15,23,42,.25);
  width:44px; height:44px; border-radius:999px; position:relative;
  background:conic-gradient(var(--ring-color) calc(var(--p)*1%), var(--ring-track) 0);
  display:grid; place-items:center;
}
.medexp-mapRing::before{content:''; width:32px; height:32px; border-radius:999px; background:var(--medexp-card); border:1px solid var(--medexp-border); box-shadow:inset 0 1px 0 rgba(255,255,255,.65);}
.medexp-mapRing::after{content:''; position:absolute; inset:0; display:grid; place-items:center; font-weight:900; font-size:18px; color:var(--medexp-muted);} /* default */

/* Level colors */
.medexp-mapDot.is-l0 .medexp-mapRing{--ring-color:rgba(15,23,42,.14);}
.medexp-mapDot.is-l0 .medexp-mapRing::after{content:'+'; color:rgba(15,23,42,.35); font-size:16px;} 
.medexp-mapDot.is-l1 .medexp-mapRing{--ring-color:rgba(245,158,11,.85);} 
.medexp-mapDot.is-l2 .medexp-mapRing{--ring-color:rgba(59,130,246,.85);} 
.medexp-mapDot.is-l3 .medexp-mapRing{--ring-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),.88);} 
.medexp-mapDot.is-l4 .medexp-mapRing{--ring-color:rgba(22,163,74,.88);} 

/* Center glyph per level */
.medexp-mapDot.is-l1 .medexp-mapRing::after{content:'▸'; color:#b45309; font-size:16px;}
.medexp-mapDot.is-l2 .medexp-mapRing::after{content:'↗'; color:var(--medexp-brand-blue-dark); font-size:16px;}
.medexp-mapDot.is-l3 .medexp-mapRing::after{content:'✦'; color:#4338ca; font-size:16px;}
.medexp-mapDot.is-l4 .medexp-mapRing::after{content:'✓'; color:var(--medexp-success); font-size:16px;}

/* Recommended pulse (weakest section auto-expanded) */
.medexp-mapRow.is-recommended .medexp-mapDot::before{content:''; position:absolute; inset:-8px; border-radius:999px;
  background:radial-gradient(circle at center, rgba(var(--medexp-brand-blue-rgb,26,79,156),.18) 0%, rgba(var(--medexp-brand-blue-rgb,26,79,156),.05) 55%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0) 70%);
  animation: medexpPulse 1.9s ease-in-out infinite;
  pointer-events:none;
}
@keyframes medexpPulse{0%{transform:scale(.92); opacity:.65;} 65%{transform:scale(1.10); opacity:.10;} 100%{transform:scale(1.10); opacity:0;}}

/* Cards */
.medexp-mapCard2{border:1px solid var(--medexp-border); background:var(--medexp-card); border-radius:var(--medexp-radius-lg);
  padding:12px; box-shadow:var(--medexp-shadow-sm);
}
.medexp-mapCard2__top{display:flex; justify-content:space-between; align-items:flex-start; gap:10px;}
.medexp-mapCard2__title{font-weight:800; letter-spacing:-0.02em; color:var(--medexp-text);}
.medexp-mapCard2__kpis{display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end;}
.medexp-kpiPill{display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px;
  background:var(--medexp-surface); border:1px solid var(--medexp-border); font-size:0.78rem; color:var(--medexp-muted);
}
.medexp-kpiPill--mastery{font-weight:800; color:var(--medexp-text);}
.medexp-kpiPill--mastery.is-l1{border-color:rgba(245,158,11,.30); background:rgba(245,158,11,.10);} 
.medexp-kpiPill--mastery.is-l2{border-color:rgba(59,130,246,.30); background:rgba(59,130,246,.10);} 
.medexp-kpiPill--mastery.is-l3{border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),.30); background:rgba(var(--medexp-brand-blue-rgb,26,79,156),.10);} 
.medexp-kpiPill--mastery.is-l4{border-color:rgba(22,163,74,.30); background:rgba(22,163,74,.10);} 

.medexp-mapCard2__actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;}

.medexp-mapTopics{margin-top:12px;}
.medexp-mapTopics[hidden]{display:none !important;}
.medexp-mapTopics__grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:10px;}

.medexp-mapTopic{border:1px solid var(--medexp-border); background:var(--medexp-card); border-radius:var(--medexp-radius-lg);
  padding:12px; display:flex; flex-direction:column; gap:10px; box-shadow:var(--medexp-shadow-xs);
}
.medexp-mapTopic__head{display:flex; gap:10px; align-items:flex-start;}
.medexp-mapTopic__ring{flex:0 0 auto;}
.medexp-mapTopic__text{min-width:0;}
.medexp-mapTopic__title{font-weight:800; letter-spacing:-0.02em; line-height:1.25; color:var(--medexp-text);}
.medexp-mapTopic__meta{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
.medexp-kpiMini{display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border-radius:999px;
  font-size:0.74rem; color:var(--medexp-muted); background:var(--medexp-surface); border:1px solid var(--medexp-border);
}
.medexp-kpiMini--ok{color:var(--medexp-success); border-color:rgba(22,163,74,.30); background:rgba(22,163,74,.10);}
.medexp-mapTopic__actions{display:flex; gap:8px; flex-wrap:wrap;}

/* Button text color hardening — prevent theme overrides on dark-background buttons */
.medexp-mapTopic__actions a.medexp-btn--primary,
.medexp-mapTopic__actions a.medexp-btn--primary:visited,
.medexp-mapAcc__summary a.medexp-btn--primary,
.medexp-mapAcc__summary a.medexp-btn--primary:visited,
a.medexp-btn--primary,
a.medexp-btn--primary:visited{
  color:#fff !important;
}
a.medexp-btn--secondary,
a.medexp-btn--secondary:visited{
  color:#fff !important;
}

/* Loading polish */
.medexp-mapLoading{opacity:.85;}
.medexp-mapLoaded{animation: medexpFadeUp .35s ease both;}
@keyframes medexpFadeUp{from{opacity:0; transform:translateY(6px);}to{opacity:1; transform:translateY(0);} }

@media (max-width: 840px){
  .medexp-mapPath{--node-col:78px; --node-gap:12px; --rail-x:calc(var(--node-col) * .5);}
  .medexp-mapRow{padding:12px 0;}
  .medexp-mapRow::before{top:39px; width:calc(var(--node-col) + var(--node-gap) - var(--rail-x));}
  .medexp-mapDot{width:54px;height:54px;}
  .medexp-mapRing{width:42px;height:42px;}
  .medexp-mapRing::before{width:30px;height:30px;}
  .medexp-mapDot__txt{left:50%; top:calc(100% + 10px); transform:translateX(-50%) translateY(-4px); width:160px;}
  .medexp-mapDot:hover .medexp-mapDot__txt,
  .medexp-mapDot:focus .medexp-mapDot__txt{transform:translateX(-50%) translateY(0);}
}




/* Course View Switch (Mastery Map vs Outline) */
.medexp-viewSwitchCard{
  padding: 14px 16px;
  margin-top: 14px;
  margin-bottom: 14px;
}
.medexp-viewSwitch{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.medexp-viewSwitch__label{
  font-weight: 700 !important;
  color: var(--medexp-text, #0f172a);
}
.medexp-seg{
  display:inline-flex;
  background: rgba(15, 23, 42, 0.04);
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 999px;
  padding: 3px;
  gap: 3px;
}
.medexp-seg__btn{
  appearance:none !important;
  border: 0;
  cursor: pointer;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 700 !important;
  font-size: 13px;
  line-height: 1;
  color: rgba(15, 23, 42, 0.75);
  background: transparent;
  transition: transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.medexp-seg__btn:hover{ transform: translateY(-1px); }
.medexp-seg__btn.is-active{
  background: #ffffff;
  color: rgba(15, 23, 42, 0.95);
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
}

/* Search launcher (on-demand, keeps page feeling like a learning product) */
.medexp-viewSwitch__right{display:flex;align-items:center;gap:10px;}
.medexp-viewSwitch__searchBtn{
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.90);
  color: rgba(15, 23, 42, 0.72);
  box-shadow: var(--medexp-shadow-xs);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.medexp-viewSwitch__searchBtn:hover{filter:brightness(0.985);transform:none;}
.medexp-viewSwitch__searchBtn:focus-visible{outline:3px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35);outline-offset:2px;}
.medexp-viewSwitch__searchBtn svg{width:18px;height:18px;display:block;}
.medexp-viewSwitch__searchBtn .medexp-icon--close{display:none;font-size:22px;line-height:1;transform:none;}
.medexp-viewSwitch__searchBtn[aria-expanded="true"] .medexp-icon--search{display:none;}
.medexp-viewSwitch__searchBtn[aria-expanded="true"] .medexp-icon--close{display:block;}

/* Inline search panel (hidden by default; revealed from the launcher) */
.medexp-courseSearchInlineWrap{margin-top:-6px;margin-bottom:14px;}
.medexp-courseSearchInlineWrap .medexp-courseSearch__head{display:none;}
.medexp-courseSearchInlineWrap .medexp-courseSearch{
  padding: .85rem .9rem .8rem .9rem;
}
.medexp-courseSearchInlineWrap .medexp-courseSearch__results{
  max-height: min(60vh, 520px);
  overflow:auto;
  padding-right: 2px;
}
.medexp-u-hidden{ display:none !important; }


/* Sticky course mode bar (Mastery Map | Outline | Resources) */
.medexp-modeBarWrap{
  position: sticky;
  z-index: 40;
  top: calc(var(--medexp-appbar-h, 0px) + 10px);
  margin: 14px 0 12px;
}
.medexp-modeBar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap: wrap;
  gap:12px;
  padding: 10px 12px;
  border-radius: 18px;
  border:1px solid rgba(148,163,184,0.45);
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(12px);
  box-shadow: 0 12px 38px rgba(15,23,42,0.10);
}
.medexp-modeBar__left{display:flex;align-items:center;gap:10px;min-width:0;}
.medexp-modeBar__right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;min-width:0;max-width:100%;}
.medexp-modeBar__iconBtn{flex:0 0 auto;}

.medexp-modeBar__select{
  height:38px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,0.12);
  background: rgba(255,255,255,0.90);
  box-shadow: var(--medexp-shadow-xs);
  /* Slightly larger + less heavy so "All" renders as "All" (not a triangle-like glyph on some systems).
     NOTE: !important is intentional here because global .medexp-scope select styles can override these controls depending on load order. */
  padding: 0 36px 0 14px !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: 0.01em;
  color: rgba(15,23,42,0.78);
  cursor:pointer;
  direction:ltr !important;
  text-align:left !important;
  -webkit-appearance:none !important;
  -moz-appearance:none !important;
  appearance:none !important;
  background-image: linear-gradient(45deg, transparent 50%, rgba(15,23,42,0.55) 50%),
                    linear-gradient(135deg, rgba(15,23,42,0.55) 50%, transparent 50%) !important;
  background-position: right 16px center, right 11px center !important;
  background-size: 6px 6px, 6px 6px !important;
  background-repeat: no-repeat !important;
}
.medexp-modeBar__select:disabled{opacity:.55;cursor:not-allowed;}
.medexp-modeBar__select:focus-visible{outline:3px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35);outline-offset:2px;}


/* Ensure dropdown labels (e.g., "All", "Default order") do not get clipped */
.medexp-modeBar__select[data-medexp-mode-filter]{min-width: 112px !important;}
.medexp-modeBar__select[data-medexp-mode-sort]{min-width: 210px !important;}

.medexp-modeContent{margin-top: 10px;}

@media (max-width: 720px){
  .medexp-modeBar{flex-direction:column;align-items:flex-start;}
  .medexp-modeBar__right{width:100%;justify-content:space-between;}
}


/* Resources view */
.medexp-resourcesHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;}
.medexp-resourcesTitle{margin:0;font-weight:900;letter-spacing:-0.02em;}
.medexp-resourcesGrid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:10px;}
@media (max-width: 720px){.medexp-resourcesGrid{grid-template-columns:1fr;}}

.medexp-resourceTile{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 14px;
  border-radius: 18px;
  border:1px solid var(--medexp-border);
  background: rgba(255,255,255,0.85);
  box-shadow: var(--medexp-shadow-xs);
  text-decoration:none;
}
.medexp-resourceTile:hover{transform:none;box-shadow:0 2px 6px rgba(15,23,42,0.08), 0 18px 50px rgba(15,23,42,0.08);text-decoration:none;}
.medexp-resourceTile__icon{
  width:44px;height:44px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(148,163,184,0.45);
  background: rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);
  color: rgba(15,23,42,0.75);
}
.medexp-resourceTile__body{min-width:0;flex:1;}
.medexp-resourceTile__title{font-weight:900;color:var(--medexp-text);letter-spacing:-0.01em;}
.medexp-resourceTile__meta{margin-top:2px;color:var(--medexp-muted);font-weight:700;font-size:0.88rem;}
.medexp-resourceTile__chev{flex:0 0 auto;color:rgba(15,23,42,0.35);font-size:22px;}

@media (max-width: 720px){
  .medexp-viewSwitch{ flex-direction: column; align-items:flex-start; }
  .medexp-viewSwitchCard{ padding: 12px 12px; }
  .medexp-viewSwitch__right{width:100%;justify-content:space-between;}
}


/* === Session Review premium UI polish (v0.5.46.47) === */

/* Give session review pages a premium "app shell" feel without breaking themes. */
body.medexp-sr-active{
 background: radial-gradient(1200px 600px at 20% -10%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12), transparent 55%),
             radial-gradient(900px 520px at 85% 0%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10), transparent 58%),
             linear-gradient(180deg, rgba(248,250,252,1), rgba(241,245,249,0.92));
}
body.medexp-sr-active .site,
body.medexp-sr-active .site-content,
body.medexp-sr-active .content-area,
body.medexp-sr-active #page{
 background: transparent;
}

/* Break out of narrow theme containers (full-bleed, but still within viewport). */
.medexp-qb-sessionReview.medexp-qb-case{
 position:relative;
 left:50%;
 transform:translateX(-50%);
 width:min(1320px, calc(100vw - 36px));
 margin:22px 0 42px;
 padding:18px;
 border-radius:26px;
 border:1px solid rgba(148,163,184,0.32);
 background:linear-gradient(180deg, rgba(255,255,255,0.82), rgba(248,250,252,0.72));
 box-shadow:0 30px 80px rgba(15,23,42,0.12);
 color:rgba(15,23,42,0.92); /* Force dark text — prevents theme inheritance (e.g. Reign) from making text white */
 gap:18px;
}
@media (max-width: 980px){
 .medexp-qb-sessionReview.medexp-qb-case{
  left:0;
  transform:none;
  width:100%;
  margin:14px 0 28px;
  padding:12px;
  border-radius:20px;
 }
}

/* Two-panel cards */
.medexp-qb-sessionReview .medexp-sr-left,
.medexp-qb-sessionReview .medexp-sr-right{
 border:1px solid rgba(148,163,184,0.30);
 border-radius:22px;
 background:rgba(255,255,255,0.90);
 box-shadow:0 16px 44px rgba(15,23,42,0.08);
 padding:14px;
}
.medexp-qb-sessionReview .medexp-sr-left{
 padding:14px;
}
.medexp-qb-sessionReview .medexp-sr-left__title{
 display:flex;
 align-items:baseline;
 justify-content:space-between;
 gap:10px;
 font-size:0.95rem;
 letter-spacing:-0.01em;
 margin-bottom:0.75rem;
}
.medexp-qb-sessionReview .medexp-sr-left__title:after{
 content:"Tap to review";
 font-weight:800;
 font-size:12px;
 color:rgba(51,65,85,0.62);
}

/* Question list */
.medexp-qb-sessionReview .medexp-sr-row{
 border-radius:16px;
 padding:0.55rem 0.65rem;
 border-color:rgba(148,163,184,0.34);
 background:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,252,0.78));
 transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
}
.medexp-qb-sessionReview .medexp-sr-row:hover{
 transform:none;
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.28);
 box-shadow:0 16px 38px rgba(15,23,42,0.10);
 background:linear-gradient(180deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08), rgba(255,255,255,0.92));
}
.medexp-qb-sessionReview .medexp-sr-row.is-active{
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.38);
 box-shadow:0 18px 46px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.14);
 background:linear-gradient(180deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12), rgba(255,255,255,0.94));
}
.medexp-qb-sessionReview .medexp-sr-row__type{opacity:0.85; font-weight:800;}
.medexp-qb-sessionReview .medexp-sr-row__n{
 width:34px;
 height:34px;
 border-radius:14px;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 border:1px solid rgba(148,163,184,0.36);
 background:rgba(241,245,249,0.75);
}
.medexp-qb-sessionReview .medexp-sr-row.is-active .medexp-sr-row__n{
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.34);
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
}

/* Right header */
.medexp-qb-sessionReview .medexp-sr-head{
 padding:0.9rem 1rem;
 border-radius:20px;
 border:1px solid rgba(148,163,184,0.28);
 background:linear-gradient(180deg, rgba(241,245,249,0.70), rgba(255,255,255,0.92));
 box-shadow:0 16px 44px rgba(15,23,42,0.08);
 margin-bottom:0.95rem;
}
.medexp-qb-sessionReview .medexp-sr-head__title{
 font-size:1.12rem;
 letter-spacing:-0.02em;
 margin-bottom:0.6rem;
}

/* Sticky question toolbar */
.medexp-qb-sessionReview .medexp-qb-nav{
 position:sticky;
 top:12px;
 z-index:20;
 padding:0.75rem 0.85rem;
 border-radius:20px;
 border:1px solid rgba(148,163,184,0.28);
 background:rgba(255,255,255,0.92);
 box-shadow:0 18px 50px rgba(15,23,42,0.10);
 backdrop-filter:blur(10px);
 margin-bottom:0.85rem;
}
@media (max-width: 720px){
 .medexp-qb-sessionReview .medexp-qb-nav{top:8px;}
}

/* Question + feedback cards breathe a bit more */
.medexp-qb-sessionReview .medexp-qb-question{
 border-radius:22px;
 border:1px solid rgba(148,163,184,0.30);
 background:rgba(255,255,255,0.92);
 box-shadow:0 14px 44px rgba(15,23,42,0.07);
 padding:1rem 1.05rem;
}
.medexp-qb-sessionReview .medexp-qb-feedback{
 border-radius:22px;
 border:1px solid rgba(148,163,184,0.28);
 background:rgba(255,255,255,0.92);
 box-shadow:0 14px 44px rgba(15,23,42,0.06);
 padding:0.95rem 1.05rem;
 margin-top:0.9rem;
}
.medexp-qb-sessionReview .medexp-sr-toolsWrap{
 border-radius:18px;
 border:1px solid rgba(148,163,184,0.28);
 background:rgba(248,250,252,0.78);
 padding:0.65rem 0.75rem;
}

/* Make the empty state look less "broken" */
.medexp-qb-sessionReview .medexp-qb-empty{
 background:rgba(241,245,249,0.55);
 border-color:rgba(148,163,184,0.45);
}


/* === Session Summary centering + wide layout (v0.5.46.50) === */
/* Make Session Summary behave like a centered, wide "app card" even inside narrow WP themes. */
body.medexp-ss-active{
 background: radial-gradient(1200px 600px at 20% -10%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12), transparent 55%),
             radial-gradient(900px 520px at 85% 0%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10), transparent 58%),
             linear-gradient(180deg, rgba(248,250,252,1), rgba(241,245,249,0.92));
 /* WP block theme width vars (avoid narrow 645px content-size on this page) */
 --wp--style--global--content-size: 1200px;
 --wp--style--global--wide-size: 1400px;
}
body.medexp-ss-active .site,
body.medexp-ss-active .wp-site-blocks,
body.medexp-ss-active main,
body.medexp-ss-active .site-main,
body.medexp-ss-active #primary,
body.medexp-ss-active #content,
body.medexp-ss-active .content-area,
body.medexp-ss-active .entry-content,
body.medexp-ss-active #page,
body.medexp-ss-active .site-content{
 background: transparent !important;
 max-width: none !important;
 width: 100% !important;
 margin: 0 !important;
 padding: 0 !important;
}

/* Session Summary: avoid the 100vw scrollbar offset from .medexp-container--bleed. */
body.medexp-ss-active .medexp-container--bleed{
 width:100% !important;
 max-width:100% !important;
 margin-left:0 !important;
 margin-right:0 !important;
}

/* Break out of narrow theme containers (centered + wider). */
.medexp-qb-sessionSummary{
 position: relative;
 width: min(1200px, calc(100vw - 36px));
 margin: 22px auto 42px;
 padding: 18px;
 border-radius: 26px;
 border: 1px solid rgba(148,163,184,0.30);
 background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(248,250,252,0.72));
 box-shadow: 0 30px 80px rgba(15,23,42,0.12);
}

/* Ensure inner dashboard content aligns centrally inside the breakout card. */
.medexp-qb-sessionSummary .medexp-qb-hub{
 width: 100%;
 margin: 0 auto;
}

/* ==========================================================
 Mastery Map Accordion (reduced noise + collapsible sections)
 ========================================================== */

.medexp-mapAccList{
 display:flex;
 flex-direction:column;
 gap:12px;
 margin-top:10px;
}

details.medexp-mapAcc{
 border:1px solid rgba(148,163,184,0.30);
 border-radius:var(--medexp-radius-lg);
 background:linear-gradient(180deg, rgba(255,255,255,0.92), rgba(248,250,252,0.86));
 backdrop-filter:saturate(160%) blur(10px);
 box-shadow:var(--medexp-shadow-md);
 overflow:hidden;
 transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

details.medexp-mapAcc:hover{
 transform:none;
 box-shadow:var(--medexp-shadow-lg);
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.22);
}


details.medexp-mapAcc.is-recommended{
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.45);
 box-shadow:0 0 0 3px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10), var(--medexp-shadow-lg);
}


.medexp-mapAcc__summary{
 list-style:none;
 cursor:pointer;
 display:grid;
 grid-template-columns: 1fr minmax(180px,260px) auto auto auto;
 gap:12px;
 align-items:center;
 padding:12px 12px;
 background:rgba(255,255,255,0.55);
 transition:background .18s ease;
}
.medexp-mapAcc__summary::-webkit-details-marker{display:none;}

details.medexp-mapAcc:not([open]) > .medexp-mapAcc__summary:hover{
 background:rgba(248,250,252,0.72);
}


@media (max-width:720px){
 .medexp-mapAcc__summary{
  grid-template-columns: 1fr auto auto;
  grid-auto-rows:auto;
 }
 .medexp-mapAcc__prog{
  grid-column: 1 / -1;
  justify-content:flex-start;
 }
 .medexp-mapAcc__chev{display:none;}
}

.medexp-mapAcc__left{min-width:0;}
.medexp-mapAcc__title{
 font-weight:900;
 color:rgba(15,23,42,0.92);
 letter-spacing:-0.02em;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.medexp-mapAcc__sub{
 margin-top:3px;
 font-size:12px;
 color:rgba(15,23,42,0.58);
 font-weight:800;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}

.medexp-mapAcc__prog{
 display:flex;
 align-items:center;
 gap:10px;
 justify-content:flex-end;
}

.medexp-progBar{
 height:10px;
 border-radius:999px;
 background:rgba(15,23,42,0.06);
 border:1px solid rgba(15,23,42,0.06);
 flex:1;
 min-width:140px;
 max-width:260px;
 overflow:hidden;
}
.medexp-progBar__fill{
 height:100%;
 border-radius:999px;
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.55);
 transition:width .22s ease;
}
.medexp-progBar__fill.is-l0{background:rgba(148,163,184,0.65);}
.medexp-progBar__fill.is-l1{background:rgba(245,158,11,0.78);}
.medexp-progBar__fill.is-l2{background:rgba(59,130,246,0.78);}
.medexp-progBar__fill.is-l3{background:rgba(34,197,94,0.78);}
.medexp-progBar__fill.is-l4{background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.86);}

.medexp-progPct{
 font-weight:900;
 font-size:12px;
 color:rgba(15,23,42,0.68);
 width:46px;
 text-align:right;
}

.medexp-mapAcc__moreWrap{position:relative;}
.medexp-mapAcc__more{
 width:38px;
 height:38px;
 border-radius:999px;
 border:1px solid rgba(148,163,184,0.30);
 background:rgba(255,255,255,0.86);
 backdrop-filter:saturate(160%) blur(10px);
 color:rgba(15,23,42,0.65);
 font-weight:900;
 cursor:pointer;
 display:flex;
 align-items:center;
 justify-content:center;
 transition:transform .18s ease, filter .18s ease, border-color .18s ease;
}

.medexp-mapAcc__more:hover{filter:brightness(0.98);transform:none;border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.22);}

.medexp-popMenu{
 position:absolute;
 top:44px;
 right:0;
 min-width:220px;
 background:rgba(255,255,255,0.92);
 backdrop-filter:saturate(160%) blur(12px);
 border:1px solid rgba(148,163,184,0.30);
 border-radius:16px;
 box-shadow:0 26px 60px rgba(15,23,42,0.18);
 padding:6px;
 z-index:50;
}

.medexp-popMenu[hidden]{display:none !important;}
.medexp-popMenu__item{
 display:flex;
 align-items:center;
 gap:8px;
 padding:10px 10px;
 border-radius:12px;
 font-weight:800;
 color:rgba(15,23,42,0.86);
 text-decoration:none;
}
.medexp-popMenu__item:hover{background:rgba(15,23,42,0.06);}

.medexp-mapAcc__chev{
 color:rgba(15,23,42,0.38);
 font-size:16px;
 transition:transform .18s ease;
}

details.medexp-mapAcc[open] .medexp-mapAcc__chev{transform:rotate(180deg);}

details.medexp-mapAcc[open] > .medexp-mapAcc__summary{
 background:rgba(248,250,252,0.72);
}


.medexp-mapAcc__panel{
 padding:12px 12px 14px;
 border-top:1px solid rgba(148,163,184,0.22);
 background:rgba(248,250,252,0.70);
}


.medexp-mapAcc__chips{
 display:flex;
 flex-wrap:wrap;
 gap:6px;
 margin:0 0 10px 0;
}

.medexp-mapLegend--inside{
 margin:0 0 12px 0;
}



/* ========================================================================== */
/* Premium typography hierarchy + spacing discipline (Course landing + Map)    */
/* ========================================================================== */

:root{
 --medexp-type-display: clamp(2.2rem, 3.4vw, 3.05rem);
 --medexp-type-h2: 1.25rem;
 --medexp-type-h3: 1.05rem;
 --medexp-type-meta: 0.86rem;
}

/* Base icon sizing (overridden in-context where needed) */
.tw-ico{width:18px;height:18px;display:block;}

/* Course title: bigger + bolder */
.medexp-hero__title{
 font-size:var(--medexp-type-display);
 font-weight:950;
 letter-spacing:-0.035em;
 line-height:1.06;
 margin:0;
}
.medexp-hero__subtitle{
 font-size:1.0rem;
 font-weight:520;
 color:var(--medexp-muted);
 line-height:1.55;
 max-width:80ch;
 margin:0.65rem 0 var(--medexp-space-4) 0;
}

/* Course cover (feature image) — small badge in the progress card header */
/*
   Course cover assets are portrait (e.g., 1400×1800). For the course hero,
   we render a compact badge in the progress card header (branding/recognition)
   without consuming premium hero space.
*/
.medexp-hero__header{
 display:flex;
 align-items:flex-start;
 gap:clamp(14px, 2.0vw, 22px);
 margin:0 0 var(--medexp-space-4) 0;
}
.medexp-hero__coverThumb{flex:0 0 auto;line-height:0;}
.medexp-hero__headerMain{min-width:0;}
.medexp-hero__headerMain .medexp-hero__title{margin:0;}

/* Reduce stacked spacing now that the title is in the header wrapper */
.medexp-hero__grid{margin-top:0;}

.medexp-courseCover{
 padding:0;
 overflow:hidden;
 margin:0;
 display:block;
 aspect-ratio:7 / 9;
 border:1px solid rgba(15,23,42,0.08);
 border-radius:16px;
 background:rgba(255,255,255,0.92);
 box-shadow:0 14px 34px rgba(15,23,42,0.10);
}
.medexp-courseCover--thumb{width:clamp(64px, 8vw, 88px);}
.medexp-courseCover--badge{width:64px;box-shadow:none;border-radius:14px;}
.medexp-courseCover--lg{width:clamp(112px, 12vw, 140px);}

.medexp-courseCover__img{
 display:block;
 width:100%;
 height:100%;
 object-fit:cover;
}
.medexp-courseCover--placeholder{
 background:linear-gradient(135deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10));
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.20);
}
.medexp-courseCover__placeholder{
 height:100%;
 display:flex;
 align-items:center;
 justify-content:center;
 font-weight:900;
 letter-spacing:-0.03em;
 color:var(--medexp-muted);
 text-transform:uppercase;
 padding:0.75rem;
 text-align:center;
}
.medexp-courseCover--thumb .medexp-courseCover__placeholder{
 font-size:0.78rem;
 padding:0.45rem;
}
.medexp-courseCover--badge .medexp-courseCover__placeholder{
 font-size:0.68rem;
 padding:0.35rem;
}

/* Slightly smaller badge on narrow screens to avoid crowding */
@media (max-width: 520px){
 .medexp-courseCover--badge{width:56px;}
}


@media (max-width: 980px){
 .medexp-hero__header{flex-direction:column;align-items:flex-start;}
}

/* Section titles: clear step down */
.medexp-sectionTitle,
.medexp-mapTitle,
.medexp-resourcesTitle{
 font-size:var(--medexp-type-h2);
 font-weight:900;
 letter-spacing:-0.02em;
 line-height:1.2;
 margin:0;
}

/* Metadata: smaller + lighter */
.medexp-sectionMeta,
.medexp-subtitle{
 font-size:var(--medexp-type-meta);
 font-weight:520;
 color:var(--medexp-muted);
 line-height:1.5;
 margin:0.35rem 0 0;
}

/* Next up card hierarchy */
.medexp-nextUp__kicker{
 font-size:0.72rem;
 letter-spacing:0.14em;
 text-transform:uppercase;
 font-weight:850;
 color:rgba(71,85,105,0.82);
}
.medexp-nextUp__label{
 font-size:0.80rem;
 font-weight:650;
 color:rgba(71,85,105,0.80);
 margin-top:0.15rem;
}
.medexp-nextUp__path{
 font-size:1.35rem;
 font-weight:900;
 letter-spacing:-0.03em;
 line-height:1.18;
}
.medexp-nextUp__meta{
 font-size:0.85rem;
 font-weight:520;
 color:rgba(71,85,105,0.85);
}

/* Progress card hierarchy */
.medexp-progress__title{
 font-size:0.72rem;
 letter-spacing:0.14em;
 text-transform:uppercase;
 font-weight:850;
 color:rgba(71,85,105,0.78);
}
.medexp-progress__pct{
 font-weight:950;
 letter-spacing:-0.03em;
}
.medexp-progress__label{
 font-size:0.70rem;
 letter-spacing:0.12em;
 text-transform:uppercase;
 font-weight:750;
 color:rgba(71,85,105,0.70);
}
.medexp-progress__value{
 font-size:0.95rem;
 font-weight:850;
 color:rgba(15,23,42,0.90);
}

/* Buttons: add icon support + compact icon-only action */
.medexp-btn--withIco{
 display:inline-flex;
 align-items:center;
 gap:0.55rem;
}
.medexp-btn--withIco .tw-ico{width:16px;height:16px;opacity:0.9;}
.medexp-btn__txt{display:inline-block;}

.medexp-iconBtn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:0.45rem;
 border:1px solid var(--medexp-border);
 background:rgba(255,255,255,0.92);
 color:rgba(15,23,42,0.92);
 border-radius:12px;
 padding:0.55rem 0.65rem;
 text-decoration:none;
 cursor:pointer;
 box-shadow:var(--medexp-shadow-xs);
 transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.medexp-iconBtn:hover{
 transform:none;
 box-shadow:var(--medexp-shadow-sm);
 background:rgba(248,250,252,0.95);
}
.medexp-iconBtn--ghost{
 background:transparent;
 box-shadow:none;
}
.medexp-iconBtn--ghost:hover{
 background:rgba(148,163,184,0.10);
}
.medexp-iconBtn--round{
 width:40px;
 height:40px;
 border-radius:999px;
 padding:0;
}
.medexp-iconBtn .tw-ico{width:18px;height:18px;opacity:0.9;}

/* a11y: visually hidden helper */
.medexp-srOnly{
 position:absolute !important;
 width:1px !important;
 height:1px !important;
 padding:0 !important;
 margin:-1px !important;
 overflow:hidden !important;
 clip:rect(0,0,0,0) !important;
 white-space:nowrap !important;
 border:0 !important;
}

/* Mastery map: lighten metadata weight so titles lead */
.medexp-mapChapter__meta{
 font-size:0.82rem;
 font-weight:520;
 color:rgba(71,85,105,0.80);
}
.medexp-mapAcc__sub{
 font-size:0.82rem;
 font-weight:600;
 color:rgba(71,85,105,0.78);
}
.medexp-kpiPill{font-weight:650;}
.medexp-kpiPill__meta{font-weight:520; color:rgba(71,85,105,0.78);}

/* Overflow menu: icons + tighter type */
.medexp-popMenu__item{
 font-weight:700;
 letter-spacing:-0.01em;
}
.medexp-popMenu__ico{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;opacity:0.85;}
.medexp-popMenu__ico .tw-ico{width:16px;height:16px;}
.medexp-popMenu__txt{display:inline-block;}

/* Resource tile meta: slightly lighter */
.medexp-resourceTile__meta{font-weight:560;font-size:0.86rem;}




/* ===================================================================== */
/* Premium micro-interactions (cheap but premium)                         */
/* ===================================================================== */

/* Intentional hover + focus states */
.medexp-btn,
.medexp-mapAcc__summary,
.medexp-mapTopic,
.medexp-popMenu__item{
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
}

.medexp-btn:hover{
  transform: translateY(-1px);
  box-shadow: var(--medexp-shadow-sm);
}
.medexp-btn:active{
  transform: translateY(0px);
}
.medexp-btn:focus-visible,
.medexp-mapAcc__summary:focus-visible,
.medexp-popMenu__item:focus-visible{
  outline: 2px solid rgba(var(--medexp-brand-blue-rgb,26,79,156), 0.35);
  outline-offset: 2px;
}

details.medexp-mapAcc:not([open]) > .medexp-mapAcc__summary:hover{
  background: rgba(248,250,252,0.85);
  box-shadow: var(--medexp-shadow-sm);
  transform: translateY(-1px);
  border-color: rgba(148,163,184,0.35);
}

.medexp-mapTopic:hover{
  transform: translateY(-1px);
  box-shadow: var(--medexp-shadow-sm);
  border-color: rgba(148,163,184,0.45);
}

.medexp-popMenu__item:hover{
  background: rgba(2,6,23,0.04);
}

/* Progress animations */
.medexp-progBar__fill{
  transition: width .70s cubic-bezier(.2,.9,.2,1);
  will-change: width;
}
.medexp-mapRing{
  transition: background .70s cubic-bezier(.2,.9,.2,1), box-shadow .20s ease, transform .20s ease;
  will-change: background;
}

/* Pulse when progress increases */
@keyframes medexpProgressPulse {
  0%{ transform: translateY(0) scale(1); box-shadow: 0 0 0 rgba(var(--medexp-brand-blue-rgb,26,79,156),0.0); }
  35%{ transform: translateY(-1px) scale(1.02); box-shadow: 0 10px 30px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10); }
  100%{ transform: translateY(0) scale(1); box-shadow: 0 0 0 rgba(var(--medexp-brand-blue-rgb,26,79,156),0.0); }
}
@keyframes medexpBarGlow {
  0%{ filter: brightness(1); }
  35%{ filter: brightness(1.08); }
  100%{ filter: brightness(1); }
}

details.medexp-mapAcc.is-progress-updated > .medexp-mapAcc__summary{
  animation: medexpProgressPulse 1.2s ease-out 1;
}
details.medexp-mapAcc.is-progress-updated .medexp-progBar__fill{
  animation: medexpBarGlow 1.1s ease-out 1;
}
details.medexp-mapAcc.is-progress-updated .medexp-mapRing{
  animation: medexpProgressPulse 1.2s ease-out 1;
}

/* Smooth expand/collapse */
.medexp-mapAcc__chev{
  transition: transform .22s ease;
}
details.medexp-mapAcc[open] > .medexp-mapAcc__summary .medexp-mapAcc__chev{
  transform: rotate(180deg);
}

.medexp-mapAcc__panel{
  max-height: 0;
  opacity: 0;
  transition: max-height .30s cubic-bezier(.2,.9,.2,1), opacity .18s ease;
  will-change: max-height, opacity;
}

/* Helper for JS: disable transitions when setting initial progress from cache */
.medexp-noTrans *{
  transition: none !important;
}

/* Skeleton loading */
.medexp-skelWrap{
  position: relative;
}
/* @keyframes medexpShimmer — defined once at line ~4462, do not redefine here */
.medexp-skelLine,
.medexp-skelPill,
.medexp-skelAcc,
.medexp-skelBar,
.medexp-skelBtn{
  background: #dde4ee;
  position: relative;
  overflow: hidden;
  border-radius: 999px;
}
.medexp-skelLine::after,
.medexp-skelPill::after,
.medexp-skelAcc::after,
.medexp-skelBar::after,
.medexp-skelBtn::after{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 0%, transparent 25%, rgba(255,255,255,0.55) 50%, transparent 75%, transparent 100%);
  animation: medexpShimmer 1.5s ease-in-out infinite;
  pointer-events: none;
}

.medexp-skelLine{ height: 14px; width: 220px; }
.medexp-skelLine--lg{ height: 22px; width: 320px; border-radius: 14px; }
.medexp-skelLine--md{ height: 16px; width: 260px; border-radius: 14px; }
.medexp-skelLine--sm{ height: 14px; width: 360px; opacity: .9; }
.medexp-skelLine--xs{ height: 12px; width: 180px; opacity: .85; }

.medexp-skelPill{ height: 34px; width: 120px; border-radius: 999px; }

.medexp-skelAcc{
  border: 1px solid rgba(148,163,184,0.30);
  border-radius: var(--medexp-radius-lg);
  padding: 12px;
  margin: 10px 0;
  display: grid;
  gap: 10px;
  overflow: hidden;
}
.medexp-skelBar{ height: 10px; width: 60%; border-radius: 999px; }
.medexp-skelBtn{ height: 34px; width: 110px; justify-self: end; border-radius: 999px; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .medexp-btn,
  .medexp-mapAcc__summary,
  .medexp-mapTopic,
  .medexp-popMenu__item,
  .medexp-progBar__fill,
  .medexp-mapRing,
  .medexp-mapAcc__panel,
  .medexp-skelLine::after,
  .medexp-skelPill::after,
  .medexp-skelAcc::after,
  .medexp-skelBar::after,
  .medexp-skelBtn::after{
    animation: none !important;
  }
  .medexp-mapAcc__panel{ max-height: none; opacity: 1; }
}

details.medexp-mapAcc[open] > .medexp-mapAcc__panel{
  opacity: 1;
  max-height: 9999px;
}


/* --------------------------------------------------------------------------
   Exam-like take-session view (forced)
   Note: JS now forces Exam/UWorld-style layout for all learners.
-----------------------------------------------------------------------------*/

.medexp-layout--exam{
  background: #f3f5f7;
}

/* Fullscreen overlay: hide WordPress chrome on the take-session page */
html.medexp-exam-fullscreen,
body.medexp-exam-fullscreen{
  height: 100% !important;
  overflow: hidden !important;
}
body.medexp-exam-fullscreen{
  margin: 0 !important;
  padding: 0 !important;
}

body.medexp-exam-fullscreen .medexp-btn:hover,
body.medexp-exam-fullscreen .medexp-btn--secondary:hover,
body.medexp-exam-fullscreen .medexp-qb-btn:hover,
body.medexp-exam-fullscreen .medexp-card:hover,
body.medexp-exam-fullscreen .medexp-resourceTile:hover,
body.medexp-exam-fullscreen .medexp-heatTile:hover,
body.medexp-exam-fullscreen .medexp-seg__btn:hover,
body.medexp-exam-fullscreen .medexp-fc-btn:hover,
body.medexp-exam-fullscreen .medexp-fc2-back:hover,
body.medexp-exam-fullscreen .medexp-fc2-icon:hover,
body.medexp-exam-fullscreen .medexp-sr-row:hover{
  transform: none !important;
}

/* Hide common WP chrome (theme header/footer + admin bar) */
body.medexp-exam-fullscreen #wpadminbar{
  display: none !important;
}
html.medexp-exam-fullscreen{
  margin-top: 0 !important;
}
body.medexp-exam-fullscreen .wp-site-blocks > header,
body.medexp-exam-fullscreen .wp-site-blocks > footer,
body.medexp-exam-fullscreen header.wp-block-template-part,
body.medexp-exam-fullscreen footer.wp-block-template-part,
body.medexp-exam-fullscreen .site-header,
body.medexp-exam-fullscreen .site-footer,
body.medexp-exam-fullscreen .wp-block-post-title,
body.medexp-exam-fullscreen .entry-header,
body.medexp-exam-fullscreen .entry-footer{
  display: none !important;
}

/* Fullscreen app container (take-session) */
body.medexp-exam-fullscreen .medexp-qbank{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  z-index: 10000 !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: var(--medexp-page-bg, #ffffff);
  /* Normalize font sizing so WordPress theme typography doesn't inflate the exam UI */
  font-size: 15px;
  line-height: 1.4;
  display: flex;
  flex-direction: column;
}

/* Exam view uses Exam-like gray background */
body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam{
  background: #f3f5f7;
}

/* Question typography (closer to Exam sizing) */
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-stem,
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-interaction{
  font-size: 15px;
  line-height: 1.45;
}
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-stem p{ margin: 0 0 0.85em; }
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-stem h1,
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-stem h2,
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-stem h3,
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-stem h4{
  font-size: 1.1em;
  margin: 0.85em 0 0.45em;
}
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-qb-matrix th,
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-qb-matrix td{
  font-size: 14px !important;
}

/* App internal scrolling */
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-top,
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-bottom{
  flex: 0 0 auto;
  padding: 0;
  margin: 0;
}
body.medexp-exam-fullscreen .medexp-qbank .medexp-qb-body{
  flex: 1 1 auto;
  overflow: auto;
  padding: 0 12px 10px;
}

/* Exam bars flush to edges when fullscreen */
body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-pv-topbar,
body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-pv-footer{
  border-radius: 0;
}


.medexp-layout--exam .medexp-qb-top{
  padding: 0;
  margin: 0;
  position: sticky;
  top: 0;
  z-index: 50;
}

.medexp-pv-topbar{
  background: #0b5ea8;
  color: #fff;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
}

.medexp-pv-topbar__left,
.medexp-pv-topbar__mid,
.medexp-pv-topbar__right{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.medexp-pv-topbar__mid{ flex: 1; justify-content: center; }
.medexp-pv-topbar__left{ min-width: 210px !important; }
.medexp-pv-topbar__right{ min-width: 320px; justify-content: flex-end; }

.medexp-pv-topbar__kv{
  display: flex;
  align-items: baseline;
  gap: 6px;
  white-space: nowrap;
  font-size: 13px;
}

.medexp-pv-topbar__kv strong{
  font-weight: 800;
}

.medexp-pv-time{
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.3px;
}

.medexp-pv-markBtn{
  appearance: none;
  border: 1px solid rgba(255,255,255,0.65);
  background: transparent;
  color: #fff;
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 14px !important;
  cursor: pointer;
  line-height: 1;
}

.medexp-pv-markBtn:hover,
.medexp-pv-markBtn:focus{
  outline: none !important;
  border-color: rgba(255,255,255,0.65) !important;
}
.medexp-pv-markBtn.is-marked{
  background: rgba(255,255,255,0.18);
}

/* Exam join: remove the visual seam between the top bar and the tools row */
.medexp-layout--exam .medexp-pv-topbar{
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.medexp-layout--exam .medexp-uw-toptools{
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.medexp-pv-viewBtn{
  appearance: none;
  border: 1px solid rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.08);
  color: #fff;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 700 !important;
  cursor: pointer;
}

.medexp-layout--exam .medexp-qb-body{
  padding-top: 0;
}

/* Tighten + square off panels a bit (Exam feel) */
.medexp-layout--exam .medexp-examLeft,
.medexp-layout--exam .medexp-examRight{
  border-radius: 6px;
  border: 1px solid #d7dde5;
}

.medexp-layout--exam .medexp-examLayout{
  gap: 10px;
  margin-top: 10px;
  height: calc(100vh - 210px);
}

.medexp-layout--exam .medexp-qb-nav{
  border-radius: 6px;
  border: 1px solid #d7dde5;
  background: #fff;
}

/* Keep Submit close to the question, but move Prev/Next into the Exam footer */
.medexp-layout--exam .medexp-qb-actionsRow{
  border: 0;
  background: transparent;
  padding: 0;
  margin-top: 12px;
}

.medexp-layout--exam .medexp-qb-actionsRow__right > button:nth-child(1),
.medexp-layout--exam .medexp-qb-actionsRow__right > button:nth-child(3){
  display: none;
}

/* Safety: in Exam view we don't show the item-type pill next to the question number */
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-qb-nav__mid .medexp-qb-chip{
  display: none;
}

/* Submit button: match the rest of the Exam-style controls (no gradient bubble) */
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-submitBtn{
  border: 1px solid rgba(11,94,168,0.35);
  background: rgba(11,94,168,0.08);
  color: #0b5ea8;
  box-shadow: none !important;
  border-radius: 6px;
}
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-submitBtn:hover{
  background: rgba(11,94,168,0.14);
  border-color: rgba(11,94,168,0.35) !important;
  outline: none !important;
}
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-submitBtn:focus{
  border-color: rgba(11,94,168,0.35) !important;
  outline: none !important;
}

/* Sticky footer like Exam */
.medexp-qb-bottom{ margin-top: 10px; }

.medexp-pv-footer{
  position: sticky;
  bottom: 0;
  background: #0b5ea8;
  color: #fff;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 14px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  z-index: 40;
}

.medexp-pv-footer__mid{
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.2px;
  text-align: center;
}

.medexp-pv-footer__left,
.medexp-pv-footer__right{ display: flex; align-items: center; gap: 8px; }

.medexp-pv-footerBtn{
  appearance: none;
  border: 1px solid rgba(255,255,255,0.7);
  background: rgba(255,255,255,0.06);
  color: #fff;
  border-radius: 10px;
  padding: 8px 12px;
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
}

.medexp-pv-footerBtn:hover,
.medexp-pv-footerBtn:focus{
  outline: none !important;
  border-color: rgba(255,255,255,0.7) !important;
}
.medexp-pv-footerBtn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}

/* -------- Exam-like unified bars (top + bottom) -------- */
.medexp-pv-bar{
  background: #0b5ea8;
  color: #fff;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
}

/* -------- UWorld-style footer (Exam fullscreen variant) -------- */
.medexp-uw-footer{
  background: #0b5ea8;
  color: #fff;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  height: 52px;
  border-radius: 0;
}

.medexp-uw-footer__left,
.medexp-uw-footer__right{
  display: flex;
  align-items: stretch;
  height: 100%;
}

.medexp-uw-footerBtn{
  appearance: none;
  border: 0;
  background: transparent;
  color: #fff;
  height: 100%;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
  line-height: 1;
  white-space: nowrap;
}

.medexp-uw-footer__left .medexp-uw-footerBtn{
  border-right: 2px solid rgba(255,255,255,0.55);
}

.medexp-uw-footer__right .medexp-uw-footerBtn{
  border-left: 2px solid rgba(255,255,255,0.55);
}

.medexp-uw-footerBtn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}

.medexp-uw-footerBtn__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.medexp-uw-footerBtn__icon svg{
  width: 18px;
  height: 18px;
}

.medexp-uw-footerBtn:hover,
.medexp-uw-footerBtn:focus{
  border: none !important;
  outline: none !important;
  background: transparent !important;
}
.medexp-uw-footerBtn:hover .medexp-uw-footerBtn__label,
.medexp-uw-footerBtn:focus-visible .medexp-uw-footerBtn__label{
  text-decoration: underline;
  text-underline-offset: 8px;
  text-decoration-thickness: 3px;
}

.medexp-pv-bar__left,
.medexp-pv-bar__right{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.medexp-pv-title{
  display: flex;
  align-items: baseline;
  gap: 0;
  font-size: 14px !important;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(620px, 60vw);
}
.medexp-pv-title__learner{
  font-weight: 700 !important;
  opacity: 0.92;
}
.medexp-pv-title__sep{
  opacity: 0.65;
  /* Ensure visible spacing around the em dash separator in the Exam-like header. */
  margin: 0 6px;
}

.medexp-pv-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.10);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
.medexp-pv-chip__icon{
  display: inline-flex;
  width: 16px;
  height: 16px;
}
.medexp-pv-chip__icon svg{
  width: 16px;
  height: 16px;
}

.medexp-pv-iconBtn{
  appearance: none;
  border: 1px solid rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.08);
  color: #fff;
  border-radius: 10px;
  padding: 6px 9px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.medexp-pv-iconBtn:hover{
  background: rgba(255,255,255,0.12);
  outline: none !important;
  border-color: rgba(255,255,255,0.55) !important;
}
.medexp-pv-iconBtn:focus{
  outline: none !important;
  border-color: rgba(255,255,255,0.55) !important;
}
.medexp-pv-iconBtn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}
.medexp-pv-iconBtn.is-active{
  background: rgba(255,255,255,0.18);
}
.medexp-pv-icon{
  display: inline-flex;
  width: 18px;
  height: 18px;
}
.medexp-pv-icon svg{
  width: 18px;
  height: 18px;
}

/* When in fullscreen, keep bars flush to edges */
body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-pv-topbar,
body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-pv-footer,
body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-uw-footer{
  border-radius: 0;
}

/* Footer-only: hide the long title on small screens so controls don't wrap too early */
@media (max-width: 680px){
  .medexp-pv-footer .medexp-pv-title{
    display: none;
  }
}

/* Navigator modal (Exam-like) */
.medexp-pv-navOverlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.10);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  z-index: 10150;
}

.medexp-pv-navModal{
  width: min(900px, 96vw);
  height: min(560px, 90vh);
  background: #0b5ea8;
  border: 1px solid #07497f;
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
  display: flex;
  flex-direction: column;
}

.medexp-pv-navTop{
  padding: 8px 10px;
  color: #fff;
  font-weight: 800;
  font-size: 14px !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.medexp-pv-navTop__sub{
  font-weight: 400;
  opacity: 0.95;
}

.medexp-pv-navX{
  appearance: none;
  border: 1px solid rgba(255,255,255,0.65);
  background: rgba(255,255,255,0.08);
  color: #fff;
  border-radius: 4px;
  width: 34px;
  height: 28px;
  cursor: pointer;
  font-size: 18px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  padding: 0;
}

.medexp-pv-navBody{
  flex: 1 1 auto;
  background: #fff;
  margin: 0 10px;
  overflow: auto;
  border: 1px solid #084a7a;
}

/* Navigator loading state (so the modal doesn't look empty during API latency) */
.medexp-pv-navLoading{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  font-weight: 700;
  color: #0b5ea8;
}

.medexp-pv-spinner{
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(0,0,0,0.15);
  border-top-color: currentColor;
  animation: medexp-pv-spin 0.9s linear infinite;
  flex: 0 0 auto;
}

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

.medexp-pv-navBottom{
  padding: 10px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
}

.medexp-pv-navClose{
  appearance: none;
  border: 1px solid rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.06);
  color: #fff;
  border-radius: 4px;
  padding: 6px 12px;
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
}

.medexp-pv-navTable{
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.medexp-pv-navTable thead th{
  position: sticky;
  top: 0;
  background: #2c6fb3;
  color: #fff;
  padding: 6px 8px;
  text-align: left;
  font-weight: 800;
  border-right: 1px solid rgba(255,255,255,0.35);
  z-index: 1;
}

.medexp-pv-navTable thead th:last-child{
  border-right: none;
}

.medexp-pv-navTable tbody td{
  padding: 6px 8px;
  border-top: 1px solid #d7d7d7;
  border-right: 1px solid #e2e2e2;
  vertical-align: middle;
}

.medexp-pv-navTable tbody td:last-child{
  border-right: none;
}

.medexp-pv-navTable tbody tr{
  background: #fff;
  cursor: pointer;
}

.medexp-pv-navTable tbody tr:hover{
  background: #fff8a8;
}

.medexp-pv-navTable tbody tr.is-current{
  background: #fff27a;
}

.medexp-pv-navTable .col-status.is-bad{
  color: #c00000;
  font-weight: 800;
}

.medexp-pv-navTable .col-q{
  min-width: 240px;
}



/* UWorld-like tools row (Highlight / Strikethrough / Feedback) */
.medexp-uw-toptools{
  pointer-events: auto;
  background: linear-gradient(135deg, #4B7BB5 0%, #5B8EC9 50%, #6B9ED6 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 16px;
  gap: 12px;
  border-radius: 14px;
  position: sticky;
  top: 0;
  z-index: 9999;
  box-shadow: 0 2px 8px rgba(75,123,181,0.25), 0 8px 24px rgba(75,123,181,0.12);
}

.medexp-uw-toptools__left,
.medexp-uw-toptools__right{
  display: flex;
  align-items: center;
  gap: 14px;
}

.medexp-uw-toptools__mid{
  flex: 1;
  display: flex;
  justify-content: center;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: 0.2px;
  white-space: nowrap;
}

.medexp-uw-toolBtn,
.medexp-uw-iconBtn,
.medexp-uw-flagBtn{
  appearance: none;
  border: none;
  background: transparent;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  transition: background .15s ease, transform .15s ease;
}

.medexp-uw-toolBtn{
  gap: 8px;
  padding: 6px 10px;
  font-weight: 700 !important;
  font-size: 15px;
}

.medexp-uw-toolBtn:hover,
.medexp-uw-iconBtn:hover,
.medexp-uw-flagBtn:hover{
  background: rgba(255,255,255,0.18);
  transform: translateY(-1px);
  border: none !important;
  outline: none !important;
}
.medexp-uw-toolBtn:focus,
.medexp-uw-iconBtn:focus,
.medexp-uw-flagBtn:focus{
  border: none !important;
  outline: none !important;
}

.medexp-uw-iconBtn{
  width: 34px;
  height: 34px;
  justify-content: center;
  padding: 0;
}

.medexp-uw-ico svg{
  width: 18px;
  height: 18px;
}

.medexp-uw-hlBox{
  width: 16px;
  height: 16px;
  background: #ffea00;
  border: 2px solid rgba(0,0,0,0.85);
  border-radius: 2px;
  display: inline-block;
}

.medexp-uw-caret svg{
  width: 14px;
  height: 14px;
}

/* Highlight color picker (UWorld-like tools row) */
.medexp-uw-hlMenu{
  position: fixed;
  /* Must sit above Exam fullscreen layer (.medexp-qbank uses z-index ~2.1B) */
  z-index: 10200 !important;
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid rgba(15, 23, 42, 0.18);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.18);
}
.medexp-uw-hlMenu__label{
  font-weight: 800;
  font-size: 12px;
  color: rgba(15, 23, 42, 0.7);
  margin-right: 2px;
}
.medexp-uw-hlSwatch{
  width: 18px;
  height: 18px;
  border-radius: 4px;
  border: 2px solid rgba(15, 23, 42, 0.55);
  cursor: pointer;
  padding: 0;
  appearance: none;
  background: transparent;
}

/* Native color input to allow any highlight color */
.medexp-uw-hlColorInput{
  width: 22px;
  height: 22px;
  border: 2px solid rgba(15, 23, 42, 0.55);
  border-radius: 6px;
  padding: 0;
  background: transparent;
  cursor: pointer;
}
.medexp-uw-hlColorInput::-webkit-color-swatch-wrapper{ padding: 0; }
.medexp-uw-hlColorInput::-webkit-color-swatch{ border: 0; border-radius: 4px; }
.medexp-uw-hlSwatch.is-active{
  outline: 3px solid rgba(var(--medexp-brand-blue-rgb,26,79,156), 0.35);
  outline-offset: 2px;
}

.medexp-uw-flagBtn{
  gap: 6px;
  padding: 6px 8px;
  font-weight: 700 !important;
  font-size: 16px;
}

.medexp-uw-flagBtn .medexp-uw-flagText{
  text-decoration: underline;
}

.medexp-uw-flagBtn.is-marked{
  background: rgba(255,255,255,0.18);
}

.medexp-uw-iconBtn.is-active{
  background: rgba(255,255,255,0.18);
}

.medexp-uw-iconBtn.is-busy{
  opacity: 0.85;
  pointer-events: none;
}

.medexp-uw-iconBtn.is-busy .medexp-uw-ico{
  opacity: 0.35;
}

.medexp-uw-iconBtn.is-busy::before{
  content: '';
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.35);
  border-top-color: rgba(255,255,255,0.95);
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  animation: medexp-spin-center 0.8s linear infinite;
}

@keyframes medexp-spin-center{
  to{ transform: translate(-50%,-50%) rotate(360deg); }
}

.medexp-uw-iconBtn.has-note::after{
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #ffea00;
  position: absolute;
  transform: translate(10px,-10px);
}

.medexp-uw-iconBtn{
  position: relative;
}

/* Full-width flush in fullscreen, rounded in window mode */
body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toptools{
  margin: -10px -12px 10px;
  border-radius: 0;
}

@media (max-width: 900px){
  .medexp-pv-topbar{ border-radius: 8px; }
  .medexp-pv-footer{ border-radius: 8px; }
  .medexp-layout--exam .medexp-examLayout{
    grid-template-columns: 1fr;
    height: auto;
    min-height: 60vh;
  }
}

/* --------------------------------------------------------------------------
   Mobile polish (Exam fullscreen)
   - Make the two top bars feel like a single premium app header.
   - Prevent awkward wrapping on small screens.
-----------------------------------------------------------------------------*/
@media (max-width: 640px){
  /* Top bar: keep a single clean row (title left, controls right) */
  body.medexp-exam-fullscreen .medexp-pv-topbar{
    padding: calc(8px + env(safe-area-inset-top)) 10px 8px;
    gap: 8px;
    flex-wrap: nowrap;
  }
  body.medexp-exam-fullscreen .medexp-pv-topbar__left,
  body.medexp-exam-fullscreen .medexp-pv-topbar__right{
    min-width: 0;
    flex-wrap: nowrap;
  }
  body.medexp-exam-fullscreen .medexp-pv-topbar__left{ flex: 1 1 auto; }
  body.medexp-exam-fullscreen .medexp-pv-topbar__right{ flex: 0 0 auto; gap: 6px; }

  /* The mid cluster is redundant on phones (question count already shows) */
  body.medexp-exam-fullscreen .medexp-pv-topbar__mid{ display: none; }

  body.medexp-exam-fullscreen .medexp-pv-title{
    font-size: 13px;
    max-width: 44vw;
  }
  body.medexp-exam-fullscreen .medexp-pv-topbar__kv{ font-size: 12px; }
  body.medexp-exam-fullscreen .medexp-pv-chip{ padding: 5px 8px; font-size: 11px; gap: 6px; }
  body.medexp-exam-fullscreen .medexp-pv-iconBtn{ padding: 6px 7px; border-radius: 12px; }
  body.medexp-exam-fullscreen .medexp-pv-icon,
  body.medexp-exam-fullscreen .medexp-pv-icon svg{ width: 16px; height: 16px; }

  /* Tools row: disable double-sticky (Exam wrapper is already sticky) */
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toptools{
    position: relative;
    top: auto;
    z-index: 49;
    padding: 6px 10px;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toptools::-webkit-scrollbar{ display: none; }

  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toptools__mid{ display: none; }
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toptools__left,
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toptools__right{
    gap: 8px;
    flex-wrap: nowrap;
    white-space: nowrap;
  }
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toolBtn{
    font-size: 13px;
    padding: 6px 6px;
    gap: 6px;
    white-space: nowrap;
  }
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-iconBtn{ width: 32px; height: 32px; }
}

@media (max-width: 420px){
  /* Extra tight phones: icon-first tools row */
  body.medexp-exam-fullscreen .medexp-pv-title{ max-width: 38vw; }
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-uw-toolBtn{ font-size: 0; gap: 0; padding: 6px; }
}

/* --------------------------------------------------------------------------
   iPhone / small-screen tweak (Practice Exam)
   - The Exam-like top bar already has full navigation in the bottom footer.
   - On iPhone widths, the 4-icon cluster (mark/prev/list/next) crowds the header,
     so we hide those icon buttons in the *top* bar only.
-----------------------------------------------------------------------------*/
@media (max-width: 520px), (hover: none) and (pointer: coarse) and (max-width: 980px){
  /*
    Small phones (iPhone and similar): hide the top-right icon cluster in the Exam-like header.
    We deliberately keep navigation available in the bottom footer.

    Note: selectors are intentionally redundant to survive minor DOM/class changes across layouts.
  */
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar .medexp-pv-markBtn,
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_prev"],
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_nav"],
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_next"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar .medexp-pv-markBtn,
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_prev"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_nav"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_next"],
  .medexp-layout--exam .medexp-pv-topbar .medexp-pv-markBtn,
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_prev"],
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_nav"],
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_next"]{
    display: none !important;
  }

  /* Keep the remaining header controls from wrapping once the icons are removed. */
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar .medexp-pv-bar__right,
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar .medexp-pv-bar__right,
  .medexp-layout--exam .medexp-pv-topbar .medexp-pv-bar__right{
    gap: 6px;
    min-width: 0;
    flex-wrap: nowrap;
  }
}

/* --------------------------------------------------------------------------
   Touch devices (iPhone / iPad)
   1) When a question is short, ensure the exam panels still fill the viewport
      (avoid a gray "dead" area below the panels).
   2) On iPhones, render the tools row as icon-only (no text labels).

   NOTE: earlier rules scoped to body.medexp-exam-fullscreen and a data-mode
   attribute, but those markers are not always present across all session
   entry points. These selectors are intentionally broader.
-----------------------------------------------------------------------------*/

/* 1) Fill to bottom on touch devices (iPhone + iPad) */
@media (hover: none) and (pointer: coarse), (max-width: 1024px){
  /* Prefer dynamic viewport units on mobile Safari to avoid address-bar gaps */
  body.medexp-exam-fullscreen .medexp-qbank{ height: 100dvh !important; min-height: 100dvh !important; }

  /* Make the body a flex column so the panel grid can stretch */
  .medexp-qbank.medexp-layout--exam .medexp-qb-body,
  body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  /* Stop using vh math for panel height; let flex drive the height */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout,
  body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto;
    min-height: 0;
    height: auto !important;
  }

  /* Ensure the panels stretch to the grid height */
  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    height: 100%;
    min-height: 0;
  }
}

/* 2) iPhone: tools row icons only (keep the same actions; just hide labels) */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-uw-toolBtn .medexp-uw-label,
  .medexp-layout--exam .medexp-uw-flagBtn .medexp-uw-flagText{
    display: none !important;
  }
  /* Compact the buttons now that labels are gone */
  .medexp-layout--exam .medexp-uw-toolBtn{
    padding: 6px 7px;
    gap: 6px;
  }
  .medexp-layout--exam .medexp-uw-flagBtn{
    width: 34px;
    height: 34px;
    justify-content: center;
    padding: 0;
    gap: 0;
  }
}


/* --------------------------------------------------------------------------
   Take-session settings (Exam/UWorld-like)
   - font size, theme, timer
-----------------------------------------------------------------------------*/
:root{ --medexp-qb-font-px: 15px; }

/* Font sizing for question/passage/feedback within the QBank app */
.medexp-qbank .medexp-qb-stem,
.medexp-qbank .medexp-qb-interaction,
.medexp-qbank .medexp-qb-feedback,
.medexp-qbank .medexp-examPassage{
  font-size: var(--medexp-qb-font-px, 15px) !important;
}
.medexp-qbank .medexp-qb-matrix th,
.medexp-qbank .medexp-qb-matrix td{
  font-size: calc(var(--medexp-qb-font-px, 15px) - 1px) !important;
}

/* Hide timed-exam timer when toggled off */
html.medexp-hide-timer .medexp-examTop__mid{
  display:none !important;
}

/* Settings modal UI */
.medexp-uw-settings{
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  min-width: 280px;
}
.medexp-uw-settings__sectionTitle{
  font-weight: 800;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--medexp-muted);
  padding: 10px 2px 4px;
}
.medexp-uw-settings__sectionTitle:first-child{ padding-top:0; }
.medexp-uw-settingsRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border:1px solid var(--medexp-border);
  border-bottom:0;
  background: var(--medexp-surface);
}
.medexp-uw-settingsRow:first-of-type,
.medexp-uw-settings__sectionTitle + .medexp-uw-settingsRow{
  border-radius:10px 10px 0 0;
}
.medexp-uw-settingsRow:last-child,
.medexp-uw-settingsRow + .medexp-uw-settings__sectionTitle{
  border-bottom:1px solid var(--medexp-border);
}
.medexp-uw-settingsRow:last-child{
  border-bottom:1px solid var(--medexp-border);
  border-radius: 0 0 10px 10px;
}
/* When a section title follows a row, close previous group */
.medexp-uw-settingsRow + .medexp-uw-settings__sectionTitle{
  margin-top:0;
}
/* Last row before a new section — round bottom */
.medexp-uw-settingsRow:has(+ .medexp-uw-settings__sectionTitle){
  border-bottom:1px solid var(--medexp-border);
  border-radius: 0 0 10px 10px;
}
/* Single row in a section */
.medexp-uw-settings__sectionTitle + .medexp-uw-settingsRow:has(+ .medexp-uw-settings__sectionTitle),
.medexp-uw-settings__sectionTitle + .medexp-uw-settingsRow:last-child{
  border-radius:10px;
  border-bottom:1px solid var(--medexp-border);
}
.medexp-uw-settingsRow__left{
  display:flex;
  flex-direction:column;
  gap:0;
}
.medexp-uw-settingsRow__label{
  font-weight: 700;
  font-size: 13px;
  color: var(--medexp-text);
}
.medexp-uw-settingsRow__sub{
  font-size: 11px;
  color: var(--medexp-muted);
}

.medexp-uw-stepper{
  display:flex;
  align-items:center;
  gap:4px;
}
.medexp-uw-stepBtn{
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid var(--medexp-border);
  background: var(--medexp-bg);
  color: var(--medexp-text);
  font-weight: 900;
  font-size:14px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.medexp-uw-stepBtn:hover{
  border-color: color-mix(in srgb, var(--medexp-primary) 35%, var(--medexp-border)) !important;
  outline: none !important;
}
.medexp-uw-stepBtn:focus{
  outline: none !important;
}
.medexp-uw-stepVal{
  min-width: 42px;
  text-align:center;
  font-weight: 800;
  font-size:13px;
  color: var(--medexp-text);
}

.medexp-uw-seg{
  display:flex;
  border:1px solid var(--medexp-border);
  border-radius:8px;
  overflow:hidden;
  background: var(--medexp-bg);
}
.medexp-uw-segBtn{
  appearance:none !important;
  border:0;
  background: transparent;
  padding:5px 10px;
  font-weight: 700;
  font-size:12px;
  cursor:pointer;
  color: var(--medexp-muted);
}
.medexp-uw-segBtn.is-active{
  background: var(--medexp-primary);
  color: var(--medexp-primary-contrast);
}

.medexp-uw-switch{
  position:relative;
  width:38px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.medexp-uw-switch input{
  position:absolute;
  opacity:0;
  width:0;
  height:0;
}
.medexp-uw-switch__track{
  position:absolute;
  inset:0;
  border-radius:999px;
  border:1px solid var(--medexp-border);
  background: rgba(15, 23, 42, 0.14);
  transition: background 0.18s ease, border-color 0.18s ease;
}
.medexp-uw-switch__thumb{
  position:absolute;
  top:2px;
  left:2px;
  width:18px;
  height:18px;
  border-radius:999px;
  background: var(--medexp-bg);
  box-shadow: var(--medexp-shadow-xs);
  transition: transform 0.18s ease;
}
.medexp-uw-switch input:checked + .medexp-uw-switch__track{
  background: var(--medexp-primary);
  border-color: var(--medexp-primary);
}
.medexp-uw-switch input:checked + .medexp-uw-switch__track .medexp-uw-switch__thumb{
  transform: translateX(16px);
}

.medexp-uw-colorInput{
  width: 36px;
  height: 28px;
  border: 1px solid var(--medexp-border);
  border-radius: 8px;
  padding: 0;
  background: transparent;
  cursor: pointer;
}
.medexp-uw-colorInput::-webkit-color-swatch-wrapper{ padding: 0; }
.medexp-uw-colorInput::-webkit-color-swatch{ border: 0; border-radius: 6px; }

/* Settings modal overlay (must sit above Exam fullscreen layer) */
.medexp-uwModalOverlay{
  position: fixed;
  inset: 0;
  z-index: 10300 !important;
  background: rgba(2, 6, 23, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.medexp-uwModal{
  width: min(380px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  overflow: auto;
  border-radius: 14px;
  border: 1px solid var(--medexp-border);
  background: var(--medexp-card);
  box-shadow: 0 22px 70px rgba(15, 23, 42, 0.35);
}
.medexp-uwModal__header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--medexp-border);
}
.medexp-uwModal__title{
  font-weight: 800;
  font-size: 14px;
  color: var(--medexp-text);
}
.medexp-uwModal__close{
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid var(--medexp-border);
  background: var(--medexp-bg);
  color: var(--medexp-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}
.medexp-uwModal__close svg{ width: 15px; height: 15px; color: inherit; }
.medexp-uwModal__body{
  padding: 10px 14px 14px;
}
.medexp-uwModal__footer{
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 8px 14px;
  border-top: 1px solid var(--medexp-border);
  background: color-mix(in srgb, var(--medexp-card) 90%, var(--medexp-bg));
}

/* Dark theme: swap core tokens (scoped to opt-in class) */
html.medexp-theme-dark{
  --medexp-page-bg:#0b1220;
  --medexp-bg:#0f172a;
  --medexp-surface:#111c33;
  --medexp-card:#0f172a;
  --medexp-text:#e5e7eb;
  --medexp-muted:#94a3b8;
  --medexp-border:#22304a;
  --medexp-primary:#60a5fa;
  --medexp-primary-contrast:#0b1220;
  --medexp-shadow-xs:0 1px 2px rgba(0,0,0,0.35);
  --medexp-shadow-sm:0 12px 32px rgba(0,0,0,0.35);
  --medexp-shadow-md:0 20px 55px rgba(0,0,0,0.45);
}
html.medexp-theme-dark body{
  background: var(--medexp-page-bg);
}
html.medexp-theme-dark .medexp-uw-toptools{
  background: #1f2a44;
}
html.medexp-theme-dark .medexp-uw-toolBtn:hover,
html.medexp-theme-dark .medexp-uw-iconBtn:hover,
html.medexp-theme-dark .medexp-uw-flagBtn:hover{
  background: rgba(255,255,255,0.08);
}
html.medexp-theme-dark .medexp-uw-hlMenu{
  background: var(--medexp-bg);
  border-color: var(--medexp-border);
  color: var(--medexp-text);
}

/* Dark theme: Matrix / grid interactions (e.g., question classification tables)
   These components ship with hard-coded translucent white backgrounds, so we
   explicitly override them in dark mode. */
html.medexp-theme-dark .medexp-qb-matrix,
html.medexp-theme-dark table.medexp-qb-matrix{
  background: rgba(15,23,42,0.82) !important;
  border-color: rgba(34,48,74,0.85) !important;
  color: rgba(226,232,240,0.92);
}
html.medexp-theme-dark .medexp-qb-matrix th,
html.medexp-theme-dark .medexp-qb-matrix td{
  border-bottom-color: rgba(226,232,240,0.12) !important;
  color: rgba(226,232,240,0.92);
}
html.medexp-theme-dark .medexp-qb-matrix th{
  background: rgba(30,41,59,0.75) !important;
}
html.medexp-theme-dark .medexp-qb-matrix td{
  background: transparent !important;
}
html.medexp-theme-dark .medexp-qb-matrix tr:hover td{
  background: rgba(226,232,240,0.04) !important;
}


/* Dark theme tweaks for modal chrome */
html.medexp-theme-dark .medexp-qb-modal__card{
  background: rgba(15, 23, 42, 0.98);
  border-color: rgba(34, 48, 74, 0.75);
}
html.medexp-theme-dark .medexp-qb-modal__head,
html.medexp-theme-dark .medexp-qb-modal__foot{
  border-color: rgba(34, 48, 74, 0.75);
}
html.medexp-theme-dark .medexp-qb-modal__title{
  color: rgba(226, 232, 240, 0.92);
}

html.medexp-theme-dark .medexp-qb-modal__sub{color: rgba(148,163,184,0.92);} 
html.medexp-theme-dark .medexp-qb-modal__close{background: rgba(30,41,59,0.60) !important;border-color: rgba(34,48,74,0.75) !important;color: rgba(226,232,240,0.92) !important;}
html.medexp-theme-dark .medexp-qb-modal__close:hover{background: rgba(30,41,59,0.92) !important;color:rgba(248,250,252,0.95) !important;} 
html.medexp-theme-dark .medexp-qb-modal.medexp-reportModal .medexp-qb-label{color: rgba(226,232,240,0.92);} 
html.medexp-theme-dark .medexp-qb-modal.medexp-reportModal .medexp-reportCats{background: rgba(30,41,59,0.55);border-color: rgba(34,48,74,0.75);} 
html.medexp-theme-dark .medexp-qb-modal.medexp-reportModal .medexp-qb-radio{color: rgba(226,232,240,0.92);} 
html.medexp-theme-dark .medexp-fcMgr__sidebar{background: rgba(30,41,59,0.55);border-color: rgba(34,48,74,0.75);} 
html.medexp-theme-dark .medexp-fcMgr__deckSel,
html.medexp-theme-dark .medexp-fcMgr__ta,
html.medexp-theme-dark .medexp-fcMgr__tags,
html.medexp-theme-dark .medexp-fcMgr__cardBtn{background: rgba(15,23,42,0.55);border-color: rgba(34,48,74,0.75);color: rgba(226,232,240,0.92);} 
html.medexp-theme-dark .medexp-fcMgr__cardBtn:hover{background: rgba(15,23,42,0.75);} 


/* ==========================================================
   Step P: My Reports (Learner Content Reports)
   ========================================================== */
.medexp-myReports__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.85rem;flex-wrap:wrap;margin-bottom:0.9rem;}
.medexp-myReports__toolbarLeft{display:flex;align-items:baseline;gap:.65rem;flex-wrap:wrap;}
.medexp-myReports__hint{font-size:var(--medexp-text-sm);color:rgba(15,23,42,0.62);font-weight:800;}
.medexp-myReports__pager{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:0.9rem;flex-wrap:wrap;}
.medexp-myReports__pagerMeta{font-size:var(--medexp-text-sm);color:rgba(15,23,42,0.62);font-weight:800;}
.medexp-myReports__detailsRow td{background:rgba(248,250,252,0.75);}
.medexp-myReports__detailsCard{border:1px solid var(--medexp-border);background:rgba(255,255,255,0.96);border-radius:var(--medexp-radius-lg);padding:0.95rem;}
.medexp-myReports__detailsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.8rem;}
@media (max-width: 720px){
  .medexp-myReports__detailsGrid{grid-template-columns:1fr;}
}
.medexp-myReports__label{font-weight:900;color:rgba(15,23,42,0.78);font-size:12px;margin-bottom:0.25rem;}
.medexp-myReports__text{color:rgba(15,23,42,0.92);font-weight:700;line-height:1.45;white-space:pre-wrap;}
.medexp-myReports__detailsBtn{white-space:nowrap;}

/* --------------------------------------------------------------------------
   Exam layout spacing tweaks (Session Take)
   - Adds breathing room so stems/inputs/buttons never sit flush against the
     right panel border.
   - Caps content width on very wide screens so the input/submit don't feel
     like they're stretching edge-to-edge.
-----------------------------------------------------------------------------*/
body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight{
  padding: 22px 26px 26px;
  box-sizing: border-box;
}

/* Keep the question/controls readable on ultrawide screens */
body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-qb-question,
body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-qb-actionsRow,
body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-qb-feedback,
body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-notePanel{
  max-width: 980px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-qb-actionsRow{
  margin-top: 16px;
}

@media (max-width: 640px){
  body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight{
    padding: 14px 14px 16px;
  }
  body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-qb-question,
  body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-qb-actionsRow,
  body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-qb-feedback,
  body.medexp-exam-fullscreen .medexp-qbank[data-mode="session_take"].medexp-layout--exam .medexp-examRight > .medexp-notePanel{
    max-width: 100%;
  }
}


/* === Lesson Fullscreen Workspace (step 1) === */

/* Locks the lesson surface to the viewport (like the Exam take-session shell)
   so we don’t depend on theme scroll/sticky behavior. */
html.medexp-lesson-fullscreen,
body.medexp-lesson-fullscreen{
  height: 100% !important;
  overflow: hidden !important;
}

body.medexp-lesson-fullscreen{
  margin: 0 !important;
  padding: 0 !important;
}

/* Prevent theme wrappers from becoming the scroll container */
body.medexp-lesson-fullscreen #page,
body.medexp-lesson-fullscreen .site,
body.medexp-lesson-fullscreen .wp-site-blocks,
/* IMPORTANT: don't accidentally lock our internal lesson <main class="medexp-main"> */
body.medexp-lesson-fullscreen main:not(.medexp-main),
body.medexp-lesson-fullscreen .site-main,
body.medexp-lesson-fullscreen #primary,
body.medexp-lesson-fullscreen #content,
body.medexp-lesson-fullscreen .content-area,
body.medexp-lesson-fullscreen .entry-content{
  height: 100% !important;
  overflow: hidden !important;
}

/* Fullscreen shell (lesson) */
body.medexp-lesson-fullscreen .medexp-shell{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  z-index: 1000 !important;
  margin: 0 !important;
  padding-bottom: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex;
  flex-direction: column;
  background: var(--medexp-page-bg);
}

/* Respect WP admin bar when present */
body.admin-bar.medexp-lesson-fullscreen .medexp-shell{
  top: var(--wp-admin--admin-bar--height, 32px) !important;
  height: calc(100vh - var(--wp-admin--admin-bar--height, 32px)) !important;
}

/* Make the content region fill remaining space under the appbar */
body.medexp-lesson-fullscreen .medexp-container{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.medexp-lesson-fullscreen .medexp-pageheader{
  flex: 0 0 auto;
}

body.medexp-lesson-fullscreen .medexp-layout{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  align-items: stretch;
}

/* === Lesson workspace v3: true app layout (left rail + stage scroll root) === */
body.medexp-lesson-fullscreen .medexp-lessonWorkspace{
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  overflow: hidden;
}

/* === Lesson workspace v3.1: toolbar controls (rail + reading width) === */
.medexp-lessonToolbar{
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-right: 0.65rem;
}
.medexp-lessonToolbar .medexp-railToggle .tw-ico{
  width: 16px;
  height: 16px;
}
.medexp-readingWidthSeg .medexp-seg__btn{
  font-size: 0.82rem;
  padding: 0.38rem 0.55rem;
}

/* Toolbar: bookmark badge */
.medexp-lessonToolbar .medexp-bookmarkBtn .medexp-uw-bmCount{
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  background: rgba(15,23,42,0.10);
  border: 1px solid rgba(15,23,42,0.14);
  margin-left: 2px;
}
html.medexp-theme-dark .medexp-lessonToolbar .medexp-bookmarkBtn .medexp-uw-bmCount{
  background: rgba(226,232,240,0.10);
  border-color: rgba(226,232,240,0.18);
}

/* Bookmarks dropdown */
.medexp-uw-bmMenu{
  position: fixed;
  z-index: 10240;
  display: none;
  min-width: 280px;
  max-width: min(380px, calc(100vw - 16px));
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.12);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(15,23,42,0.18);
  backdrop-filter: blur(10px);
  overflow: hidden;
}
html.medexp-theme-dark .medexp-uw-bmMenu{
  background: rgba(15,23,42,0.98);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 14px 34px rgba(0,0,0,0.55);
}
.medexp-uw-bmMenu__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
html.medexp-theme-dark .medexp-uw-bmMenu__head{
  border-bottom-color: rgba(226,232,240,0.12);
}
.medexp-uw-bmMenu__title{
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .01em;
  color: rgba(15,23,42,0.78);
}
html.medexp-theme-dark .medexp-uw-bmMenu__title{
  color: rgba(226,232,240,0.78);
}
.medexp-uw-bmMenu__clear{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  font-weight: 800;
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-bmMenu__clear{
  border-color: rgba(226,232,240,0.18);
}
.medexp-uw-bmMenu__clear:hover{
  background: rgba(15,23,42,0.06);
}
html.medexp-theme-dark .medexp-uw-bmMenu__clear:hover{
  background: rgba(226,232,240,0.08);
}
.medexp-uw-bmMenu__clear:disabled{
  opacity: 0.5;
  cursor: default;
}
.medexp-uw-bmMenu__empty{
  padding: 12px;
  font-size: 13px;
  color: rgba(15,23,42,0.72);
}
html.medexp-theme-dark .medexp-uw-bmMenu__empty{
  color: rgba(226,232,240,0.72);
}
.medexp-uw-bmMenu__list{
  max-height: min(55vh, 520px);
  overflow: auto;
}
.medexp-uw-bmItem{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
}
.medexp-uw-bmItem:hover{
  background: rgba(15,23,42,0.05);
}
html.medexp-theme-dark .medexp-uw-bmItem:hover{
  background: rgba(226,232,240,0.08);
}
.medexp-uw-bmItem__meta{
  min-width: 0;
  flex: 1 1 auto;
}
.medexp-uw-bmItem__title{
  font-weight: 800;
  font-size: 13px;
  color: rgba(15,23,42,0.9);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html.medexp-theme-dark .medexp-uw-bmItem__title{
  color: rgba(226,232,240,0.92);
}
.medexp-uw-bmItem__ts{
  font-size: 11px;
  color: rgba(15,23,42,0.55);
  margin-top: 1px;
}
html.medexp-theme-dark .medexp-uw-bmItem__ts{
  color: rgba(226,232,240,0.55);
}
.medexp-uw-bmItem__rm{
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  padding: 0 4px;
  color: rgba(15,23,42,0.55);
}
html.medexp-theme-dark .medexp-uw-bmItem__rm{
  color: rgba(226,232,240,0.55);
}
.medexp-uw-bmItem__rm:hover{
  color: rgba(15,23,42,0.9);
}
html.medexp-theme-dark .medexp-uw-bmItem__rm:hover{
  color: rgba(226,232,240,0.9);
}

/* Notes panel (per-lesson + global) */
.medexp-hasNotesPanel{ position: relative; }
.medexp-uw-notesPanel{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 340px;
  display: none;
  flex-direction: column;
  background: rgba(255,255,255,0.98);
  border-left: 1px solid rgba(15,23,42,0.12);
  box-shadow: -12px 0 28px rgba(15,23,42,0.10);
  z-index: 1000;
}
html.medexp-theme-dark .medexp-uw-notesPanel{
  background: rgba(15,23,42,0.98);
  border-left-color: rgba(226,232,240,0.18);
  box-shadow: -12px 0 28px rgba(0,0,0,0.45);
}
body.medexp-lesson-notes-open .medexp-uw-notesPanel{ display: flex; }
@media (min-width: 860px){
  body.medexp-lesson-notes-open.medexp-lesson-notes-pinned .medexp-lessonStage{ padding-right: 340px; }
}
.medexp-uw-notesPanel__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
html.medexp-theme-dark .medexp-uw-notesPanel__head{ border-bottom-color: rgba(226,232,240,0.12); }
.medexp-uw-notesPanel__title{
  font-weight: 900;
  font-size: 13px;
  letter-spacing: .01em;
}
.medexp-uw-notesPanel__headBtns{ display: inline-flex; gap: 8px; align-items: center; }
.medexp-uw-notesPanel__pin,
.medexp-uw-notesPanel__close{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  cursor: pointer;
}

.medexp-uw-notesPanel__pin,
.medexp-uw-notesPanel__close{
  padding: 6px 8px;
  color: rgba(15,23,42,0.78);
}
html.medexp-theme-dark .medexp-uw-notesPanel__pin,
html.medexp-theme-dark .medexp-uw-notesPanel__close{
  color: rgba(226,232,240,0.82);
}
.medexp-uw-notesPanel__pin svg,
.medexp-uw-notesPanel__close svg{
  width: 18px;
  height: 18px;
  display: block;
}
html.medexp-theme-dark .medexp-uw-notesPanel__pin,
html.medexp-theme-dark .medexp-uw-notesPanel__close{ border-color: rgba(226,232,240,0.18); }
.medexp-uw-notesPanel__pin.is-active{ background: rgba(15,23,42,0.06); }
html.medexp-theme-dark .medexp-uw-notesPanel__pin.is-active{ background: rgba(226,232,240,0.08); }
.medexp-uw-notesPanel__tabs{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
html.medexp-theme-dark .medexp-uw-notesPanel__tabs{ border-bottom-color: rgba(226,232,240,0.12); }
.medexp-uw-notesPanel__saved{
  font-size: 11px;
  font-weight: 800;
  color: rgba(15,23,42,0.6);
}
html.medexp-theme-dark .medexp-uw-notesPanel__saved{ color: rgba(226,232,240,0.6); }
.medexp-uw-notesPanel__ta{
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  resize: none;
  padding: 12px;
  border: 0;
  outline: none;
  background: transparent;
  font-size: 14px !important;
  line-height: 1.45;
}
.medexp-uw-notesPanel__foot{
  display: flex;
  gap: 8px;
  padding: 10px 12px;
  border-top: 1px solid rgba(15,23,42,0.08);
}
html.medexp-theme-dark .medexp-uw-notesPanel__foot{ border-top-color: rgba(226,232,240,0.12); }
.medexp-uw-notesPanel__act{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 10px;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-notesPanel__act{ border-color: rgba(226,232,240,0.18); }
.medexp-uw-notesPanel__act:hover{ background: rgba(15,23,42,0.06); }
html.medexp-theme-dark .medexp-uw-notesPanel__act:hover{ background: rgba(226,232,240,0.08); }

/* Lesson highlighter (text highlight like the exam page) */

.medexp-lessonToolbar .medexp-highlightBtn .medexp-uw-hlBox{
  width: 14px;
  height: 14px;
  border-radius: 4px;
  border: 1px solid rgba(15,23,42,0.18);
  display: inline-block;
}
.medexp-lessonToolbar .medexp-highlightBtn .medexp-uw-caret{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: -0.15rem;
  margin-right: 0.05rem;
}

.medexp-lesson__content mark.medexp-hl{
  color: inherit;
  /* Smaller padding/radius reduces “boxed line fragments” and edge gaps */
  border-radius: .18em;
  padding: 0 .04em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.medexp-lesson__content mark.medexp-hl:hover{
  outline: 1px solid rgba(15,23,42,0.25);
}
html.medexp-theme-dark .medexp-lesson__content mark.medexp-hl:hover{
  outline: 1px solid rgba(226,232,240,0.35);
}



/* Lesson highlighter (MathJax / KaTeX) */
.medexp-lesson__content mjx-container.medexp-hl-math,
.medexp-lesson__content .MathJax.medexp-hl-math,
.medexp-lesson__content .katex.medexp-hl-math{
  color: inherit;
  border-radius: .22em;
  padding: .06em .14em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.medexp-lesson__content mjx-container.medexp-hl-math:hover,
.medexp-lesson__content .MathJax.medexp-hl-math:hover,
.medexp-lesson__content .katex.medexp-hl-math:hover{
  outline: 1px solid rgba(15,23,42,0.25);
}
html.medexp-theme-dark .medexp-lesson__content mjx-container.medexp-hl-math:hover,
html.medexp-theme-dark .medexp-lesson__content .MathJax.medexp-hl-math:hover,
html.medexp-theme-dark .medexp-lesson__content .katex.medexp-hl-math:hover{
  outline: 1px solid rgba(226,232,240,0.35);
}

/* Inline selection toolbar (Highlight + color) */
.medexp-uw-selPop{
  position: fixed;
  display: none;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.12);
  box-shadow: 0 14px 34px rgba(15,23,42,0.18);
  backdrop-filter: blur(10px);
}
html.medexp-theme-dark .medexp-uw-selPop{
  background: rgba(15,23,42,0.98);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 14px 34px rgba(0,0,0,0.55);
}
.medexp-uw-selPop__btn{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
html.medexp-theme-dark .medexp-uw-selPop__btn{
  border-color: rgba(226,232,240,0.22);
}
.medexp-uw-selPop__btn:hover{
  background: rgba(15,23,42,0.05);
}
html.medexp-theme-dark .medexp-uw-selPop__btn:hover{
  background: rgba(226,232,240,0.08);
}
.medexp-uw-selPop__colors{
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.medexp-uw-selPop__sw{
  width: 18px;
  height: 18px;
  border-radius: 7px;
  border: 1px solid rgba(15,23,42,0.16);
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-selPop__sw{
  border-color: rgba(226,232,240,0.22);
}
.medexp-uw-selPop__sw.is-active{
  outline: 2px solid rgba(15,23,42,0.35);
}
html.medexp-theme-dark .medexp-uw-selPop__sw.is-active{
  outline: 2px solid rgba(226,232,240,0.35);
}
.medexp-uw-selPop__colorInput{
  width: 26px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}


/* Lesson highlight popover (remove/change color) */
.medexp-uw-hlPop{
  position: fixed;
  display: none;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.12);
  box-shadow: 0 14px 34px rgba(15,23,42,0.18);
  backdrop-filter: blur(10px);
}

/* Row wrapper used by the highlight popover builder */
.medexp-uw-hlPop__row{
  display: flex;
  align-items: center;
  gap: 10px;
}
html.medexp-theme-dark .medexp-uw-hlPop{
  background: rgba(15,23,42,0.98);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 14px 34px rgba(0,0,0,0.55);
}
.medexp-uw-hlPop__rm{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  font-weight: 600;
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-hlPop__rm{
  border-color: rgba(226,232,240,0.22);
}
.medexp-uw-hlPop__rm:hover{
  background: rgba(15,23,42,0.05);
}
html.medexp-theme-dark .medexp-uw-hlPop__rm:hover{
  background: rgba(226,232,240,0.08);
}
.medexp-uw-hlPop__colors{
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.medexp-uw-hlPop__sw{
  width: 18px;
  height: 18px;
  border-radius: 7px;
  border: 1px solid rgba(15,23,42,0.16);
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-hlPop__sw{
  border-color: rgba(226,232,240,0.22);
}
.medexp-uw-hlPop__sw.is-active{
  outline: 2px solid rgba(15,23,42,0.35);
}
html.medexp-theme-dark .medexp-uw-hlPop__sw.is-active{
  outline: 2px solid rgba(226,232,240,0.35);
}
.medexp-uw-hlPop__colorInput{
  width: 26px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}



/* In-lesson Find (quick scan) */
.medexp-uw-findBar{
  position: fixed;
  z-index: 10250;
  width: 320px;
  max-width: min(360px, calc(100vw - 16px));
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.12);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(15,23,42,0.18);
  backdrop-filter: blur(10px);
}
html.medexp-theme-dark .medexp-uw-findBar{
  background: rgba(15,23,42,0.98);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 14px 34px rgba(0,0,0,0.55);
}
.medexp-uw-findBar__in{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 10px;
}
.medexp-uw-findBar__input{
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid rgba(15,23,42,0.14);
  border-radius: 12px;
  padding: 7px 10px;
  background: transparent;
  font-size: 13px;
  outline: none;
}
html.medexp-theme-dark .medexp-uw-findBar__input{ border-color: rgba(226,232,240,0.18); }
.medexp-uw-findBar__count{
  font-size: 12px;
  font-weight: 900;
  color: rgba(15,23,42,0.62);
}
html.medexp-theme-dark .medexp-uw-findBar__count{ color: rgba(226,232,240,0.62); }
.medexp-uw-findBar__btn{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 10px;
  padding: 6px 9px;
  font-size: 14px !important;
  line-height: 1;
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-findBar__btn{ border-color: rgba(226,232,240,0.18); }
.medexp-uw-findBar__btn:hover{ background: rgba(15,23,42,0.06); }
html.medexp-theme-dark .medexp-uw-findBar__btn:hover{ background: rgba(226,232,240,0.08); }
.medexp-uw-findBar__close{ font-size: 18px; padding: 4px 9px; }

.medexp-findHit{
  background: rgba(250, 204, 21, 0.35);
  border-radius: .28em;
  padding: 0 .08em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
html.medexp-theme-dark .medexp-findHit{ background: rgba(250, 204, 21, 0.22); }
.medexp-findHit.is-active{
  outline: 2px solid rgba(15,23,42,0.35);
}
html.medexp-theme-dark .medexp-findHit.is-active{
  outline: 2px solid rgba(226,232,240,0.35);
}


/* Toolbar popovers (Zen + Reading) */
.medexp-uw-pop{
  position: fixed;
  z-index: 10245;
  display: none;
  min-width: 240px;
  max-width: min(320px, calc(100vw - 16px));
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.12);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(15,23,42,0.18);
  backdrop-filter: blur(10px);
  overflow: hidden;
}
html.medexp-theme-dark .medexp-uw-pop{
  background: rgba(15,23,42,0.98);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 14px 34px rgba(0,0,0,0.55);
}
.medexp-uw-pop__row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 10px 12px;
  text-align: left;
}
.medexp-uw-pop__row:hover{ background: rgba(15,23,42,0.05); }
html.medexp-theme-dark .medexp-uw-pop__row:hover{ background: rgba(226,232,240,0.08); }
.medexp-uw-pop__lbl{ font-size: 13px; font-weight: 800; }
.medexp-uw-pop__chk{ font-size: 14px !important; font-weight: 900; opacity: 0.85; }

.medexp-lessonToolbar .medexp-readingToggle .medexp-uw-aa{
  font-weight: 950;
  font-size: 0.9rem;
  letter-spacing: -0.02em;
}

.medexp-uw-readingMenu__head{
  padding: 10px 12px;
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .01em;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
html.medexp-theme-dark .medexp-uw-readingMenu__head{ border-bottom-color: rgba(226,232,240,0.12); }
.medexp-uw-readingMenu__sizeRow{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
}
.medexp-uw-readingMenu__btn{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 12px;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-readingMenu__btn{ border-color: rgba(226,232,240,0.18); }
.medexp-uw-readingMenu__btn:hover{ background: rgba(15,23,42,0.06); }
html.medexp-theme-dark .medexp-uw-readingMenu__btn:hover{ background: rgba(226,232,240,0.08); }
.medexp-uw-readingMenu__pct{ font-size: 12px; font-weight: 900; opacity: .75; }
.medexp-uw-readingMenu__lhRow{ display:flex; gap:8px; padding: 0 12px 10px; }
.medexp-uw-readingMenu__pill{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
html.medexp-theme-dark .medexp-uw-readingMenu__pill{ border-color: rgba(226,232,240,0.18); }
.medexp-uw-readingMenu__pill.is-active{ background: rgba(15,23,42,0.06); }
html.medexp-theme-dark .medexp-uw-readingMenu__pill.is-active{ background: rgba(226,232,240,0.08); }


/* Reading controls (CSS vars set via JS) */
:root{
  --medexp-reading-scale: 1;
  --medexp-reading-line: 1.62;
  --medexp-reading-font: inherit;
}
/*
  Reading controls
  - Font size scaling is applied via JS (inline per-element scaling) so headings/rem-based styles scale too.
  - Line-height + font-family are applied via CSS vars across the lesson content.
*/
body.medexp-lesson-fullscreen .medexp-lessonScroll .medexp-main,
body.medexp-lesson-fullscreen .medexp-lessonScroll .medexp-main *{
  line-height: var(--medexp-reading-line) !important;
  font-family: var(--medexp-reading-font) !important;
}

/* Fallback selector if the scroll root differs (older shells) */
body.medexp-lesson-fullscreen main.medexp-main,
body.medexp-lesson-fullscreen main.medexp-main *{
  line-height: var(--medexp-reading-line) !important;
  font-family: var(--medexp-reading-font) !important;
}

/* Focus mode (Zen) */
body.medexp-lesson-zen-hideProgress [data-medexp-read-progress]{
  display: none !important;
}
body.medexp-lesson-zen-hideProgress .medexp-appbar__progress{
  display: none !important;
}

body.medexp-lesson-zen-on.medexp-readingWidth-narrow .medexp-lessonScroll .medexp-main,
body.medexp-lesson-zen-on.medexp-readingWidth-comfortable .medexp-lessonScroll .medexp-main,
body.medexp-lesson-zen-on.medexp-readingWidth-wide .medexp-lessonScroll .medexp-main{
  padding-left: 0.9rem !important;
  padding-right: 0.9rem !important;
}

/* === Lesson rail: hide Search card by default (desktop) + toggle via toolbar === */
@media (min-width: 860px){
  body.medexp-lesson-fullscreen:not(.medexp-lesson-search-open) .medexp-lessonRail .medexp-courseSearch{
    display:none !important;
  }

  body.medexp-lesson-fullscreen.medexp-lesson-search-open .medexp-lessonRail .medexp-courseSearch{
    display:block !important;
  }
}

@media (max-width: 859px){
  /* Mobile uses the Outline drawer button; hide desktop toolbar controls */
  .medexp-lessonToolbar{ display: none; }
}

@media (min-width: 860px){
  /* Collapse the left rail entirely (desktop only) */
  body.medexp-lesson-rail-collapsed .medexp-lessonWorkspace{
    grid-template-columns: 0px minmax(0, 1fr) !important;
  }
  body.medexp-lesson-rail-collapsed .medexp-lessonRail{
    width: 0px !important;
    min-width: 0px !important;
    border-right: 0 !important;
    overflow: hidden !important;
    pointer-events: none;
  }
  body.medexp-lesson-rail-collapsed .medexp-lessonRail .medexp-sidebar__inner{
    display: none !important;
  }
}

/* Reading width modes (lesson reading width buttons) */
body.medexp-readingWidth-narrow .medexp-lessonScroll .medexp-main,
body.medexp-readingWidth-comfortable .medexp-lessonScroll .medexp-main,
body.medexp-readingWidth-wide .medexp-lessonScroll .medexp-main{
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
}

body.medexp-readingWidth-narrow .medexp-lessonScroll .medexp-main{ max-width: 740px !important; }
body.medexp-readingWidth-comfortable .medexp-lessonScroll .medexp-main{ max-width: 900px !important; }
body.medexp-readingWidth-wide .medexp-lessonScroll .medexp-main{ max-width: 1120px !important; }

body.medexp-lesson-fullscreen .medexp-lessonRail{
  height: 100%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  border-right: 1px solid var(--medexp-border);
}

/* Avoid nested scrollbars in the rail: let the outer rail scroll */
body.medexp-lesson-fullscreen .medexp-lessonRail .medexp-sidebar__inner{
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}

body.medexp-lesson-fullscreen .medexp-lessonStage{
  height: 100%;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

body.medexp-lesson-fullscreen .medexp-lessonSubheader{
  flex: 0 0 auto;
  min-height: 0;
  border-bottom: 1px solid var(--medexp-border);
  background: var(--medexp-page-bg);
}

/* --- Lesson header slimming + better scroll real estate (hotfix) --- */
body.medexp-lesson-fullscreen .medexp-lessonTabsRow{
  padding: 0.55rem 1rem 0.35rem !important;
}
body.medexp-lesson-fullscreen .medexp-lessonModes{
  margin: 0;
  padding: 0 0 0.35rem;
  border-bottom: 0;
}
body.medexp-lesson-fullscreen .medexp-lessonMode{
  padding: 0.38rem 0.62rem;
  font-size: 0.82rem;
}

body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim{
  margin: 0 !important;
  padding: 0.55rem 1rem 0.75rem !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-breadcrumbs{
  margin-bottom: 0.35rem;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-breadcrumbs--sm > a,
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-breadcrumbs--sm > span:not(.medexp-breadcrumbs__sep){
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--medexp-muted);
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-breadcrumbs--sm > a:hover{
  color: var(--medexp-text);
  text-decoration: underline;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-breadcrumbs--sm .medexp-breadcrumbs__sep::before{
  color: var(--medexp-muted);
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-breadcrumbs--sm > a:first-child::before{
  display: none;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-title{
  font-size: 1.15rem;
  line-height: 1.2;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-pageheader__actions{
  gap: 0.5rem;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-btn.medexp-btn--sm{
  padding: 0.42rem 0.6rem;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-appbar__progress{
  flex: 0 0 100%;
  padding: 0.35rem 0 0;
  margin: 0;
}
body.medexp-lesson-fullscreen .medexp-pageheader.medexp-pageheader--lessonSlim .medexp-appbar__progressBar{
  height: 6px;
}

/* Ensure the scroll root actually scrolls in flex/grid layouts */
body.medexp-lesson-fullscreen .medexp-lessonStage{
  min-height: 0;
}
body.medexp-lesson-fullscreen .medexp-lessonScroll{
  min-height: 0;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

body.medexp-lesson-fullscreen .medexp-lessonScroll{
  flex: 1 1 auto;
  min-height: 0;
  /* Force internal scrolling even if a theme applies overflow rules to descendants */
  overflow: auto !important;
}

/* Brief highlight when jumping to a fragment (figure, heading, etc.) */
.medexp-fragmentTarget{
  outline: 3px solid color-mix(in srgb, var(--medexp-primary) 35%, transparent);
  outline-offset: 4px;
  border-radius: 14px;
}

/* In v3, the scroll root is .medexp-lessonScroll (NOT the main element) */
body.medexp-lesson-fullscreen .medexp-lessonScroll .medexp-main{
  /* Some themes apply `main{ height:100%; overflow:hidden !important; }`.
     Ensure our internal main can grow so the scroll root has real scroll height. */
  height: auto !important;
  min-height: 0;
  overflow: visible !important;
}

/* Sidebar and main each scroll independently; no sticky needed */
body.medexp-lesson-fullscreen .medexp-sidebar:not(.is-mobile-open){
  position: relative !important;
  top: auto !important;
  height: 100%;
  max-height: none;
  overflow: auto;
}

body.medexp-lesson-fullscreen .medexp-main{
  min-height: 0;
}

/* Lesson tabs row (top of lesson stage) */
body.medexp-lesson-fullscreen .medexp-lessonTabsRow{
  padding: var(--medexp-space-4) var(--medexp-space-6) 0;
}

/* Lesson mode tabs (rail) */
.medexp-lessonModes{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 0.9rem;
  padding: 0 0 0.85rem;
  border-bottom: 1px solid var(--medexp-border);
}
.medexp-lessonMode{
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1;
  color: var(--medexp-muted);
  background: rgba(148,163,184,0.12);
  text-decoration: none;
}
.medexp-lessonMode:hover{ filter: brightness(0.98); }
.medexp-lessonMode.is-active{
  color: var(--medexp-text);
  background: rgba(59,130,246,0.12);
}
.medexp-lessonMode.is-disabled{
  opacity: 0.55;
  cursor: not-allowed;
  background: rgba(148,163,184,0.08);
}


/* =========================================================
   Lesson Workspace v2 (step 6)
   Two-column app workspace with internal scrolling.
   Scoped to the fullscreen lesson surface.
   ========================================================= */

/* Disable decorative glow blobs on fullscreen lessons (reduces paint + prevents odd overflow) */
body.medexp-lesson-fullscreen .medexp-shell::before,
body.medexp-lesson-fullscreen .medexp-shell::after{
  content: none !important;
}

/* Ensure the lesson shell behaves like an app viewport */
body.medexp-lesson-fullscreen .medexp-shell{
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Two-column workspace under the appbar */
body.medexp-lesson-fullscreen .medexp-lessonWorkspace{
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  overflow: hidden;
}

/* Left rail scrolls independently */
body.medexp-lesson-fullscreen .medexp-lessonRail{
  overflow-y: auto;
  overflow-x: hidden;
  border-right: 1px solid var(--medexp-border);
}


/* Lesson rail brand (sticky logo link back to dashboard) */
.medexp-lessonRail .medexp-lessonBrand{
  position: sticky;
  top: 0;
  z-index: 1020;
  /* Stretch across the rail, compensating for sidebar inner padding */
  margin: -0.2rem -1.05rem 0 -0.2rem;
  padding: 0.9rem 1.05rem 0.75rem 0.9rem;
  background: var(--medexp-page-bg);
  border-bottom: 1px solid var(--medexp-border);
}
.medexp-lessonBrand__link{
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
}
.medexp-lessonBrand__logo{
  display: block;
  height: 34px;
  width: auto;
  max-width: 100%;
}
.medexp-lessonBrand__logo.is-dark{ display: none; }
html.medexp-theme-dark .medexp-lessonBrand__logo.is-light{ display: none; }
html.medexp-theme-dark .medexp-lessonBrand__logo.is-dark{ display: block; }
@media (prefers-color-scheme: dark){
  html:not(.medexp-theme-light) .medexp-lessonBrand__logo.is-light{ display: none; }
  html:not(.medexp-theme-light) .medexp-lessonBrand__logo.is-dark{ display: block; }
}

/* Stage owns the main scroll container */
body.medexp-lesson-fullscreen .medexp-lessonStage{
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

body.medexp-lesson-fullscreen .medexp-lessonScroll{
  overflow: auto;
  flex: 1 1 auto;
}

/* Responsive: under ~860px we keep the existing off-canvas drawer behavior */
@media (max-width: 859px){
  body.medexp-lesson-fullscreen .medexp-lessonWorkspace{
    grid-template-columns: 1fr !important;
  }
}

/* --------------------------------------------------------------------------
   Hotfix: lesson scrolling on touch devices + themes missing body_class()
   - Ensures the internal scroll root (.medexp-lessonScroll) can be scrolled via touch.
   - If only <html> has the fullscreen class, still apply the app layout.
-----------------------------------------------------------------------------*/

body.medexp-lesson-fullscreen .medexp-lessonScroll,
html.medexp-lesson-fullscreen body .medexp-lessonScroll{
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

body.medexp-lesson-fullscreen .medexp-lessonRail,
html.medexp-lesson-fullscreen body .medexp-lessonRail{
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

/* If the theme doesn't print body classes, rely on the <html> class to keep
   the lesson surface usable (no window scroll, internal scroll works). */
html.medexp-lesson-fullscreen body .medexp-shell--lesson{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

html.medexp-lesson-fullscreen body .medexp-lessonWorkspace{
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  overflow: hidden;
}

html.medexp-lesson-fullscreen body .medexp-lessonStage{
  height: 100%;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* ========================================================================== */
/* Exam Landing Pages (JSON v2 renderer)                                       */
/* ========================================================================== */

/* Premium, full-bleed landing surface (break out of narrow WP theme content widths) */
.medexp-landing{
  background:var(--medexp-page-bg);
  width:100vw;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  overflow-x:clip;
}

/* Some themes clamp overflow on wrapper blocks, which can clip full-bleed layouts.
   Make breakout reliable on exam landing pages without affecting the rest of the site. */
body.medexp-exam-landing .wp-site-blocks,
body.medexp-exam-landing main,
body.medexp-exam-landing .entry-content,
body.medexp-exam-landing .wp-block-post-content{
  overflow-x:visible !important;
}
@supports not (overflow: clip){
  .medexp-landing{overflow-x:hidden;}
}
@supports (background: color-mix(in srgb, white 50%, black)){
  .medexp-landing{
    background:linear-gradient(
      180deg,
      color-mix(in srgb, var(--medexp-primary) 10%, white) 0%,
      var(--medexp-page-bg) 42%
    );
  }
}

/* Hide theme page titles on exam landing pages (keeps the layout clean). */
body.medexp-exam-landing .entry-title,
body.medexp-exam-landing .page-title,
body.medexp-exam-landing .wp-block-post-title{display:none !important;}

/* Landing-specific container rhythm */
.medexp-landing .medexp-container{
  max-width:74rem; /* ~1184px */
  padding-left:clamp(16px, 4vw, 36px);
  padding-right:clamp(16px, 4vw, 36px);
  padding-top:0;
  padding-bottom:0;
}

.medexp-landingSection{padding:clamp(44px, 6vw, 92px) 0;}
.medexp-landingSection--hero{
  background:transparent;
  border-bottom:none;
  padding:clamp(56px, 7vw, 112px) 0 clamp(26px, 4vw, 44px);
}
.medexp-landingSection--metrics{background:transparent;padding-top:0;}
.medexp-landingSection--metrics .medexp-container{padding-top:0;}
.medexp-landingHero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,540px);
  gap:clamp(22px, 3vw, 44px);
  align-items:center;
  background:#fff;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  box-shadow:var(--medexp-shadow-md);
  padding:clamp(18px, 3.5vw, 46px);
}
.medexp-landingHero__copy{min-width:0;}
.medexp-landingHero__media{display:flex;justify-content:center;}
.medexp-landingHero__img,
.medexp-landingSplit__img,
.medexp-landingGuarantee__img{
  width:100%;
  height:auto;
  border-radius:var(--medexp-radius-lg);
  border:1px solid rgba(15,23,42,0.10);
  box-shadow:var(--medexp-shadow-sm);
}
.medexp-landingHero__imgPh,
.medexp-landingSplit__imgPh,
.medexp-landingGuarantee__imgPh{
  width:100%;
  aspect-ratio: 16 / 10;
  border-radius:var(--medexp-radius-lg);
  border:1px dashed rgba(148,163,184,0.65);
  background:rgba(148,163,184,0.10);
}

.medexp-landingKicker,
.medexp-landingEyebrow{
  font-size:0.76rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:900;
  color:var(--medexp-muted);
  margin:0 0 10px;
}
.medexp-landingH1{
  font-size:clamp(2.4rem, 4.6vw, 3.6rem);
  line-height:1.02;
  font-weight:950;
  letter-spacing:-0.035em;
  margin:0 0 12px;
}
.medexp-landingH2{
  font-size:clamp(1.35rem, 1.8vw, 1.75rem);
  line-height:1.15;
  font-weight:930;
  letter-spacing:-0.02em;
  margin:0 0 10px;
}
.medexp-landingLead{
  margin:0;
  color:var(--medexp-muted);
  font-size:1.12rem;
  line-height:1.55;
  max-width:75ch;
}
.medexp-landingBody{color:var(--medexp-text);line-height:1.6;}

.medexp-landingBadges{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0;}
.medexp-landingBadge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--medexp-border);
  background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);
  color:var(--medexp-text);
  font-size:0.86rem;
  font-weight:700;
  box-shadow:var(--medexp-shadow-xs);
}

@supports (background: color-mix(in srgb, white 50%, black)){
  .medexp-landingBadge{
    background:color-mix(in srgb, var(--medexp-primary) 8%, white);
    border-color:color-mix(in srgb, var(--medexp-primary) 16%, var(--medexp-border));
  }
}
.medexp-landingCtas{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 0;}

.medexp-landingSection--hero .medexp-btn{padding:0.95rem 1.25rem;font-size:1rem;}
.medexp-landingSection--hero .medexp-btn--ghost{background:#fff;}

.medexp-landingMetrics{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  background:#fff;
  box-shadow:var(--medexp-shadow-xs);
  padding:14px;
  position:relative;
  z-index:5;
}
.medexp-metric{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--medexp-radius-md);}
.medexp-metric__ico{width:34px;height:34px;border-radius:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--medexp-border);background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);} /* fallback */
@supports (background: color-mix(in srgb, white 50%, black)){
  .medexp-metric__ico{background:color-mix(in srgb, var(--medexp-primary) 12%, white);} 
}
.medexp-metric__svg{width:18px;height:18px;}
.medexp-metric__val{font-size:1.05rem;font-weight:900;letter-spacing:-0.02em;line-height:1.05;}
.medexp-metric__lab{font-size:0.86rem;color:var(--medexp-muted);font-weight:700;}

.medexp-landingSplit__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(18px, 2.6vw, 36px);
  align-items:center;
  background:#fff;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  box-shadow:var(--medexp-shadow-sm);
  padding:clamp(16px, 3vw, 32px);
}
.medexp-landingSplit__copy{min-width:0;}
.medexp-landingBullets{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.medexp-landingBullets li{display:flex;gap:10px;align-items:flex-start;}
.medexp-bulletIco{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px;}
.medexp-bulletSvg{width:18px;height:18px;}

.medexp-landingAccentCard{
  margin-top:16px;
  border-radius:var(--medexp-radius-2xl);
  border:1px solid rgba(15,23,42,0.10);
  background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08); /* fallback */
  padding:16px 16px 18px;
}
@supports (background: color-mix(in srgb, white 50%, black)){
  .medexp-landingAccentCard{background:color-mix(in srgb, var(--medexp-primary) 10%, white);} 
}
.medexp-landingAccentCard__ttl{font-weight:950;letter-spacing:-0.02em;margin:0 0 8px;}
.medexp-landingAccentCard__body{color:var(--medexp-muted);line-height:1.55;}

.medexp-landingQuote{
  text-align:center;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  background:#fff;
  box-shadow:var(--medexp-shadow-xs);
  padding:22px 18px;
}
.medexp-stars{display:flex;justify-content:center;gap:4px;margin:0 0 10px;}
.medexp-stars__star{color:var(--medexp-warning);font-size:1.05rem;}
.medexp-landingQuote__q{margin:0 auto 10px;max-width:80ch;font-weight:650;}
.medexp-landingQuote__by{color:var(--medexp-muted);font-weight:800;}

.medexp-landingGuarantee{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,360px);
  gap:clamp(18px, 2.6vw, 36px);
  align-items:center;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  padding:20px;
  background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06);
}
@supports (background: color-mix(in srgb, white 50%, black)){
  .medexp-landingGuarantee{background:color-mix(in srgb, var(--medexp-primary) 8%, white);}
}

.medexp-landingCenter{text-align:center;}
.medexp-landingLogos{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:14px;
  margin-top:14px;
  align-items:center;
}
.medexp-landingLogo{display:flex;align-items:center;justify-content:center;opacity:0.82;filter:grayscale(1);}
.medexp-landingLogo img{max-height:26px;max-width:100%;object-fit:contain;}
.medexp-landingLogo--ph{height:26px;border:1px dashed rgba(148,163,184,0.65);border-radius:10px;background:rgba(148,163,184,0.10);}

.medexp-landingGrid{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:12px;margin-top:14px;}
.medexp-landingGrid__item{
  background:#fff;
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-lg);
  padding:14px 14px;
  font-weight:800;
  letter-spacing:-0.01em;
}

.medexp-landingFaq{margin-top:12px;display:flex;flex-direction:column;gap:10px;}
.medexp-faqItem{
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-lg);
  background:#fff;
  box-shadow:var(--medexp-shadow-xs);
  overflow:hidden;
}
.medexp-faqItem summary{cursor:pointer;font-weight:900;padding:14px 14px;list-style:none;}
.medexp-faqItem summary::-webkit-details-marker{display:none;}
.medexp-faqItem__a{padding:0 14px 14px;color:var(--medexp-muted);line-height:1.6;}

.medexp-landingPricing{display:flex;flex-direction:column;align-items:center;}
.medexp-landingPricing__card{
  width:min(560px, 100%);
  border:1px solid var(--medexp-border);
  border-radius:var(--medexp-radius-2xl);
  background:#fff;
  box-shadow:var(--medexp-shadow-sm);
  padding:20px;
  margin-top:14px;
}
.medexp-landingPricing__price{font-size:2.2rem;font-weight:950;letter-spacing:-0.03em;line-height:1.0;}
.medexp-landingPricing__period{color:var(--medexp-muted);font-weight:800;margin:6px 0 0;}
.medexp-landingBullets--compact{margin-top:14px;}
.medexp-landingPricing__cta{margin-top:16px;}
.medexp-landingPricing__fine{margin-top:12px;color:var(--medexp-muted);font-size:0.9rem;}

@media (max-width: 980px){
  .medexp-landingHero__grid{grid-template-columns:1fr;}
  .medexp-landingSplit__grid{grid-template-columns:1fr;}
  .medexp-landingGuarantee{grid-template-columns:1fr;}
  .medexp-landingMetrics{grid-template-columns:repeat(2, minmax(0,1fr));}
  .medexp-landingLogos{grid-template-columns:repeat(3, minmax(0,1fr));}
  .medexp-landingGrid{grid-template-columns:1fr;}
}


/* ========================================================================== */
/* Princeton Premium: global finish pass */
/* ========================================================================== */

.medexp-scope{font-family:var(--medexp-font-sans);color:var(--medexp-muted);line-height:1.65;-webkit-font-smoothing:antialiased;}
.medexp-scope h1,.medexp-scope h2,.medexp-scope h3,.medexp-scope h4{color:var(--medexp-text);letter-spacing:-0.025em;font-weight:950;line-height:1.2;}
.medexp-scope a:not(.medexp-btn){color:var(--medexp-brand-blue);font-weight:800;}
.medexp-scope a:not(.medexp-btn):hover{text-decoration:underline;}

.medexp-card,
.medexp-panel,
.medexp-pageheader,
.medexp-hero{
  border-radius:var(--medexp-radius-lg);
  border:1px solid rgba(203,213,225,0.80);
  box-shadow:var(--medexp-shadow-sm);
}

.medexp-input:focus,.medexp-textarea:focus,.medexp-select:focus{
  outline:3px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35);
  outline-offset:2px;
  border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45);
}

.medexp-chip{border-radius:9999px;font-weight:900;}


/* ========================================================================== */
/* Princeton polish: lesson sidebar menu + outline micro-details              */
/* - The global link rule above intentionally makes links bold/blue in the
   content area. The sidebar TOC/outline needs calmer typography.            */
/* ========================================================================== */

/* "On this page" TOC */
.medexp-scope .medexp-toc__title{font-weight:650;letter-spacing:-0.01em;color:rgba(15,23,42,0.72);} 
.medexp-scope .medexp-tocLinks{gap:0.22rem;}
.medexp-scope .medexp-tocLink a{
  color:rgba(15,23,42,0.82);
  font-size:0.90rem; /* H2 */
  font-weight:650;
  letter-spacing:-0.01em;
  line-height:1.25;
  padding:0.32rem 0.62rem;
  text-decoration:none;
}
.medexp-scope .medexp-tocLink a:hover{background:rgba(15,23,42,0.04);text-decoration:none;}
.medexp-scope .medexp-tocLink.is-sub a{
  padding-left:1.55rem;
  font-size:0.82rem; /* H3 */
  font-weight:520;
  letter-spacing:-0.005em;
  line-height:1.25;
  color:rgba(71,85,105,0.88);
}

/* Scrollspy active state (override earlier purple dot + heavy weight) */
.medexp-scope .medexp-tocLink.is-active a,
.medexp-scope .medexp-tocLink a[aria-current="true"]{
  color:rgba(15,23,42,0.92);
  font-weight:750;
  background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08);
}
.medexp-scope .medexp-tocLink.is-active a::before,
.medexp-scope .medexp-tocLink a[aria-current="true"]::before{
  width:3px;
  height:16px;
  border-radius:999px;
  background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.92);
  margin-right:.55rem;
}

/* Collapsible "Course outline" inside the lesson sidebar */
.medexp-scope details.medexp-toc--courseOutline > summary{
  padding:0.35rem 0.5rem;
  border-radius:12px;
}
.medexp-scope details.medexp-toc--courseOutline > summary:hover{background:rgba(15,23,42,0.03);} 
.medexp-scope .medexp-toc--courseOutline .medexp-toc__title{font-weight:650;}

/* Summary elements can be bold by default (browser UA style). Normalize here. */
.medexp-scope .medexp-toc--courseOutline .medexp-outline details > summary{font-weight:600;line-height:1.2;}
.medexp-scope .medexp-toc--courseOutline .medexp-outline__summaryTitle{font-weight:600;}

.medexp-scope .medexp-toc--courseOutline a.medexp-outline__link{
  color:rgba(15,23,42,0.80);
  font-weight:540;
  line-height:1.25;
  text-decoration:none;
}
.medexp-scope .medexp-toc--courseOutline a.medexp-outline__link:hover{
  background:rgba(15,23,42,0.04);
  text-decoration:none;
}

/* Slightly tighten vertical rhythm in the outline so it reads "designed" */
.medexp-scope .medexp-toc--courseOutline .medexp-outline__node{padding:0.16rem 0;}


/* ========================================================================== */
/* Lesson workspace: move navigation to the tab row + left-align the toolbar   */
/* ========================================================================== */

.medexp-shell--lesson .medexp-lessonTabsRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:0.65rem;
  padding:0 0 0.85rem;
  margin:0 0 0.9rem;
  border-bottom:1px solid rgba(148,163,184,0.45);
}

.medexp-shell--lesson .medexp-lessonTabsRow__left{min-width:0;}

.medexp-shell--lesson .medexp-lessonTabsRow .medexp-lessonModes{
  margin:0;
  padding:0;
  border-bottom:0;
}

.medexp-shell--lesson .medexp-lessonTabsRow__right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0.45rem;
  flex-wrap:wrap;
  margin-left:auto;
}

.medexp-shell--lesson .medexp-lessonTabsRow__right .medexp-btn{white-space:nowrap;}

.medexp-shell--lesson .medexp-pageheader--lessonSlim{
  /* Stack: title/breadcrumbs → tools → read bar */
  flex-direction:column;
  align-items:stretch;
  gap:0.65rem;
}

.medexp-shell--lesson .medexp-pageheader--lessonSlim .medexp-pageheader__actions{
  width:100%;
  justify-content:flex-start;
}

.medexp-shell--lesson .medexp-pageheader--lessonSlim .medexp-lessonToolbar{margin-right:0;}

/* Compact lesson nav on phones: show icon-only buttons so tabs + nav fit on one row */
.medexp-shell--lesson .medexp-lessonNavBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
}
.medexp-shell--lesson .medexp-lessonNavBtn__icon{display:none; line-height:0;}
.medexp-shell--lesson .medexp-lessonNavBtn__ico{width:18px; height:18px;}

@media (max-width: 520px), (max-device-width: 520px){
  .medexp-shell--lesson .medexp-lessonTabsRow{
    flex-wrap:nowrap;
    gap:0.5rem;
    padding:0 0 0.65rem;
    margin:0 0 0.75rem;
  }
  .medexp-shell--lesson .medexp-lessonTabsRow__right{
    flex-wrap:nowrap;
    gap:0.35rem;
  }
  .medexp-shell--lesson .medexp-lessonMode{
    padding:0.32rem 0.52rem;
    font-size:0.78rem;
  }
  .medexp-shell--lesson .medexp-lessonNavBtn__icon{display:inline-flex !important;}
  .medexp-shell--lesson .medexp-lessonNavBtn__text{display:none !important;}
  .medexp-shell--lesson .medexp-lessonTabsRow__right .medexp-btn.medexp-lessonNavBtn{
    width:34px !important;
    height:34px !important;
    padding:0 !important;
    border-radius:999px !important;
    min-width:34px !important;
    justify-content:center !important;
  }
  .medexp-shell--lesson .medexp-lessonTabsRow__right .medexp-btn.medexp-lessonNavBtn--complete{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
  }

  .medexp-shell--lesson .medexp-lessonNavBtn__icon svg{
    width:18px !important;
    height:18px !important;
    display:block !important;
  }

}



/* ================================
   Annotations (Sidebar + Pins)
   ================================ */

.medexp-uw-notesModeSeg{ margin-top: 8px; }

.medexp-uw-notesPanel__tabs{ display:flex; flex-direction:column; gap:10px; }

.medexp-uw-annWrap{
  display: none; /* toggled via JS when mode=annotations */
  flex-direction: column;
  gap: 10px;
  padding: 10px 12px 12px;
  height: 100%;
  overflow: hidden;
}

.medexp-uw-annTop{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
}

.medexp-uw-annSearch{
  width: 100%;
  border: 1px solid rgba(15,23,42,0.14);
  border-radius: 12px;
  padding: 10px 12px;
  font-weight: 800;
  background: rgba(255,255,255,0.95);
}

html.medexp-theme-dark .medexp-uw-annSearch{
  background: rgba(15,23,42,0.55);
  border-color: rgba(226,232,240,0.18);
  color: rgba(226,232,240,0.92);
}

.medexp-uw-annSort{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.medexp-uw-annSortBtn{
  border: 1px solid rgba(15,23,42,0.14);
  border-radius: 999px;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 900;
  background: rgba(255,255,255,0.85);
  cursor: pointer;
}

.medexp-uw-annSortBtn.is-active{
  background: rgba(15,23,42,0.06);
}

html.medexp-theme-dark .medexp-uw-annSortBtn{
  background: rgba(15,23,42,0.4);
  border-color: rgba(226,232,240,0.18);
  color: rgba(226,232,240,0.9);
}

html.medexp-theme-dark .medexp-uw-annSortBtn.is-active{
  background: rgba(226,232,240,0.10);
}

.medexp-uw-annCount{
  font-size: 12px;
  font-weight: 900;
  color: rgba(15,23,42,0.55);
  padding: 0 2px;
}

html.medexp-theme-dark .medexp-uw-annCount{
  color: rgba(226,232,240,0.65);
}

.medexp-uw-annList{
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-right: 2px;
}

.medexp-uw-annEmpty{
  border: 1px dashed rgba(15,23,42,0.18);
  border-radius: 16px;
  padding: 14px 14px;
  background: rgba(15,23,42,0.02);
}

html.medexp-theme-dark .medexp-uw-annEmpty{
  background: rgba(226,232,240,0.04);
  border-color: rgba(226,232,240,0.18);
}

.medexp-uw-annEmpty__title{
  font-weight: 900;
  margin-bottom: 4px;
}

.medexp-uw-annEmpty__sub{
  font-size: 12px;
  font-weight: 800;
  color: rgba(15,23,42,0.6);
}

html.medexp-theme-dark .medexp-uw-annEmpty__sub{
  color: rgba(226,232,240,0.65);
}

/* Annotation card */
.medexp-uw-annCard{
  border: 1px solid rgba(15,23,42,0.12);
  border-radius: 16px;
  background: rgba(255,255,255,0.96);
  box-shadow: 0 10px 26px rgba(15,23,42,0.08);
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.medexp-uw-annCard:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(15,23,42,0.12);
}

.medexp-uw-annCard.is-active{
  border-color: rgba(var(--medexp-brand-teal-rgb,0,166,118),0.55);
  box-shadow: 0 16px 34px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.18);
}

html.medexp-theme-dark .medexp-uw-annCard{
  background: rgba(15,23,42,0.88);
  border-color: rgba(226,232,240,0.16);
  box-shadow: 0 14px 34px rgba(0,0,0,0.45);
}

.medexp-uw-annCard__head{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  padding: 12px 12px;
  align-items: start;
}

/* highlight color pill (per row) */
.medexp-uw-annDot{
  width: 14px;
  height: 10px;
  border-radius: 999px;
  margin-top: 4px;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,0.18);
}

html.medexp-theme-dark .medexp-uw-annDot{
  box-shadow: inset 0 0 0 1px rgba(226,232,240,0.18);
}

.medexp-uw-annCard__meta{
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.medexp-uw-annCard__quote{
  font-weight: 900;
  font-size: 12px;
  color: rgba(15,23,42,0.85);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

html.medexp-theme-dark .medexp-uw-annCard__quote{
  color: rgba(226,232,240,0.92);
}

.medexp-uw-annCard__note{
  font-size: 12px;
  font-weight: 800;
  color: rgba(15,23,42,0.62);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

html.medexp-theme-dark .medexp-uw-annCard__note{
  color: rgba(226,232,240,0.68);
}

.medexp-uw-annFoot{
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 10px 12px 12px;
  padding-top: 0;
}

.medexp-uw-annAct{
  border: 1px solid rgba(15,23,42,0.14);
  background: transparent;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.medexp-uw-annAct:hover{ background: rgba(15,23,42,0.05); }
html.medexp-theme-dark .medexp-uw-annAct:hover{ background: rgba(226,232,240,0.08); }

.medexp-uw-annAct.is-danger{
  border-color: rgba(239,68,68,0.35);
  color: rgba(239,68,68,0.95);
}
.medexp-uw-annAct.is-danger:hover{ background: rgba(239,68,68,0.10); }

/* Pins layer */
.medexp-uw-annPins{
  position: fixed;
  top: 0;
  height: 100vh;
  width: 34px;
  /* Keep pins beneath the Notes/Annotations panel so they never overlay it. */
  z-index: 10050;
  pointer-events: none;
}

.medexp-uw-annPin{
  position: absolute;
  left: 0;
  width: 28px;
  height: 22px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,0.16);
  background: rgba(255,255,255,0.96);
  box-shadow: 0 10px 24px rgba(15,23,42,0.14);
  cursor: pointer;
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

html.medexp-theme-dark .medexp-uw-annPin{
  background: rgba(15,23,42,0.92);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 14px 34px rgba(0,0,0,0.55);
}

.medexp-uw-annPin.is-active{
  border-color: rgba(var(--medexp-brand-teal-rgb,0,166,118),0.6);
  box-shadow: 0 16px 34px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.18);
}

/* Pin icon (note) */
.medexp-uw-annPin__ic{
  width: 14px;
  height: 14px;
  display: block;
}
.medexp-uw-annPin__ic path{ stroke-linecap: round; }

.medexp-uw-annPin__dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,0.18);
}

html.medexp-theme-dark .medexp-uw-annPin__dot{
  box-shadow: inset 0 0 0 1px rgba(226,232,240,0.18);
}

/* Highlight pulse + note-bearing affordance */
.medexp-hl.is-pulsing{
  animation: medexpHlPulse 1.05s ease-out;
}

@keyframes medexpHlPulse{
  0%{ box-shadow: 0 0 0 0 rgba(var(--medexp-brand-teal-rgb,0,166,118),0.00); }
  25%{ box-shadow: 0 0 0 6px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.18); }
  100%{ box-shadow: 0 0 0 0 rgba(var(--medexp-brand-teal-rgb,0,166,118),0.00); }
}

.medexp-hl.medexp-hl--ann{
  box-shadow: inset 0 -2px 0 rgba(15,23,42,0.18);
}

/* Undo toast */
.medexp-uw-undoToast{
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 10280;
  display: none;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(15,23,42,0.12);
  box-shadow: 0 18px 40px rgba(15,23,42,0.18);
}

html.medexp-theme-dark .medexp-uw-undoToast{
  background: rgba(15,23,42,0.98);
  border-color: rgba(226,232,240,0.18);
  box-shadow: 0 18px 40px rgba(0,0,0,0.55);
}

.medexp-uw-undoToast__t{
  font-weight: 900;
  font-size: 12px;
}

.medexp-uw-undoToast__btn{
  border: 1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.30);
  background: rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);
  border-radius: 999px;
  padding: 7px 10px;
  font-weight: 900;
  font-size: 12px;
  cursor: pointer;
}

/* Annotation modal */
.medexp-annModal__quote{
  font-weight: 900;
  font-size: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(15,23,42,0.04);
  border: 1px solid rgba(15,23,42,0.10);
  margin-bottom: 10px;
}

html.medexp-theme-dark .medexp-annModal__quote{
  background: rgba(226,232,240,0.06);
  border-color: rgba(226,232,240,0.16);
}

.medexp-annModal__ta{
  width: 100%;
  min-height: 120px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,0.14);
  padding: 10px 12px;
  font-weight: 800;
}

.medexp-annModal__colors{
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 10px;
}

.medexp-annModal__sw{
  width: 22px;
  height: 22px;
  border-radius: 10px;
  border: 1px solid rgba(15,23,42,0.16);
  cursor: pointer;
}

.medexp-annModal__sw.is-active{
  outline: 2px solid rgba(15,23,42,0.35);
}

.medexp-annModal__colorInput{
  width: 28px;
  height: 22px;
  border: 0;
  background: transparent;
  cursor: pointer;
}

/* Selection popover: primary Note button */
.medexp-uw-selPop__btn.is-primary{
  background: rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);
  border: 1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.22);
}



/* ---------------------------------------------------------------------------
   Guided Walkthrough (Help button)
--------------------------------------------------------------------------- */
.medexp-tour{
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(15, 23, 42, 0.55);
}

.medexp-tour__spotlight{
  position: fixed;
  border-radius: 14px;
  box-shadow:
    0 0 0 9999px rgba(15, 23, 42, 0.55),
    0 8px 24px rgba(0,0,0,0.25);
  border: 2px solid rgba(255,255,255,0.90);
  pointer-events: none;
}

.medexp-tour__tip{
  position: fixed;
  max-width: 420px;
  background: #fff;
  border-radius: 16px;
  padding: 14px 14px 12px;
  box-shadow: 0 18px 50px rgba(0,0,0,0.30);
  border: 1px solid rgba(15,23,42,0.14);
  color: rgba(15,23,42,0.92);
}

html.medexp-theme-dark .medexp-tour__tip{
  background: rgba(15,23,42,0.98);
  color: rgba(226,232,240,0.96);
  border-color: rgba(226,232,240,0.16);
}

.medexp-tour__tipHdr{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.medexp-tour__tipTitle{
  font-weight: 900;
  font-size: 14px;
}

.medexp-tour__tipProg{
  font-weight: 800;
  font-size: 12px;
  opacity: 0.75;
}

.medexp-tour__tipBody{
  margin-top: 10px;
  font-weight: 750;
  font-size: 13px;
  line-height: 1.35;
  opacity: 0.95;
}

.medexp-tour__tipBtns{
  margin-top: 12px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}


/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* override calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* override calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* overrides calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* override calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* override calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* override calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   FIX20: iOS spacing + full-height panels (Exam/UWorld-like practice)
   1) On iPhone: add breathing room above the tools row.
   2) On iPhone/iPad: ensure the panels consume remaining viewport height,
      eliminating the "gray dead zone" and giving more usable content space.
--------------------------------------------------------------------------- */

/* 1) iPhone: create a small visual gap between the Exam top bar and tools row */
@media (max-width: 520px){
  .medexp-layout--exam .medexp-pv-topbar{
    border-bottom-left-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
  }
  .medexp-layout--exam .medexp-uw-toptools{
    margin-top: 6px !important;
    border-top-left-radius: 10px !important;
    border-top-right-radius: 10px !important;
  }
}

/* 2) iPhone/iPad: use flex sizing instead of vh math for the panel grid */
@media (max-width: 1024px){
  .medexp-qbank.medexp-layout--exam{
    display: flex !important;
    flex-direction: column !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-qb-body{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Make the panel grid fill whatever space is left */
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important; /* override calc(100vh - …) */
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    min-height: 0 !important;
  }
}

/* When panels stack on mobile, remove the 42vh/54vh caps that shrink usable space */
@media (max-width: 980px){
  .medexp-qbank.medexp-layout--exam .medexp-examLayout{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }

  .medexp-qbank.medexp-layout--exam .medexp-examLeft,
  .medexp-qbank.medexp-layout--exam .medexp-examRight{
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
}

/*
  FIX23: iPhone-specific toolbar + full-height layout hardening
  - Hide Exam topbar navigation icon cluster on iPhone (bottom bar is the primary nav).
  - Tools row: icons only (no text) + additional breathing room.
  - Reinforce flex sizing so the question area uses the available height on iOS Safari.
*/
@media (hover: none) and (pointer: coarse) and (max-device-width: 480px),
       (hover: none) and (pointer: coarse) and (max-device-height: 480px) {

  /* Topbar right controls (flag/prev/nav/next) */
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_prev"],
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_nav"],
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_next"],
  body.medexp-exam-fullscreen .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_flag"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_prev"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_nav"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_next"],
  .medexp-qbank.medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_flag"],
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_prev"],
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_nav"],
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_next"],
  .medexp-layout--exam .medexp-pv-topbar [data-medexp-action="pv_flag"] {
    display: none !important;
  }

  /* Tools row: icon-only + spacing */
  .medexp-qbank.medexp-layout--exam .medexp-uw-toptools {
    margin-top: 8px !important;
  }
  .medexp-qbank.medexp-layout--exam .medexp-uw-toolBtn .medexp-uw-label,
  .medexp-layout--exam .medexp-uw-toolBtn .medexp-uw-label {
    display: none !important;
  }
  .medexp-qbank.medexp-layout--exam .medexp-uw-toolBtn,
  .medexp-layout--exam .medexp-uw-toolBtn {
    gap: 0 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  /* Full-height flex sizing */
  body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam,
  .medexp-qbank.medexp-layout--exam {
    height: 100dvh !important;
    min-height: 100dvh !important;
  }
  .medexp-qbank.medexp-layout--exam .medexp-qb-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }
  .medexp-qbank.medexp-layout--exam .medexp-examLayout {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   Dark mode hardening (Exam/UWorld take-session)
   - The Exam layout intentionally hard-coded light grays/whites.
   - When users flip "Color theme" to Dark, those hard-coded surfaces stay
     bright unless we explicitly override them.
-----------------------------------------------------------------------------*/

html.medexp-theme-dark .medexp-layout--exam,
body.medexp-theme-dark .medexp-layout--exam{
  background: var(--medexp-page-bg);
}

html.medexp-theme-dark body.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam,
body.medexp-theme-dark.medexp-exam-fullscreen .medexp-qbank.medexp-layout--exam{
  background: var(--medexp-page-bg) !important;
}

/* Core panels */
html.medexp-theme-dark .medexp-examLeft,
html.medexp-theme-dark .medexp-examRight,
body.medexp-theme-dark .medexp-examLeft,
body.medexp-theme-dark .medexp-examRight{
  background: var(--medexp-bg);
  color: var(--medexp-text);
}

html.medexp-theme-dark .medexp-layout--exam .medexp-examLeft,
html.medexp-theme-dark .medexp-layout--exam .medexp-examRight,
body.medexp-theme-dark .medexp-layout--exam .medexp-examLeft,
body.medexp-theme-dark .medexp-layout--exam .medexp-examRight{
  border-color: var(--medexp-border);
  background: var(--medexp-bg);
}

/* Nav chip row */
html.medexp-theme-dark .medexp-layout--exam .medexp-qb-nav,
body.medexp-theme-dark .medexp-layout--exam .medexp-qb-nav{
  border-color: var(--medexp-border);
  background: var(--medexp-bg);
  color: var(--medexp-text);
}

/* Passage tabs (case/exhibits) */
html.medexp-theme-dark .medexp-examTabs,
body.medexp-theme-dark .medexp-examTabs{
  background: rgba(255,255,255,0.04);
  border-bottom-color: rgba(226,232,240,0.12);
}
html.medexp-theme-dark .medexp-examTab,
body.medexp-theme-dark .medexp-examTab{
  background: rgba(15,23,42,0.72);
  border-color: rgba(226,232,240,0.18);
  color: var(--medexp-text);
}
html.medexp-theme-dark .medexp-examTab.is-active,
body.medexp-theme-dark .medexp-examTab.is-active{
  background: rgba(15,23,42,0.95);
  border-color: color-mix(in srgb, var(--medexp-primary) 35%, rgba(226,232,240,0.18));
}


/* Answer key (defensive helper; keeps UI from breaking if shown) */
.medexp-qb-anskey{
  margin:.55rem 0 0;
  padding:.55rem .65rem;
  border:1px solid rgba(148,163,184,0.35);
  border-radius:12px;
  background:rgba(226,232,240,0.30);
}
.medexp-qb-anskey__title{
  font-weight:700;
  font-size:.9rem;
  margin-bottom:.15rem;
}
.medexp-qb-anskey__row{
  font-size:.9rem;
}
.medexp-qb-anskey__pre{
  white-space:pre-wrap;
  word-break:break-word;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size:.82rem;
  margin:.35rem 0 0;
}
body.medexp-dark .medexp-qb-anskey{
  background:rgba(15,23,42,0.22);
  border-color:rgba(148,163,184,0.25);
}


/* Mistake Pattern (on-demand) teaser */
.medexp-dna--teaser{opacity:0.98;}
.medexp-dna__teaserMsg{font-weight:700;margin-top:.35rem;}
.medexp-dna__teaserNote{margin-top:.25rem;font-size:.88rem;color:rgba(71,85,105,.92);}
body.medexp-dark .medexp-dna__teaserNote{color:rgba(226,232,240,.72);}


/* =========================================================
   SVGJSON figures (universal diagrams)
   ========================================================= */

.medexp-figure{
 margin:18px 0;
 display:flex;
 flex-direction:column;
 align-items:center;
}

.medexp-figure > figcaption{
 font-size:14px;
 color:var(--medexp-muted);
 margin-bottom:10px;
 width:100%;
 max-width:820px;
}

.medexp-figure__canvas{
 width:100%;
 max-width:820px;
}

.medexp-figure__svg{
 width:100%;
 height:auto;
 display:block;
}

.medexp-figure__spec{
 display:none;
}

.medexp-figure--error .medexp-figure__spec{
 display:block;
 width:100%;
 max-width:820px;
 padding:10px 12px;
 border-radius:12px;
 border:1px solid rgba(226,232,240,.95);
 background:rgba(248,250,252,.92);
 overflow:auto;
 white-space:pre;
 font-size:12px;
}

html.medexp-theme-dark .medexp-figure--error .medexp-figure__spec{
 border-color:rgba(51,65,85,.9);
 background:rgba(2,6,23,.55);
}

/* =========================================================
   Native figure formats (no conversion)
   - Mermaid:   figure.medexp-figure--mermaid  (figures[].code)
   - JSXGraph:  figure.medexp-figure--jsxgraph (figures[].code)
   - SMILES:    figure.medexp-figure--smiles   (figures[].code)
   ========================================================= */

.medexp-figure__code{
 display:none;
}

.medexp-figure--error .medexp-figure__code{
 display:block;
 width:100%;
 max-width:820px;
 padding:10px 12px;
 border-radius:12px;
 border:1px solid rgba(226,232,240,.95);
 background:rgba(248,250,252,.92);
 overflow:auto;
 white-space:pre;
 font-size:12px;
}

html.medexp-theme-dark .medexp-figure--error .medexp-figure__code{
 border-color:rgba(51,65,85,.9);
 background:rgba(2,6,23,.55);
}

/* Mermaid styling overrides (optional; controlled via Settings → Mermaid CSS options) */
.medexp-figure--mermaid{
 margin: var(--medexp-mermaid-margin);
}

.medexp-figure--mermaid .medexp-figure__canvas{
 background: var(--medexp-mermaid-bg);
 padding: var(--medexp-mermaid-padding);
 border: var(--medexp-mermaid-border-width) solid var(--medexp-mermaid-border-color);
 border-radius: var(--medexp-radius-md);
 overflow:auto;
}

.medexp-figure--mermaid .medexp-figure__canvas svg{
 font-family: var(--medexp-mermaid-font-family) !important;
}

.medexp-figure--mermaid .medexp-figure__canvas svg text{
 fill: var(--medexp-mermaid-text-color) !important;
 font-size: var(--medexp-mermaid-font-size) !important;
 font-weight: var(--medexp-mermaid-font-weight) !important;
 line-height: var(--medexp-mermaid-line-height) !important;
}

.medexp-figure--mermaid .medexp-figure__canvas svg .node rect,
.medexp-figure--mermaid .medexp-figure__canvas svg .node circle,
.medexp-figure--mermaid .medexp-figure__canvas svg .node polygon,
.medexp-figure--mermaid .medexp-figure__canvas svg .node path{
 stroke: var(--medexp-mermaid-node-border-color) !important;
 stroke-width: var(--medexp-mermaid-node-border-width) !important;
 fill: var(--medexp-mermaid-node-fill) !important;
}

.medexp-figure--mermaid .medexp-figure__canvas svg .edgePath path,
.medexp-figure--mermaid .medexp-figure__canvas svg .flowchart-link,
.medexp-figure--mermaid .medexp-figure__canvas svg .messageLine0,
.medexp-figure--mermaid .medexp-figure__canvas svg .messageLine1{
 stroke: var(--medexp-mermaid-arrow-color) !important;
 stroke-width: var(--medexp-mermaid-arrow-width) !important;
}

.medexp-figure--mermaid .medexp-figure__canvas svg marker path{
 fill: var(--medexp-mermaid-arrow-color) !important;
 stroke: var(--medexp-mermaid-arrow-color) !important;
}



.medexp-figure--jsxgraph .medexp-figure__jxgbox{
 width:100%;
 max-width:820px;
 border-radius:12px;
 overflow:hidden;
}

.medexp-figure--smiles .medexp-figure__smiles-canvas{
 width:100%;
 height:auto;
 display:block;
 border-radius:12px;
}

/* Image figures (builder outputs <img>, plugin normalizes + provides fallback) */
.medexp-figure--image .medexp-figure__canvas{
 display:flex;
 justify-content:center;
}

.medexp-figure--image img,
.medexp-figure--image picture{
 width:100%;
 max-width:820px;
 height:auto;
 display:block;
 border-radius:12px;
}

.medexp-figure--image a{
 display:block;
 width:100%;
 max-width:820px;
}

.medexp-figure__img-fallback{
 width:100%;
 max-width:820px;
 padding:12px 14px;
 border-radius:12px;
 border:1px solid rgba(226,232,240,.95);
 background:rgba(248,250,252,.92);
}

html.medexp-theme-dark .medexp-figure__img-fallback{
 border-color:rgba(51,65,85,.9);
 background:rgba(2,6,23,.55);
}

.medexp-figure__img-fallbackTitle{
 font-weight:700;
 margin-bottom:6px;
}

.medexp-figure__img-fallbackMeta{
 font-size:13px;
 color:var(--medexp-muted);
 margin-bottom:6px;
}

.medexp-figure__img-fallbackUrl{
 font-size:12px;
 color:var(--medexp-muted);
 word-break:break-word;
}


/* OpenAI illustration placeholders: hide JSON spec on the front-end */
.medexp-figure--openai-image .medexp-figure__code{display:none;}
.medexp-figure--openai-image .medexp-figure__canvas{min-height:220px;}
.medexp-figure--openai-image::before{content:"Illustration pending…";display:block;padding:12px;color:#6b7280;font-size:14px;}
.medexp-figure--openai-image.medexp-figure--error::before{content:"Illustration error (see details below).";}


/* Admin-only figure tools (prompt / regenerate / replace) */
.medexp-figure[data-medexp-attachment-id]{position:relative;}
.medexp-figtools{position:absolute;top:10px;right:10px;display:flex;gap:8px;z-index:6;}
.medexp-figtools__btn{border:1px solid var(--medexp-border);background:rgba(255,255,255,0.92);backdrop-filter:blur(8px);border-radius:999px;padding:6px 10px;font-weight:800;font-size:12px;line-height:1;cursor:pointer;box-shadow:0 10px 26px rgba(15,23,42,0.10);}
.medexp-figtools__btn:hover{filter:brightness(0.98);}
.medexp-figtools__btn:focus{outline:3px solid rgba(59,130,246,0.35);outline-offset:2px;}

.medexp-ill-pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-weight:800;font-size:11px;background:rgba(241,245,249,0.9);border:1px solid var(--medexp-border);}
.medexp-ill-pill.is-draft{background:rgba(255,251,235,0.9);}
.medexp-ill-pill.is-replaced{background:rgba(254,226,226,0.9);}


/* QBank: illustrated_choice figure (exam-style diagram with full-text options) */

.medexp-qb-illChoice{
 display: flex;
 flex-direction: column;
 gap: 4px;
}
.medexp-qb-illustration{
 margin: 0 0 12px 0;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 8px;
}
.medexp-qb-illustration__img{
 display: block;
 max-width: 100%;
 max-height: 420px;
 width: auto;
 height: auto;
 border-radius: 14px;
 border: 1px solid rgba(148, 163, 184, 0.45);
 box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
 background: #fff;
 object-fit: contain;
}
.medexp-qb-illustration__cap{
 font-size: 0.92rem;
 line-height: 1.35;
 font-weight: 700;
 color: #475569;
 text-align: center;
 max-width: 72ch;
}

/* ================================================================
   FINAL THEME OVERRIDE LAYER — last-resort !important rules
   to guarantee plugin appearance on any WP theme.
   Placed at end of file for maximum cascade weight.
   ================================================================ */

/* Buttons: ensure white text on colored backgrounds across ALL states */
.medexp-scope .medexp-btn--primary,
.medexp-scope .medexp-btn--primary:hover,
.medexp-scope .medexp-btn--primary:focus,
.medexp-scope .medexp-btn--primary:active,
.medexp-scope .medexp-btn--secondary,
.medexp-scope .medexp-btn--secondary:hover,
.medexp-scope .medexp-btn--secondary:focus,
.medexp-scope .medexp-btn--secondary:active,
.medexp-scope .medexp-btn--danger,
.medexp-scope .medexp-btn--danger:hover,
.medexp-scope .medexp-btn--danger:focus,
.medexp-scope .medexp-btn--danger:active,
.medexp-scope a.medexp-btn--primary,
.medexp-scope a.medexp-btn--primary:link,
.medexp-scope a.medexp-btn--primary:visited,
.medexp-scope a.medexp-btn--primary:hover,
.medexp-scope a.medexp-btn--primary:active,
.medexp-scope a.medexp-btn--secondary,
.medexp-scope a.medexp-btn--secondary:link,
.medexp-scope a.medexp-btn--secondary:visited,
.medexp-scope a.medexp-btn--secondary:hover,
.medexp-scope a.medexp-btn--secondary:active,
.medexp-scope a.medexp-btn--danger,
.medexp-scope a.medexp-btn--danger:link,
.medexp-scope a.medexp-btn--danger:visited,
.medexp-scope a.medexp-btn--danger:hover,
.medexp-scope a.medexp-btn--danger:active{
 color:#fff !important;
 text-decoration:none !important;
}
.medexp-scope .medexp-btn--primary *,
.medexp-scope .medexp-btn--secondary *,
.medexp-scope .medexp-btn--danger *{
 color:inherit !important;
}

/* Secondary button: blue background in all states (WP themes like Reign override bare .medexp-btn--secondary) */
.medexp-scope .medexp-btn--secondary,
.medexp-scope .medexp-btn--secondary:hover{
 background:linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0.08) 100%), var(--medexp-brand-blue) !important;
}
body.medexp-exam-fullscreen .medexp-btn--secondary,
body.medexp-exam-fullscreen .medexp-btn--secondary:hover{
 background:linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0.08) 100%), var(--medexp-brand-blue) !important;
}

/* Danger button: red background in all states */
.medexp-scope .medexp-btn--danger,
.medexp-scope .medexp-btn--danger:hover,
.medexp-scope .medexp-btn--danger:focus,
.medexp-scope .medexp-btn--danger:active{
 background:linear-gradient(180deg, #ef4444, #dc2626) !important;
 border-color:rgba(220,38,38,0.4) !important;
}

/* Ghost buttons: brand-colored text */
.medexp-scope .medexp-btn--ghost,
.medexp-scope .medexp-btn--ghost:hover,
.medexp-scope .medexp-btn--ghost:focus,
.medexp-scope .medexp-btn--ghost:active,
.medexp-scope a.medexp-btn--ghost,
.medexp-scope a.medexp-btn--ghost:link,
.medexp-scope a.medexp-btn--ghost:visited,
.medexp-scope a.medexp-btn--ghost:hover,
.medexp-scope a.medexp-btn--ghost:active{
 color:var(--medexp-brand-blue) !important;
 text-decoration:none !important;
}

/* Prevent WP themes from injecting background/outline on :active/:focus states.
   Themes like Reign/BuddyBoss set button:active { background:#0073aa; outline:blue; }
   which bleeds through to all plugin buttons. */
.medexp-scope .medexp-btn:active,
.medexp-scope .medexp-btn:focus{
 outline:none !important;
 box-shadow:none !important;
}
.medexp-scope .medexp-btn:focus-visible{
 outline:3px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35) !important;
 outline-offset:4px !important;
 box-shadow:none !important;
}
.medexp-scope .medexp-btn--primary:active,
.medexp-scope .medexp-btn--primary:focus{
 background:var(--medexp-primary-grad) !important;
}
.medexp-scope .medexp-btn--secondary:active,
.medexp-scope .medexp-btn--secondary:focus{
 background:linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0.08) 100%), var(--medexp-brand-blue) !important;
}
.medexp-scope .medexp-btn--ghost:active,
.medexp-scope .medexp-btn--ghost:focus{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06) !important;
}

/* Same for exam fullscreen buttons — these live outside .medexp-scope */
body.medexp-exam-fullscreen .medexp-btn:active,
body.medexp-exam-fullscreen .medexp-btn:focus{
 outline:none !important;
 box-shadow:none !important;
}
body.medexp-exam-fullscreen .medexp-btn:focus-visible{
 outline:3px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.35) !important;
 outline-offset:4px !important;
}
body.medexp-exam-fullscreen .medexp-btn--primary,
body.medexp-exam-fullscreen .medexp-btn--primary:hover,
body.medexp-exam-fullscreen .medexp-btn--primary:active,
body.medexp-exam-fullscreen .medexp-btn--primary:focus,
body.medexp-exam-fullscreen .medexp-btn--secondary,
body.medexp-exam-fullscreen .medexp-btn--secondary:hover,
body.medexp-exam-fullscreen .medexp-btn--secondary:active,
body.medexp-exam-fullscreen .medexp-btn--secondary:focus,
body.medexp-exam-fullscreen .medexp-btn--danger,
body.medexp-exam-fullscreen .medexp-btn--danger:hover,
body.medexp-exam-fullscreen .medexp-btn--danger:active,
body.medexp-exam-fullscreen .medexp-btn--danger:focus{
 color:#fff !important;
}
body.medexp-exam-fullscreen .medexp-btn--primary:active,
body.medexp-exam-fullscreen .medexp-btn--primary:focus{
 background:var(--medexp-primary-grad) !important;
}
body.medexp-exam-fullscreen .medexp-btn--secondary:active,
body.medexp-exam-fullscreen .medexp-btn--secondary:focus{
 background:linear-gradient(180deg, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0.08) 100%), var(--medexp-brand-blue) !important;
}
body.medexp-exam-fullscreen .medexp-btn--danger:active,
body.medexp-exam-fullscreen .medexp-btn--danger:focus{
 background:linear-gradient(180deg, #ef4444, #dc2626) !important;
}
body.medexp-exam-fullscreen .medexp-btn--ghost,
body.medexp-exam-fullscreen .medexp-btn--ghost:hover,
body.medexp-exam-fullscreen .medexp-btn--ghost:active,
body.medexp-exam-fullscreen .medexp-btn--ghost:focus{
 color:var(--medexp-brand-blue) !important;
}
body.medexp-exam-fullscreen .medexp-btn--ghost:active,
body.medexp-exam-fullscreen .medexp-btn--ghost:focus{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06) !important;
}

/* Generic links in scope: no theme color bleed — exclude all plugin link classes */
.medexp-scope a:not([class*="tw-"]):not([class*="medexp-"]):not([class]){
 color:var(--medexp-brand-blue) !important;
}

/* Prevent themes from adding background/border/box-shadow to our containers */
.medexp-scope .medexp-card,
.medexp-scope .medexp-mapTopic,
.medexp-scope .medexp-mapAcc{
 font-family:var(--medexp-font-sans) !important;
 color:var(--medexp-text) !important;
}

/* Ensure correct font throughout plugin surfaces */
.medexp-scope,
.medexp-scope *{
 font-family:var(--medexp-font-sans) !important;
}
.medexp-scope code,
.medexp-scope code *{
 font-family:var(--medexp-font-mono) !important;
}

/* Flashcard circle buttons — prevent WP theme from overriding color/background.
   Themes often set button{color:#fff;background:#0073aa} which makes SVG strokes invisible. */
.medexp-fc2-icon,
.medexp-fc2-back,
.medexp-fc2-icon:hover,
.medexp-fc2-back:hover,
.medexp-fc2-icon:focus,
.medexp-fc2-back:focus,
.medexp-fc2-icon:active,
.medexp-fc2-back:active{
 color:var(--medexp-text, #0f172a) !important;
 background:rgba(255,255,255,0.85) !important;
 outline:none !important;
}
.medexp-fc2-icon:hover,
.medexp-fc2-back:hover{
 box-shadow:var(--medexp-shadow-md) !important;
}
.medexp-fc2-icon:active,
.medexp-fc2-back:active{
 box-shadow:var(--medexp-shadow-sm) !important;
 transform:scale(0.96) !important;
}
.medexp-fc2-icon:focus-visible,
.medexp-fc2-back:focus-visible{
 box-shadow:0 0 0 3px rgba(var(--medexp-brand-blue-rgb,26,79,156),0.25) !important;
}
.medexp-fc2-icon svg{
 fill:none !important;
 stroke:var(--medexp-text, #162C55) !important;
 stroke-width:1.8 !important;
 width:18px !important;
 height:18px !important;
 overflow:visible !important;
}
.medexp-fc2-icon svg path,
.medexp-fc2-icon svg polyline,
.medexp-fc2-icon svg line,
.medexp-fc2-icon svg circle{
 stroke:#162C55 !important;
 stroke-width:1.8 !important;
 fill:none !important;
}
.medexp-fc2-icon.is-on{
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.45) !important;
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06) !important;
}
.medexp-fc2-star.is-on{
 border-color:rgba(245,158,11,0.55) !important;
 background:rgba(245,158,11,0.06) !important;
}
/* Toggle switches — prevent theme button styles from leaking */
.medexp-fc2-toggle input[type="checkbox"],
.medexp-fc2-toggleUi{
 background:inherit;
}
/* Flashcard difficulty rating buttons (if any) — same treatment */
.medexp-fc2-bar button,
.medexp-fc2-bar button:hover,
.medexp-fc2-bar button:active,
.medexp-fc2-bar button:focus{
 color:var(--medexp-text, #0f172a) !important;
}

/* ── WP theme button override: course pill, notification buttons, and other
   plugin controls that the Reign/BuddyX theme clobbers with its global
   button{background:#4945FF;color:#fff} rule. ──────────────────────────── */

/* Course selector pill */
.tw-courseTopSwitch__pill,
.tw-courseTopSwitch__pill:hover,
.tw-courseTopSwitch__pill:focus,
.tw-courseTopSwitch__pill:active{
 background:#fff !important;
 color:var(--medexp-text, #0f172a) !important;
}

/* Notification dropdown buttons (Mark all read, Close, Prev, Next) */
.medexp-notifyBtn,
.medexp-notifyBtn:hover,
.medexp-notifyBtn:focus,
.medexp-notifyBtn:active{
 background:rgba(248,250,252,1) !important;
 color:rgba(15,23,42,0.88) !important;
}
.medexp-notifyBtn:hover{
 background:rgba(241,245,249,1) !important;
}

/* Notification bell button */
.medexp-notifyBell,
.medexp-notifyBell:hover,
.medexp-notifyBell:focus,
.medexp-notifyBell:active{
 background:transparent !important;
 color:var(--medexp-text, #0f172a) !important;
}

/* Generic: any <button> inside the medexp appbar / scope should not inherit theme button bg */
.medexp-appbar button,
.medexp-appbar button:hover,
.medexp-appbar button:focus,
.medexp-appbar button:active,
.medexp-scope button,
.medexp-scope button:hover,
.medexp-scope button:focus,
.medexp-scope button:active,
.medexp-tw button,
.medexp-tw button:hover,
.medexp-tw button:focus,
.medexp-tw button:active{
 background:inherit !important;
 color:inherit !important;
}
/* Re-assert primary buttons get their intended gradient/bg — ALL states */
.medexp-appbar .medexp-btn--primary,
.medexp-appbar .medexp-btn--primary:hover,
.medexp-appbar .medexp-btn--primary:focus,
.medexp-appbar .medexp-btn--primary:active,
.medexp-scope .medexp-btn--primary,
.medexp-scope .medexp-btn--primary:hover,
.medexp-scope .medexp-btn--primary:focus,
.medexp-scope .medexp-btn--primary:active,
.medexp-tw .medexp-btn--primary,
.medexp-tw .medexp-btn--primary:hover,
.medexp-tw .medexp-btn--primary:focus,
.medexp-tw .medexp-btn--primary:active{
 background:var(--medexp-primary-grad, linear-gradient(90deg,#143f7f 0%,#00a676 100%)) !important;
 color:#fff !important;
}
.medexp-appbar .medexp-btn--ghost,
.medexp-scope .medexp-btn--ghost,
.medexp-tw .medexp-btn--ghost{
 background:transparent !important;
 color:var(--medexp-text, #0f172a) !important;
}
.medexp-appbar .medexp-btn--ghost:hover,
.medexp-scope .medexp-btn--ghost:hover,
.medexp-tw .medexp-btn--ghost:hover{
 background:rgba(241,245,249,0.9) !important;
}

/* ── Re-assert dashboard TW button variants (overridden by the catch-all above) ── */
/* Primary: teal gradient — ALL states */
.medexp-tw .tw-btn-primary,
.medexp-tw .tw-btn-primary:hover,
.medexp-tw .tw-btn-primary:focus,
.medexp-tw .tw-btn-primary:active,
.medexp-tw button.tw-btn-primary,
.medexp-tw button.tw-btn-primary:hover,
.medexp-tw button.tw-btn-primary:focus,
.medexp-tw button.tw-btn-primary:active{
 background:var(--medexp-primary-grad, var(--medexp-brand-teal, #00a676)) !important;
 color:#fff !important;
}
/* Secondary: white with blue border — ALL states */
.medexp-tw .tw-btn-secondary,
.medexp-tw .tw-btn-secondary:focus,
.medexp-tw .tw-btn-secondary:active,
.medexp-tw button.tw-btn-secondary,
.medexp-tw button.tw-btn-secondary:focus,
.medexp-tw button.tw-btn-secondary:active{
 background:rgba(255,255,255,0.98) !important;
 color:var(--medexp-brand-blue, #1a4f9c) !important;
}
.medexp-tw .tw-btn-secondary:hover,
.medexp-tw button.tw-btn-secondary:hover{
 background:var(--tw-gray-50, #f8fafc) !important;
 color:var(--medexp-brand-blue, #1a4f9c) !important;
}
/* Ghost: transparent — ALL states */
.medexp-tw .tw-btn-ghost,
.medexp-tw .tw-btn-ghost:focus,
.medexp-tw .tw-btn-ghost:active,
.medexp-tw button.tw-btn-ghost,
.medexp-tw button.tw-btn-ghost:focus,
.medexp-tw button.tw-btn-ghost:active{
 background:transparent !important;
 color:var(--tw-gray-700, #334155) !important;
}
.medexp-tw .tw-btn-ghost:hover,
.medexp-tw button.tw-btn-ghost:hover{
 background:var(--tw-gray-100, #f1f5f9) !important;
 color:var(--tw-gray-700, #334155) !important;
}
/* Segmented pill toggles (Roadmap/Schedule, heat-map segments, etc.) */
.medexp-tw .tw-roadmapModeBtn,
.medexp-tw .tw-heatSegBtn{
 background:transparent !important;
 color:var(--tw-slate-700, #334155) !important;
}
.medexp-tw .tw-roadmapModeBtn:hover,
.medexp-tw .tw-heatSegBtn:hover{
 background:rgba(15,23,42,.04) !important;
}
.medexp-tw .tw-roadmapModeBtn.is-active,
.medexp-tw .tw-heatSegBtn.is-active{
 background:#fff !important;
 color:var(--tw-slate-900, #0f172a) !important;
 border:1px solid rgba(26,79,156,.22);
 box-shadow:0 1px 3px rgba(15,23,42,.08);
}
/* Dashboard sub-tabs (Overview, Performance, Study plan, Practice, Courses) */
.medexp-tw .tw-dashTabBtn,
.medexp-dashboardPage .tw-dashTabBtn{
 background:#fff !important;
 color:inherit !important;
}
.medexp-tw .tw-dashTabBtn:hover,
.medexp-dashboardPage .tw-dashTabBtn:hover{
 background:rgba(15,23,42,.04) !important;
}
.medexp-tw .tw-dashTabBtn.is-active,
.medexp-dashboardPage .tw-dashTabBtn.is-active{
 background:rgba(26,79,156,.08) !important;
 color:var(--tw-slate-900, #0f172a) !important;
 border-color:rgba(26,79,156,.35);
}
/* Roadmap filter selects & inputs inside dashboard */
.medexp-tw .tw-input,
.medexp-tw select.tw-input{
 background:#fff !important;
 color:var(--tw-gray-900, #0f172a) !important;
}
/* Roadmap tools checkboxes label */
.medexp-tw .tw-roadmapTools__chk{
 background:transparent !important;
 color:var(--tw-slate-600, #475569) !important;
}

/* ── Practice page — re-assert pill / tab / button backgrounds ── */
/* Setup subtabs (Question Types, Topics, Focus, etc.) */
.medexp-qb-subtab,
button.medexp-qb-subtab{
 background:transparent !important;
 color:rgba(15,23,42,0.72) !important;
}
.medexp-qb-subtab:hover,
button.medexp-qb-subtab:hover{
 background:rgba(15,23,42,0.05) !important;
}
.medexp-qb-subtab.is-active,
button.medexp-qb-subtab.is-active{
 background:#fff !important;
 color:rgba(15,23,42,0.92) !important;
 border:1px solid rgba(15,23,42,0.12);
 box-shadow:0 1px 8px rgba(15,23,42,0.10);
}
/* Mode toggle (Tutor / Timed) */
.medexp-seg__btn,
button.medexp-seg__btn{
 background:transparent !important;
 color:rgba(15,23,42,0.70) !important;
}
.medexp-seg__btn:hover,
button.medexp-seg__btn:hover{
 background:rgba(15,23,42,0.05) !important;
}
.medexp-seg__btn.is-active,
button.medexp-seg__btn.is-active{
 background:#fff !important;
 color:rgba(15,23,42,0.92) !important;
 box-shadow:0 1px 8px rgba(15,23,42,0.10);
}
/* Quick-start preset buttons */
.medexp-qb-presetBtn,
button.medexp-qb-presetBtn{
 background:rgba(255,255,255,0.92) !important;
 color:var(--medexp-brand-blue, #1a4f9c) !important;
}
.medexp-qb-presetBtn:hover,
button.medexp-qb-presetBtn:hover{
 background:#fff !important;
 box-shadow:0 2px 10px rgba(15,23,42,0.10);
}
/* Start practice button — cover all states so catch-all :hover doesn't turn it white */
.medexp-qb-startBtn,
button.medexp-qb-startBtn,
.medexp-qb-startBtn:hover,
button.medexp-qb-startBtn:hover,
.medexp-qb-startBtn:focus,
button.medexp-qb-startBtn:focus,
.medexp-qb-startBtn:active,
button.medexp-qb-startBtn:active{
 background:var(--medexp-primary-grad, var(--medexp-brand-teal, #00a676)) !important;
 color:#fff !important;
}
/* Practice page inputs/selects */
.medexp-qb-input,
.medexp-qb-select{
 background:#fff !important;
 color:rgba(30,41,59,0.92) !important;
}
/* Flashcard session builder inputs */
.medexp-tw .tw-fcFormRow input[type="text"],
.medexp-tw .tw-fcFormRow input[type="number"],
.medexp-tw .tw-fcFormRow select,
.medexp-tw .tw-fcFormGrid input[type="number"]{
 background:#fff !important;
 color:rgba(15,23,42,0.88) !important;
}

/* ══════════════════════════════════════════════════════════════
   Quiz Platform — Premium UI Polish
   ══════════════════════════════════════════════════════════════ */

/* Selected choice (checkbox checked) — subtle indigo tint */
.medexp-qb-choice:has(input:checked){
 border-color:rgba(99,102,241,0.45);
 background:linear-gradient(135deg, rgba(99,102,241,0.05), rgba(99,102,241,0.02));
 box-shadow:0 0 0 3px rgba(99,102,241,0.06);
}
.medexp-qb-choice:has(input:checked) .medexp-qb-choice__label{
 background:linear-gradient(135deg, rgba(99,102,241,0.2), rgba(99,102,241,0.1));
 border-color:rgba(99,102,241,0.45);
 color:#4338CA;
}
/* Correct/wrong/missed override the selected style */
.medexp-qb-choice.is-correct:has(input:checked),
.medexp-qb-choice.is-wrong:has(input:checked),
.medexp-qb-choice.is-missed{
 /* These already have their own styles — let them win */
}

/* Choice gap — a bit more breathing room */
.medexp-qb-choices{gap:.6rem;}

/* Submit / action buttons — gradient primary */
.medexp-qb-actionsRow .medexp-btn--primary,
.medexp-qb-actionsRow .medexp-btn[data-action="submit"]{
 background:linear-gradient(135deg, #162C55, #1E4D8C) !important;
 color:#fff !important;
 border:none !important;
 border-radius:12px !important;
 padding:.6rem 1.3rem !important;
 font-weight:800 !important;
 box-shadow:0 4px 14px rgba(22,44,85,0.25) !important;
 transition:all .2s cubic-bezier(.34,1.56,.64,1) !important;
}
.medexp-qb-actionsRow .medexp-btn--primary:hover,
.medexp-qb-actionsRow .medexp-btn[data-action="submit"]:hover{
 transform:translateY(-2px) !important;
 box-shadow:0 6px 20px rgba(22,44,85,0.35) !important;
}

/* Saved status text — premium green with fade animation */
.medexp-qb-actionsRow [data-result-slot]{
 font-weight:800;
 color:#059669;
 font-size:.92rem;
}

/* Exam right panel — subtle gradient bg */
.medexp-examRight{
 background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,251,0.92)) !important;
}

/* Flag for Review button — pill style */
.medexp-uw-flagBtn{
 border-radius:999px !important;
 padding:6px 12px !important;
}
.medexp-uw-flagBtn.is-marked{
 background:rgba(251,191,36,0.22) !important;
}

/* Question counter badge in top-right */
.medexp-examTop__right .medexp-examBadge,
.medexp-examTop .medexp-badge{
 background:linear-gradient(135deg, #162C55, #1E4D8C);
 color:#fff;
 border-radius:10px;
 padding:5px 10px;
 font-weight:800;
 font-size:.82rem;
 font-variant-numeric:tabular-nums;
 box-shadow:0 2px 6px rgba(22,44,85,0.2);
}

/* Smooth page background for exam mode */
body.medexp-exam-fullscreen{
 background:linear-gradient(135deg, #F1F5F9 0%, #F8FAFB 50%, #EFF6FF 100%) !important;
}

/* Timer — more prominent */
.medexp-examTop__timer{
 font-variant-numeric:tabular-nums;
 font-weight:900;
 letter-spacing:0.3px;
 color:rgba(15,23,42,0.88);
}

/* Exam layout container — match rounded style */
.medexp-examLayout{
 gap:16px;
 margin-top:14px;
}

/* Answer option letter badges — subtle color per letter */
.medexp-qb-choice:nth-child(1) .medexp-qb-choice__label{color:rgba(99,102,241,0.85);}
.medexp-qb-choice:nth-child(2) .medexp-qb-choice__label{color:rgba(59,130,246,0.85);}
.medexp-qb-choice:nth-child(3) .medexp-qb-choice__label{color:rgba(16,185,129,0.85);}
.medexp-qb-choice:nth-child(4) .medexp-qb-choice__label{color:rgba(245,158,11,0.85);}
.medexp-qb-choice:nth-child(5) .medexp-qb-choice__label{color:rgba(236,72,153,0.85);}

/* Correct/wrong/missed states override letter color */
.medexp-qb-choice.is-correct .medexp-qb-choice__label,
.medexp-qb-choice.is-wrong .medexp-qb-choice__label,
.medexp-qb-choice.is-missed .medexp-qb-choice__label{
 color:inherit;
}

/* Navigator button in bottom bar — frosted glass pill */
.medexp-examNav .medexp-btn--ghost{
 border-radius:10px;
 font-weight:700;
 padding:7px 14px;
 transition:all .15s ease;
}
.medexp-examNav .medexp-btn--ghost:hover{
 background:rgba(99,102,241,0.06);
}

/* ── Responsive polish ── */
@media (max-width:768px){
 .medexp-examTop{border-radius:12px;padding:10px 12px;}
 .medexp-examNav{border-radius:12px;padding:8px 10px;}
 .medexp-qb-choice{padding:.6rem .65rem;border-radius:14px;}
 .medexp-examLeft,.medexp-examRight{border-radius:14px;}
}


/* ══════════════════════════════════════════════════════════════════
   Practice Builder — Unicorn UI Elevation
   Premium gradients · glassmorphism · color-coded accents · micro-animations
   ══════════════════════════════════════════════════════════════════ */

/* ── 1. Hero Section — Gradient Depth + Glassmorphism ─────────── */

.medexp-qb-hero{
 background:
  radial-gradient(ellipse 85% 75% at 3% 8%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.15) 0%, transparent 65%),
  radial-gradient(ellipse 65% 65% at 97% 88%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12) 0%, transparent 60%),
  radial-gradient(ellipse 45% 40% at 55% -5%, rgba(139,92,246,0.06) 0%, transparent 50%),
  linear-gradient(135deg, rgba(255,255,255,0.96) 0%, rgba(248,250,252,0.99) 100%) !important;
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12) !important;
 border-radius:1.25rem !important;
 padding:1.4rem 1.5rem !important;
 box-shadow:
  0 1px 0 rgba(255,255,255,0.75) inset,
  0 1px 0 rgba(17,24,39,0.02),
  0 14px 36px rgba(17,24,39,0.07) !important;
 position:relative;
 overflow:hidden;
}
/* Decorative shimmer accent on hero */
.medexp-qb-hero::after{
 content:'';
 position:absolute;
 top:-40%;right:-15%;
 width:340px;height:340px;
 border-radius:50%;
 background:radial-gradient(circle, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08) 0%, transparent 70%);
 pointer-events:none;
 animation:heroFloat 8s ease-in-out infinite;
}
@keyframes heroFloat{
 0%,100%{transform:translate(0,0) scale(1);opacity:0.6;}
 50%{transform:translate(-20px,15px) scale(1.1);opacity:1;}
}

/* Kicker — pill badge style */
.medexp-qb-hero__kicker{
 display:inline-flex !important;
 align-items:center;
 gap:6px;
 padding:0.3rem 0.7rem !important;
 border-radius:999px !important;
 background:linear-gradient(135deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10), rgba(var(--medexp-brand-blue-rgb,26,79,156),0.04)) !important;
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.15);
 font-size:0.74rem !important;
 font-weight:900 !important;
 letter-spacing:0.06em !important;
 color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.85) !important;
}

/* Title — gradient text */
.medexp-qb-hero__title{
 background:linear-gradient(135deg, rgba(15,23,42,0.95) 40%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.85) 100%);
 -webkit-background-clip:text;
 -webkit-text-fill-color:transparent;
 background-clip:text;
 font-size:1.55rem !important;
}


/* ── 2. Quick Start Presets — Color-Coded Personalities ────────── */

.medexp-qb-presets{
 gap:10px !important;
}

.medexp-qb-presetBtn,
button.medexp-qb-presetBtn{
 border-radius:14px !important;
 padding:0.55rem 0.9rem !important;
 font-weight:900 !important;
 font-size:0.86rem !important;
 border:1px solid rgba(15,23,42,0.08) !important;
 transition:all .2s cubic-bezier(.34,1.56,.64,1) !important;
 position:relative;
 overflow:hidden;
}
.medexp-qb-presetBtn:active,
button.medexp-qb-presetBtn:active{
 transform:scale(0.97) !important;
}

/* Quick 10 — Emerald */
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(1),
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(1){
 border-left:3px solid rgba(16,185,129,0.55) !important;
 background:linear-gradient(135deg, rgba(16,185,129,0.07), rgba(16,185,129,0.01)) !important;
 color:rgba(5,150,105,0.95) !important;
}
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(1):hover,
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(1):hover{
 background:linear-gradient(135deg, rgba(16,185,129,0.13), rgba(16,185,129,0.04)) !important;
 box-shadow:0 6px 20px rgba(16,185,129,0.18) !important;
 transform:translateY(-2px);
 border-color:rgba(16,185,129,0.30) !important;
 border-left:3px solid rgba(16,185,129,0.55) !important;
}

/* Timed 10 — Blue */
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(2),
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(2){
 border-left:3px solid rgba(59,130,246,0.55) !important;
 background:linear-gradient(135deg, rgba(59,130,246,0.07), rgba(59,130,246,0.01)) !important;
 color:rgba(37,99,235,0.95) !important;
}
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(2):hover,
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(2):hover{
 background:linear-gradient(135deg, rgba(59,130,246,0.13), rgba(59,130,246,0.04)) !important;
 box-shadow:0 6px 20px rgba(59,130,246,0.18) !important;
 transform:translateY(-2px);
 border-color:rgba(59,130,246,0.30) !important;
 border-left:3px solid rgba(59,130,246,0.55) !important;
}

/* Focus 25 — Violet */
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(3),
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(3){
 border-left:3px solid rgba(139,92,246,0.55) !important;
 background:linear-gradient(135deg, rgba(139,92,246,0.07), rgba(139,92,246,0.01)) !important;
 color:rgba(124,58,237,0.95) !important;
}
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(3):hover,
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(3):hover{
 background:linear-gradient(135deg, rgba(139,92,246,0.13), rgba(139,92,246,0.04)) !important;
 box-shadow:0 6px 20px rgba(139,92,246,0.18) !important;
 transform:translateY(-2px);
 border-color:rgba(139,92,246,0.30) !important;
 border-left:3px solid rgba(139,92,246,0.55) !important;
}

/* Exam 50 — Amber */
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(4),
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(4){
 border-left:3px solid rgba(245,158,11,0.55) !important;
 background:linear-gradient(135deg, rgba(245,158,11,0.07), rgba(245,158,11,0.01)) !important;
 color:rgba(217,119,6,0.95) !important;
}
.medexp-qb-presets > .medexp-qb-presetBtn:nth-child(4):hover,
.medexp-qb-presets > button.medexp-qb-presetBtn:nth-child(4):hover{
 background:linear-gradient(135deg, rgba(245,158,11,0.13), rgba(245,158,11,0.04)) !important;
 box-shadow:0 6px 20px rgba(245,158,11,0.18) !important;
 transform:translateY(-2px);
 border-color:rgba(245,158,11,0.30) !important;
 border-left:3px solid rgba(245,158,11,0.55) !important;
}


/* ── 3. Setup Section — Frosted Glass + Active Tab Glow ───────── */

.medexp-qb-section{
 background:rgba(255,255,255,0.82) !important;
 backdrop-filter:blur(12px);
 -webkit-backdrop-filter:blur(12px);
 border:1px solid rgba(15,23,42,0.07) !important;
 border-radius:1.15rem !important;
 box-shadow:
  0 1px 0 rgba(255,255,255,0.65) inset,
  0 1px 4px rgba(15,23,42,0.03),
  0 8px 24px rgba(15,23,42,0.05) !important;
 transition:box-shadow .25s ease;
 /* Ensure dropdowns render above the history card below (backdrop-filter
    creates a stacking context; an explicit z-index lifts it higher). */
 position:relative;
 z-index:2;
}

/* Subtab bar — refined pill container */
.medexp-qb-subtabs{
 background:rgba(15,23,42,0.035) !important;
 border:1px solid rgba(15,23,42,0.08) !important;
 padding:4px !important;
 gap:3px !important;
}

/* Active subtab — teal accent glow */
.medexp-qb-subtab.is-active,
button.medexp-qb-subtab.is-active{
 background:linear-gradient(135deg, rgba(255,255,255,0.98), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.04)) !important;
 color:rgba(15,23,42,0.92) !important;
 border:1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.15) !important;
 box-shadow:
  0 1px 0 rgba(255,255,255,0.8) inset,
  0 1px 8px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12),
  0 0 0 1px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06) !important;
}
/* Subtab meta badge — teal when active */
.medexp-qb-subtab.is-active .medexp-qb-subtab__meta{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10) !important;
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.20) !important;
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.90) !important;
}

/* Mode toggle — teal active segment */
.medexp-seg{
 border:1px solid rgba(15,23,42,0.08) !important;
 background:rgba(15,23,42,0.03) !important;
}
.medexp-seg__btn.is-active,
button.medexp-seg__btn.is-active{
 background:linear-gradient(135deg, rgba(255,255,255,0.98), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.05)) !important;
 color:rgba(15,23,42,0.92) !important;
 box-shadow:
  0 1px 6px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.15),
  0 0 0 1px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10) !important;
}

/* Form inputs — enhanced focus glow */
.medexp-qb-input:focus,
.medexp-qb-select:focus{
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.45) !important;
 box-shadow:0 0 0 4px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10), 0 2px 8px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06) !important;
 outline:none;
}

/* Section title — slightly bolder */
.medexp-qb-section__title{
 font-size:1.05rem !important;
 letter-spacing:-0.01em;
}


/* ── 4. Session Summary Sidebar — Premium Card ────────────────── */

.medexp-qb-summaryCard{
 background:
  radial-gradient(ellipse 80% 70% at 8% 8%, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.08) 0%, transparent 60%),
  radial-gradient(ellipse 50% 50% at 90% 90%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.05) 0%, transparent 55%),
  linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.97)) !important;
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10) !important;
 border-radius:1.25rem !important;
 box-shadow:
  0 1px 0 rgba(255,255,255,0.7) inset,
  0 1px 0 rgba(17,24,39,0.02),
  0 10px 28px rgba(17,24,39,0.07) !important;
 /* DO NOT set position:relative here — it overrides position:sticky from
    .medexp-qb-sticky and turns top:92px into a downward offset instead of
    a sticky scroll threshold.  The ::before gradient bar works fine with
    sticky as the containing block. */
 overflow:hidden;
}
/* Gradient accent bar at top */
.medexp-qb-summaryCard::before{
 content:'';
 position:absolute;
 top:0;left:0;right:0;
 height:3px;
 background:linear-gradient(90deg,
  rgba(var(--medexp-brand-blue-rgb,26,79,156),0.7),
  rgba(var(--medexp-brand-teal-rgb,0,166,118),0.7),
  rgba(139,92,246,0.5));
 border-radius:1.25rem 1.25rem 0 0;
}

/* Summary card head — icon teal tint */
.medexp-qb-summaryCard__head .tw-ico{
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.75) !important;
 opacity:1 !important;
}
.medexp-qb-summaryCard__title{
 font-size:1.1rem !important;
 letter-spacing:-0.01em;
}

/* Summary row values — bolder */
.medexp-qb-sumRow__v{
 font-weight:950 !important;
 font-size:0.94rem !important;
 color:rgba(15,23,42,0.92) !important;
}
/* Subtle divider between rows */
.medexp-qb-sumRow + .medexp-qb-sumRow{
 padding-top:8px;
 border-top:1px solid rgba(15,23,42,0.04);
}


/* ── 5. Performance Strip — Color-Coded Stats ─────────────────── */

.medexp-qb-perfStrip__title{
 font-size:0.86rem !important;
 letter-spacing:0.03em !important;
 text-transform:uppercase;
}

.medexp-qb-perfStat{
 border-radius:0.9rem !important;
 padding:10px 12px !important;
 transition:transform .2s cubic-bezier(.34,1.56,.64,1), box-shadow .2s ease;
}
.medexp-qb-perfStat:hover{
 transform:translateY(-1px);
 box-shadow:0 4px 12px rgba(15,23,42,0.08);
}

/* Accuracy — Emerald */
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(1){
 border-left:2.5px solid rgba(16,185,129,0.50) !important;
 background:linear-gradient(135deg, rgba(16,185,129,0.06), rgba(16,185,129,0.01)) !important;
 border-color:rgba(16,185,129,0.15);
}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(1) .medexp-qb-perfStat__v{color:#059669 !important;}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(1) .tw-ico{color:rgba(16,185,129,0.70) !important;opacity:1 !important;}

/* Attempts — Blue */
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(2){
 border-left:2.5px solid rgba(59,130,246,0.50) !important;
 background:linear-gradient(135deg, rgba(59,130,246,0.06), rgba(59,130,246,0.01)) !important;
 border-color:rgba(59,130,246,0.15);
}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(2) .medexp-qb-perfStat__v{color:#2563eb !important;}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(2) .tw-ico{color:rgba(59,130,246,0.70) !important;opacity:1 !important;}

/* Avg time — Violet */
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(3){
 border-left:2.5px solid rgba(139,92,246,0.50) !important;
 background:linear-gradient(135deg, rgba(139,92,246,0.06), rgba(139,92,246,0.01)) !important;
 border-color:rgba(139,92,246,0.15);
}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(3) .medexp-qb-perfStat__v{color:#7c3aed !important;}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(3) .tw-ico{color:rgba(139,92,246,0.70) !important;opacity:1 !important;}

/* Last practiced — Amber */
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(4){
 border-left:2.5px solid rgba(245,158,11,0.50) !important;
 background:linear-gradient(135deg, rgba(245,158,11,0.06), rgba(245,158,11,0.01)) !important;
 border-color:rgba(245,158,11,0.15);
}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(4) .medexp-qb-perfStat__v{color:#d97706 !important;}
.medexp-qb-perfStrip__grid > .medexp-qb-perfStat:nth-child(4) .tw-ico{color:rgba(245,158,11,0.70) !important;opacity:1 !important;}


/* ── 6. CTA Button — Gradient Glow Pulse ──────────────────────── */

@keyframes qbCtaGlow{
 0%,100%{box-shadow:0 2px 12px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.25);}
 50%{box-shadow:0 4px 22px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.42), 0 0 0 2px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08);}
}
.medexp-qb-startBtn,
button.medexp-qb-startBtn{
 border-radius:999px !important;
 font-weight:950 !important;
 font-size:0.96rem !important;
 padding:0.82rem 1.4rem !important;
 letter-spacing:0.01em;
 animation:qbCtaGlow 3s ease-in-out infinite !important;
 transition:transform .2s cubic-bezier(.34,1.56,.64,1), box-shadow .2s ease !important;
}
.medexp-qb-startBtn:hover,
button.medexp-qb-startBtn:hover{
 transform:translateY(-2px) !important;
 animation:none !important;
 box-shadow:0 6px 28px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35) !important;
}
.medexp-qb-startBtn:active,
button.medexp-qb-startBtn:active{
 transform:scale(0.97) !important;
 animation:none !important;
}

/* Resume button — subtle style lift */
.medexp-qb-resumeBtn{
 border-radius:999px !important;
 transition:all .2s ease !important;
}
.medexp-qb-resumeBtn:hover{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06) !important;
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.18) !important;
}


/* ── 7. Recent Sessions — Elevated Card + Rows ────────────────── */

.medexp-qb-historyCard{
 background:rgba(255,255,255,0.88) !important;
 backdrop-filter:blur(10px);
 -webkit-backdrop-filter:blur(10px);
 border:1px solid rgba(15,23,42,0.07) !important;
 border-radius:1.25rem !important;
 box-shadow:
  0 1px 0 rgba(255,255,255,0.65) inset,
  0 1px 4px rgba(15,23,42,0.03),
  0 8px 24px rgba(15,23,42,0.05) !important;
}
.medexp-qb-historyCard__head{
 border-bottom:1px solid rgba(15,23,42,0.05) !important;
}
.medexp-qb-historyCard__title{
 font-size:1.05rem !important;
 letter-spacing:-0.01em;
}

/* History rows — refined hover */
.medexp-qb-historyRow{
 border:1px solid rgba(15,23,42,0.06) !important;
 border-radius:1rem !important;
 border-left:3px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.25);
 transition:all .2s cubic-bezier(.34,1.56,.64,1) !important;
}
.medexp-qb-historyRow:hover{
 transform:translateY(-2px) !important;
 box-shadow:0 6px 20px rgba(15,23,42,0.08) !important;
 border-left-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.50) !important;
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.03) !important;
}
.medexp-qb-historyRow__stat{
 font-weight:950 !important;
}


/* ── 8. Micro-Animations & Decorative Polish ──────────────────── */

/* Decorative floating gradient blob on hub */
.medexp-qb-hub{
 position:relative;
}
.medexp-qb-hub::before{
 content:'';
 position:absolute;
 top:-60px;right:-80px;
 width:280px;height:280px;
 border-radius:50%;
 background:radial-gradient(circle, rgba(139,92,246,0.06) 0%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.04) 40%, transparent 70%);
 pointer-events:none;
 z-index:0;
 animation:hubBlob 12s ease-in-out infinite;
}
@keyframes hubBlob{
 0%,100%{transform:translate(0,0) scale(1);opacity:0.5;}
 33%{transform:translate(-30px,20px) scale(1.15);opacity:0.8;}
 66%{transform:translate(10px,-10px) scale(0.95);opacity:0.6;}
}

/* All cards get smooth transitions */
.medexp-qb-hero,
.medexp-qb-section,
.medexp-qb-summaryCard,
.medexp-qb-historyCard{
 transition:box-shadow .25s ease, transform .25s ease;
}

/* Subtle card hover lift */
.medexp-qb-section:hover{
 box-shadow:
  0 1px 0 rgba(255,255,255,0.65) inset,
  0 2px 6px rgba(15,23,42,0.04),
  0 12px 32px rgba(15,23,42,0.07) !important;
}

/* Tab pane animation — enhanced fade-in with scale */
.medexp-qb-tabPane.is-active{
 animation:qbPaneIn 180ms cubic-bezier(.34,1.56,.64,1) !important;
}
@keyframes qbPaneIn{
 from{opacity:0;transform:translateY(4px) scale(0.995);}
 to{opacity:1;transform:translateY(0) scale(1);}
}

/* Focus-visible rings for keyboard nav */
.medexp-qb-subtab:focus-visible,
.medexp-qb-presetBtn:focus-visible,
.medexp-seg__btn:focus-visible,
.medexp-qb-input:focus-visible,
.medexp-qb-startBtn:focus-visible{
 outline:none !important;
 box-shadow:0 0 0 3px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.30), 0 0 0 1px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.15) !important;
}

/* Footer (start practice area) — gentle gradient */
.medexp-qb-footer{
 background:
  linear-gradient(135deg, rgba(255,255,255,0.98), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.04)) !important;
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12) !important;
}

/* Summary pill in section head — refined */
.medexp-qb-summaryPill{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06) !important;
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12) !important;
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.80) !important;
 font-weight:900 !important;
}

/* Course pill — premium */
.medexp-qb-coursePill{
 background:linear-gradient(135deg, rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06), rgba(var(--medexp-brand-blue-rgb,26,79,156),0.02)) !important;
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12) !important;
}

/* Chip toggles (question types) — teal accent when active */
.medexp-qb-chips--toggle .medexp-qb-chip.is-active{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10) !important;
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.28) !important;
 box-shadow:0 1px 10px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12) !important;
}

/* Panel (Advanced/Focus) — refined details */
.medexp-qb-panel{
 border-color:rgba(15,23,42,0.06) !important;
 background:rgba(255,255,255,0.90) !important;
 border-radius:1.1rem !important;
}


/* ── 9. Reduced Motion ────────────────────────────────────────── */

@media (prefers-reduced-motion:reduce){
 .medexp-qb-hero::after,
 .medexp-qb-hub::before{animation:none !important;opacity:0.5;}
 .medexp-qb-startBtn,
 button.medexp-qb-startBtn{animation:none !important;}
 .medexp-qb-tabPane.is-active{animation:none !important;}
 .medexp-qb-presetBtn,
 .medexp-qb-perfStat,
 .medexp-qb-historyRow{transition:none !important;}
}


/* ═══════════════════════════════════════════════════════════════════
   QUIZ LIST TAB — Premium Card Grid
   ═══════════════════════════════════════════════════════════════════ */

/* ── Wrapper ──────────────────────────────────────────────────────── */
.medexp-ql-wrap{
 position:relative;
 padding:4px 0 24px;
}
/* Decorative blob */
.medexp-ql-wrap::before{
 content:'';
 position:absolute;
 top:-50px;right:-70px;
 width:260px;height:260px;
 border-radius:50%;
 background:radial-gradient(circle, rgba(139,92,246,0.06) 0%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.04) 40%, transparent 70%);
 pointer-events:none;
 z-index:0;
 animation:hubBlob 12s ease-in-out infinite;
}

/* ── Loading skeleton ─────────────────────────────────────────────── */
.medexp-ql-skeleton{
 display:grid;
 grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
 gap:20px;
 padding-top:16px;
}

/* ── Header ───────────────────────────────────────────────────────── */
.medexp-ql-header{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 flex-wrap:wrap;
 gap:16px;
 margin-bottom:20px;
 position:relative;
 z-index:1;
}
.medexp-ql-header__title{
 font-size:1.35rem;
 font-weight:950;
 letter-spacing:-0.02em;
 color:rgba(15,23,42,0.92);
}
.medexp-ql-header__sub{
 font-size:0.82rem;
 color:rgba(15,23,42,0.48);
 margin-top:3px;
 font-weight:500;
}
.medexp-ql-header__stats{
 display:flex;
 gap:8px;
 flex-wrap:wrap;
}

/* Stat pills in header */
.medexp-ql-statPill{
 display:flex;
 align-items:center;
 gap:6px;
 padding:6px 14px 6px 10px;
 border-radius:999px;
 background:rgba(255,255,255,0.88);
 backdrop-filter:blur(8px);
 -webkit-backdrop-filter:blur(8px);
 border:1px solid rgba(15,23,42,0.07);
 box-shadow:0 1px 4px rgba(15,23,42,0.04);
 font-size:0.78rem;
 white-space:nowrap;
 transition:transform .2s ease, box-shadow .2s ease;
}
.medexp-ql-statPill:hover{
 transform:translateY(-1px);
 box-shadow:0 3px 12px rgba(15,23,42,0.08);
}
.medexp-ql-statPill__v{
 font-weight:900;
 color:rgba(15,23,42,0.88);
 font-size:0.88rem;
}
.medexp-ql-statPill__l{
 color:rgba(15,23,42,0.45);
 font-weight:500;
}

/* ── Icon ─────────────────────────────────────────────────────────── */
.medexp-ql-ico{
 width:16px;
 height:16px;
 flex-shrink:0;
 color:rgba(15,23,42,0.40);
}
.medexp-ql-ico--sm{
 width:13px;
 height:13px;
}
.medexp-ql-ico--blue{color:rgba(59,130,246,0.75);}
.medexp-ql-ico--teal{color:rgba(20,184,166,0.75);}
.medexp-ql-ico--amber{color:rgba(245,158,11,0.75);}
.medexp-ql-ico--emerald{color:rgba(16,185,129,0.80);}

/* ── Card Grid ────────────────────────────────────────────────────── */
.medexp-ql-grid{
 display:grid;
 grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
 gap:20px;
 position:relative;
 z-index:1;
}

/* ── Card ─────────────────────────────────────────────────────────── */
@keyframes qlCardIn{
 from{opacity:0;transform:translateY(16px) scale(0.97);}
 to{opacity:1;transform:translateY(0) scale(1);}
}

.medexp-ql-card{
 background:rgba(255,255,255,0.88);
 backdrop-filter:blur(10px);
 -webkit-backdrop-filter:blur(10px);
 border:1px solid rgba(15,23,42,0.07);
 border-left:4px solid var(--ql-accent, #94a3b8);
 border-radius:1.25rem;
 padding:20px 22px;
 box-shadow:
  0 1px 0 rgba(255,255,255,0.65) inset,
  0 1px 4px rgba(15,23,42,0.03),
  0 6px 20px rgba(15,23,42,0.04);
 transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, border-color .25s ease;
 animation:qlCardIn 400ms cubic-bezier(.34,1.56,.64,1) both;
 animation-delay:calc(var(--i, 0) * 60ms);
 overflow:hidden;
}
.medexp-ql-card:hover{
 transform:translateY(-3px);
 box-shadow:
  0 1px 0 rgba(255,255,255,0.65) inset,
  0 4px 12px rgba(15,23,42,0.06),
  0 12px 36px rgba(15,23,42,0.08);
 border-left-color:var(--ql-accent);
}

/* Card top row */
.medexp-ql-card__top{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:14px;
 margin-bottom:14px;
}
.medexp-ql-card__info{
 flex:1;
 min-width:0;
}
.medexp-ql-card__num{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 width:24px;
 height:24px;
 border-radius:8px;
 background:rgba(15,23,42,0.05);
 font-size:0.7rem;
 font-weight:900;
 color:rgba(15,23,42,0.45);
 margin-bottom:6px;
}
.medexp-ql-card__title{
 font-size:1.05rem;
 font-weight:850;
 letter-spacing:-0.01em;
 color:rgba(15,23,42,0.90);
 line-height:1.3;
 margin-bottom:6px;
}
.medexp-ql-card__meta{
 display:flex;
 align-items:center;
 gap:8px;
 flex-wrap:wrap;
}
.medexp-ql-card__lastAt{
 font-size:0.72rem;
 color:rgba(15,23,42,0.38);
 font-weight:500;
}

/* Mastery badge */
.medexp-ql-badge{
 display:inline-block;
 padding:2px 10px;
 border-radius:999px;
 font-size:0.68rem;
 font-weight:800;
 letter-spacing:0.02em;
 text-transform:uppercase;
}

/* ── SVG Mastery Ring ─────────────────────────────────────────────── */
.medexp-ql-ring{
 flex-shrink:0;
}
@keyframes qlRingDraw{
 from{stroke-dashoffset:var(--ql-ring-from, 119.38);}
 to{stroke-dashoffset:var(--ql-ring-target, 119.38);}
}
.medexp-ql-ring__arc{
 transition:stroke-dashoffset 800ms cubic-bezier(.34,1.56,.64,1);
}
.medexp-ql-ring__label{
 font-size:11px;
 font-weight:900;
 letter-spacing:-0.02em;
}

/* ── Mini Stats Row ───────────────────────────────────────────────── */
.medexp-ql-card__stats{
 display:grid;
 grid-template-columns:repeat(4, 1fr);
 gap:8px;
 margin-bottom:14px;
}
.medexp-ql-miniStat{
 text-align:center;
 padding:8px 4px;
 border-radius:0.75rem;
 background:rgba(15,23,42,0.025);
 border:1px solid rgba(15,23,42,0.04);
 transition:background .2s ease;
}
.medexp-ql-miniStat:hover{
 background:rgba(15,23,42,0.05);
}
.medexp-ql-miniStat__v{
 font-size:0.92rem;
 font-weight:900;
 color:rgba(15,23,42,0.82);
 line-height:1.2;
}
.medexp-ql-miniStat__l{
 font-size:0.62rem;
 color:rgba(15,23,42,0.40);
 font-weight:600;
 text-transform:uppercase;
 letter-spacing:0.04em;
 margin-top:2px;
}

/* ── Progress Bar ─────────────────────────────────────────────────── */
.medexp-ql-card__barWrap{
 margin-bottom:14px;
}
.medexp-ql-card__barTrack{
 height:6px;
 border-radius:999px;
 background:rgba(15,23,42,0.06);
 overflow:hidden;
}
.medexp-ql-card__barFill{
 height:100%;
 border-radius:999px;
 background:linear-gradient(90deg, var(--ql-accent, #94a3b8), color-mix(in srgb, var(--ql-accent, #94a3b8) 70%, white));
 width:0%;
 transition:width 0ms;
}
.medexp-ql-card__barFill.is-animated{
 width:var(--ql-bar-pct, 0%);
 transition:width 800ms cubic-bezier(.34,1.56,.64,1);
}
.medexp-ql-card__barLabel{
 font-size:0.68rem;
 color:rgba(15,23,42,0.38);
 margin-top:4px;
 font-weight:500;
}

/* ── Actions Row ──────────────────────────────────────────────────── */
.medexp-ql-card__actions{
 display:flex;
 align-items:center;
 gap:10px;
 flex-wrap:wrap;
}

@keyframes qlCtaGlow{
 0%,100%{box-shadow:0 2px 12px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.20);}
 50%{box-shadow:0 4px 20px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.38), 0 0 0 2px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06);}
}
.medexp-ql-startBtn{
 display:inline-flex;
 align-items:center;
 gap:6px;
 padding:8px 20px;
 border-radius:999px;
 background:linear-gradient(135deg, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.80));
 color:#fff !important;
 font-size:0.82rem;
 font-weight:850;
 text-decoration:none !important;
 border:none;
 cursor:pointer;
 animation:qlCtaGlow 3s ease-in-out infinite;
 transition:transform .2s cubic-bezier(.34,1.56,.64,1), box-shadow .2s ease;
}
.medexp-ql-startBtn .medexp-ql-ico{
 color:#fff !important;
 width:14px;
 height:14px;
}
.medexp-ql-startBtn:hover{
 transform:translateY(-2px);
 animation:none;
 box-shadow:0 6px 24px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35);
 color:#fff !important;
 text-decoration:none !important;
}
.medexp-ql-startBtn:active{
 transform:scale(0.97);
 animation:none;
}

.medexp-ql-resumeBtn{
 display:inline-flex;
 align-items:center;
 gap:5px;
 padding:7px 16px;
 border-radius:999px;
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.06);
 border:1px solid rgba(var(--medexp-brand-blue-rgb,26,79,156),0.12);
 color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.80) !important;
 font-size:0.78rem;
 font-weight:700;
 text-decoration:none !important;
 cursor:pointer;
 transition:all .2s ease;
}
.medexp-ql-resumeBtn:hover{
 background:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.10);
 border-color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.22);
 transform:translateY(-1px);
 text-decoration:none !important;
 color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.90) !important;
}
.medexp-ql-resumeBtn .medexp-ql-ico{
 color:rgba(var(--medexp-brand-blue-rgb,26,79,156),0.60);
 width:14px;
 height:14px;
}

/* ── Expand Toggle ────────────────────────────────────────────────── */
.medexp-ql-card__expandToggle{
 margin-top:14px;
 padding-top:12px;
 border-top:1px solid rgba(15,23,42,0.05);
}
.medexp-ql-expandBtn{
 display:inline-flex;
 align-items:center;
 gap:6px;
 padding:4px 8px;
 border:none;
 background:transparent;
 cursor:pointer;
 font-size:0.75rem;
 font-weight:600;
 color:rgba(15,23,42,0.45);
 border-radius:8px;
 transition:color .2s ease, background .2s ease;
}
.medexp-ql-expandBtn:hover{
 color:rgba(15,23,42,0.65);
 background:rgba(15,23,42,0.04);
}
.medexp-ql-expandBtn__chevron{
 width:14px;
 height:14px;
 transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.medexp-ql-card.is-expanded .medexp-ql-expandBtn__chevron{
 transform:rotate(180deg);
}

/* ── Sections Accordion ───────────────────────────────────────────── */
.medexp-ql-card__sections{
 max-height:0;
 opacity:0;
 overflow:hidden;
 transition:max-height 350ms cubic-bezier(.4,0,.2,1), opacity 250ms ease;
}
.medexp-ql-card.is-expanded .medexp-ql-card__sections{
 max-height:2000px;
 opacity:1;
}

.medexp-ql-section{
 margin-top:12px;
 padding:10px 12px;
 border-radius:0.85rem;
 background:rgba(15,23,42,0.02);
 border:1px solid rgba(15,23,42,0.04);
}
.medexp-ql-section__head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:8px;
}
.medexp-ql-section__title{
 font-size:0.82rem;
 font-weight:750;
 color:rgba(15,23,42,0.72);
}
.medexp-ql-section__meta{
 display:flex;
 gap:8px;
 font-size:0.70rem;
 color:rgba(15,23,42,0.40);
 font-weight:600;
}

/* Topics */
.medexp-ql-topicList{
 margin-top:8px;
 display:flex;
 flex-direction:column;
 gap:4px;
}
.medexp-ql-topic{
 display:flex;
 align-items:center;
 gap:8px;
 padding:5px 8px;
 border-radius:0.6rem;
 transition:background .15s ease;
}
.medexp-ql-topic:hover{
 background:rgba(15,23,42,0.03);
}
.medexp-ql-topic__dot{
 width:7px;
 height:7px;
 border-radius:50%;
 flex-shrink:0;
}
.medexp-ql-topic__title{
 flex:1;
 min-width:0;
 font-size:0.76rem;
 font-weight:600;
 color:rgba(15,23,42,0.62);
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.medexp-ql-topic__stats{
 display:flex;
 align-items:center;
 gap:6px;
 font-size:0.68rem;
 color:rgba(15,23,42,0.38);
 font-weight:600;
 white-space:nowrap;
}


/* ── Toolbar (filters + view toggle) ─────────────────────────────── */
.medexp-ql-toolbar{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:12px;
 margin-bottom:18px;
 position:relative;
 z-index:1;
}
.medexp-ql-filters{
 display:flex;
 align-items:center;
 gap:10px;
 flex-wrap:wrap;
 flex:1;
 min-width:0;
}
.medexp-ql-filterGroup{
 display:flex;
 align-items:center;
 gap:4px;
 flex-wrap:wrap;
}
.medexp-ql-chip{
 appearance:none !important;
 border:1px solid rgba(15,23,42,0.10);
 background:rgba(15,23,42,0.03);
 border-radius:999px;
 padding:5px 12px;
 font-size:0.72rem;
 font-weight:800;
 color:rgba(15,23,42,0.50);
 cursor:pointer;
 white-space:nowrap;
 display:inline-flex;
 align-items:center;
 gap:5px;
 transition:background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.medexp-ql-chip:hover{
 background:rgba(15,23,42,0.06);
 color:rgba(15,23,42,0.70);
}
.medexp-ql-chip.is-active{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.30);
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.92);
 box-shadow:0 1px 8px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);
}
.medexp-ql-chipDot{
 width:7px;height:7px;border-radius:50%;flex-shrink:0;
}
.medexp-ql-filterCount{
 font-size:0.72rem;font-weight:700;color:rgba(15,23,42,0.38);
 white-space:nowrap;padding:5px 10px;border-radius:999px;background:rgba(15,23,42,0.03);
}

/* ── View Toggle ──────────────────────────────────────────────────── */
.medexp-ql-viewToggle{
 display:inline-flex;gap:3px;padding:3px;border-radius:999px;
 border:1px solid rgba(15,23,42,0.10);background:rgba(15,23,42,0.03);flex-shrink:0;
}
.medexp-ql-viewBtn{
 appearance:none !important;border:none;background:transparent;border-radius:999px;
 padding:6px 10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
 transition:background .15s ease, box-shadow .15s ease;
}
.medexp-ql-viewBtn:hover{ background:rgba(15,23,42,0.05); }
.medexp-ql-viewBtn.is-active{ background:#fff; box-shadow:0 1px 6px rgba(15,23,42,0.10); }
.medexp-ql-viewBtn .medexp-ql-ico{ width:16px;height:16px;color:rgba(15,23,42,0.45); }
.medexp-ql-viewBtn.is-active .medexp-ql-ico{ color:rgba(15,23,42,0.82); }

/* ── Content Area ─────────────────────────────────────────────────── */
.medexp-ql-content{ position:relative; z-index:1; }

/* ── List View ────────────────────────────────────────────────────── */
.medexp-ql-list{
 display:flex;flex-direction:column;gap:0;
 border:1px solid rgba(15,23,42,0.08);border-radius:1rem;
 overflow:hidden;background:rgba(255,255,255,0.60);
 backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}

/* Row */
@keyframes qlRowIn{
 from{opacity:0;transform:translateX(-8px);}
 to{opacity:1;transform:translateX(0);}
}
.medexp-ql-row{
 display:grid;
 grid-template-columns:38px 1fr 54px 58px 66px 58px 54px 105px;
 align-items:center;
 gap:8px;
 padding:10px 16px;
 border-bottom:1px solid rgba(15,23,42,0.05);
 border-left:3px solid var(--ql-accent, #94a3b8);
 background:rgba(255,255,255,0.82);
 transition:background .15s ease;
 animation:qlRowIn 300ms cubic-bezier(.34,1.56,.64,1) both;
 animation-delay:calc(var(--i, 0) * 40ms);
}
.medexp-ql-row:last-child{ border-bottom:none; }
.medexp-ql-row:hover{ background:rgba(15,23,42,0.025); }

/* Header row */
.medexp-ql-row--header{
 background:rgba(15,23,42,0.03);border-left-color:transparent;
 padding:8px 16px;font-size:0.70rem;font-weight:800;
 color:rgba(15,23,42,0.42);text-transform:none;letter-spacing:0;animation:none;
}
.medexp-ql-row--header:hover{ background:rgba(15,23,42,0.03); }

/* Row sub-elements */
.medexp-ql-row__num{
 font-size:0.72rem;font-weight:900;color:rgba(15,23,42,0.35);text-align:center;
}
.medexp-ql-row__main{ min-width:0;overflow:hidden; }
.medexp-ql-row__title{
 font-size:0.88rem;font-weight:800;color:rgba(15,23,42,0.88);
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;
}
.medexp-ql-row__meta{ display:flex;align-items:center;gap:6px;margin-top:2px; }
.medexp-ql-row__lastAt{ font-size:0.68rem;color:rgba(15,23,42,0.35);font-weight:500; }
.medexp-ql-row__ring{ display:flex;align-items:center;justify-content:center;width:54px;min-width:54px; }

/* Small mastery ring */
.medexp-ql-ring--sm{ flex-shrink:0;width:48px;height:48px; }
.medexp-ql-ring__label--sm{ font-size:9.5px;font-weight:900; }

/* Stats columns — now direct grid children for perfect alignment */
.medexp-ql-row__stat{ font-size:0.73rem;color:rgba(15,23,42,0.45);font-weight:600;white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums; }
.medexp-ql-row__stat strong{ color:rgba(15,23,42,0.82);font-weight:900; }
.medexp-ql-row--header .medexp-ql-row__stat{ font-size:0.70rem;font-weight:800;color:rgba(15,23,42,0.42);text-transform:none;letter-spacing:0; }

/* Inline progress bar */
.medexp-ql-row__bar{ display:flex;align-items:center;min-width:80px; }
.medexp-ql-row--header .medexp-ql-row__bar{ font-size:0.68rem;color:rgba(15,23,42,0.38);justify-content:center; }
.medexp-ql-row__barTrack{
 flex:1;height:5px;border-radius:999px;background:rgba(15,23,42,0.06);overflow:hidden;
}
.medexp-ql-row__barFill{
 height:100%;border-radius:999px;
 background:linear-gradient(90deg, var(--ql-accent, #94a3b8), color-mix(in srgb, var(--ql-accent, #94a3b8) 70%, white));
 width:0%;transition:width 0ms;
}
.medexp-ql-row__barFill.is-animated{
 width:var(--ql-bar-pct, 0%);transition:width 700ms cubic-bezier(.34,1.56,.64,1);
}

/* Row actions */
.medexp-ql-row__actions{ display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-shrink:0; }

/* Smart button variants */
.medexp-ql-startBtn--continue{
 background:linear-gradient(135deg,#3B82F6,#2563EB) !important;
 box-shadow:0 1px 4px rgba(37,99,235,0.25) !important;
}
.medexp-ql-startBtn--continue:hover{
 background:linear-gradient(135deg,#2563EB,#1D4ED8) !important;
}
.medexp-ql-startBtn--retake{
 background:linear-gradient(135deg,#64748B,#475569) !important;
 box-shadow:0 1px 4px rgba(71,85,105,0.25) !important;
}
.medexp-ql-startBtn--retake:hover{
 background:linear-gradient(135deg,#475569,#334155) !important;
}
/* Small button variants */
.medexp-ql-startBtn--sm{ padding:5px 14px;font-size:0.74rem; }
.medexp-ql-startBtn--sm .medexp-ql-ico{ width:12px;height:12px; }
.medexp-ql-resumeBtn--sm{ padding:4px 12px;font-size:0.70rem; }
.medexp-ql-resumeBtn--sm .medexp-ql-ico{ width:12px;height:12px; }

/* ── Empty state (no filter match) ────────────────────────────────── */
.medexp-ql-empty{
 text-align:center;padding:48px 24px;color:rgba(15,23,42,0.50);font-size:0.92rem;
}


/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width:640px){
 .medexp-ql-grid{
  grid-template-columns:1fr;
 }
 .medexp-ql-header{
  flex-direction:column;
 }
 .medexp-ql-header__stats{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  flex-wrap:nowrap;
  padding-bottom:4px;
 }
 .medexp-ql-card__stats{
  grid-template-columns:repeat(2, 1fr);
 }
 .medexp-ql-card{
  padding:16px 16px;
 }
 .medexp-ql-skeleton{
  grid-template-columns:1fr;
 }
 /* Toolbar: stack */
 .medexp-ql-toolbar{ flex-direction:column;gap:8px; }
 .medexp-ql-filters{ overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px;gap:6px; }
 .medexp-ql-filterGroup{ flex-wrap:nowrap; }
 .medexp-ql-viewToggle{ align-self:flex-end; }
 /* List: rows become mini-cards */
 .medexp-ql-row{ grid-template-columns:1fr;gap:6px;padding:12px 14px;position:relative; }
 .medexp-ql-row--header{ display:none; }
 .medexp-ql-row__num{ position:absolute;top:12px;right:14px;width:auto; }
 .medexp-ql-row__main{ padding-right:28px; }
 .medexp-ql-row__title{ white-space:normal; }
 .medexp-ql-row__ring{ display:none; }
 .medexp-ql-row__stat{ font-size:0.68rem;display:inline-flex;align-items:center;gap:3px; }
 .medexp-ql-row__stat::after{ content:attr(data-label);font-weight:500;color:rgba(15,23,42,0.35); }
 .medexp-ql-row__actions{ flex-wrap:wrap; }
}

@media (min-width:641px) and (max-width:1024px){
 .medexp-ql-grid{
  grid-template-columns:repeat(2, 1fr);
 }
 .medexp-ql-skeleton{
  grid-template-columns:repeat(2, 1fr);
 }
 /* List: condense columns */
 .medexp-ql-row{ grid-template-columns:36px 1fr 50px 50px 56px 50px 46px 95px; }
}


/* ── Reduced Motion ───────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
 .medexp-ql-card{animation:none !important;}
 .medexp-ql-ring__arc{transition:none !important;}
 .medexp-ql-card__barFill.is-animated{transition:none !important;width:var(--ql-bar-pct, 0%);}
 .medexp-ql-startBtn{animation:none !important;}
 .medexp-ql-wrap::before{animation:none !important;opacity:0.5;}
 .medexp-ql-expandBtn__chevron{transition:none !important;}
 .medexp-ql-card__sections{transition:none !important;}
 .medexp-ql-card:hover{transform:none !important;}
 .medexp-ql-statPill:hover{transform:none !important;}
 .medexp-ql-row{animation:none !important;}
 .medexp-ql-row__barFill.is-animated{transition:none !important;width:var(--ql-bar-pct, 0%);}
 .medexp-ql--pending{opacity:1 !important;transform:none !important;}
 .medexp-ql--visible{animation:none !important;}
 .medexp-ql-startHere{animation:none !important;}
 .medexp-ql-hero{animation:none !important;}
}


/* ══════════════════════════════════════════════════════════════════════
   QUIZ LIST ENHANCEMENTS — Hero, Search, Badges, Scroll Animations
   ══════════════════════════════════════════════════════════════════════ */

/* ── Large Ring ──────────────────────────────────────────────────── */
.medexp-ql-ring--lg{flex-shrink:0;width:72px;height:72px;}
.medexp-ql-ring__label--lg{font-size:15px;font-weight:900;letter-spacing:-0.02em;}

/* ── Hero Summary Card ───────────────────────────────────────────── */
.medexp-ql-hero{
 display:flex;
 align-items:flex-start;
 gap:22px;
 padding:22px 26px;
 margin-bottom:20px;
 border-radius:1.25rem;
 background:linear-gradient(135deg, rgba(255,255,255,0.92) 0%, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.04) 100%);
 backdrop-filter:blur(12px);
 -webkit-backdrop-filter:blur(12px);
 border:1px solid rgba(15,23,42,0.07);
 box-shadow:
  0 1px 0 rgba(255,255,255,0.70) inset,
  0 2px 8px rgba(15,23,42,0.04),
  0 8px 28px rgba(15,23,42,0.06);
 position:relative;
 z-index:1;
 animation:qlCardIn 500ms cubic-bezier(.34,1.56,.64,1) both;
}
.medexp-ql-hero__ring{
 flex-shrink:0;
 display:flex;
 align-items:center;
 justify-content:center;
}
.medexp-ql-hero__body{
 flex:1;
 min-width:0;
}
.medexp-ql-hero__title{
 font-size:0.72rem;
 font-weight:800;
 text-transform:uppercase;
 letter-spacing:0.06em;
 color:rgba(15,23,42,0.40);
 margin-bottom:2px;
}
.medexp-ql-hero__pct{
 font-size:1.5rem;
 font-weight:950;
 letter-spacing:-0.03em;
 color:rgba(15,23,42,0.88);
 line-height:1.2;
 margin-bottom:12px;
}

/* Distribution bar */
.medexp-ql-hero__distBar{
 display:flex;
 height:10px;
 border-radius:999px;
 overflow:hidden;
 gap:2px;
 margin-bottom:6px;
 background:rgba(15,23,42,0.04);
}
.medexp-ql-hero__distSeg{
 height:100%;
 border-radius:999px;
 transition:width 600ms cubic-bezier(.34,1.56,.64,1);
 min-width:4px;
}
.medexp-ql-hero__distLegend{
 display:flex;
 flex-wrap:wrap;
 gap:6px 14px;
 font-size:0.68rem;
 font-weight:600;
 color:rgba(15,23,42,0.50);
 margin-bottom:14px;
}
.medexp-ql-hero__legendItem{
 display:inline-flex;
 align-items:center;
 gap:4px;
 white-space:nowrap;
}
.medexp-ql-hero__legendDot{
 width:7px;
 height:7px;
 border-radius:50%;
 flex-shrink:0;
}

/* Recommended next chapter */
.medexp-ql-hero__rec{
 display:flex;
 align-items:center;
 gap:10px;
 padding:10px 14px;
 border-radius:0.85rem;
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.04);
 border:1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.10);
}
.medexp-ql-hero__recLabel{
 display:flex;
 align-items:center;
 gap:4px;
 font-size:0.70rem;
 font-weight:800;
 text-transform:uppercase;
 letter-spacing:0.04em;
 color:rgba(245,158,11,0.85);
 white-space:nowrap;
 flex-shrink:0;
}
.medexp-ql-hero__recLabel .medexp-ql-ico{width:14px;height:14px;}
.medexp-ql-hero__recTitle{
 flex:1;
 min-width:0;
 font-size:0.85rem;
 font-weight:750;
 color:rgba(15,23,42,0.80);
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.medexp-ql-hero__recBtn{
 display:inline-flex;
 align-items:center;
 gap:5px;
 padding:6px 16px;
 border-radius:999px;
 background:linear-gradient(135deg, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.80));
 color:#fff !important;
 font-size:0.76rem;
 font-weight:800;
 text-decoration:none !important;
 border:none;
 cursor:pointer;
 white-space:nowrap;
 flex-shrink:0;
 transition:transform .2s cubic-bezier(.34,1.56,.64,1), box-shadow .2s ease;
 box-shadow:0 2px 10px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.20);
}
.medexp-ql-hero__recBtn .medexp-ql-ico{color:#fff !important;width:13px;height:13px;}
.medexp-ql-hero__recBtn:hover{
 transform:translateY(-1px);
 box-shadow:0 4px 18px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.30);
 color:#fff !important;
 text-decoration:none !important;
}
.medexp-ql-hero__recBtn--continue{
 background:linear-gradient(135deg,#3B82F6,#2563EB) !important;
 box-shadow:0 2px 10px rgba(37,99,235,0.22) !important;
}
.medexp-ql-hero__recBtn--continue:hover{
 box-shadow:0 4px 18px rgba(37,99,235,0.30) !important;
}

/* ── Search Input ────────────────────────────────────────────────── */
.medexp-ql-searchWrap{
 position:relative;
 display:inline-flex;
 align-items:center;
 flex-shrink:0;
}
.medexp-ql-searchIcon{
 position:absolute !important;
 left:11px;
 top:50%;
 transform:translateY(-50%);
 width:14px !important;
 height:14px !important;
 color:rgba(15,23,42,0.32) !important;
 pointer-events:none;
 z-index:1;
}
.medexp-ql-search{
 appearance:none !important;
 border:1px solid rgba(15,23,42,0.10) !important;
 background:rgba(15,23,42,0.025) !important;
 border-radius:999px !important;
 padding:6px 32px 6px 34px !important;
 font-size:0.76rem !important;
 font-weight:600;
 color:rgba(15,23,42,0.72);
 width:160px;
 min-height:0 !important;
 line-height:1.4 !important;
 box-sizing:border-box !important;
 transition:width .25s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
 outline:none;
}
.medexp-ql-search:focus{
 width:220px;
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.35);
 background:rgba(255,255,255,0.95);
 box-shadow:0 0 0 3px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08);
}
.medexp-ql-search::placeholder{
 color:rgba(15,23,42,0.32);
 font-weight:500;
}
.medexp-ql-searchClear{
 position:absolute;
 right:6px;
 appearance:none !important;
 border:none;
 background:rgba(15,23,42,0.06);
 border-radius:50%;
 width:20px;
 height:20px;
 display:flex;
 align-items:center;
 justify-content:center;
 cursor:pointer;
 padding:0;
 transition:background .15s ease;
}
.medexp-ql-searchClear:hover{background:rgba(15,23,42,0.12);}
.medexp-ql-searchClear .medexp-ql-ico{width:11px;height:11px;color:rgba(15,23,42,0.50);}

/* ── Filter Badge ────────────────────────────────────────────────── */
.medexp-ql-filterBadge{
 display:inline-flex;
 align-items:center;
 padding:3px 10px;
 border-radius:999px;
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12);
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.90);
 font-size:0.68rem;
 font-weight:800;
 white-space:nowrap;
}
.medexp-ql-clearFilters{
 appearance:none !important;
 border:none;
 background:transparent;
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.70);
 font-size:0.70rem;
 font-weight:700;
 cursor:pointer;
 padding:3px 6px;
 border-radius:6px;
 white-space:nowrap;
 transition:color .15s ease, background .15s ease;
 text-decoration:underline;
 text-underline-offset:2px;
}
.medexp-ql-clearFilters:hover{
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.95);
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06);
}

/* ── Start Here Badge ────────────────────────────────────────────── */
@keyframes qlStartHerePulse{
 0%,100%{box-shadow:0 0 0 0 rgba(var(--medexp-brand-teal-rgb,0,166,118),0.25);}
 50%{box-shadow:0 0 0 6px rgba(var(--medexp-brand-teal-rgb,0,166,118),0);}
}
.medexp-ql-startHere{
 display:inline-flex;
 align-items:center;
 gap:4px;
 padding:3px 10px 3px 7px;
 border-radius:999px;
 background:linear-gradient(135deg, rgba(var(--medexp-brand-teal-rgb,0,166,118),0.12), rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06));
 border:1px solid rgba(var(--medexp-brand-teal-rgb,0,166,118),0.20);
 color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.92);
 font-size:0.64rem;
 font-weight:800;
 text-transform:uppercase;
 letter-spacing:0.04em;
 white-space:nowrap;
 margin-bottom:6px;
 animation:qlStartHerePulse 2.5s ease-in-out infinite;
}
.medexp-ql-startHere .medexp-ql-ico{
 width:11px;height:11px;color:rgba(245,158,11,0.80);
}
.medexp-ql-startHere--sm{
 font-size:0.60rem;
 padding:2px 8px 2px 5px;
 margin-bottom:3px;
}
.medexp-ql-startHere--sm .medexp-ql-ico{width:10px;height:10px;}

/* ── IntersectionObserver Animation Classes ──────────────────────── */
.medexp-ql--pending{
 opacity:0 !important;
 transform:translateY(18px) scale(0.97) !important;
 animation:none !important;
}
.medexp-ql--visible.medexp-ql-card{
 animation:qlCardIn 400ms cubic-bezier(.34,1.56,.64,1) both !important;
 animation-delay:calc(var(--i, 0) * 50ms) !important;
}
.medexp-ql--visible.medexp-ql-row{
 animation:qlRowIn 300ms cubic-bezier(.34,1.56,.64,1) both !important;
 animation-delay:calc(var(--i, 0) * 35ms) !important;
}

/* ── Clickable Card/Row Enhancement ──────────────────────────────── */
.medexp-ql-card--clickable{cursor:pointer;}
.medexp-ql-card--clickable:active{
 transform:scale(0.985) !important;
 transition:transform .1s ease !important;
}
.medexp-ql-row--clickable{cursor:pointer;}
.medexp-ql-row--clickable:hover{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.03);
}
.medexp-ql-row--clickable:active{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06);
}

/* ── Recommended card highlight ──────────────────────────────────── */
.medexp-ql-card--recommended{
 border-color:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.18);
 box-shadow:
  0 1px 0 rgba(255,255,255,0.65) inset,
  0 2px 8px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.06),
  0 8px 28px rgba(var(--medexp-brand-teal-rgb,0,166,118),0.08);
}
.medexp-ql-row--recommended{
 background:rgba(var(--medexp-brand-teal-rgb,0,166,118),0.02);
}

/* ── Hero Responsive ─────────────────────────────────────────────── */
@media (max-width:640px){
 .medexp-ql-hero{
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:18px 16px;
  gap:14px;
 }
 .medexp-ql-hero__rec{
  flex-direction:column;
  gap:8px;
  text-align:center;
 }
 .medexp-ql-hero__recTitle{
  white-space:normal;
  text-align:center;
 }
 .medexp-ql-searchWrap{width:100%;}
 .medexp-ql-search{width:100% !important;}
 .medexp-ql-search:focus{width:100% !important;}
 .medexp-ql-startHere{margin-bottom:4px;}
}

/* =========================================================
   Pill Selector (Questions & Time Limit)
   ========================================================= */
.medexp-qb-formRow--pills{
 grid-column:1 / -1;
}
.medexp-qb-pills{
 display:flex;
 flex-wrap:wrap;
 gap:7px;
 align-items:stretch;
}

/* Individual pill button */
.medexp-qb-pill{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:9px 18px;
 border-radius:22px;
 border:1.5px solid rgba(148,163,184,0.35);
 background:#fff;
 font-weight:700;
 font-size:0.88rem;
 color:rgba(30,41,59,0.88);
 cursor:pointer;
 transition:all .18s ease;
 white-space:nowrap;
 line-height:1.2;
 user-select:none;
 -webkit-user-select:none;
 outline:none;
}
.medexp-qb-pill:hover{
 border-color:rgba(23,157,153,0.45);
 background:rgba(23,157,153,0.04);
 transform:translateY(-1px);
 box-shadow:0 2px 6px rgba(23,157,153,0.08);
}
.medexp-qb-pill:active{
 transform:translateY(0);
}
.medexp-qb-pill:focus-visible{
 outline:2px solid rgba(23,157,153,0.5);
 outline-offset:2px;
}
.medexp-qb-pill.is-active{
 background:linear-gradient(135deg, #179D99 0%, #14B8A6 100%);
 color:#fff;
 border-color:transparent;
 box-shadow:0 3px 12px rgba(23,157,153,0.3), 0 1px 3px rgba(23,157,153,0.15);
 font-weight:800;
}
.medexp-qb-pill.is-active:hover{
 box-shadow:0 4px 16px rgba(23,157,153,0.35), 0 1px 4px rgba(23,157,153,0.2);
 transform:translateY(-1px);
}

/* "No limit" zero pill — ∞ icon */
.medexp-qb-pill--zero{
 gap:3px;
 letter-spacing:0.3px;
}

/* Custom stepper pill */
.medexp-qb-pill--custom{
 display:inline-flex;
 align-items:center;
 gap:0;
 padding:0;
 overflow:hidden;
 min-width:0;
 border-radius:22px;
 border:1.5px solid rgba(148,163,184,0.35);
 background:#fff;
 transition:all .18s ease;
 cursor:pointer;
}
.medexp-qb-pill--custom:hover{
 border-color:rgba(23,157,153,0.45);
}
.medexp-qb-pill--custom.is-active{
 background:linear-gradient(135deg, #179D99 0%, #14B8A6 100%);
 color:#fff;
 border-color:transparent;
 box-shadow:0 3px 12px rgba(23,157,153,0.3), 0 1px 3px rgba(23,157,153,0.15);
}

/* Step buttons (−/+) */
.medexp-qb-pill__step{
 width:34px;
 display:flex;
 align-items:center;
 justify-content:center;
 font-size:1.15rem;
 font-weight:800;
 border:none;
 background:transparent;
 cursor:pointer;
 color:inherit;
 padding:8px 0;
 line-height:1;
 transition:background .12s ease;
 flex-shrink:0;
}
.medexp-qb-pill__step:hover{
 background:rgba(0,0,0,0.06);
}
.medexp-qb-pill--custom.is-active .medexp-qb-pill__step:hover{
 background:rgba(255,255,255,0.18);
}

/* Inline value display */
.medexp-qb-pill__val{
 width:42px;
 text-align:center;
 border:none;
 background:transparent;
 font-weight:800;
 font-size:0.88rem;
 color:inherit;
 padding:8px 0;
 line-height:1.2;
 -moz-appearance:textfield;
 outline:none;
}
.medexp-qb-pill__val::-webkit-inner-spin-button,
.medexp-qb-pill__val::-webkit-outer-spin-button{
 -webkit-appearance:none;
 margin:0;
}
.medexp-qb-pill__val::placeholder{
 color:rgba(30,41,59,0.35);
}
.medexp-qb-pill--custom.is-active .medexp-qb-pill__val{
 color:#fff;
}
.medexp-qb-pill--custom.is-active .medexp-qb-pill__val::placeholder{
 color:rgba(255,255,255,0.5);
}

/* Unit suffix (e.g., "min") */
.medexp-qb-pill__unit{
 font-size:0.78rem;
 font-weight:700;
 opacity:0.7;
 padding-right:4px;
 white-space:nowrap;
 pointer-events:none;
}

/* Disabled state (tutor mode → time pills) */
.medexp-qb-pills--disabled{
 opacity:0.35;
 pointer-events:none;
 filter:grayscale(0.3);
}

/* Responsive */
@media (max-width:520px){
 .medexp-qb-pills{
  gap:5px;
 }
 .medexp-qb-pill{
  padding:7px 13px;
  font-size:0.82rem;
  border-radius:18px;
 }
 .medexp-qb-pill--custom{
  border-radius:18px;
 }
 .medexp-qb-pill__step{
  width:30px;
  font-size:1rem;
  padding:7px 0;
 }
 .medexp-qb-pill__val{
  width:36px;
  font-size:0.82rem;
  padding:7px 0;
 }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
 .medexp-qb-pill,
 .medexp-qb-pill--custom,
 .medexp-qb-pill__step{
  transition:none !important;
 }
 .medexp-qb-pill:hover{
  transform:none !important;
 }
}
