/* ==========================================================================
   『기억하는손』 ACADEMY LMS - SHADCN/UI MODERN LIGHT DESIGN SYSTEM
   Ultra-Crisp Pure White + Zinc-50 + Razor 1px Borders + Luxury Gold Points
   ========================================================================== */

:root {
  /* Shadcn Light Theme Tokens */
  --background: #FAFAFA;             /* Crisp Zinc-50 Canvas */
  --foreground: #09090B;             /* Deep Jet Black / Zinc-950 */
  
  --card: #FFFFFF;                   /* Pure White Surface */
  --card-hover: #FFFFFF;
  --card-foreground: #09090B;
  
  --popover: #FFFFFF;
  --popover-foreground: #09090B;
  
  /* Modern Luxury Accents */
  --primary: #09090B;                /* Crisp Obsidian Black */
  --primary-hover: #27272A;
  --primary-foreground: #FAFAFA;
  
  --gold-primary: #D97706;           /* Refined Amber Gold */
  --gold-light: rgba(217, 119, 6, 0.08);
  --gold-border: rgba(217, 119, 6, 0.25);
  --gold-gradient: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
  
  --secondary: #F4F4F5;              /* Zinc-100 */
  --secondary-hover: #E4E4E7;        /* Zinc-200 */
  --secondary-foreground: #18181B;
  
  --muted: #F4F4F5;                  /* Zinc-100 */
  --muted-foreground: #71717A;       /* Zinc-500 */
  --sub-text: #A1A1AA;               /* Zinc-400 */
  
  --destructive: #EF4444;            /* Red-500 */
  --destructive-foreground: #FAFAFA;
  
  /* Crisp 1px Razor Borders */
  --border: #E4E4E7;                 /* Zinc-200 */
  --border-subtle: #F4F4F5;          /* Zinc-100 */
  --border-active: #18181B;
  --input: #E4E4E7;
  --ring: #D97706;
  
  /* Shadcn Radii */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;
  
  /* Fonts */
  --font-sans: 'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  
  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.06), 0 2px 4px -2px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
  --shadow-card: 0 1px 3px 0 rgba(0, 0, 0, 0.04), 0 1px 2px -1px rgba(0, 0, 0, 0.02);
  --shadow-hover: 0 12px 24px -6px rgba(0, 0, 0, 0.08), 0 4px 8px -4px rgba(0, 0, 0, 0.04);
  
  --transition: all 0.16s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body.lms-body {
  font-family: var(--font-sans);
  background-color: var(--background);
  color: var(--foreground);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.6;
  letter-spacing: -0.015em;
  word-break: keep-all;
  overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6, p, span, li, blockquote, div {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.lms-container {
  width: 100%;
  max-width: 1780px;
  margin: 0 auto;
  padding: 0 36px;
}

/* Utilities */
.text-gold { color: var(--gold-primary) !important; font-weight: 700; }
.gold-icon { color: var(--gold-primary); }
.text-muted { color: var(--muted-foreground) !important; }

/* ==========================================================================
   1. SHADCN NAVIGATION BAR (Header & Segmented Tabs)
   ========================================================================== */

.lms-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.88);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 12px 0;
}

.lms-nav-container {
  width: 100%;
  max-width: 1780px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.lms-brand {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  white-space: nowrap;
}
.bmp-brand-logo-wrap {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  transition: transform 0.2s ease;
}
.lms-brand:hover .bmp-brand-logo-wrap {
  transform: scale(1.06);
}
.bmp-brand-logo-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.lms-brand-text {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  white-space: nowrap;
}
.lms-brand-kr {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--foreground);
  letter-spacing: -0.02em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1;
  white-space: nowrap;
  flex-shrink: 0;
}
.lms-brand-kr .brand-sub {
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--gold-primary);
  letter-spacing: -0.01em;
  background: rgba(217, 119, 6, 0.08);
  border: 1px solid rgba(217, 119, 6, 0.22);
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Shadcn Segmented Tabs (`TabsList` & `TabsTrigger`) */
.lms-nav-tabs {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: #F4F4F5;
  border: 1px solid var(--border);
  padding: 3px;
  border-radius: var(--radius-lg);
  flex-shrink: 1;
  min-width: 0;
}

.lms-tab-btn {
  background: transparent;
  border: 1px solid transparent;
  color: var(--muted-foreground);
  padding: 6px 12px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: var(--transition);
  white-space: nowrap;
  flex-shrink: 0;
}

.lms-tab-btn:hover {
  color: var(--foreground);
  background: rgba(0, 0, 0, 0.04);
}

.lms-tab-btn.active {
  background: #FFFFFF;
  color: var(--foreground);
  font-weight: 700;
  border-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.lms-user-profile {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  white-space: nowrap;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--radius-md);
  transition: var(--transition);
}

.badge-count {
  font-size: 0.7rem;
  font-weight: 600;
  background: #E4E4E7;
  color: #52525B;
  padding: 1px 7px;
  border-radius: var(--radius-full);
}
.lms-tab-btn.active .badge-count {
  background: var(--gold-light);
  color: var(--gold-primary);
}

.badge-dot {
  width: 6px;
  height: 6px;
  background: #10B981;
  border-radius: 50%;
  display: inline-block;
}

.badge-gold-pill {
  font-size: 0.68rem;
  font-weight: 700;
  background: #09090B;
  color: #FAFAFA;
  padding: 2px 7px;
  border-radius: var(--radius-full);
}

/* User Profile */
.lms-user-profile {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #FFFFFF;
  border: 1px solid var(--border);
  padding: 5px 12px 5px 6px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
}
.user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid var(--gold-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.user-info { display: flex; flex-direction: column; }
.user-name { font-size: 0.78rem; font-weight: 700; color: var(--foreground); }
.user-badge { font-size: 0.68rem; color: var(--gold-primary); font-weight: 600; }

/* Header Right Actions & Guest Login */
.header-right-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.btn-guest-login {
  background: #09090B;
  color: #FFFFFF;
  border: 1px solid #18181B;
  padding: 7px 14px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
  white-space: nowrap;
}
.btn-guest-login:hover {
  background: #27272A;
  transform: translateY(-1px);
}

.btn-header-logout {
  background: transparent;
  border: none;
  color: #9CA3AF;
  font-size: 0.85rem;
  padding: 4px 6px;
  cursor: pointer;
  border-radius: var(--radius-xs);
  transition: var(--transition);
  margin-left: 2px;
}
.btn-header-logout:hover {
  color: #EF4444;
  background: rgba(239, 68, 68, 0.08);
}

.btn-copy-account {
  background: #FFFFFF;
  border: 1px solid rgba(217, 119, 6, 0.4);
  color: var(--gold-primary, #D97706);
  padding: 3px 8px;
  border-radius: var(--radius-xs);
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
  margin-left: 6px;
  vertical-align: middle;
}
.btn-copy-account:hover {
  background: var(--gold-light);
  border-color: var(--gold-primary);
  transform: translateY(-1px);
}

/* ==========================================================================
   2. MAIN WORKSPACE & SHADCN BUTTONS
   ========================================================================== */

.lms-main {
  flex: 1;
  padding: 32px 0 72px;
}

.lms-view {
  display: none;
  animation: shadcnFade 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.lms-view.active { display: block; }
@keyframes shadcnFade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Buttons */
.btn-shadcn-primary,
.btn-lms-primary {
  background: #09090B;
  color: #FAFAFA;
  border: 1px solid transparent;
  padding: 10px 20px;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}
.btn-shadcn-primary:hover,
.btn-lms-primary:hover {
  background: #27272A;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.btn-shadcn-secondary,
.btn-lms-secondary {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 10px 18px;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: var(--transition);
}
.btn-shadcn-secondary:hover,
.btn-lms-secondary:hover {
  background: #F4F4F5;
  border-color: #CBD5E1;
}

/* Section Titles */
.section-header { margin-bottom: 28px; }
.section-header.text-center { text-align: center; }
.section-tag {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--gold-primary);
  text-transform: uppercase;
  margin-bottom: 6px;
  display: inline-block;
  background: var(--gold-light);
  border: 1px solid var(--gold-border);
  padding: 2px 10px;
  border-radius: var(--radius-full);
}
.section-title {
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--foreground);
  margin-bottom: 8px;
}
.section-desc {
  font-size: 0.92rem;
  color: var(--muted-foreground);
  max-width: 680px;
  margin: 0 auto;
}

/* ==========================================================================
   3. MODERN SHADCN HERO SECTION
   ========================================================================== */

.shadcn-hero-section {
  position: relative;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  align-items: center;
  gap: 48px;
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 48px 52px;
  margin-bottom: 28px;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

/* Background Transparent Classroom Photo Layer (연하게 투명도 올린 수업 사진 백판) */
.hero-classroom-bg-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
  border-radius: var(--radius-xl);
}

.classroom-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
  opacity: 0.16; /* 연하고 밝은 투명도 워터마크 */
  filter: brightness(1.2) contrast(0.92) saturate(1.1);
  transform: scale(1.02);
  transition: transform 0.8s ease, opacity 0.5s ease;
}

.shadcn-hero-section:hover .classroom-bg-img {
  transform: scale(1.04);
  opacity: 0.20;
}

.classroom-bg-overlay {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.88) 45%, rgba(255, 255, 255, 0.45) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.95) 100%);
}

.shadcn-hero-content,
.shadcn-hero-media {
  position: relative;
  z-index: 1;
}

.shadcn-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #F4F4F5;
  border: 1px solid var(--border);
  padding: 4px 12px;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--foreground);
  margin-bottom: 16px;
}
.badge-dot-live {
  width: 6px;
  height: 6px;
  background: #10B981;
  border-radius: 50%;
}

.shadcn-hero-title {
  font-size: 2.6rem;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--foreground);
  margin-bottom: 16px;
}

.shadcn-hero-desc {
  font-size: 0.98rem;
  color: var(--muted-foreground);
  line-height: 1.65;
  margin-bottom: 26px;
  max-width: 560px;
}
.shadcn-hero-desc strong { color: var(--foreground); font-weight: 700; }

.shadcn-hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

/* Trust Bar */
.shadcn-trust-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.trust-avatars { display: flex; }
.avatar-chip {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #F4F4F5;
  border: 2px solid #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  margin-left: -8px;
}
.avatar-chip:first-child { margin-left: 0; }
.trust-info { display: flex; flex-direction: column; }
.trust-info strong { font-size: 0.84rem; color: var(--foreground); }
.trust-info span { font-size: 0.75rem; color: var(--muted-foreground); }

/* Hero Image Card */
.shadcn-hero-media {
  position: relative;
  display: flex;
  justify-content: center;
}
.shadcn-image-card {
  position: relative;
  width: 100%;
  max-width: 400px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
  background: #F4F4F5;
}
.shadcn-image-card img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}
.shadcn-floating-tag {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--border);
  color: var(--foreground);
  font-size: 0.8rem;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(8px);
  white-space: nowrap;
}

.bmp-floating-seal {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(217, 119, 6, 0.35);
  backdrop-filter: blur(8px);
  padding: 4px 10px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.bmp-floating-seal img {
  width: 22px;
  height: 22px;
  background: transparent;
  object-fit: contain;
  padding: 0;
}
.bmp-floating-seal span {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--gold-primary);
  letter-spacing: -0.01em;
}

/* ==========================================================================
   4. SHADCN STAT METRIC CARDS
   ========================================================================== */

.shadcn-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}

.stat-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 22px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow-card);
  transition: var(--transition);
}
.stat-card:hover {
  border-color: #CBD5E1;
  box-shadow: var(--shadow-md);
}
.stat-icon-box {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: #F4F4F5;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: var(--gold-primary);
}
.stat-content h3 {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--foreground);
  margin-bottom: 2px;
}
.stat-content p {
  font-size: 0.8rem;
  color: var(--muted-foreground);
}

/* BMP Philosophy Banner */
.bmp-philosophy-card {
  background: linear-gradient(135deg, #FFFFFF 0%, #FFFDF9 100%);
  border: 1px solid #FDE68A;
  border-radius: var(--radius-xl);
  padding: 36px;
  margin-bottom: 36px;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 36px;
  align-items: center;
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
}
.bmp-emblem-col {
  display: flex;
  justify-content: center;
  align-items: center;
}
.bmp-large-emblem {
  width: 140px;
  height: 140px;
  background: transparent;
  object-fit: contain;
  padding: 0;
  box-shadow: none;
  border: none;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.08));
}
.bmp-content-col h2 {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--foreground);
  margin-bottom: 8px;
}
.bmp-content-col h2 strong {
  color: var(--gold-primary);
}
.bmp-lead-text {
  font-size: 0.95rem;
  color: #52525B;
  line-height: 1.65;
  margin-bottom: 20px;
}
.bmp-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #FEF3C7;
  color: #B45309;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  margin-bottom: 10px;
}
.bmp-features-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  border-top: 1px solid rgba(217, 119, 6, 0.15);
  padding-top: 18px;
}
.bmp-feat-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bmp-feat-item strong {
  font-size: 0.88rem;
  color: var(--foreground);
  font-weight: 700;
}
.bmp-feat-item span {
  font-size: 0.78rem;
  color: var(--muted-foreground);
}

/* ==========================================================================
   5. ABOUT MASTER JOY SECTION
   ========================================================================== */

.shadcn-about-card {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  align-items: center;
  gap: 40px;
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 40px;
  margin-bottom: 40px;
  box-shadow: var(--shadow-card);
}

.about-media-col .about-img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center 20%;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  display: block;
}

.about-text-col h2 {
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
  color: var(--foreground);
}
.about-text-col h2 strong { color: var(--gold-primary); }
.about-text-col p {
  font-size: 0.92rem;
  color: var(--muted-foreground);
  line-height: 1.65;
  margin-bottom: 20px;
}

.about-pills-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 24px;
}
.about-pill {
  background: #F4F4F5;
  border: 1px solid var(--border);
  padding: 8px 12px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--foreground);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Header Onboarding Guide Button */
.btn-guide-header {
  background: #FFFFFF;
  border: 1px solid var(--gold-border);
  color: var(--foreground);
  padding: 7px 14px;
  border-radius: var(--radius-full);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
  box-shadow: 0 2px 8px rgba(217, 119, 6, 0.08);
}
.btn-guide-header:hover {
  background: #FFFBEB;
  border-color: var(--gold-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(217, 119, 6, 0.16);
}

/* ==========================================================================
   5-B. ONBOARDING & ENROLLMENT START GUIDE
   ========================================================================== */
.onboarding-guide-section {
  background: linear-gradient(180deg, #FFFFFF 0%, #FAFAFA 100%);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 32px 28px;
  margin-top: 28px;
  margin-bottom: 32px;
  box-shadow: 0 4px 20px rgba(217, 119, 6, 0.06);
  position: relative;
  overflow: hidden;
}
.onboarding-guide-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--gold-gradient);
}
.guide-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 24px;
  gap: 16px;
  flex-wrap: wrap;
}
.guide-tag-pill {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--gold-primary);
  background: var(--gold-light);
  border: 1px solid var(--gold-border);
  padding: 3px 10px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 6px;
}
.guide-title {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--foreground);
  margin-bottom: 4px;
}
.guide-title strong {
  color: #09090B;
  font-weight: 800;
}
.guide-desc {
  font-size: 0.88rem;
  color: var(--muted-foreground);
  line-height: 1.45;
}
.btn-guide-detail {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 9px 16px;
  border-radius: var(--radius-md);
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-guide-detail:hover {
  background: #F4F4F5;
  border-color: #CBD5E1;
}

/* 3-Step Grid */
.onboarding-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.onboarding-step-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: var(--radius-md);
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: var(--transition);
  position: relative;
}
.onboarding-step-card:hover {
  transform: translateY(-3px);
  border-color: var(--gold-primary);
  box-shadow: 0 8px 24px rgba(217, 119, 6, 0.1);
}
.step-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.step-num-badge {
  font-size: 0.72rem;
  font-weight: 800;
  color: #D97706;
  background: rgba(217, 119, 6, 0.1);
  padding: 2px 8px;
  border-radius: var(--radius-full);
}
.step-icon-box {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #F8FAFC;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: var(--gold-primary);
}
.onboarding-step-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin-bottom: 8px;
  color: var(--foreground);
}
.onboarding-step-card p {
  font-size: 0.84rem;
  color: #52525B;
  line-height: 1.5;
  margin-bottom: 16px;
  flex: 1;
}
.step-action-row {
  margin-top: auto;
}
.btn-step-action {
  width: 100%;
  background: #F4F4F5;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 10px 12px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-step-action:hover {
  background: #09090B;
  color: #FAFAFA;
  border-color: #09090B;
}
.btn-step-free {
  background: #FFFBEB;
  border-color: var(--gold-border);
  color: #09090B;
}
.btn-step-free:hover {
  background: var(--gold-primary);
  color: #09090B;
  border-color: var(--gold-primary);
}
.btn-step-gold {
  background: #09090B;
  color: #FAFAFA;
  border-color: #09090B;
}
.btn-step-gold:hover {
  background: var(--gold-primary);
  color: #09090B;
}

/* Onboarding Modal Specific */
.onboarding-modal-card {
  max-width: 680px;
  width: 100%;
  max-height: 88vh;
  max-height: 88dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.onboarding-modal-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 20px;
}
.guide-modal-step {
  background: #F8FAFC;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 16px 18px;
}
.guide-step-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.guide-step-badge {
  font-size: 0.72rem;
  font-weight: 800;
  color: #09090B;
  background: var(--gold-primary);
  padding: 2px 8px;
  border-radius: var(--radius-full);
}
.guide-step-header h4 {
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.guide-modal-step p {
  font-size: 0.84rem;
  color: #52525B;
  line-height: 1.45;
  margin-bottom: 10px;
}
.guide-course-types {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.guide-type-box {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.guide-type-box strong {
  font-size: 0.82rem;
  color: var(--foreground);
  display: flex;
  align-items: center;
  gap: 6px;
}
.guide-type-box span {
  font-size: 0.76rem;
  color: #64748B;
}
.guide-bank-box {
  background: #FFFBEB;
  border: 1px solid var(--gold-border);
  border-radius: 8px;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bank-row {
  font-size: 0.82rem;
  display: flex;
  gap: 8px;
}
.bank-label {
  font-weight: 700;
  color: #92400E;
  white-space: nowrap;
}
.bank-val {
  color: #09090B;
  font-weight: 800;
}
.guide-benefit-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.guide-benefit-list li {
  font-size: 0.82rem;
  color: #334155;
  display: flex;
  align-items: center;
  gap: 8px;
}
.onboarding-modal-footer {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  flex-wrap: wrap;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}

/* ==========================================================================
   6. PORTAL CARDS (Course Hub)
   ========================================================================== */

.portal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.portal-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: var(--shadow-card);
}

.portal-card:hover {
  border-color: #CBD5E1;
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.portal-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.portal-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
}
.basic-icon { background: rgba(59, 130, 246, 0.1); color: #2563EB; border: 1px solid rgba(59, 130, 246, 0.2); }
.adv-icon { background: var(--gold-light); color: var(--gold-primary); border: 1px solid var(--gold-border); }
.comm-icon { background: rgba(16, 185, 129, 0.1); color: #059669; border: 1px solid rgba(16, 185, 129, 0.2); }
.store-icon { background: var(--gold-light); color: var(--gold-primary); border: 1px solid var(--gold-border); }
.res-icon { background: rgba(99, 102, 241, 0.1); color: #4F46E5; border: 1px solid rgba(99, 102, 241, 0.2); }

.portal-level {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--muted-foreground);
  background: #F4F4F5;
  border: 1px solid var(--border);
  padding: 3px 10px;
  border-radius: var(--radius-full);
}
.portal-level.gold-level {
  color: var(--gold-primary);
  background: var(--gold-light);
  border-color: var(--gold-border);
}

.portal-card h3 {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin-bottom: 6px;
  color: var(--foreground);
}
.portal-card p {
  font-size: 0.875rem;
  color: var(--muted-foreground);
  margin-bottom: 18px;
  line-height: 1.55;
}

.progress-container { margin-bottom: 18px; }
.progress-bar {
  height: 5px;
  background: #E4E4E7;
  border-radius: var(--radius-full);
  overflow: hidden;
  margin-bottom: 6px;
}
.progress-fill { height: 100%; background: #2563EB; border-radius: var(--radius-full); }
.progress-fill.gold-fill { background: var(--gold-gradient); }
.progress-info {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

.comm-stats {
  display: flex;
  gap: 14px;
  font-size: 0.8rem;
  color: var(--muted-foreground);
  margin-bottom: 18px;
}

.btn-card-enter {
  background: #F4F4F5;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 8px 0;
  border-radius: var(--radius-md);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: var(--transition);
}
.portal-card:hover .btn-card-enter {
  background: #09090B;
  color: #FAFAFA;
  border-color: transparent;
}

/* ==========================================================================
   7. CLASSROOM & 3-VIDEO PLAYER
   ========================================================================== */

/* Classroom Minimal Top Bar */
.classroom-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 12px 20px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-sm);
}
.classroom-top-left {
  display: flex;
  align-items: center;
  gap: 14px;
}
.btn-back-campus {
  background: #F4F4F5;
  border: 1px solid var(--border);
  color: #18181B;
  padding: 6px 12px;
  border-radius: var(--radius-md);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-back-campus:hover {
  background: #E4E4E7;
  transform: translateX(-2px);
}
.classroom-top-title-group {
  display: flex;
  align-items: center;
  gap: 8px;
}
.top-course-tag {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--gold-primary);
  background: var(--gold-light);
  border: 1px solid var(--gold-border);
  padding: 2px 8px;
  border-radius: var(--radius-full);
}
.top-course-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--foreground);
  letter-spacing: -0.01em;
}

.classroom-top-right {
  display: flex;
  align-items: center;
  gap: 12px;
}
.classroom-progress-box {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 180px;
}
.progress-labels {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.76rem;
}
.prog-label { color: var(--muted-foreground); }
.prog-val { color: var(--foreground); }
.prog-val strong { color: var(--gold-primary); font-weight: 800; }
.prog-bar-track {
  width: 100%;
  height: 6px;
  background: #E4E4E7;
  border-radius: var(--radius-full);
  overflow: hidden;
}
.prog-bar-fill {
  height: 100%;
  background: var(--gold-gradient);
  border-radius: var(--radius-full);
  transition: width 0.3s ease;
}

.classroom-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
}

.video-player-box {
  background: #FFFFFF;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  margin-bottom: 20px;
  box-shadow: var(--shadow-card);
}

/* 3-Video Micro-Clip Selector Tabs (Slim Horizontal Segmented Tabs) */
.video-clips-header {
  background: #FAF8F5;
  border-bottom: 1px solid var(--border);
  padding: 8px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.clips-header-title {
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--foreground);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  flex-shrink: 0;
}
.video-clips-pills {
  display: flex;
  gap: 8px;
  flex: 1;
  overflow-x: auto;
}
.video-clip-pill {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 6px 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  color: var(--foreground);
  white-space: nowrap;
  flex: 1;
}
.video-clip-pill:hover {
  background: #F4F4F5;
  border-color: #CBD5E1;
}
.video-clip-pill.active {
  background: #09090B;
  color: #FFFFFF;
  border-color: #09090B;
  box-shadow: var(--shadow-sm);
}
.video-clip-pill.active .pill-title {
  color: #FFFFFF;
}
.video-clip-pill.active .pill-dur {
  color: #A1A1AA;
}
.video-clip-pill.done {
  border-color: rgba(16, 185, 129, 0.35);
  background: rgba(16, 185, 129, 0.04);
}
.pill-badge {
  font-size: 0.68rem;
  font-weight: 800;
  color: var(--gold-primary);
  background: var(--gold-light);
  padding: 2px 6px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.video-clip-pill.active .pill-badge {
  background: var(--gold-primary);
  color: #09090B;
}
.video-clip-pill.done .pill-badge {
  color: #059669;
  background: rgba(16, 185, 129, 0.15);
}
.pill-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.2;
  flex: 1;
}
.pill-dur {
  font-size: 0.7rem;
  color: var(--muted-foreground);
}

.video-screen {
  position: relative;
  height: 520px;
  background: #09090B;
  color: #FAFAFA;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.video-screen.gold-screen { background: #14110C; }
.video-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px;
}
.play-icon {
  font-size: 3.8rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 14px;
  transition: var(--transition);
}
.play-icon.gold-play { color: var(--gold-primary); }
.video-screen:hover .play-icon { transform: scale(1.1); color: #FBBF24; }
.video-overlay-text .tag-gold {
  background: var(--gold-primary);
  color: #09090B;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  display: inline-block;
  margin-bottom: 8px;
}
.video-overlay-text h3 {
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin-bottom: 4px;
}
.video-overlay-text p { font-size: 0.85rem; color: #A1A1AA; }

/* Video Controls */
.video-controls-bar {
  background: #FFFFFF;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  border-top: 1px solid var(--border);
}
.btn-ctrl { background: none; border: none; color: var(--foreground); font-size: 0.95rem; cursor: pointer; }
.video-scrubber {
  flex: 1;
  height: 5px;
  background: #E4E4E7;
  border-radius: var(--radius-full);
  cursor: pointer;
}
.scrubber-fill { height: 100%; background: #2563EB; border-radius: var(--radius-full); }
.scrubber-fill.gold-fill { background: var(--gold-gradient); }
.video-time { font-size: 0.78rem; color: var(--muted-foreground); }

/* Lecture Details Card */
.lecture-details-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  box-shadow: var(--shadow-card);
}
.lecture-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.badge-status-done {
  font-size: 0.72rem;
  font-weight: 600;
  color: #059669;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  padding: 2px 9px;
  border-radius: var(--radius-full);
}
.badge-status-vip {
  font-size: 0.72rem;
  font-weight: 700;
  color: #09090B;
  background: var(--gold-light);
  border: 1px solid var(--gold-border);
  padding: 2px 9px;
  border-radius: var(--radius-full);
}
.lecture-duration { font-size: 0.8rem; color: var(--muted-foreground); }
.lecture-heading {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
  line-height: 1.35;
}
.lecture-summary-text {
  font-size: 0.9rem;
  color: #3F3F46;
  line-height: 1.65;
  margin-bottom: 20px;
  background: #F8FAFC;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 16px;
}
.summary-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.summary-part-badge {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  color: #09090B;
  background: var(--gold-primary);
  padding: 2px 8px;
  border-radius: var(--radius-full);
}
.btn-summary-mobile-toggle {
  display: none; /* Hidden on Desktop */
}
.summary-body-text strong { color: var(--foreground); }
.summary-body-text ul { margin-left: 20px; margin-top: 6px; }
.summary-body-text li { margin-bottom: 4px; }
.lecture-actions-row { display: flex; gap: 10px; flex-wrap: wrap; }

/* Classroom Sidebar (Sticky on Desktop) */
.classroom-sidebar {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  height: calc(100vh - 120px);
  position: sticky;
  top: 80px;
  box-shadow: var(--shadow-card);
}
.sidebar-header {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}
.sidebar-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sidebar-header h3 { font-size: 0.92rem; font-weight: 700; letter-spacing: -0.01em; color: var(--foreground); }
.sidebar-progress { font-size: 0.74rem; color: var(--gold-primary); font-weight: 700; background: var(--gold-light); padding: 2px 8px; border-radius: var(--radius-full); }

.lecture-list {
  flex: 1;
  overflow-y: auto;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* PART Accordion Items */
.part-accordion-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: #FFFFFF;
  transition: var(--transition);
}
.part-accordion-header {
  padding: 9px 12px;
  background: #F8FAFC;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
  transition: var(--transition);
}
.part-accordion-header:hover {
  background: #F1F5F9;
}
.part-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.part-chevron {
  font-size: 0.72rem;
  color: var(--muted-foreground);
  transition: transform 0.2s ease;
}
.part-accordion-item.open .part-chevron {
  transform: rotate(90deg);
  color: var(--gold-primary);
}
.part-header-title {
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--foreground);
}
.part-count-badge {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--muted-foreground);
  background: #E2E8F0;
  padding: 1px 6px;
  border-radius: var(--radius-full);
}
.part-accordion-item.open .part-count-badge {
  background: var(--gold-light);
  color: var(--gold-primary);
  font-weight: 700;
}

.part-accordion-body {
  display: none;
  padding: 4px;
  background: #FFFFFF;
  border-top: 1px solid var(--border);
  flex-direction: column;
  gap: 2px;
}
.part-accordion-item.open .part-accordion-body {
  display: flex;
}

.lec-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  transition: var(--transition);
}
.lec-item:hover { background: #F4F4F5; border-color: var(--border); }
.lec-item.active { background: #FFFBEB; border-color: var(--gold-border); box-shadow: 0 1px 3px rgba(217, 119, 6, 0.08); }
.lec-num { font-size: 0.76rem; font-weight: 800; color: var(--gold-primary); width: 26px; flex-shrink: 0; }
.lec-info { flex: 1; min-width: 0; }
.lec-title { font-size: 0.8rem; font-weight: 600; color: var(--foreground); margin-bottom: 2px; line-height: 1.3; }
.lec-dur { font-size: 0.68rem; color: var(--muted-foreground); display: flex; align-items: center; gap: 4px; }
.lec-status-icon { font-size: 0.8rem; color: var(--sub-text); flex-shrink: 0; }
.lec-item.completed .lec-status-icon { color: var(--gold-primary); }

/* ==========================================================================
   7-B. SPECIALIST COURSES (종목별 고급 단과반 HUB & CLASSROOM)
   ========================================================================== */

/* Specialist Hub Filter Bar */
.specialist-filter-bar {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.specialist-filter-btn {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--muted-foreground);
  padding: 8px 16px;
  border-radius: var(--radius-full);
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.specialist-filter-btn:hover {
  background: #F4F4F5;
  color: var(--foreground);
  border-color: #CBD5E1;
}
.specialist-filter-btn.active {
  background: #09090B;
  color: #FAFAFA;
  border-color: #09090B;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* 4 Specialist Course Cards Grid */
.specialist-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 32px;
}
.specialist-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 26px;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-card);
  transition: var(--transition);
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.specialist-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold-primary);
  box-shadow: 0 12px 32px rgba(217, 119, 6, 0.12);
}
.specialist-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 14px;
}
.spec-badge-box {
  display: flex;
  align-items: center;
  gap: 8px;
}
.spec-badge {
  font-size: 0.74rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.spec-lec-count {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--muted-foreground);
}
.spec-icon-circle {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #F8FAFC;
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}
.specialist-card-body {
  flex: 1;
}
.spec-title {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.015em;
  margin-bottom: 4px;
  color: var(--foreground);
}
.spec-subtitle {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--gold-primary);
  margin-bottom: 10px;
}
.spec-desc {
  font-size: 0.88rem;
  color: #52525B;
  line-height: 1.55;
  margin-bottom: 14px;
}
.spec-target-box {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: var(--radius-md);
  padding: 10px 12px;
  font-size: 0.8rem;
  color: #334155;
  line-height: 1.45;
  margin-bottom: 18px;
}
.spec-target-box strong {
  color: #09090B;
}
.specialist-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #F1F5F9;
  padding-top: 14px;
}
.spec-duration {
  font-size: 0.78rem;
  color: var(--muted-foreground);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.btn-spec-enter {
  background: #F4F4F5;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 8px 14px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.specialist-card:hover .btn-spec-enter {
  background: #09090B;
  color: #FAFAFA;
  border-color: #09090B;
}

/* All-Pass Master Banner */
.specialist-allpass-banner {
  background: linear-gradient(135deg, #18181B 0%, #27272A 100%);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-lg);
  padding: 28px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: #FAFAFA;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}
.allpass-badge-pill {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--gold-primary);
  background: rgba(217, 119, 6, 0.18);
  border: 1px solid var(--gold-primary);
  padding: 3px 10px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 8px;
}
.allpass-banner-content h3 {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.015em;
  margin-bottom: 6px;
  color: #FFFFFF;
}
.allpass-banner-content p {
  font-size: 0.88rem;
  color: #A1A1AA;
  line-height: 1.5;
  max-width: 680px;
}
.btn-allpass-apply {
  background: var(--gold-gradient);
  color: #09090B;
  font-size: 0.9rem;
  font-weight: 800;
  border: none;
  padding: 14px 22px;
  border-radius: var(--radius-md);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(217, 119, 6, 0.3);
  transition: var(--transition);
}
.btn-allpass-apply:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(217, 119, 6, 0.45);
}

/* Specialist Classroom Topbar */
.spec-classroom-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.btn-back-hub {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 8px 14px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-back-hub:hover {
  background: #F4F4F5;
}
.spec-active-badge {
  font-size: 0.86rem;
  font-weight: 800;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.spec-course-switch-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.spec-course-pill {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--muted-foreground);
  padding: 6px 12px;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
}
.spec-course-pill:hover {
  background: #F4F4F5;
  color: var(--foreground);
}
.spec-course-pill.active {
  background: #09090B;
  color: #FAFAFA;
  border-color: #09090B;
  font-weight: 700;
}

/* Home Portal Tags */
.specialist-mini-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}
.specialist-mini-tags span {
  font-size: 0.74rem;
  font-weight: 600;
  color: #334155;
  background: #F1F5F9;
  padding: 3px 8px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ==========================================================================
   8. COMMUNITY (Q&A Feed & Photo Upload)
   ========================================================================== */

.comm-layout {
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 24px;
}

.comm-write-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-card);
}
.write-header { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.write-header h3 { font-size: 1.05rem; font-weight: 700; letter-spacing: -0.01em; }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }

/* Shadcn Light Inputs */
.comm-write-card input,
.comm-write-card select,
.comm-write-card textarea,
.order-form input,
.order-form select,
.order-form textarea,
.upload-res-form input,
.upload-res-form select,
.upload-res-form textarea {
  width: 100%;
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 9px 13px;
  color: var(--foreground);
  font-size: 0.875rem;
  font-family: inherit;
  margin-bottom: 10px;
  transition: var(--transition);
}
.comm-write-card input:focus,
.comm-write-card select:focus,
.comm-write-card textarea:focus,
.order-form input:focus,
.order-form select:focus,
.order-form textarea:focus,
.upload-res-form input:focus,
.upload-res-form select:focus,
.upload-res-form textarea:focus {
  outline: none;
  border-color: #09090B;
  box-shadow: 0 0 0 2px rgba(9, 9, 11, 0.1);
}

.photo-upload-row { margin-bottom: 14px; }
.btn-upload-photo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #F4F4F5;
  border: 1px dashed var(--border);
  color: var(--foreground);
  padding: 8px 14px;
  border-radius: var(--radius-md);
  font-size: 0.84rem;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition);
}
.btn-upload-photo:hover { background: #E4E4E7; border-color: #A1A1AA; }
.image-preview-box {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #F8FAFC;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 8px 12px;
  max-width: 460px;
}
.image-preview-box img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.preview-info { flex: 1; display: flex; justify-content: space-between; align-items: center; }
.preview-filename { font-size: 0.8rem; color: var(--muted-foreground); max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btn-remove-preview {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #DC2626;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  font-size: 0.72rem;
  cursor: pointer;
  transition: var(--transition);
}
.btn-remove-preview:hover { background: #DC2626; color: #FFF; }
.write-footer { display: flex; justify-content: flex-end; }

/* Posts Feed */
.posts-feed-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.feed-filter-tag { font-size: 0.75rem; color: var(--gold-primary); font-weight: 600; }
.posts-list { display: flex; flex-direction: column; gap: 14px; }
.post-item {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 22px;
  box-shadow: var(--shadow-card);
}
.post-item-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.post-tag { font-size: 0.7rem; font-weight: 600; padding: 1px 7px; border-radius: var(--radius-full); }
.tag-basic { background: rgba(59, 130, 246, 0.1); color: #2563EB; border: 1px solid rgba(59, 130, 246, 0.2); }
.tag-res { background: var(--gold-light); color: var(--gold-primary); border: 1px solid var(--gold-border); }
.post-author { font-size: 0.82rem; font-weight: 600; color: var(--foreground); }
.post-date { font-size: 0.72rem; color: var(--sub-text); }
.post-item-title { font-size: 1.05rem; font-weight: 700; margin-bottom: 6px; letter-spacing: -0.01em; }
.post-item-body { font-size: 0.88rem; color: #3F3F46; margin-bottom: 14px; line-height: 1.55; }

.post-attached-photo {
  position: relative;
  max-width: 440px;
  margin: 12px 0 16px;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--border);
  cursor: pointer;
}
.post-attached-photo img {
  width: 100%;
  max-height: 240px;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.post-attached-photo:hover img { transform: scale(1.02); }
.photo-click-zoom {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(9, 9, 11, 0.8);
  color: #FAFAFA;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  backdrop-filter: blur(4px);
}

/* Instructor Reply Callout */
.post-reply-box {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-left: 3px solid var(--gold-primary);
  border-radius: var(--radius-md);
  padding: 12px 14px;
}
.reply-badge { font-size: 0.8rem; font-weight: 700; color: #92400E; margin-bottom: 3px; display: flex; align-items: center; gap: 6px; }
.reply-text { font-size: 0.85rem; color: #78350F; line-height: 1.5; }

/* Instructor Bio Card */
.instructor-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px 18px;
  text-align: center;
  margin-bottom: 16px;
  box-shadow: var(--shadow-card);
}
.inst-avatar {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  overflow: hidden;
  border: 2.5px solid var(--gold-primary);
  box-shadow: 0 4px 16px rgba(217, 119, 6, 0.25);
  margin: 0 auto 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.inst-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.reply-badge {
  font-size: 0.8rem;
  font-weight: 700;
  color: #92400E;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.reply-mini-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid var(--gold-primary);
  object-fit: cover;
  object-position: center top;
  flex-shrink: 0;
}
.instructor-card h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 3px; }
.inst-title { font-size: 0.78rem; color: var(--gold-primary); margin-bottom: 10px; font-weight: 600; }
.inst-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  color: #059669;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  padding: 2px 8px;
  border-radius: var(--radius-full);
  margin-bottom: 12px;
}
.status-online-dot { width: 5px; height: 5px; background: #10B981; border-radius: 50%; }
.inst-desc { font-size: 0.82rem; color: var(--muted-foreground); line-height: 1.55; }

.comm-guideline-card {
  background: #F8FAFC;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px;
}
.comm-guideline-card h4 { font-size: 0.88rem; font-weight: 600; margin-bottom: 8px; }
.comm-guideline-card ul { margin-left: 16px; font-size: 0.78rem; color: var(--muted-foreground); line-height: 1.55; }

/* ==========================================================================
   9. OFFICIAL RESOURCES
   ========================================================================== */

.res-admin-bar {
  margin: 20px 0 10px;
  display: flex;
  justify-content: center;
}
.btn-res-add {
  background: #FFFFFF;
  border: 1px dashed var(--gold-primary);
  color: var(--foreground);
  padding: 10px 22px;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}
.btn-res-add:hover {
  background: var(--gold-light);
  border-style: solid;
  transform: translateY(-1px);
}

.resource-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 28px;
}

.res-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-card);
}
.res-card:hover {
  border-color: #CBD5E1;
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.res-card-preview {
  position: relative;
  height: 240px;
  background: #F4F4F5;
  overflow: hidden;
}
.res-card-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease;
}
.res-card:hover .res-card-preview img { transform: scale(1.03); }
.res-overlay {
  position: absolute;
  inset: 0;
  background: rgba(9, 9, 11, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: var(--transition);
}
.res-card:hover .res-overlay { opacity: 1; }
.btn-res-dl {
  background: #FFFFFF;
  color: #09090B;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.82rem;
  padding: 8px 16px;
  border-radius: var(--radius-md);
}

.res-card-body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.res-card-top-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.res-badge {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--gold-primary);
  background: var(--gold-light);
  padding: 2px 7px;
  border-radius: var(--radius-sm);
}
.btn-res-delete {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
  color: #DC2626;
  padding: 2px 7px;
  border-radius: var(--radius-sm);
  font-size: 0.7rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
}
.btn-res-delete:hover { background: #DC2626; color: #FFF; }

.res-card-body h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 6px; line-height: 1.35; letter-spacing: -0.01em; }
.res-card-body p { font-size: 0.82rem; color: var(--muted-foreground); margin-bottom: 14px; line-height: 1.5; }
.res-meta {
  display: flex;
  justify-content: space-between;
  font-size: 0.72rem;
  color: var(--sub-text);
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

/* ==========================================================================
   10. OFFICIAL STORE
   ========================================================================== */

.store-filter-bar {
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  background: #F4F4F5;
  border: 1px solid var(--border);
  padding: 4px;
  border-radius: var(--radius-lg);
  max-width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
.store-filter-btn {
  background: transparent;
  border: 1px solid transparent;
  color: var(--muted-foreground);
  padding: 7px 16px;
  border-radius: var(--radius-md);
  font-size: 0.84rem;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.store-filter-btn:hover { color: var(--foreground); background: rgba(0, 0, 0, 0.04); }
.store-filter-btn.active {
  background: #FFFFFF;
  color: var(--foreground);
  font-weight: 600;
  border-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.product-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: var(--transition);
  box-shadow: var(--shadow-card);
}
.product-card:hover {
  border-color: #CBD5E1;
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}
.product-card.featured-prod {
  grid-column: span 2;
  flex-direction: row;
  border-color: var(--gold-border);
  background: #FFFFFF;
}
.product-card.featured-prod .prod-img-box { width: 45%; height: 100%; min-height: 300px; }
.product-card.featured-prod .prod-info { width: 55%; padding: 30px 28px; }

.prod-badge-gold {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #09090B;
  color: #FAFAFA;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  z-index: 2;
}
.prod-badge-blue {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #2563EB;
  color: #FFF;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  z-index: 2;
}

.prod-img-box {
  position: relative;
  height: 220px;
  background: #F4F4F5;
  overflow: hidden;
}
.prod-img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease;
}
.product-card:hover .prod-img-box img { transform: scale(1.03); }

.prod-info {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.prod-cat { font-size: 0.72rem; font-weight: 600; color: var(--gold-primary); margin-bottom: 4px; display: block; }
.prod-title { font-size: 1.1rem; font-weight: 700; color: var(--foreground); margin-bottom: 6px; line-height: 1.35; letter-spacing: -0.01em; }
.prod-desc { font-size: 0.82rem; color: var(--muted-foreground); line-height: 1.5; margin-bottom: 14px; }
.prod-price-box { margin-bottom: 14px; padding-top: 10px; border-top: 1px solid var(--border); }
.orig-price { font-size: 0.75rem; color: var(--sub-text); text-decoration: line-through; display: block; margin-bottom: 2px; }
.sale-row { display: flex; align-items: baseline; gap: 6px; }
.discount-rate { font-size: 1.05rem; font-weight: 700; color: #DC2626; }
.final-price { font-size: 1.35rem; font-weight: 800; color: var(--foreground); }
.won { font-size: 0.88rem; font-weight: 600; color: var(--gold-primary); margin-left: 2px; }

.btn-buy-gold {
  background: #09090B;
  color: #FAFAFA;
  border: none;
  width: 100%;
  padding: 10px 0;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-buy-gold:hover { background: #27272A; }

/* ==========================================================================
   11. SHADCN DIALOGS & MODALS
   ========================================================================== */

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.modal-backdrop.show { display: flex; }

.modal-card,
.zoom-modal-card,
.order-modal-card,
.upload-modal-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  max-width: 540px;
  width: 100%;
  max-height: 88vh;
  max-height: 88dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 24px;
  position: relative;
  box-shadow: var(--shadow-lg);
  animation: shadcnDialogScale 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  margin: auto;
}
@keyframes shadcnDialogScale {
  from { opacity: 0; transform: scale(0.96) translateY(6px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

.modal-close-btn {
  position: sticky;
  top: 0;
  float: right;
  margin-right: -4px;
  margin-top: -4px;
  margin-bottom: -36px;
  background: #F1F5F9;
  border: 1px solid #CBD5E1;
  color: #0F172A;
  font-size: 1.15rem;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 120;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  transition: var(--transition);
}
.modal-close-btn:hover { color: var(--foreground); background: #E2E8F0; transform: scale(1.06); }

/* Zoom Modal */
.zoom-modal-card { max-width: 860px; }
.zoom-modal-header { text-align: center; margin-bottom: 16px; }
.zoom-modal-header .modal-title { font-size: 1.15rem; font-weight: 700; color: var(--foreground); margin-top: 6px; }
.modal-img-container {
  width: 100%;
  max-height: 60vh;
  overflow: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}
.modal-img-container img { max-width: 100%; max-height: 58vh; object-fit: contain; display: block; }
.modal-actions { display: flex; justify-content: center; }
.btn-primary-gold {
  background: #09090B;
  color: #FAFAFA;
  text-decoration: none;
  padding: 9px 22px;
  border-radius: var(--radius-md);
  font-weight: 700;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: var(--transition);
}
.btn-primary-gold:hover { background: #27272A; }

/* Order Modal */
.order-modal-header { text-align: center; margin-bottom: 18px; }
.badge-gold {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--gold-primary);
  background: var(--gold-light);
  border: 1px solid var(--gold-border);
  padding: 2px 9px;
  border-radius: var(--radius-full);
  display: inline-block;
}
.order-prod-title { font-size: 1.15rem; font-weight: 700; margin: 8px 0 2px; }
.order-prod-price { font-size: 1.3rem; font-weight: 800; color: var(--gold-primary); }
.order-form { display: flex; flex-direction: column; gap: 10px; }
.form-group label { font-size: 0.78rem; font-weight: 500; color: var(--muted-foreground); margin-bottom: 4px; display: block; }
.order-modal-footer, .upload-modal-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }

/* Upload Modal */
.upload-modal-card { max-width: 540px; }
.upload-modal-header { text-align: center; margin-bottom: 18px; }
.upload-modal-title { font-size: 1.25rem; font-weight: 700; color: var(--foreground); margin: 8px 0 4px; }
.upload-modal-desc { font-size: 0.82rem; color: var(--muted-foreground); }
.res-file-dropzone {
  background: #F8FAFC;
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  padding: 14px;
  text-align: center;
}
.btn-select-file {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--foreground);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  padding: 7px 14px;
  border-radius: var(--radius-sm);
  background: #FFFFFF;
  border: 1px solid var(--border);
  transition: var(--transition);
}
.btn-select-file:hover { background: #F4F4F5; }
.res-file-preview {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #FFFFFF;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.res-file-preview img { width: 44px; height: 44px; object-fit: cover; border-radius: var(--radius-sm); }
/* Auth Modal (카카오 1초 로그인 & 수강 코드 승인) */
.auth-modal-card {
  max-width: 480px;
  width: 100%;
  padding: 26px 22px;
  border-radius: var(--radius-xl);
}
.auth-emblem-wrap {
  width: 46px;
  height: 46px;
  margin: 0 auto 8px auto;
}
.auth-emblem-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.auth-modal-title {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--foreground);
  margin: 8px 0 4px 0;
  letter-spacing: -0.02em;
}
.auth-modal-desc {
  font-size: 0.84rem;
  color: var(--muted-foreground);
  line-height: 1.5;
}
.auth-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  background: #F4F4F5;
  padding: 4px;
  border-radius: var(--radius-md);
  margin: 16px 0 14px 0;
}
.auth-mode-btn {
  padding: 9px 6px;
  font-size: 0.8rem;
  font-weight: 700;
  border: none;
  background: transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  color: #71717A;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.auth-mode-btn.active {
  background: #FFFFFF;
  color: #09090B;
  box-shadow: var(--shadow-sm);
}
.auth-tab-content {
  display: none;
}
.auth-tab-content.active {
  display: block;
  animation: fadeIn 0.2s ease;
}
.btn-kakao-login {
  width: 100%;
  background: #FEE500;
  color: #191919;
  border: none;
  border-radius: var(--radius-md);
  padding: 12px;
  font-size: 0.92rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.btn-kakao-login:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.auth-divider {
  position: relative;
  text-align: center;
  margin: 16px 0 12px 0;
}
.auth-divider::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 1px;
  background: var(--border);
}
.auth-divider span {
  position: relative;
  background: #FFFFFF;
  padding: 0 10px;
  font-size: 0.74rem;
  color: #A1A1AA;
}
.form-group-lms {
  margin-bottom: 10px;
  text-align: left;
}
.form-group-lms label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--muted-foreground);
  margin-bottom: 4px;
}
.code-instruction-alert {
  background: var(--gold-light);
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 12px;
  text-align: left;
}
.code-instruction-alert strong {
  font-size: 0.82rem;
  color: #92400E;
  display: block;
}
.code-instruction-alert p {
  font-size: 0.74rem;
  color: #78350F;
  margin: 2px 0 0 0;
}
.code-input-wrap {
  display: flex;
  gap: 6px;
}
.code-input {
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.btn-code-submit {
  padding: 0 16px;
  font-weight: 800;
  font-size: 0.86rem;
  flex-shrink: 0;
}
.bank-deposit-card {
  background: #FAFAFA;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px;
  margin-top: 14px;
  text-align: left;
}
.bank-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.bank-tag {
  font-size: 0.76rem;
  font-weight: 800;
  color: #18181B;
}
.bank-auto-tag {
  font-size: 0.66rem;
  color: var(--gold-primary);
  font-weight: 700;
  background: var(--gold-light);
  padding: 2px 6px;
  border-radius: 4px;
}
.bank-account-box {
  background: #FFFFFF;
  border: 1px dashed var(--gold-border);
  border-radius: var(--radius-md);
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
  margin-bottom: 10px;
}
.bank-name { font-size: 0.76rem; color: #71717A; font-weight: 600; }
.bank-number { font-size: 1.15rem; font-weight: 900; color: #B45309; letter-spacing: 1px; }
.bank-holder { font-size: 0.74rem; color: #52525B; }
.btn-kakao-inquiry {
  width: 100%;
  background: #381E1F;
  color: #FEE500;
  border: none;
  border-radius: var(--radius-md);
  padding: 10px;
  font-size: 0.82rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  transition: var(--transition);
}
.btn-kakao-inquiry:hover { background: #231213; }
.auth-admin-toggle {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.74rem;
}
.auth-admin-toggle .toggle-info {
  display: flex;
  flex-direction: column;
  text-align: left;
}
.btn-toggle-tester {
  background: #F4F4F5;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 5px 10px;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
  color: #18181B;
  transition: var(--transition);
}
.btn-toggle-tester:hover { background: #E4E4E7; }

/* ==========================================================================
   12. REAL-TIME LIVE CLASSROOM STYLES (Zoom & WebCam Studio)
   ========================================================================== */

.badge-live-pulse {
  font-size: 0.68rem;
  font-weight: 800;
  background: #EF4444;
  color: #FFFFFF;
  padding: 2px 7px;
  border-radius: var(--radius-full);
  animation: pulseLive 1.5s infinite;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
@keyframes pulseLive {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

/* Multi-Room Selector Bar */
.live-room-selector-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.live-room-btn {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 20px;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 14px;
  position: relative;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}
.live-room-btn i { font-size: 1.4rem; }
.live-room-btn .room-btn-text { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.live-room-btn .room-btn-text strong { font-size: 0.95rem; font-weight: 700; color: var(--foreground); }
.live-room-btn .room-btn-text span { font-size: 0.76rem; color: var(--muted-foreground); }
.live-room-btn:hover { border-color: var(--gold-primary); background: #FAF9F6; transform: translateY(-1px); }
.live-room-btn.active {
  border-color: var(--gold-primary);
  background: #FFFDF9;
  box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.15), var(--shadow-card);
}
.room-pill-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: var(--radius-full);
}
.room-pill-badge.vip { background: #FEF3C7; color: #B45309; }
.room-pill-badge.basic { background: #F4F4F5; color: #52525B; }
.room-pill-badge.open { background: #ECFDF5; color: #047857; }

/* Director's Studio Control Bar */
.director-studio-control-bar {
  background: #18181B;
  color: #FAFAFA;
  border-radius: var(--radius-lg);
  padding: 14px 20px;
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.director-studio-control-bar .control-bar-left {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.admin-badge {
  background: var(--gold-primary);
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.02em;
}
.broadcast-mode-group {
  display: flex;
  align-items: center;
  gap: 8px;
}
.broadcast-mode-group .mode-label {
  font-size: 0.78rem;
  color: #A1A1AA;
}
.btn-mode-toggle {
  background: #27272A;
  color: #A1A1AA;
  border: 1px solid #3F3F46;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-mode-toggle:hover { color: #FFFFFF; background: #3F3F46; }
.btn-mode-toggle.rehearsal.active {
  background: #D97706;
  color: #FFFFFF;
  border-color: #F59E0B;
}
.btn-mode-toggle.onair.active {
  background: #DC2626;
  color: #FFFFFF;
  border-color: #EF4444;
  animation: pulseLive 2s infinite;
}

.director-studio-control-bar .control-bar-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.view-as-label {
  font-size: 0.78rem;
  color: #A1A1AA;
  display: flex;
  align-items: center;
  gap: 6px;
}
.view-as-select-wrap select {
  background: #27272A;
  color: #FAFAFA;
  border: 1px solid #3F3F46;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  outline: none;
}
.view-as-select-wrap select:focus { border-color: var(--gold-primary); }

.live-header-banner {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 32px 36px;
  margin-bottom: 24px;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.live-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #FEF2F2;
  border: 1px solid #FECACA;
  color: #DC2626;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: var(--radius-full);
  margin-bottom: 12px;
}
.live-viewer-count {
  color: var(--muted-foreground);
  font-weight: 500;
  margin-left: 6px;
  border-left: 1px solid #FECACA;
  padding-left: 8px;
}

.live-banner-title {
  font-size: 1.85rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--foreground);
  margin-bottom: 8px;
}
.live-banner-desc {
  font-size: 0.95rem;
  color: var(--muted-foreground);
  max-width: 720px;
  margin-bottom: 20px;
  line-height: 1.6;
}

/* Countdown Box */
.live-countdown-box {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: #FAFAFA;
  border: 1px solid var(--border);
  padding: 10px 24px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
}
.countdown-label { font-size: 0.82rem; font-weight: 600; color: var(--foreground); }
.countdown-timer { display: flex; align-items: center; gap: 6px; }
.time-unit {
  font-size: 0.78rem;
  color: var(--muted-foreground);
}
.time-unit strong {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--gold-primary);
  margin-right: 2px;
}
.countdown-sub {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  border-left: 1px solid var(--border);
  padding-left: 12px;
}

/* Studio Workspace */
.live-studio-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
  margin-bottom: 32px;
}
.live-stage-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.live-video-box {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.live-video-viewport {
  position: relative;
  height: 520px;
  background: #09090B;
  color: #FAFAFA;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.live-screen-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 32px;
}
.live-pulse-badge {
  background: #EF4444;
  color: #FFF;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 3px 12px;
  border-radius: var(--radius-full);
  margin-bottom: 16px;
  animation: pulseLive 1.5s infinite;
}
.live-screen-icon { font-size: 3.5rem; color: var(--gold-primary); margin-bottom: 14px; }
.live-screen-placeholder h3 { font-size: 1.4rem; font-weight: 700; margin-bottom: 6px; }
.live-screen-placeholder p { font-size: 0.88rem; color: #A1A1AA; max-width: 480px; margin-bottom: 24px; }

/* Rehearsal Lobby Overlay */
.live-lobby-overlay, .live-restricted-overlay {
  position: absolute;
  inset: 0;
  background: rgba(9, 9, 11, 0.95);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  z-index: 10;
}
.lobby-card, .restricted-card {
  max-width: 520px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lobby-badge {
  background: #D97706;
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  margin-bottom: 16px;
}
.lobby-card h3, .restricted-card h3 {
  font-size: 1.45rem;
  font-weight: 800;
  color: #FAFAFA;
  margin-bottom: 10px;
  line-height: 1.35;
}
.lobby-card p, .restricted-card p {
  font-size: 0.9rem;
  color: #A1A1AA;
  line-height: 1.6;
  margin-bottom: 24px;
}
.lobby-waiting-status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 8px 18px;
  border-radius: var(--radius-full);
  font-size: 0.82rem;
  color: #FAFAFA;
}

.restricted-icon {
  font-size: 3.2rem;
  color: var(--gold-primary);
  margin-bottom: 16px;
}
.restricted-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}

.live-room-tag-indicator {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--gold-primary);
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  padding: 5px 12px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.live-launcher-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}

.btn-live-cam {
  background: var(--gold-primary);
  color: #FFFFFF;
  border: none;
  padding: 12px 24px;
  border-radius: var(--radius-md);
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  box-shadow: 0 4px 14px rgba(217, 119, 6, 0.35);
}
.btn-live-cam:hover { background: var(--gold-dark); transform: translateY(-1px); }

.btn-live-screen {
  background: #18181B;
  color: #FAFAFA;
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 12px 22px;
  border-radius: var(--radius-md);
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
.btn-live-screen:hover { background: #27272A; transform: translateY(-1px); }

/* Controller Bar */
.live-controller-bar {
  background: #FFFFFF;
  border-top: 1px solid var(--border);
  padding: 12px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.live-ctrl-left, .live-ctrl-right { display: flex; align-items: center; gap: 8px; }

.btn-ctrl-item {
  background: #F4F4F5;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 7px 13px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.btn-ctrl-item:hover { background: #E4E4E7; }
.btn-ctrl-item.active { background: #09090B; color: #FAFAFA; border-color: transparent; }

.btn-live-fullscreen {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 7px 12px;
  border-radius: var(--radius-md);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}
.btn-live-fullscreen:hover { background: #F4F4F5; }

/* Agenda Card */
.live-agenda-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  box-shadow: var(--shadow-card);
}
.live-agenda-card h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 16px; }
.agenda-timeline { display: flex; flex-direction: column; gap: 12px; }
.agenda-item {
  display: flex;
  gap: 16px;
  padding: 12px;
  border-radius: var(--radius-md);
  background: #F8FAFC;
  border: 1px solid var(--border);
}
.agenda-item.done { opacity: 0.7; background: #F4F4F5; }
.agenda-item.active { background: #FFFBEB; border-color: var(--gold-border); }
.agenda-time { font-size: 0.8rem; font-weight: 700; color: var(--gold-primary); width: 90px; }
.agenda-info strong { font-size: 0.88rem; color: var(--foreground); display: block; margin-bottom: 2px; }
.agenda-info p { font-size: 0.8rem; color: var(--muted-foreground); }

/* Live Interaction Sidebar (Chat & Queue) */
.live-interaction-sidebar {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  height: 680px;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.sidebar-tab-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--border);
  background: #F4F4F5;
}
.sidebar-tab-btn {
  background: transparent;
  border: none;
  padding: 12px 10px;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--muted-foreground);
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.sidebar-tab-btn.active {
  background: #FFFFFF;
  color: var(--foreground);
  font-weight: 700;
  border-bottom: 2px solid var(--gold-primary);
}

.live-chat-panel, .live-queue-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.live-chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.chat-msg {
  background: #F8FAFC;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
}
.chat-msg.inst-msg {
  background: #FFFBEB;
  border-color: #FDE68A;
  border-left: 3px solid var(--gold-primary);
}
.chat-author { font-size: 0.78rem; font-weight: 700; color: var(--foreground); display: block; margin-bottom: 3px; }
.chat-badge-basic { font-size: 0.65rem; background: rgba(59, 130, 246, 0.1); color: #2563EB; padding: 1px 5px; border-radius: 4px; font-weight: 600; }
.chat-badge-adv { font-size: 0.65rem; background: var(--gold-light); color: var(--gold-primary); padding: 1px 5px; border-radius: 4px; font-weight: 600; }
.chat-text { font-size: 0.84rem; color: #3F3F46; line-height: 1.45; }

.live-chat-input-form {
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  background: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 8px;
}
.btn-chat-attach {
  background: #F4F4F5;
  border: 1px solid var(--border);
  color: var(--muted-foreground);
  width: 38px;
  height: 38px;
  border-radius: var(--radius-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
  flex-shrink: 0;
}
.btn-chat-attach:hover { background: #E4E4E7; color: var(--foreground); }

.live-chat-input-form input {
  flex: 1;
  margin-bottom: 0 !important;
}
.btn-chat-send {
  background: #09090B;
  color: #FAFAFA;
  border: none;
  width: 40px;
  height: 38px;
  border-radius: var(--radius-md);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.btn-chat-send:hover { background: #27272A; }

/* Student Live Cam PIP */
.live-student-pip {
  position: absolute;
  bottom: 16px;
  right: 16px;
  width: 280px;
  background: #18181B;
  border: 2px solid var(--gold-primary);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  z-index: 20;
  animation: fadeIn 0.3s ease;
}
.pip-header {
  background: #27272A;
  padding: 8px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pip-title-wrap { display: flex; align-items: center; gap: 6px; }
.pip-status-dot {
  width: 8px;
  height: 8px;
  background: #22C55E;
  border-radius: 50%;
  animation: pulseLive 1.5s infinite;
}
.pip-title { font-size: 0.78rem; font-weight: 700; color: #FAFAFA; }
.btn-pip-close {
  background: transparent;
  border: none;
  color: #A1A1AA;
  cursor: pointer;
  font-size: 0.8rem;
  padding: 2px 4px;
}
.btn-pip-close:hover { color: #FFFFFF; }
.pip-body {
  position: relative;
  height: 160px;
  background: #000;
  cursor: pointer;
  overflow: hidden;
}
.pip-body img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.pip-body:hover img { transform: scale(1.05); }
.pip-overlay-hint {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.75);
  color: #FAFAFA;
  font-size: 0.68rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  pointer-events: none;
  white-space: nowrap;
}
.pip-footer {
  background: #18181B;
  padding: 8px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pip-voice-status { font-size: 0.7rem; color: #A1A1AA; display: flex; align-items: center; gap: 4px; }
.btn-pip-disconnect {
  background: #EF4444;
  color: #FFF;
  border: none;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.btn-pip-disconnect:hover { background: #DC2626; }

/* Hand Raise Queue */
.queue-header-box {
  padding: 16px;
  background: #F8FAFC;
  border-bottom: 1px solid var(--border);
  text-align: center;
}
.queue-header-box h4 { font-size: 0.95rem; font-weight: 700; margin-bottom: 4px; }
.queue-header-box p { font-size: 0.78rem; color: var(--muted-foreground); margin-bottom: 12px; }
.btn-raise-hand {
  background: var(--gold-primary);
  color: #09090B;
  border: none;
  padding: 9px 18px;
  border-radius: var(--radius-full);
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}
.btn-raise-hand:hover { background: #FBBF24; }
.btn-raise-hand.raised { background: #EF4444; color: #FFF; }

.queue-list {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.queue-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
}
.queue-item.active { background: #FFFBEB; border-color: var(--gold-border); }
.queue-rank {
  font-size: 0.75rem;
  font-weight: 800;
  background: #F4F4F5;
  color: var(--foreground);
  padding: 2px 7px;
  border-radius: var(--radius-sm);
}
.queue-item.active .queue-rank { background: var(--gold-primary); color: #09090B; }
.queue-info { flex: 1; }
.queue-info strong { font-size: 0.82rem; color: var(--foreground); display: block; margin-bottom: 2px; }
.queue-info span { font-size: 0.74rem; color: var(--muted-foreground); }

.btn-queue-connect {
  background: var(--gold-primary);
  color: #FFFFFF;
  border: none;
  font-size: 0.74rem;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
  flex-shrink: 0;
}
.btn-queue-connect:hover { background: var(--gold-dark); transform: scale(1.03); }

/* Upcoming Live Schedule */
.upcoming-live-schedule {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 32px 36px;
  box-shadow: var(--shadow-card);
}
.schedule-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.schedule-header h3 { font-size: 1.25rem; font-weight: 800; letter-spacing: -0.015em; }
.schedule-tag { font-size: 0.78rem; font-weight: 600; color: #059669; background: #DCFCE7; padding: 3px 10px; border-radius: var(--radius-full); }

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.schedule-card {
  background: #F8FAFC;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: var(--transition);
}
.schedule-card:hover { border-color: #CBD5E1; transform: translateY(-2px); box-shadow: var(--shadow-md); }
.sched-date { font-size: 0.78rem; font-weight: 700; color: var(--gold-primary); margin-bottom: 6px; display: block; }
.schedule-card h4 { font-size: 0.98rem; font-weight: 700; color: var(--foreground); margin-bottom: 6px; line-height: 1.35; }
.schedule-card p { font-size: 0.82rem; color: var(--muted-foreground); line-height: 1.5; margin-bottom: 16px; }
.sched-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.sched-badge { font-size: 0.7rem; font-weight: 600; background: #E4E4E7; color: #52525B; padding: 2px 7px; border-radius: var(--radius-sm); }
.btn-sched-action {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
}
.btn-sched-action:hover { background: var(--gold-light); border-color: var(--gold-border); color: var(--gold-primary); }

/* Base Mobile Bottom Nav (Desktop: Hidden) */
.mobile-bottom-nav {
  display: none;
}

@media (max-width: 1400px) {
  .lms-nav-container { padding: 0 16px; gap: 8px; }
  .lms-brand-kr { font-size: 1.05rem; }
  .lms-brand-kr .brand-sub { font-size: 0.78rem; padding: 2px 6px; }
  .lms-tab-btn { padding: 5px 8px; font-size: 0.78rem; gap: 4px; }
  .lms-tab-btn i { font-size: 0.8rem; }
  .badge-count { font-size: 0.65rem; padding: 1px 4px; }
}

@media (max-width: 1180px) {
  .lms-nav-tabs {
    overflow-x: auto;
    scrollbar-width: none;
  }
  .lms-nav-tabs::-webkit-scrollbar { display: none; }
  .lms-user-profile .user-name { display: none; }
}

@media (max-width: 1080px) {
  .shadcn-hero-section { grid-template-columns: 1fr; text-align: center; padding: 32px 24px; }
  .shadcn-hero-desc { margin-left: auto; margin-right: auto; }
  .shadcn-hero-actions { justify-content: center; }
  .shadcn-trust-bar { justify-content: center; }
  .shadcn-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .shadcn-about-card { grid-template-columns: 1fr; text-align: center; padding: 28px 20px; }
  .about-media-col .about-img { margin: 0 auto; max-width: 100%; height: 280px; }
  .classroom-layout, .comm-layout, .live-studio-layout { grid-template-columns: 1fr; }
  .resource-grid, .schedule-grid { grid-template-columns: repeat(2, 1fr); }
  .classroom-sidebar { height: auto; max-height: 480px; position: static; }
}

@media (max-width: 768px) {
  /* Layout Padding & Safe Bottom Inset */
  .lms-container { padding: 0 14px; }
  .lms-main { padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important; }

  /* Mobile App Header: Clean, Compact, No Clutter */
  .lms-header {
    padding: 10px 0;
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .lms-nav-container {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0 14px;
    gap: 8px;
  }
  .lms-brand { gap: 8px; align-items: center; }
  .bmp-brand-logo-wrap { width: 34px; height: 34px; }
  .lms-brand-text { display: flex; align-items: center; }
  .lms-brand-text .lms-brand-kr { font-size: 0.94rem; font-weight: 800; display: inline-flex; align-items: center; gap: 5px; line-height: 1; }
  .lms-brand-text .lms-brand-kr .brand-sub { font-size: 0.76rem; padding: 2px 6px; }

  /* Hide Desktop Top Navigation Tabs on Mobile (Replaced by Sticky Bottom App Bar) */
  .lms-nav-tabs {
    display: none !important;
  }

  /* User Profile Header Chip */
  .lms-user-profile {
    display: flex;
    align-items: center;
    gap: 6px;
  }
  .lms-user-profile .user-name { display: none !important; }
  .lms-user-profile .user-avatar { width: 32px; height: 32px; }
  .lms-user-profile .user-badge { font-size: 0.7rem; padding: 2px 8px; }

  /* Native Mobile Bottom Navigation Bar (Sticky App-like Bar) */
  .mobile-bottom-nav {
    display: flex !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid #E4E4E7;
    z-index: 1200;
    justify-content: space-around;
    align-items: center;
    padding-bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.05);
  }
  .mobile-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 6px 0;
    color: #71717A;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.18s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .mobile-nav-item i {
    font-size: 1.18rem;
    margin-bottom: 2px;
    transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.2s ease;
  }
  .mobile-nav-item span {
    font-size: 0.66rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1;
  }
  .mobile-nav-item.active {
    color: #09090B;
  }
  .mobile-nav-item.active i {
    color: #D97706;
    transform: translateY(-2px) scale(1.12);
  }
  .mobile-nav-item.active span {
    font-weight: 800;
    color: #D97706;
  }
  .m-icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .m-live-pulse-dot {
    position: absolute;
    top: -2px;
    right: -4px;
    width: 6px;
    height: 6px;
    background-color: #EF4444;
    border-radius: 50%;
    border: 1.5px solid #FFFFFF;
    animation: pulseRed 1.8s infinite;
  }

  /* Clean, Uncluttered Mobile Hero Section */
  .shadcn-hero-section {
    padding: 20px 16px;
    border-radius: 14px;
    margin-bottom: 14px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }
  .shadcn-badge-pill {
    align-self: center;
    padding: 4px 10px;
    font-size: 0.75rem;
    margin-bottom: 8px;
  }
  .shadcn-hero-title {
    font-size: 1.55rem;
    line-height: 1.32;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 10px;
  }
  .shadcn-hero-desc {
    font-size: 0.86rem;
    line-height: 1.55;
    color: #52525B;
    margin: 0 auto 14px auto;
    max-width: 100%;
  }
  .shadcn-hero-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
    margin-bottom: 12px;
  }
  .btn-shadcn-primary, .btn-shadcn-secondary {
    width: 100%;
    justify-content: center;
    padding: 11px 8px;
    font-size: 0.84rem;
    font-weight: 700;
    border-radius: 8px;
  }
  .shadcn-trust-bar {
    padding: 8px 10px;
    font-size: 0.74rem;
    flex-direction: column;
    gap: 4px;
    align-items: center;
    border-radius: 8px;
  }
  .shadcn-hero-media {
    width: 100%;
    margin-top: 4px;
  }
  .shadcn-image-card {
    max-width: 320px;
    margin: 0 auto;
    border-radius: 14px;
    overflow: hidden;
    position: relative;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border);
  }
  .shadcn-image-card img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    object-position: top center;
    display: block;
  }
  .shadcn-floating-tag {
    bottom: 12px;
    font-size: 0.78rem;
    padding: 5px 14px;
  }

  /* Header Guide Button on Mobile */
  .btn-guide-header {
    padding: 5px 10px;
    font-size: 0.72rem;
  }
  .btn-guide-header span {
    display: none;
  }
  .btn-guide-header::after {
    content: '가이드';
    font-size: 0.72rem;
    font-weight: 700;
  }

  /* Compact 2x2 Metric Stats Grid */
  .shadcn-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: 14px;
  }
  .stat-card {
    padding: 12px 10px;
    border-radius: 10px;
    gap: 8px;
    display: flex;
    align-items: center;
  }
  .stat-icon-box {
    width: 34px;
    height: 34px;
    font-size: 0.9rem;
    border-radius: 8px;
    flex-shrink: 0;
  }
  .stat-content h3 {
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 2px;
  }
  .stat-content p {
    font-size: 0.68rem;
    line-height: 1.2;
  }

  /* Mobile Onboarding Guide Section */
  .onboarding-guide-section {
    padding: 18px 14px;
    margin-top: 14px;
    margin-bottom: 18px;
    border-radius: 12px;
  }
  .guide-section-header {
    margin-bottom: 14px;
    gap: 8px;
  }
  .guide-title {
    font-size: 1.15rem;
    line-height: 1.35;
  }
  .guide-desc {
    font-size: 0.8rem;
    line-height: 1.4;
  }
  .btn-guide-detail {
    width: 100%;
    justify-content: center;
    padding: 8px;
    font-size: 0.78rem;
  }
  .onboarding-steps-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .onboarding-step-card {
    padding: 14px 12px;
    border-radius: 10px;
  }
  .onboarding-step-card h3 {
    font-size: 0.96rem;
    margin-bottom: 4px;
  }
  .onboarding-step-card p {
    font-size: 0.8rem;
    margin-bottom: 10px;
  }
  .btn-step-action {
    padding: 8px 10px;
    font-size: 0.78rem;
  }

  /* BMP Philosophy & Master Section */
  .bmp-philosophy-card {
    padding: 18px 14px;
    flex-direction: column;
    text-align: center;
    gap: 12px;
    border-radius: 12px;
    margin-bottom: 14px;
  }
  .bmp-large-emblem { width: 56px; height: 56px; }
  .bmp-features-row { grid-template-columns: 1fr; gap: 6px; }
  .bmp-feat-item { padding: 8px 12px; text-align: left; }

  /* Mobile Classroom & Video Player (Basic 17 & Adv 15) */
  .classroom-layout {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .video-player-box {
    border-radius: 14px;
    margin-bottom: 12px;
  }
  .video-clips-header {
    padding: 10px 12px;
  }
  .clips-header-title {
    font-size: 0.72rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--muted-foreground);
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .clips-header-title .desktop-title { display: none !important; }
  .clips-header-title .mobile-title { display: inline-flex !important; align-items: center; gap: 4px; font-weight: 700; color: #D97706; }
  .video-clips-pills {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 0;
  }
  .video-clip-pill {
    padding: 8px 4px;
    border-radius: 8px;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 48px;
  }
  .video-clip-pill .pill-title {
    display: none !important; /* Hide long 4-line title in small mobile tabs */
  }
  .video-clip-pill .pill-badge {
    margin-bottom: 0;
    font-size: 0.74rem;
    padding: 2px 6px;
  }
  .video-clip-pill .pill-dur {
    font-size: 0.68rem;
    font-weight: 600;
    margin-top: 2px;
    color: #71717A;
  }
  .video-clip-pill.active .pill-dur {
    color: #D97706;
    font-weight: 700;
  }
  .video-screen {
    aspect-ratio: 16/9;
    height: auto;
    min-height: 200px;
    border-radius: 0;
  }
  .play-icon { font-size: 2.4rem; }

  /* Lecture Details Card & Mobile Summary Toggle */
  .lecture-details-card {
    padding: 16px 14px;
    border-radius: 14px;
    margin-bottom: 12px;
  }
  .lecture-meta {
    margin-bottom: 8px;
    gap: 6px;
  }
  .lecture-heading {
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 10px;
    letter-spacing: -0.02em;
  }
  .lecture-summary-text {
    padding: 10px 12px;
    border-radius: 10px;
    margin-bottom: 12px;
    background: #F8FAFC;
  }
  .summary-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
  .summary-part-badge {
    font-size: 0.68rem;
    padding: 2px 7px;
  }
  .btn-summary-mobile-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #D97706;
    background: rgba(217, 119, 6, 0.08);
    border: 1px solid rgba(217, 119, 6, 0.25);
    padding: 3px 9px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
  }
  .btn-summary-mobile-toggle:active {
    transform: scale(0.96);
    background: rgba(217, 119, 6, 0.16);
  }
  .summary-body-text {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-top: 0;
    padding-top: 0;
    font-size: 0.82rem;
    line-height: 1.55;
    transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.25s ease;
  }
  .summary-body-text.mobile-expanded {
    max-height: 1200px;
    opacity: 1;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #E2E8F0;
  }
  .lecture-actions-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .lecture-actions-row button {
    width: 100%;
    justify-content: center;
    padding: 11px 12px;
    font-size: 0.82rem;
  }

  /* Compact Mobile Classroom Playlist Sidebar */
  .classroom-sidebar {
    height: auto;
    max-height: 520px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    border-radius: 14px;
    position: static;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  }
  .sidebar-header {
    padding: 12px 14px;
    background: #FAFAFA;
  }
  .sidebar-header h3 {
    font-size: 0.88rem;
    font-weight: 800;
  }
  .sidebar-progress {
    font-size: 0.72rem;
  }
  .lecture-list {
    padding: 8px;
    gap: 3px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }
  .part-divider-header {
    padding: 8px 6px 4px;
    font-size: 0.68rem;
    font-weight: 800;
    color: #D97706;
    letter-spacing: 0.02em;
  }
  .lec-item {
    padding: 8px 10px;
    gap: 8px;
    min-height: 42px;
    border-radius: 8px;
  }
  .lec-num {
    font-size: 0.76rem;
    font-weight: 800;
    width: 28px;
  }
  .lec-info {
    flex: 1;
    min-width: 0;
  }
  .lec-title {
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.25;
    margin-bottom: 2px;
  }
  .dur-desktop {
    display: none !important;
  }
  .dur-mobile {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    font-size: 0.68rem;
    font-weight: 600;
    color: #D97706;
  }
  .lec-status-icon {
    font-size: 0.82rem;
  }

  /* Mobile Specialist Hub & Classroom */
  .specialist-filter-bar {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 6px;
    margin-bottom: 16px;
    -webkit-overflow-scrolling: touch;
  }
  .specialist-filter-btn {
    white-space: nowrap;
    padding: 6px 12px;
    font-size: 0.76rem;
  }
  .specialist-cards-grid {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 20px;
  }
  .specialist-card {
    padding: 18px 16px;
    border-radius: 14px;
  }
  .spec-title {
    font-size: 1.15rem;
  }
  .spec-subtitle {
    font-size: 0.78rem;
  }
  .spec-desc {
    font-size: 0.82rem;
    line-height: 1.5;
  }
  .spec-target-box {
    font-size: 0.76rem;
    padding: 8px 10px;
  }
  .specialist-allpass-banner {
    flex-direction: column;
    text-align: center;
    padding: 20px 16px;
    gap: 14px;
    border-radius: 14px;
  }
  .allpass-banner-content h3 {
    font-size: 1.15rem;
  }
  .allpass-banner-content p {
    font-size: 0.8rem;
  }
  .btn-allpass-apply {
    width: 100%;
    justify-content: center;
    padding: 12px;
    font-size: 0.85rem;
  }
  .spec-classroom-topbar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .btn-back-hub {
    width: 100%;
    justify-content: center;
  }
  .spec-course-switch-pills {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }
  .spec-course-pill {
    white-space: nowrap;
    font-size: 0.72rem;
    padding: 5px 10px;
  }

  /* Mobile Live Studio */
  .live-studio-layout {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .live-room-selector-bar { grid-template-columns: 1fr; gap: 6px; }
  .director-studio-control-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 12px;
  }
  .director-studio-control-bar .control-bar-left,
  .director-studio-control-bar .control-bar-right {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  .broadcast-mode-group { flex-direction: column; width: 100%; }
  .btn-mode-toggle { width: 100%; justify-content: center; }
  .live-video-viewport { aspect-ratio: 16/9; height: auto; min-height: 200px; border-radius: 10px; }

  /* Mobile Community & Store */
  .comm-layout { grid-template-columns: 1fr; gap: 12px; }
  .products-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .product-card { padding: 10px; border-radius: 10px; }
  .prod-img-box { height: 130px; }
  .prod-title { font-size: 0.82rem; }
  .prod-price { font-size: 0.95rem; }
  .btn-prod-order { padding: 8px 6px; font-size: 0.76rem; }

  /* Mobile Master Diploma Preview */
  .diploma-dashboard-banner { flex-direction: column; align-items: stretch; gap: 12px; padding: 16px; text-align: center; }
  .diploma-banner-badge { width: 48px; height: 48px; font-size: 1.3rem; margin: 0 auto; }
  .diploma-canvas-wrapper { padding: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .diploma-certificate { width: 700px; min-height: 480px; }

  /* Mobile Footer */
  .lms-footer {
    padding: 36px 0 calc(84px + env(safe-area-inset-bottom)) 0;
  }
  .footer-top-row {
    grid-template-columns: 1fr;
    gap: 20px;
    text-align: center;
    padding-bottom: 24px;
  }
  .footer-brand-header { justify-content: center; }
}

/* ==========================================================================
   14. LUXURY BMP BRAND FOOTER
   ========================================================================== */

.lms-footer {
  background: #09090B;
  color: #FAFAFA;
  border-top: 1px solid rgba(217, 119, 6, 0.25);
  margin-top: 70px;
  padding: 60px 0 32px 0;
  position: relative;
}

.lms-footer-container {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 24px;
}

.footer-top-row {
  display: grid;
  grid-template-columns: 1.6fr 1.1fr 1.1fr 1.2fr;
  gap: 40px;
  padding-bottom: 48px;
  border-bottom: 1px solid #27272A;
}

.footer-brand-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.footer-logo-wrap {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.footer-logo-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0;
}

.footer-brand-text {
  display: flex;
  flex-direction: column;
}

.footer-brand-en {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 1.4px;
  color: var(--gold-primary);
}

.footer-brand-kr {
  font-size: 1.2rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.02em;
}

.footer-brand-kr span {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--gold-primary);
  margin-left: 4px;
}

.footer-philosophy-desc {
  font-size: 0.85rem;
  color: #A1A1AA;
  line-height: 1.65;
  margin-bottom: 20px;
}

.footer-badges-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.footer-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #18181B;
  border: 1px solid rgba(217, 119, 6, 0.2);
  color: #E4E4E7;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--radius-full);
}

.footer-nav-col h4,
.footer-contact-col h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 18px;
  letter-spacing: -0.01em;
  position: relative;
  padding-bottom: 8px;
}

.footer-nav-col h4::after,
.footer-contact-col h4::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 24px;
  height: 2px;
  background: var(--gold-primary);
  border-radius: 1px;
}

.footer-nav-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-nav-col ul li a {
  color: #A1A1AA;
  font-size: 0.82rem;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}

.footer-nav-col ul li a:hover {
  color: var(--gold-primary);
  transform: translateX(3px);
}

.footer-nav-col ul li a i {
  font-size: 0.7rem;
  color: #71717A;
}

.footer-contact-col {
  display: flex;
  flex-direction: column;
}

.footer-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #A1A1AA;
  font-size: 0.82rem;
  line-height: 1.5;
  margin-bottom: 12px;
}

.footer-contact-item i {
  color: var(--gold-primary);
  font-size: 0.9rem;
  margin-top: 3px;
  flex-shrink: 0;
}

.footer-bottom-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 24px;
  flex-wrap: wrap;
  gap: 16px;
}

.copyright-text {
  font-size: 0.78rem;
  color: #71717A;
  line-height: 1.6;
  max-width: 800px;
}

.copyright-text strong {
  color: #E4E4E7;
  font-weight: 600;
}

.footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  color: #71717A;
}

.footer-bottom-links span {
  cursor: pointer;
  transition: color 0.2s;
}

.footer-bottom-links span:hover {
  color: #E4E4E7;
}

/* Footer Responsive */
@media (max-width: 1080px) {
  .footer-top-row {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}

@media (max-width: 768px) {
  .lms-footer {
    padding: 40px 0 24px 0;
    margin-top: 40px;
  }
  .footer-top-row {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .footer-bottom-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   15. MASTER DIPLOMA CERTIFICATION SYSTEM
   ========================================================================== */

/* Dashboard Banner */
.diploma-dashboard-banner {
  background: linear-gradient(135deg, #09090B 0%, #18181B 100%);
  border: 1px solid rgba(217, 119, 6, 0.4);
  border-radius: var(--radius-xl);
  padding: 32px 36px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-top: 36px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  position: relative;
  overflow: hidden;
}
.diploma-dashboard-banner::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, rgba(217, 119, 6, 0.2) 0%, transparent 70%);
  pointer-events: none;
}
.diploma-banner-left {
  display: flex;
  align-items: center;
  gap: 20px;
}
.diploma-seal-icon {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: rgba(217, 119, 6, 0.15);
  border: 1px solid var(--gold-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  color: var(--gold-primary);
  flex-shrink: 0;
}
.diploma-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(217, 119, 6, 0.2);
  color: var(--gold-primary);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  margin-bottom: 6px;
  border: 1px solid rgba(217, 119, 6, 0.3);
}
.diploma-banner-text h3 {
  font-size: 1.35rem;
  font-weight: 800;
  color: #FFFFFF;
  margin-bottom: 4px;
  letter-spacing: -0.02em;
}
.diploma-banner-text p {
  font-size: 0.85rem;
  color: #A1A1AA;
  line-height: 1.5;
  max-width: 680px;
}
.btn-diploma-open {
  background: linear-gradient(135deg, #D97706 0%, #B45309 100%);
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 14px 24px;
  border-radius: var(--radius-md);
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(217, 119, 6, 0.35);
  transition: var(--transition);
}
.btn-diploma-open:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(217, 119, 6, 0.5);
  background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
}

/* Diploma Modal Card */
.diploma-modal-card {
  max-width: 960px;
  width: 100%;
  max-height: 94vh;
  overflow-y: auto;
  padding: 28px;
}
.diploma-modal-header {
  margin-bottom: 18px;
}
.diploma-modal-header .modal-subtitle {
  font-size: 0.82rem;
  color: var(--muted-foreground);
  margin-top: 4px;
}

/* Interactive Controls Bar */
.diploma-controls-bar {
  display: grid;
  grid-template-columns: 1.2fr 2fr 1fr;
  gap: 14px;
  background: #F8FAFC;
  border: 1px solid var(--border);
  padding: 14px 18px;
  border-radius: var(--radius-lg);
  margin-bottom: 20px;
}
.form-group-inline {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.form-group-inline label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--foreground);
  display: flex;
  align-items: center;
  gap: 6px;
}
.form-group-inline input,
.form-group-inline select {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  font-size: 0.85rem;
  color: var(--foreground);
  font-weight: 600;
  outline: none;
  transition: var(--transition);
}
.form-group-inline input:focus,
.form-group-inline select:focus {
  border-color: var(--gold-primary);
  box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.15);
}

/* ==========================================================================
   MASTER DIPLOMA CERTIFICATION STYLING (LUXURY GOLD ACCREDITATION)
   ========================================================================== */

.diploma-canvas-wrapper {
  background: #0f172a;
  padding: 24px;
  border-radius: var(--radius-lg);
  overflow-x: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.5);
}

.diploma-certificate {
  width: 960px;
  min-height: 670px;
  background: #FFFDF9;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(217, 119, 6, 0.3);
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

/* Subtle Security Background Watermark */
.cert-watermark-emblem {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 380px;
  height: 380px;
  opacity: 0.055;
  pointer-events: none;
  z-index: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cert-watermark-emblem img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(10%) sepia(80%);
}

/* Triple Victorian Gold Guilloche Border Frame */
.diploma-border-outer {
  border: 4px double #B45309;
  margin: 14px;
  padding: 4px;
  box-sizing: border-box;
  background: transparent;
  position: relative;
  z-index: 1;
}

.diploma-border-middle {
  border: 1px dashed #D97706;
  padding: 4px;
  box-sizing: border-box;
}

.diploma-border-inner {
  border: 2px solid #F59E0B;
  padding: 24px 38px;
  position: relative;
  background: radial-gradient(ellipse at center, #FFFFFF 0%, #FFFDF7 60%, #FFF9EC 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 590px;
  box-sizing: border-box;
}

/* 4 Baroque Corner Filigrees */
.corner-filigree {
  position: absolute;
  width: 44px;
  height: 44px;
  pointer-events: none;
  z-index: 2;
}
.corner-filigree.top-left { top: 6px; left: 6px; }
.corner-filigree.top-right { top: 6px; right: 6px; }
.corner-filigree.bottom-left { bottom: 6px; left: 6px; }
.corner-filigree.bottom-right { bottom: 6px; right: 6px; }
.filigree-svg {
  width: 100%;
  height: 100%;
}

/* Certificate Header */
.cert-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid rgba(217, 119, 6, 0.3);
  padding-bottom: 12px;
}
.cert-logo-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cert-symbol-img {
  width: 46px;
  height: 46px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(217, 119, 6, 0.2));
}
.cert-brand-titles {
  display: flex;
  flex-direction: column;
}
.cert-brand-en {
  font-family: 'Cinzel', serif;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 2px;
  color: #92400E;
}
.cert-brand-kr {
  font-family: 'Pretendard', sans-serif;
  font-size: 1.02rem;
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.02em;
}
.cert-serial-badge {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}
.serial-label {
  font-family: 'Cinzel', serif;
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 1px;
  color: #B45309;
  text-transform: uppercase;
}
.cert-serial {
  font-family: 'Cinzel', monospace;
  font-size: 0.78rem;
  font-weight: 700;
  color: #1E293B;
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(217, 119, 6, 0.35);
  padding: 2px 8px;
  border-radius: 4px;
}

/* Certificate Titles */
.cert-title-section {
  text-align: center;
  margin: 12px 0 8px 0;
}
.cert-latin-banner {
  font-family: 'Cinzel', serif;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 4px;
  color: #D97706;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.cert-main-title {
  font-family: 'Cinzel', serif;
  font-size: 2.15rem;
  font-weight: 900;
  letter-spacing: 4px;
  color: #0F172A;
  margin: 0 0 2px 0;
  text-shadow: 0 1px 2px rgba(217, 119, 6, 0.2);
}
.cert-sub-title {
  font-family: 'Pretendard', sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 9px;
  color: #991B1B;
  margin-bottom: 6px;
}
.cert-title-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 4px auto;
}
.divider-leaf {
  color: #D97706;
  font-size: 0.65rem;
  letter-spacing: 3px;
}
.divider-line {
  width: 90px;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, #D97706, transparent);
}
.divider-gem {
  color: #D97706;
  font-size: 0.95rem;
  filter: drop-shadow(0 0 3px rgba(245, 158, 11, 0.5));
}

/* Recipient Section */
.cert-recipient-section {
  text-align: center;
  margin: 10px 0 8px 0;
}
.recipient-badge-tag {
  display: inline-block;
  font-family: 'Cinzel', 'Pretendard', serif;
  font-size: 0.78rem;
  font-weight: 700;
  color: #78350F;
  background: rgba(245, 158, 11, 0.12);
  padding: 2px 14px;
  border-radius: 20px;
  letter-spacing: 1px;
  margin-bottom: 4px;
}
.cert-recipient-name {
  font-family: 'Playfair Display', Pretendard, serif;
  font-size: 2.15rem;
  font-weight: 900;
  color: #09090B;
  border-bottom: 2.5px solid #D97706;
  padding: 0 24px 4px 24px;
  letter-spacing: 2px;
  display: inline-block;
}

/* Course and Statement */
.cert-course-box {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 10px auto;
}
.cert-course-ribbon {
  display: inline-block;
  background: linear-gradient(90deg, rgba(217, 119, 6, 0.08), rgba(245, 158, 11, 0.18), rgba(217, 119, 6, 0.08));
  border: 1px solid rgba(217, 119, 6, 0.35);
  border-radius: 30px;
  padding: 4px 20px;
  margin-bottom: 8px;
}
.course-ribbon-text {
  font-family: 'Pretendard', sans-serif;
  font-size: 1.12rem;
  font-weight: 800;
  color: #9A3412;
  letter-spacing: -0.01em;
}
.cert-statement {
  font-size: 0.88rem;
  color: #334155;
  line-height: 1.75;
  margin: 0;
  font-weight: 500;
}
.cert-statement strong {
  color: #0F172A;
  font-weight: 800;
}

/* Footer Section */
.cert-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-top: 12px;
  border-top: 1.5px solid rgba(217, 119, 6, 0.25);
  position: relative;
}
.cert-date-col {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 180px;
}
.cert-date-label {
  font-family: 'Cinzel', serif;
  font-size: 0.6rem;
  font-weight: 800;
  color: #92400E;
  letter-spacing: 1px;
}
.cert-date-text {
  font-size: 1.02rem;
  font-weight: 800;
  color: #0F172A;
  letter-spacing: 0.5px;
}
.cert-accreditation {
  font-family: 'Cinzel', serif;
  font-size: 0.66rem;
  font-weight: 800;
  color: #B45309;
  letter-spacing: 1.5px;
}

/* 3D Gold Foil Seal Medal with Satin Ribbon Tails */
.cert-gold-seal-container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 auto;
}
.seal-ribbon-tail {
  position: absolute;
  width: 14px;
  height: 38px;
  background: linear-gradient(180deg, #991B1B 0%, #7F1D1D 100%);
  top: 40px;
  z-index: 1;
  border: 1px solid #D97706;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
}
.seal-ribbon-tail.left-tail {
  left: 18px;
  transform: rotate(-12deg);
}
.seal-ribbon-tail.right-tail {
  right: 18px;
  transform: rotate(12deg);
}

.cert-gold-seal {
  position: relative;
  z-index: 2;
  width: 82px;
  height: 82px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #FFFBEB 0%, #FDE68A 25%, #D97706 65%, #92400E 95%, #78350F 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(180, 83, 9, 0.45), inset 0 2px 4px rgba(255, 255, 255, 0.8), inset 0 -3px 6px rgba(0, 0, 0, 0.3);
  border: 2.5px dashed #FFFDF5;
  flex-shrink: 0;
}
.seal-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #5C2304;
  line-height: 1.05;
}
.seal-inner i {
  font-size: 0.88rem;
  color: #5C2304;
  margin-bottom: 2px;
}
.seal-inner span {
  font-family: 'Cinzel', serif;
  font-size: 0.5rem;
  font-weight: 800;
  letter-spacing: 1px;
}
.seal-inner strong {
  font-family: 'Cinzel', serif;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 1.5px;
  color: #451A03;
}
.seal-stars {
  font-size: 0.42rem;
  letter-spacing: 1px;
  color: #78350F;
  margin: 1px 0;
}
.seal-inner small {
  font-family: 'Cinzel', serif;
  font-size: 0.46rem;
  font-weight: 800;
  letter-spacing: 0.8px;
}

/* Signatory Col and Authentic Red Seal */
.cert-signatory-col {
  display: flex;
  align-items: center;
  gap: 14px;
}
.signatory-text {
  display: flex;
  flex-direction: column;
  text-align: right;
}
.sign-org {
  font-family: 'Pretendard', sans-serif;
  font-size: 0.7rem;
  color: #64748B;
  font-weight: 600;
}
.sign-book {
  font-family: 'Pretendard', sans-serif;
  font-size: 0.74rem;
  color: #B45309;
  font-weight: 700;
}
.sign-master-row {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 1px;
}
.master-signature-script {
  font-family: 'Great Vibes', cursive;
  font-size: 2rem;
  color: #0F172A;
  transform: rotate(-4deg);
  display: inline-block;
  line-height: 1;
}
.sign-name {
  font-family: 'Pretendard', sans-serif;
  font-size: 1.12rem;
  color: #0F172A;
  font-weight: 900;
  letter-spacing: -0.02em;
}

/* Authentic Red Master Ink Stamp */
.cert-red-stamp {
  width: 56px;
  height: 56px;
  border: 3px solid #DC2626;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(-2deg);
  background: rgba(220, 38, 38, 0.05);
  box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.3), inset 0 0 3px rgba(220, 38, 38, 0.2);
  flex-shrink: 0;
}
.red-stamp-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.15;
  color: #DC2626;
  font-weight: 900;
  font-family: 'Pretendard', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 1.5px;
}
.stamp-row {
  display: block;
}

/* Modal Footer Actions */
.diploma-modal-footer {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.btn-shadcn-outline {
  background: #FFFFFF;
  border: 1px solid var(--border);
  color: var(--foreground);
  padding: 10px 16px;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: var(--transition);
}
.btn-shadcn-outline:hover {
  background: #F8FAFC;
  border-color: var(--gold-primary);
  color: var(--gold-primary);
}

@media (max-width: 640px) {
  .diploma-modal-footer {
    flex-direction: column;
    width: 100%;
  }
  .diploma-modal-footer button {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   PRINT SPECIFIC RULES (STRICT 1-PAGE A4 LANDSCAPE OUTPUT)
   ========================================================================== */
@page {
  size: A4 landscape;
  margin: 0;
}

@media print {
  /* 1. Global Reset for Print */
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    box-sizing: border-box !important;
  }

  html, body {
    width: 297mm !important;
    height: 210mm !important;
    max-width: 297mm !important;
    max-height: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #FFFFFF !important;
    overflow: hidden !important;
  }

  /* 2. Hide all regular website elements, navigation, modals, and footers */
  body > *:not(#diplomaModal),
  .site-header,
  .site-footer,
  .mobile-bottom-nav,
  #authModal,
  .modal-backdrop:not(#diplomaModal),
  .diploma-modal-header,
  .diploma-controls-bar,
  .diploma-modal-footer,
  .modal-close-btn {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  /* 3. Make diplomaModal the sole full-screen 1-page A4 canvas */
  #diplomaModal {
    display: flex !important;
    position: fixed !important;
    left: 0 !important;
    top: 0 !important;
    width: 297mm !important;
    height: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #FFFFFF !important;
    border: none !important;
    box-shadow: none !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 999999 !important;
    overflow: hidden !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  .diploma-modal-card {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 297mm !important;
    height: 210mm !important;
    max-width: 297mm !important;
    max-height: 210mm !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #FFFFFF !important;
    border: none !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  /* 4. Canvas Wrapper & Certificate Sizing */
  .diploma-canvas-wrapper,
  #printableDiploma {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 297mm !important;
    height: 210mm !important;
    padding: 6mm !important;
    margin: 0 !important;
    background: #FFFFFF !important;
    overflow: hidden !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .diploma-certificate {
    width: 284mm !important;
    height: 198mm !important;
    max-width: 284mm !important;
    max-height: 198mm !important;
    min-height: auto !important;
    background: #FFFDF9 !important;
    box-shadow: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .cert-watermark-emblem {
    width: 110mm !important;
    height: 110mm !important;
    opacity: 0.055 !important;
  }

  .diploma-border-outer {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 2.5mm !important;
    border: 3.5px double #B45309 !important;
    box-sizing: border-box !important;
  }

  .diploma-border-middle {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 2.5mm !important;
    border: 1px dashed #D97706 !important;
    box-sizing: border-box !important;
  }

  .diploma-border-inner {
    width: 100% !important;
    height: 100% !important;
    min-height: auto !important;
    padding: 5mm 9mm !important;
    border: 1.5px solid #F59E0B !important;
    background: radial-gradient(ellipse at center, #FFFFFF 0%, #FFFDF7 60%, #FFF9EC 100%) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
  }

  .corner-filigree {
    width: 11mm !important;
    height: 11mm !important;
  }

  .cert-header {
    padding-bottom: 2mm !important;
    border-bottom: 1.5px solid rgba(217, 119, 6, 0.4) !important;
  }
  .cert-symbol-img {
    width: 38px !important;
    height: 38px !important;
  }
  .cert-brand-en {
    font-size: 7.5pt !important;
  }
  .cert-brand-kr {
    font-size: 11.5pt !important;
  }
  .cert-serial {
    font-size: 8.5pt !important;
    padding: 2px 6px !important;
  }

  .cert-title-section {
    margin: 1.5mm 0 !important;
  }
  .cert-latin-banner {
    font-size: 7pt !important;
    letter-spacing: 3px !important;
    margin-bottom: 1mm !important;
  }
  .cert-main-title {
    font-size: 22pt !important;
    letter-spacing: 4px !important;
    margin-bottom: 1mm !important;
  }
  .cert-sub-title {
    font-size: 12.5pt !important;
    letter-spacing: 7px !important;
    margin-bottom: 1.5mm !important;
  }
  .cert-title-divider {
    margin: 1mm auto !important;
  }

  .cert-recipient-section {
    margin: 1.5mm 0 !important;
  }
  .recipient-badge-tag {
    font-size: 8pt !important;
    padding: 1px 10px !important;
  }
  .cert-recipient-name {
    font-size: 23pt !important;
    padding: 0 16px 2px 16px !important;
    border-bottom: 2px solid #D97706 !important;
  }

  .cert-course-box {
    margin: 1.5mm auto !important;
    padding: 0 4mm !important;
    max-width: 95% !important;
  }
  .cert-course-ribbon {
    padding: 2px 16px !important;
    margin-bottom: 1.5mm !important;
  }
  .course-ribbon-text {
    font-size: 12pt !important;
  }
  .cert-statement {
    font-size: 9.8pt !important;
    line-height: 1.55 !important;
  }

  .cert-footer {
    padding-top: 2mm !important;
    border-top: 1.5px solid rgba(217, 119, 6, 0.3) !important;
  }
  .cert-date-text {
    font-size: 10.5pt !important;
  }
  .cert-accreditation {
    font-size: 7.5pt !important;
  }
  .cert-gold-seal-container {
    transform: scale(0.9) !important;
  }
  .cert-gold-seal {
    width: 68px !important;
    height: 68px !important;
  }
  .master-signature-script {
    font-size: 24pt !important;
  }
  .sign-name {
    font-size: 12pt !important;
  }
  .cert-red-stamp {
    width: 50px !important;
    height: 50px !important;
  }
}

/* Responsive */
@media (max-width: 1080px) {
  .diploma-dashboard-banner { flex-direction: column; align-items: flex-start; }
  .diploma-controls-bar { grid-template-columns: 1fr; }
}

/* ==========================================================================
   15. JOY ACADEMY MASTER EDITORIAL STYLES (조이 대표원장 승인 완성형 디자인)
   ========================================================================== */

/* Brand & Header Editorial Nav */
.lms-brand-text {
  display: flex;
  flex-direction: column;
}
.lms-brand-en {
  font-family: 'Cinzel', serif;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #111827;
  line-height: 1.15;
}
.lms-brand-subtag {
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  color: #8A7B70;
  text-transform: uppercase;
  font-weight: 700;
}
.nav-arrow {
  font-size: 0.65rem;
  margin-left: 4px;
  color: #9CA3AF;
}
.btn-header-login {
  background: #FFFFFF;
  color: #111827;
  border: 1px solid #D1D5DB;
  padding: 7px 18px;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-header-login:hover {
  background: #F9FAFB;
  border-color: #9CA3AF;
}
.btn-header-search {
  background: none;
  border: none;
  font-size: 1rem;
  color: #4B5563;
  cursor: pointer;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}
.btn-header-search:hover {
  color: #111827;
}

/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
   Master Section 01: Hero Section (반영구를 감이 아니라 원리부터 배우는 곳)
   -------------------------------------------------------------------------- */
.master-hero-editorial {
  position: relative;
  min-height: 520px;
  background: #FFFFFF;
  overflow: hidden;
  border-bottom: 1px solid #ECE7E2;
  display: flex;
  align-items: center;
}

/* Right-Side Photo with Soft Horizontal Gradient Feather into White */
.hero-editorial-backdrop {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 65%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.2) 12%, rgba(0,0,0,0.75) 30%, rgba(0,0,0,1) 50%);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.2) 12%, rgba(0,0,0,0.75) 30%, rgba(0,0,0,1) 50%);
}

.hero-backdrop-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right 20%;
  filter: brightness(1.04) contrast(1.02);
  display: block;
}

.hero-editorial-backdrop-overlay {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(to right, #FFFFFF 0%, rgba(255, 255, 255, 0.85) 12%, rgba(255, 255, 255, 0) 35%),
    linear-gradient(to bottom, rgba(255, 255, 255, 0) 80%, rgba(255, 255, 255, 0.3) 100%);
  pointer-events: none;
}

.master-hero-editorial .showcase-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 64px 32px;
}

.master-hero-editorial .hero-text-col {
  max-width: 520px;
  position: relative;
  z-index: 3;
}

.editorial-top-tag {
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  color: #8A7B70;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 20px;
  display: block;
}

.master-headline-myeongjo {
  font-family: var(--font-sans);
  font-size: 3.1rem;
  font-weight: 800;
  line-height: 1.25;
  color: #111827;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
}

.master-subtext {
  font-family: var(--font-sans);
  font-size: 1.05rem;
  line-height: 1.75;
  color: #555555;
  margin-bottom: 36px;
  font-weight: 400;
  max-width: 500px;
}

.master-cta-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

.btn-master-solid {
  font-family: var(--font-sans);
  background: #5C524F;
  color: #FFFFFF;
  border: 1px solid #5C524F;
  padding: 13px 26px;
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}

.btn-master-solid:hover {
  background: #443B39;
  border-color: #443B39;
  transform: translateY(-1px);
}

.btn-master-outline {
  font-family: var(--font-sans);
  background: #FFFFFF;
  color: #333333;
  border: 1px solid #D1D5DB;
  padding: 13px 24px;
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}

.btn-master-outline:hover {
  background: #F9FAFB;
  border-color: #9CA3AF;
}

.editorial-bottom-tag {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.15em;
  color: #9E9E9E;
  text-transform: uppercase;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   Master Section 02: Philosophy (진짜 경험이 진짜 성장을 만듭니다)
   -------------------------------------------------------------------------- */
.master-section-philosophy {
  padding: 88px 0 84px;
  background: #FFFFFF;
}

.philosophy-clean-layout {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: center;
}

.philosophy-header-box {
  display: flex;
  flex-direction: column;
}

.philosophy-subtag {
  font-family: 'Cinzel', serif;
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  color: #8A7B70;
  font-weight: 700;
  margin-bottom: 16px;
  display: block;
}

.philosophy-headline-myeongjo {
  font-family: var(--font-sans);
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1.3;
  color: #111827;
  letter-spacing: -0.025em;
  margin-bottom: 20px;
}

.philosophy-desc {
  font-family: var(--font-sans);
  font-size: 1.02rem;
  line-height: 1.8;
  color: #555555;
  margin-bottom: 28px;
}

.philosophy-divider-line {
  display: flex;
  align-items: center;
  gap: 12px;
}

.line-bar {
  width: 44px;
  height: 1.5px;
  background: #8A7B70;
}

.line-text {
  font-family: var(--font-sans);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  color: #8A7B70;
  text-transform: uppercase;
  font-weight: 700;
}

.philosophy-points-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.philo-point-card {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 20px 22px;
  background: #FAF8F5;
  border: 1px solid #ECE7E2;
  border-radius: 10px;
  transition: all 0.2s ease;
  font-family: var(--font-sans);
}

.philo-point-card:hover {
  background: #FFFFFF;
  border-color: #D4AF37;
  transform: translateX(4px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.04);
}

.philo-num {
  font-family: 'Cinzel', serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: #8A7B70;
  line-height: 1.2;
}

.philo-point-card h3 {
  font-family: var(--font-sans);
  font-size: 1.08rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 4px;
  letter-spacing: -0.02em;
}

.philo-point-card p {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  color: #666666;
  line-height: 1.55;
  margin: 0;
}

/* --------------------------------------------------------------------------
   Master Section 03: 4 Program Cards (목표에 맞는 배움의 길)
   -------------------------------------------------------------------------- */
.master-section-programs {
  padding: 80px 0 96px;
  background: #FAF9F7;
  border-top: 1px solid #ECE7E2;
}

.programs-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 36px;
}

.programs-subtag {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: #8A7B70;
  font-weight: 700;
  text-transform: uppercase;
  display: block;
  margin-bottom: 8px;
}

.programs-myeongjo-title {
  font-family: var(--font-sans);
  font-size: 2.2rem;
  font-weight: 800;
  color: #111827;
  letter-spacing: -0.025em;
}

.btn-view-all-link {
  font-family: var(--font-sans);
  background: none;
  border: none;
  font-size: 0.92rem;
  font-weight: 600;
  color: #333333;
  cursor: pointer;
  text-decoration: underline;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  transition: color 0.2s ease;
}

.btn-view-all-link:hover {
  color: #8A7B70;
}

.program-cards-editorial-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.editorial-card {
  font-family: var(--font-sans);
  background: #FFFFFF;
  border: 1px solid #EAE5E0;
  border-radius: 10px;
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.02);
  position: relative;
}

.editorial-card:hover {
  transform: translateY(-4px);
  border-color: #D4AF37;
  box-shadow: 0 12px 28px rgba(0,0,0,0.06);
}

.editorial-card.highlight-self {
  border-color: rgba(212, 175, 55, 0.6);
  background: linear-gradient(180deg, #FFFDF8 0%, #FFFFFF 100%);
}

.card-top-badge {
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #8A7B70;
  text-transform: uppercase;
  margin-bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.card-top-badge.gold {
  color: #B45309;
}

.card-content {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.card-title-myeongjo {
  font-family: var(--font-sans);
  font-size: 1.2rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 10px;
  letter-spacing: -0.02em;
}

.card-desc {
  font-family: var(--font-sans);
  font-size: 0.88rem;
  color: #666666;
  line-height: 1.6;
  margin-bottom: 20px;
  flex: 1;
}

.card-link-text {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 600;
  color: #5C524F;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap 0.2s ease;
}

.editorial-card:hover .card-link-text {
  gap: 9px;
  color: #111827;
}

/* Mobile Responsiveness for Master Editorial */
@media (max-width: 1024px) {
  .master-hero-editorial {
    min-height: 460px;
  }
  .hero-editorial-backdrop {
    width: 55%;
  }
  .philosophy-clean-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .program-cards-editorial-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .master-hero-editorial {
    min-height: auto;
    padding: 0;
    flex-direction: column-reverse;
  }
  .hero-editorial-backdrop {
    position: relative;
    width: 100%;
    height: 260px;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 50%, transparent 100%);
    mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 50%, transparent 100%);
  }
  .master-hero-editorial .showcase-container {
    padding: 24px 20px 36px;
  }
  .master-headline-myeongjo { font-size: 2.2rem; }
  .philosophy-headline-myeongjo { font-size: 2rem; }
  .programs-myeongjo-title { font-size: 1.7rem; }
  .program-cards-editorial-grid { grid-template-columns: 1fr; }
  .master-section-philosophy { padding: 50px 0; }
  .master-section-programs { padding: 50px 0; }
}


.showcase-wrapper {
  width: 100%;
  color: #1A1A1A;
  background: #FFFFFF;
  overflow-x: hidden;
}

.showcase-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}

.showcase-section {
  padding: 100px 0;
  position: relative;
}
.showcase-section.bg-light {
  background-color: #F8F9FA;
  border-top: 1px solid #ECEFF1;
  border-bottom: 1px solid #ECEFF1;
}
.showcase-section.bg-dark {
  background: #0D0F12;
  color: #FFFFFF;
}

.showcase-section-header {
  margin-bottom: 56px;
}
.showcase-section-header.text-center {
  text-align: center;
}
.showcase-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--gold-primary, #D4AF37);
  text-transform: uppercase;
  background: rgba(212, 175, 55, 0.1);
  border: 1px solid rgba(212, 175, 55, 0.3);
  padding: 4px 14px;
  border-radius: 9999px;
  margin-bottom: 14px;
}
.showcase-tag.gold-tag {
  background: rgba(212, 175, 55, 0.18);
  border-color: rgba(212, 175, 55, 0.4);
  color: #E6CA65;
}

.showcase-title {
  font-size: 2.25rem;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -0.025em;
  color: #111827;
  margin-bottom: 16px;
}
.showcase-title.text-white { color: #FFFFFF; }
.showcase-title strong {
  font-weight: 900;
  color: var(--gold-primary, #D4AF37);
}

.showcase-desc {
  font-size: 1.05rem;
  color: #6B7280;
  max-width: 720px;
  margin: 0 auto;
  line-height: 1.65;
}
.showcase-desc.text-gray { color: #9CA3AF; }

/* --------------------------------------------------------------------------
   Step 01: Showcase Hero
   -------------------------------------------------------------------------- */
.showcase-hero-section {
  padding: 90px 0 80px;
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF8F5 100%);
  border-bottom: 1px solid #ECE6DE;
  text-align: center;
}
.showcase-hero-inner {
  max-width: 960px;
  margin: 0 auto;
}
.showcase-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  background: #FFFFFF;
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: 9999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #856404;
  margin-bottom: 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.hero-badge-gem { color: var(--gold-primary, #D4AF37); }

.showcase-hero-title {
  font-size: 3.1rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.03em;
  color: #111827;
  margin-bottom: 20px;
}
.showcase-hero-title strong {
  color: #1A1A1A;
  background: linear-gradient(120deg, rgba(212, 175, 55, 0.15) 0%, rgba(212, 175, 55, 0.3) 100%);
  padding: 0 8px;
  border-radius: 4px;
}
.text-gold-serif {
  font-family: 'Cinzel', serif;
  color: var(--gold-primary, #D4AF37);
  font-weight: 900;
  letter-spacing: 0.02em;
}

.showcase-hero-subtitle {
  font-size: 1.18rem;
  line-height: 1.7;
  color: #4B5563;
  margin-bottom: 36px;
}

.showcase-hero-cta-group {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 56px;
}
.btn-showcase-primary {
  background: #09090B;
  color: #FFFFFF;
  border: 1px solid #09090B;
  padding: 15px 30px;
  border-radius: 10px;
  font-size: 1.02rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.2s ease;
  box-shadow: 0 4px 14px rgba(0,0,0,0.15);
}
.btn-showcase-primary:hover {
  background: #27272A;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.22);
}
.btn-showcase-secondary {
  background: #FFFFFF;
  color: #111827;
  border: 1.5px solid #D4AF37;
  padding: 15px 28px;
  border-radius: 10px;
  font-size: 1.02rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.2s ease;
}
.btn-showcase-secondary:hover {
  background: #FFFDF8;
  border-color: #B8860B;
  transform: translateY(-2px);
}
.btn-showcase-outline {
  background: transparent;
  color: #4B5563;
  border: 1px solid #D1D5DB;
  padding: 15px 24px;
  border-radius: 10px;
  font-size: 0.96rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.btn-showcase-outline:hover {
  background: #F3F4F6;
  color: #111827;
}

.showcase-hero-pillars {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 28px;
  padding: 22px 32px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
.pillar-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.pillar-item strong {
  font-size: 1.15rem;
  font-weight: 800;
  color: #111827;
}
.pillar-item span {
  font-size: 0.8rem;
  color: #6B7280;
}
.pillar-divider {
  width: 1px;
  height: 32px;
  background: #E5E7EB;
}

/* Header Direct Entry Button */
.btn-classroom-entry {
  background: linear-gradient(135deg, #1A1A1A 0%, #2A2A2A 100%);
  color: #FFFFFF;
  border: 1px solid rgba(212, 175, 55, 0.4);
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.btn-classroom-entry:hover {
  border-color: #D4AF37;
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.3);
  transform: translateY(-1px);
}
.header-right-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* --------------------------------------------------------------------------
   Step 02: Target Cards
   -------------------------------------------------------------------------- */
.target-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.target-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all 0.25s ease;
}
.target-card:hover {
  transform: translateY(-4px);
  border-color: #CBD5E1;
  box-shadow: 0 12px 24px rgba(0,0,0,0.06);
}
.target-card.highlight {
  border-color: #D4AF37;
  background: linear-gradient(180deg, #FFFFFF 0%, #FFFDF9 100%);
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.1);
}
.target-num {
  font-size: 1.6rem;
  font-weight: 900;
  font-family: 'Cinzel', serif;
  color: #D1D5DB;
  margin-bottom: 12px;
}
.target-card.highlight .target-num {
  color: var(--gold-primary, #D4AF37);
}
.target-card h3 {
  font-size: 1.15rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 10px;
  line-height: 1.4;
}
.target-card p {
  font-size: 0.92rem;
  color: #6B7280;
  line-height: 1.6;
  margin-bottom: 20px;
  flex: 1;
}
.target-badge {
  font-size: 0.76rem;
  font-weight: 700;
  padding: 4px 10px;
  background: #F3F4F6;
  color: #4B5563;
  border-radius: 6px;
  align-self: flex-start;
}
.target-badge.gold {
  background: rgba(212, 175, 55, 0.15);
  color: #856404;
}

/* --------------------------------------------------------------------------
   Step 03: Why Grid Layout
   -------------------------------------------------------------------------- */
.why-grid-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.why-quote-text {
  font-size: 1.08rem;
  line-height: 1.8;
  color: #4B5563;
  margin: 24px 0 28px;
  padding-left: 18px;
  border-left: 3px solid var(--gold-primary, #D4AF37);
}
.why-author-sign {
  display: flex;
  flex-direction: column;
}
.why-author-sign strong {
  font-size: 1.15rem;
  color: #111827;
}
.why-author-sign span {
  font-size: 0.85rem;
  color: #856404;
  font-weight: 600;
}
.why-right-cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.why-feature-box {
  background: #FAF8F5;
  border: 1px solid #ECE6DE;
  border-radius: 14px;
  padding: 22px 24px;
  display: flex;
  gap: 18px;
  transition: all 0.2s ease;
}
.why-feature-box:hover {
  background: #FFFFFF;
  border-color: #D4AF37;
  box-shadow: 0 8px 20px rgba(0,0,0,0.04);
}
.why-feature-box .feat-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(212, 175, 55, 0.15);
  color: var(--gold-primary, #D4AF37);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}
.why-feature-box .feat-info h4 {
  font-size: 1.05rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 6px;
}
.why-feature-box .feat-info p {
  font-size: 0.88rem;
  color: #6B7280;
  line-height: 1.55;
  margin: 0;
}

/* --------------------------------------------------------------------------
   Step 04: 4-Layer Method
   -------------------------------------------------------------------------- */
.method-four-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.method-layer-card {
  background: #181B20;
  border: 1px solid #2A2F37;
  border-radius: 16px;
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  transition: all 0.25s ease;
}
.method-layer-card:hover {
  transform: translateY(-4px);
  border-color: #4B5563;
}
.method-layer-card.highlight-gold {
  border-color: #D4AF37;
  background: #201E17;
  box-shadow: 0 4px 20px rgba(212, 175, 55, 0.15);
}
.layer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}
.layer-step {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #9CA3AF;
  background: rgba(255,255,255,0.08);
  padding: 3px 8px;
  border-radius: 4px;
}
.layer-step.gold {
  color: #E6CA65;
  background: rgba(212, 175, 55, 0.2);
}
.layer-icon {
  font-size: 1.4rem;
  color: #9CA3AF;
}
.method-layer-card h3 {
  font-size: 1.25rem;
  font-weight: 900;
  color: #FFFFFF;
  margin-bottom: 4px;
  letter-spacing: -0.01em;
}
.layer-subtitle {
  font-size: 0.8rem;
  color: #E6CA65;
  font-weight: 600;
  margin-bottom: 14px;
  display: block;
}
.method-layer-card p {
  font-size: 0.88rem;
  color: #9CA3AF;
  line-height: 1.6;
  margin: 0;
}

/* --------------------------------------------------------------------------
   Step 05: SELF STUDY Card
   -------------------------------------------------------------------------- */
.self-hero-card {
  background: #FFFFFF;
  border: 2px solid #D4AF37;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 12px 36px rgba(212, 175, 55, 0.12);
  position: relative;
}
.self-card-badge-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.badge-flagship {
  background: #09090B;
  color: #E6CA65;
  padding: 5px 12px;
  border-radius: 6px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.badge-period {
  background: rgba(212, 175, 55, 0.15);
  color: #856404;
  padding: 5px 12px;
  border-radius: 6px;
  font-size: 0.76rem;
  font-weight: 700;
}

.self-card-main-grid {
  display: grid;
  grid-template-columns: 1.4fr 0.9fr;
  gap: 40px;
  align-items: start;
}
.self-main-title {
  font-size: 2rem;
  font-weight: 900;
  color: #111827;
  margin-bottom: 12px;
}
.self-tagline {
  font-size: 1.02rem;
  color: #4B5563;
  line-height: 1.65;
  margin-bottom: 24px;
  padding-left: 12px;
  border-left: 3px solid #D4AF37;
}
.self-features-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}
.feat-row {
  font-size: 0.92rem;
  color: #374151;
  display: flex;
  align-items: center;
  gap: 10px;
}
.feat-row.highlight-row {
  background: #FFFDF5;
  border: 1px dashed rgba(212, 175, 55, 0.5);
  padding: 8px 12px;
  border-radius: 8px;
  color: #856404;
}

/* Showcase 17-Lecture PART Accordion */
.self-curriculum-accordion-box {
  margin-top: 20px;
}
.curriculum-accordion-title {
  font-size: 0.95rem;
  font-weight: 800;
  color: #1F2937;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.landing-part-accordion {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.landing-part-item {
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  overflow: hidden;
  background: #FFFFFF;
  transition: all 0.2s ease;
}
.landing-part-item.open {
  border-color: #D4AF37;
  box-shadow: 0 4px 14px rgba(212, 175, 55, 0.08);
}
.landing-part-header {
  padding: 12px 16px;
  background: #FAF8F5;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  user-select: none;
  transition: background 0.2s ease;
}
.landing-part-item.open .landing-part-header {
  background: #FFFDF8;
  border-bottom: 1px solid #ECE6DE;
}
.landing-part-header:hover {
  background: #F3ECE2;
}
.part-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.part-badge {
  font-size: 0.7rem;
  font-weight: 800;
  background: #09090B;
  color: #E6CA65;
  padding: 2px 7px;
  border-radius: 4px;
  letter-spacing: 0.04em;
}
.landing-part-header strong {
  font-size: 0.9rem;
  color: #111827;
  font-weight: 700;
}
.part-count {
  font-size: 0.76rem;
  color: #6B7280;
}
.part-chevron {
  font-size: 0.78rem;
  color: #9CA3AF;
  transition: transform 0.25s ease;
}
.landing-part-item.open .part-chevron {
  transform: rotate(180deg);
  color: #D4AF37;
}
.landing-part-body {
  display: none;
  padding: 12px 18px;
  background: #FFFFFF;
}
.landing-part-item.open .landing-part-body {
  display: block;
}
.part-lecture-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.part-lecture-list li {
  font-size: 0.84rem;
  color: #4B5563;
  display: flex;
  flex-direction: column;
  padding: 6px 0;
  border-bottom: 1px dashed #F0ECE6;
}
.part-lecture-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.part-lecture-list li strong {
  color: #111827;
  font-size: 0.86rem;
  font-weight: 700;
  margin-bottom: 2px;
}
.part-lecture-list li span {
  font-size: 0.78rem;
  color: #6B7280;
  line-height: 1.45;
}

/* Pricing Card Box */
.self-card-pricing-box {
  background: #FAF8F5;
  border: 1px solid #E8DFD3;
  border-radius: 16px;
  padding: 28px;
  text-align: center;
}
.price-type-tag {
  font-size: 0.78rem;
  font-weight: 800;
  color: #856404;
  background: rgba(212, 175, 55, 0.2);
  padding: 4px 12px;
  border-radius: 9999px;
  display: inline-block;
  margin-bottom: 14px;
}
.price-display {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 8px;
}
.price-amount {
  font-size: 2.8rem;
  font-weight: 900;
  font-family: 'Cinzel', sans-serif;
  color: #111827;
  letter-spacing: -0.03em;
}
.price-unit {
  font-size: 1.1rem;
  font-weight: 700;
  color: #4B5563;
}
.price-unit small {
  font-size: 0.78rem;
  color: #9CA3AF;
  font-weight: 500;
}
.price-note {
  font-size: 0.85rem;
  color: #6B7280;
  margin-bottom: 24px;
}
.pricing-cta-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 18px;
}
.btn-enroll-primary {
  background: #09090B;
  color: #FFFFFF;
  border: none;
  padding: 14px;
  border-radius: 10px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.btn-enroll-primary:hover {
  background: #27272A;
  transform: translateY(-2px);
}
.btn-enroll-trial {
  background: #FFFFFF;
  color: #111827;
  border: 1.5px solid #D4AF37;
  padding: 12px;
  border-radius: 10px;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.btn-enroll-trial:hover {
  background: #FFFDF5;
}
.pricing-guarantee {
  font-size: 0.76rem;
  color: #856404;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* --------------------------------------------------------------------------
   Step 06: MASTER CLASS Card
   -------------------------------------------------------------------------- */
.master-class-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 20px;
  padding: 36px 40px;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  align-items: center;
}
.master-title {
  font-size: 1.9rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 12px;
}
.master-desc {
  font-size: 0.98rem;
  color: #4B5563;
  line-height: 1.65;
  margin-bottom: 24px;
}
.master-specs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.spec-item {
  background: #FAF8F5;
  border: 1px solid #ECE6DE;
  padding: 14px 16px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
}
.spec-item strong {
  font-size: 0.95rem;
  color: #111827;
  font-weight: 800;
}
.spec-item span {
  font-size: 0.78rem;
  color: #6B7280;
}

.master-card-right {
  background: #09090B;
  color: #FFFFFF;
  border-radius: 16px;
  padding: 30px;
  text-align: center;
}
.master-pricing-badge {
  font-size: 0.75rem;
  font-weight: 800;
  color: #E6CA65;
  background: rgba(212, 175, 55, 0.2);
  display: inline-block;
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 14px;
}
.master-price-wrap { margin-bottom: 20px; }
.price-strike {
  font-size: 0.92rem;
  color: #9CA3AF;
  text-decoration: line-through;
  display: block;
  margin-bottom: 4px;
}
.master-earlybird {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.earlybird-tag {
  font-size: 0.76rem;
  font-weight: 800;
  background: #D4AF37;
  color: #09090B;
  padding: 2px 8px;
  border-radius: 4px;
}
.early-price {
  font-size: 2.1rem;
  font-weight: 900;
  color: #FFFFFF;
}
.early-price small {
  font-size: 0.78rem;
  color: #9CA3AF;
  font-weight: 500;
}
.btn-master-apply {
  width: 100%;
  background: linear-gradient(135deg, #D4AF37 0%, #B8860B 100%);
  color: #09090B;
  border: none;
  padding: 14px;
  border-radius: 10px;
  font-size: 0.98rem;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.btn-master-apply:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.4);
}

/* --------------------------------------------------------------------------
   Step 06-B: SELF STUDY vs MASTER CLASS Course Comparison Table
   -------------------------------------------------------------------------- */
.course-compare-table-wrap {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
  margin-bottom: 32px;
}
.course-compare-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}
.course-compare-table th,
.course-compare-table td {
  padding: 18px 24px;
  border-bottom: 1px solid #F0ECE6;
  font-size: 0.93rem;
  vertical-align: middle;
}
.course-compare-table thead th {
  background: #FAF8F5;
  border-bottom: 2px solid #E8DFD3;
  padding: 28px 24px;
  vertical-align: top;
}
.th-feature {
  width: 26%;
  font-size: 1rem;
  font-weight: 800;
  color: #374151;
}
.th-self {
  width: 37%;
  background: #FFFDF8 !important;
  border-left: 1px solid #E8DFD3;
  border-right: 1px solid #E8DFD3;
}
.th-master {
  width: 37%;
  background: #F8F7F4 !important;
}

.compare-card-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.compare-badge {
  font-size: 0.72rem;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 9999px;
  letter-spacing: 0.04em;
}
.compare-badge.self {
  background: #09090B;
  color: #E6CA65;
}
.compare-badge.master {
  background: rgba(212, 175, 55, 0.2);
  color: #856404;
}
.compare-card-head h3 {
  font-size: 1.35rem;
  font-weight: 800;
  color: #111827;
  margin: 0;
}
.compare-head-desc {
  font-size: 0.85rem;
  color: #6B7280;
  margin: 0;
}
.compare-price {
  font-size: 1.5rem;
  font-weight: 900;
  font-family: 'Cinzel', sans-serif;
  color: #111827;
  margin: 6px 0;
}
.compare-price small {
  font-size: 0.8rem;
  color: #6B7280;
  font-family: 'Pretendard', sans-serif;
  font-weight: 500;
}
.btn-compare-action {
  width: 100%;
  padding: 10px 16px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: all 0.2s ease;
  margin-top: 6px;
  text-align: center;
}
.btn-compare-action.self {
  background: #09090B;
  color: #FFFFFF;
}
.btn-compare-action.self:hover {
  background: #27272A;
  transform: translateY(-1px);
}
.btn-compare-action.master {
  background: linear-gradient(135deg, #D4AF37 0%, #B8860B 100%);
  color: #09090B;
}
.btn-compare-action.master:hover {
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
  transform: translateY(-1px);
}

.td-label {
  font-weight: 700;
  color: #1F2937;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 24px;
}
.td-label i {
  color: var(--gold-primary);
  width: 16px;
  text-align: center;
}
.td-sub {
  font-size: 0.8rem;
  color: #6B7280;
  display: block;
  margin-top: 2px;
}
.course-compare-table tbody tr:hover {
  background: #FAF9F6;
}
.table-price-box {
  display: flex;
  flex-direction: column;
}
.table-price-box .price-val {
  font-size: 1.25rem;
  font-weight: 900;
  color: #111827;
}
.table-price-box span {
  font-size: 0.78rem;
  color: #6B7280;
}
.table-price-box.master .price-val {
  color: #B8860B;
}

/* Philosophy Note Card */
.comparison-philosophy-card {
  background: #FFFDF8;
  border: 1px solid #E8DFD3;
  border-left: 4px solid var(--gold-primary);
  border-radius: 14px;
  padding: 24px 30px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.philo-icon {
  font-size: 1.8rem;
  line-height: 1;
  color: var(--gold-primary);
  flex-shrink: 0;
  margin-top: 4px;
}
.philo-content h4 {
  font-size: 1.1rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 8px;
}
.philo-content p {
  font-size: 0.92rem;
  color: #4B5563;
  line-height: 1.7;
  margin: 0;
}

/* --------------------------------------------------------------------------
   Step 07: 단과 LAB
   -------------------------------------------------------------------------- */
.lab-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.lab-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  padding: 24px;
  cursor: pointer;
  transition: all 0.25s ease;
  display: flex;
  flex-direction: column;
}
.lab-card:hover {
  border-color: #D4AF37;
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}
.lab-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.lab-code {
  font-size: 0.72rem;
  font-weight: 800;
  background: #F3F4F6;
  color: #4B5563;
  padding: 3px 8px;
  border-radius: 4px;
}
.lab-icon {
  font-size: 1.2rem;
}
.lab-card h3 {
  font-size: 1.08rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 8px;
  line-height: 1.4;
}
.lab-card p {
  font-size: 0.85rem;
  color: #6B7280;
  line-height: 1.5;
  margin-bottom: 14px;
  flex: 1;
}
.lab-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 18px;
}
.lab-tags span {
  font-size: 0.72rem;
  color: #856404;
  background: rgba(212, 175, 55, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
}
.lab-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #F3F4F6;
  padding-top: 12px;
}
.lab-price {
  font-size: 1.05rem;
  font-weight: 800;
  color: #111827;
}
.btn-lab-link {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--gold-primary, #D4AF37);
}

/* --------------------------------------------------------------------------
   Step 08: Offline Ecosystem
   -------------------------------------------------------------------------- */
.offline-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.offline-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  transition: all 0.25s ease;
}
.offline-card:hover {
  border-color: #CBD5E1;
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.06);
}
.offline-icon-wrap {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: #FAF8F5;
  border: 1px solid #ECE6DE;
  color: var(--gold-primary, #D4AF37);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  margin-bottom: 18px;
}
.offline-badge {
  font-size: 0.74rem;
  font-weight: 800;
  color: #856404;
  margin-bottom: 8px;
}
.offline-card h3 {
  font-size: 1.25rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 10px;
}
.offline-card p {
  font-size: 0.9rem;
  color: #6B7280;
  line-height: 1.6;
  margin-bottom: 20px;
  flex: 1;
}
.offline-price-info {
  background: #FAF8F5;
  border-radius: 8px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.85rem;
}
.offline-price-info strong {
  color: #111827;
}

/* --------------------------------------------------------------------------
   Step 09: Founder Story
   -------------------------------------------------------------------------- */
.founder-story-section {
  background: #FAF8F5;
  border-top: 1px solid #ECE6DE;
  border-bottom: 1px solid #ECE6DE;
}
.founder-story-inner {
  display: grid;
  grid-template-columns: 0.9fr 1.5fr;
  gap: 48px;
  align-items: center;
}
.founder-media-col {
  text-align: center;
}
.founder-photo {
  width: 100%;
  max-width: 340px;
  border-radius: 20px;
  box-shadow: 0 12px 36px rgba(0,0,0,0.12);
  margin-bottom: 20px;
  border: 3px solid #FFFFFF;
}
.founder-creds h4 {
  font-size: 1.3rem;
  font-weight: 800;
  color: #111827;
  margin-bottom: 4px;
}
.founder-creds p {
  font-size: 0.85rem;
  color: #856404;
  font-weight: 700;
  margin-bottom: 14px;
}
.founder-creds ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.85rem;
  color: #4B5563;
}

.founder-title {
  font-size: 2.1rem;
  font-weight: 800;
  color: #111827;
  line-height: 1.35;
  margin-bottom: 24px;
}
.founder-letter {
  font-size: 1.02rem;
  line-height: 1.8;
  color: #374151;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.founder-quote {
  margin: 8px 0;
  padding: 16px 20px;
  background: #FFFFFF;
  border-left: 4px solid var(--gold-primary, #D4AF37);
  border-radius: 0 10px 10px 0;
  font-style: italic;
  color: #1F2937;
  font-size: 1.05rem;
}

/* --------------------------------------------------------------------------
   Step 10: CTA Funnel
   -------------------------------------------------------------------------- */
.cta-box-inner {
  max-width: 800px;
  margin: 0 auto;
}
.cta-buttons-row {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin: 36px 0 24px;
}
.btn-cta-gold {
  background: linear-gradient(135deg, #D4AF37 0%, #B8860B 100%);
  color: #09090B;
  border: none;
  padding: 16px 32px;
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(212, 175, 55, 0.3);
}
.btn-cta-gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(212, 175, 55, 0.45);
}
.btn-cta-code {
  background: #181B20;
  color: #FFFFFF;
  border: 1px solid #374151;
  padding: 16px 28px;
  border-radius: 10px;
  font-size: 1.02rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all 0.2s ease;
}
.btn-cta-code:hover {
  background: #27272A;
  border-color: #D4AF37;
}
.btn-cta-free {
  background: transparent;
  color: #E5E7EB;
  border: 1px solid #4B5563;
  padding: 16px 24px;
  border-radius: 10px;
  font-size: 0.98rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.btn-cta-free:hover {
  background: rgba(255,255,255,0.05);
}
.cta-direct-campus-link {
  font-size: 0.9rem;
  color: #9CA3AF;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn-campus-link {
  background: none;
  border: none;
  color: #E6CA65;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  font-size: 0.9rem;
}

/* ==========================================================================
   Responsive Mobile Optimizations for Showcase
   ========================================================================== */
@media (max-width: 1024px) {
  .target-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .method-four-grid { grid-template-columns: repeat(2, 1fr); }
  .self-card-main-grid { grid-template-columns: 1fr; }
  .master-class-card { grid-template-columns: 1fr; }
  .lab-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .offline-cards-grid { grid-template-columns: 1fr; }
  .founder-story-inner { grid-template-columns: 1fr; }
  .why-grid-layout { grid-template-columns: 1fr; }
}

/* ==========================================================================
   MASTER DIRECTOR MEMBER MANAGEMENT & ANALYTICS DASHBOARD CSS
   ========================================================================== */

.admin-dashboard-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 32px 20px 80px 20px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

/* Header Card */
.admin-header-card {
  background: linear-gradient(135deg, #18181B 0%, #09090B 100%);
  border: 1px solid rgba(212, 160, 23, 0.35);
  border-radius: var(--radius-lg);
  padding: 28px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
  color: #FAFAFA;
}
.admin-badge-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.admin-live-pulse {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  color: #10B981;
  font-weight: 700;
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
  padding: 2px 10px;
  border-radius: var(--radius-full);
}
.pulse-dot {
  width: 7px;
  height: 7px;
  background: #10B981;
  border-radius: 50%;
  box-shadow: 0 0 8px #10B981;
  animation: pulseGreen 1.5s infinite;
}
@keyframes pulseGreen {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.3); }
}
.admin-title {
  font-size: 1.45rem;
  font-weight: 900;
  color: #FFFFFF;
  margin-bottom: 6px;
  letter-spacing: -0.02em;
}
.admin-subtitle {
  font-size: 0.88rem;
  color: #A1A1AA;
  line-height: 1.5;
  margin: 0;
}
.admin-header-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}
.btn-admin-primary {
  background: linear-gradient(135deg, #D4A017 0%, #B8860B 100%);
  color: #09090B;
  border: none;
  font-weight: 800;
  font-size: 0.88rem;
  padding: 12px 20px;
  border-radius: var(--radius-md);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  box-shadow: 0 4px 16px rgba(212, 160, 23, 0.35);
}
.btn-admin-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(212, 160, 23, 0.5);
}
.btn-admin-outline {
  background: rgba(255, 255, 255, 0.08);
  color: #FAFAFA;
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-weight: 700;
  font-size: 0.88rem;
  padding: 12px 18px;
  border-radius: var(--radius-md);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
}
.btn-admin-outline:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #FFFFFF;
}

/* KPI Metrics Grid */
.admin-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.admin-stat-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}
.admin-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--gold-border);
}
.stat-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
}
.gold-icon-box { background: #FFFBEB; color: #D4A017; border: 1px solid rgba(212, 160, 23, 0.3); }
.fire-icon-box { background: #FEF2F2; color: #EF4444; border: 1px solid rgba(239, 68, 68, 0.3); }
.warning-icon-box { background: #FFF7ED; color: #F97316; border: 1px solid rgba(249, 115, 22, 0.3); }
.diploma-icon-box { background: #F0FDF4; color: #10B981; border: 1px solid rgba(16, 185, 129, 0.3); }

.stat-content {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.stat-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #71717A;
}
.stat-value {
  font-size: 1.6rem;
  font-weight: 900;
  color: #09090B;
  letter-spacing: -0.02em;
}
.stat-unit {
  font-size: 0.95rem;
  font-weight: 600;
  margin-left: 2px;
  color: #71717A;
}
.stat-trend {
  font-size: 0.72rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.trend-up { color: #10B981; }
.trend-down { color: #EF4444; }

/* Table Card & Toolbar */
.admin-table-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.table-header-toolbar {
  padding: 18px 24px;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: #FAFAFA;
}
.toolbar-search-box {
  position: relative;
  min-width: 320px;
}
.toolbar-search-box .search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #A1A1AA;
  font-size: 0.85rem;
}
.toolbar-search-box input {
  width: 100%;
  padding: 10px 14px 10px 36px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  font-size: 0.85rem;
  background: #FFFFFF;
  transition: var(--transition);
}
.toolbar-search-box input:focus {
  outline: none;
  border-color: #D4A017;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.15);
}

.toolbar-filter-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.filter-tab-pill {
  padding: 8px 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border);
  background: #FFFFFF;
  color: #52525B;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
}
.filter-tab-pill:hover {
  background: #F4F4F5;
  color: #09090B;
}
.filter-tab-pill.active {
  background: #09090B;
  color: #FAFAFA;
  border-color: #09090B;
}

/* Table Responsive */
.admin-table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.admin-student-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}
.admin-student-table th {
  background: #F4F4F5;
  padding: 14px 18px;
  font-size: 0.78rem;
  font-weight: 800;
  color: #52525B;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.admin-student-table td {
  padding: 16px 18px;
  font-size: 0.84rem;
  border-bottom: 1px solid #F1F5F9;
  vertical-align: middle;
}
.admin-student-table tr:hover td {
  background: #FFFDF5;
}

/* Student Info Cell */
.student-profile-cell {
  display: flex;
  align-items: center;
  gap: 12px;
}
.student-avatar-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #FDE68A 0%, #F59E0B 100%);
  color: #78350F;
  font-weight: 900;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.student-name-box {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.student-real-name {
  font-weight: 800;
  color: #09090B;
  font-size: 0.88rem;
}
.student-contact {
  font-size: 0.75rem;
  color: #71717A;
}

/* Course Badge */
.student-course-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}
.badge-course-basic { background: #EEF2FF; color: #4338CA; border: 1px solid #C7D2FE; }
.badge-course-lab { background: #FEF3C7; color: #92400E; border: 1px solid #FDE68A; }
.badge-course-vip { background: #FAF5FF; color: #6B21A8; border: 1px solid #E9D5FF; }

/* Code Pill */
.student-code-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  padding: 4px 10px;
  border-radius: 6px;
  font-family: monospace;
  font-size: 0.82rem;
  font-weight: 700;
  color: #0F172A;
}
.btn-table-copy {
  background: none;
  border: none;
  color: #64748B;
  cursor: pointer;
  padding: 2px 4px;
  font-size: 0.8rem;
}
.btn-table-copy:hover { color: #D4A017; }

/* Progress Bar in Table */
.progress-cell-box {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 140px;
}
.progress-info-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.76rem;
  font-weight: 700;
}
.progress-track-mini {
  width: 100%;
  height: 7px;
  background: #E2E8F0;
  border-radius: var(--radius-full);
  overflow: hidden;
}
.progress-fill-mini {
  height: 100%;
  background: linear-gradient(90deg, #D4A017 0%, #10B981 100%);
  border-radius: var(--radius-full);
  transition: width 0.3s ease;
}

/* Status Badges */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}
.status-studying { background: #FEF2F2; color: #DC2626; border: 1px solid #FECACA; }
.status-normal { background: #ECFDF5; color: #059669; border: 1px solid #A7F3D0; }
.status-warning { background: #FFF7ED; color: #EA580C; border: 1px solid #FED7AA; }
.status-completed { background: #FFFBEB; color: #B45309; border: 1px solid #FDE68A; }

/* Action Buttons in Table */
.table-actions-cell {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.btn-table-kakao {
  background: #FEE500;
  color: #191919;
  border: 1px solid #E6CF00;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
}
.btn-table-kakao:hover {
  background: #FADA0A;
  transform: translateY(-1px);
}
.btn-table-detail {
  background: #FFFFFF;
  color: #334155;
  border: 1px solid #CBD5E1;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: var(--transition);
}
.btn-table-detail:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.table-footer-summary {
  padding: 14px 24px;
  background: #FAFAFA;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82rem;
  color: #71717A;
  flex-wrap: wrap;
  gap: 10px;
}
.admin-sync-hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #10B981;
  font-weight: 700;
}

/* Create Student Modal Form */
.create-student-modal-card { max-width: 580px; }
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.generated-code-box {
  background: #FFFBEB;
  border: 1px solid var(--gold-border);
  border-radius: var(--radius-md);
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 10px 0;
}
.gen-code-label {
  font-size: 0.78rem;
  font-weight: 800;
  color: #92400E;
  display: flex;
  align-items: center;
  gap: 6px;
}
.gen-code-display {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #FFFFFF;
  border: 1px solid #FDE68A;
  padding: 8px 14px;
  border-radius: 8px;
}
.gen-code-display strong {
  font-family: monospace;
  font-size: 1.05rem;
  color: #09090B;
  letter-spacing: 0.05em;
}
.btn-copy-code {
  background: #09090B;
  color: #FAFAFA;
  border: none;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 800;
  cursor: pointer;
}
.btn-copy-code:hover { background: #D4A017; color: #09090B; }
.gen-code-note {
  font-size: 0.72rem;
  color: #78350F;
}
.create-student-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border-top: 1px solid var(--border);
  padding-top: 16px;
  margin-top: 10px;
}

/* Student Progress Checklist Modal */
.student-progress-modal-card { max-width: 680px; }
.progress-modal-header {
  border-bottom: 1px solid var(--border);
  padding-bottom: 16px;
  margin-bottom: 16px;
}
.progress-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.progress-student-title {
  font-size: 1.15rem;
  font-weight: 900;
  color: #09090B;
}
.progress-checklist-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 55vh;
  overflow-y: auto;
  padding-right: 6px;
}
.progress-part-group {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 12px 14px;
}
.progress-part-title {
  font-size: 0.84rem;
  font-weight: 800;
  color: #0F172A;
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
}
.progress-lec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid #EDF2F7;
  font-size: 0.8rem;
}
.progress-lec-row:last-child { border-bottom: none; }
.progress-lec-name {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #334155;
}
.badge-check-done {
  color: #10B981;
  font-weight: 800;
}
.badge-check-wait {
  color: #94A3B8;
}
.progress-modal-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--border);
  padding-top: 16px;
  margin-top: 16px;
}

@media (max-width: 992px) {
  .admin-metrics-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-header-card { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 768px) {
  .admin-metrics-grid { grid-template-columns: 1fr; }
  .form-grid-2 { grid-template-columns: 1fr; }
  .toolbar-search-box { min-width: 100%; }
}

/* Fast Director Login Entry */
.auth-director-entry-box {
  border-top: 1px solid var(--border);
  padding-top: 14px;
  margin-top: 14px;
  text-align: center;
}
.btn-director-fast-login {
  background: linear-gradient(135deg, #18181B 0%, #09090B 100%);
  color: #D4A017;
  border: 1px solid rgba(212, 160, 23, 0.4);
  padding: 11px 18px;
  border-radius: var(--radius-md);
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: var(--transition);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.btn-director-fast-login:hover {
  background: #000000;
  border-color: #D4A017;
  color: #FFFFFF;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(212, 160, 23, 0.25);
}

/* Header Admin Pill Button */
.btn-header-admin {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #18181B 0%, #09090B 100%);
  color: #F59E0B;
  border: 1px solid rgba(245, 158, 11, 0.45);
  padding: 6px 14px;
  border-radius: 9999px;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.25);
  transition: all 0.2s ease;
  white-space: nowrap;
}
.btn-header-admin:hover {
  background: #000000;
  border-color: #F59E0B;
  color: #FBBF24;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
}

/* Mobile Bottom Nav Admin Tab */
.mobile-nav-item.mobile-nav-admin {
  color: #D97706;
  font-weight: 800;
}
.mobile-nav-item.mobile-nav-admin i {
  color: #F59E0B;
  font-size: 1.25rem;
}
.mobile-nav-item.mobile-nav-admin.active {
  color: #B45309;
}
.mobile-nav-item.mobile-nav-admin.active i {
  color: #D97706;
  transform: scale(1.15);
}

/* Floating Quick Admin Button (FAB) */
.floating-admin-fab {
  position: fixed;
  bottom: 80px;
  right: 18px;
  z-index: 1300;
  background: linear-gradient(135deg, #18181B 0%, #000000 100%);
  color: #F59E0B;
  border: 2px solid rgba(245, 158, 11, 0.5);
  border-radius: 9999px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.86rem;
  font-weight: 800;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 12px rgba(245, 158, 11, 0.3);
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
  -webkit-tap-highlight-color: transparent;
}
.floating-admin-fab:hover, .floating-admin-fab:active {
  transform: scale(1.06);
  border-color: #FBBF24;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5), 0 0 18px rgba(245, 158, 11, 0.5);
}
.floating-admin-fab .fab-icon-wrap {
  width: 26px;
  height: 26px;
  background: rgba(245, 158, 11, 0.15);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 1024px) {
  /* On desktop, keep floating fab subtle or bottom-right */
  .floating-admin-fab {
    bottom: 28px;
    right: 28px;
  }
}

/* Auth Modal Director Active Banner */
.auth-director-active-banner {
  background: linear-gradient(135deg, rgba(212, 160, 23, 0.12), rgba(0, 0, 0, 0.4));
  border: 1px solid rgba(212, 160, 23, 0.35);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
  margin-bottom: 16px;
  text-align: left;
}
.director-banner-content {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.director-banner-content i {
  font-size: 1.4rem;
  flex-shrink: 0;
}
.director-banner-content strong {
  display: block;
  font-size: 0.92rem;
  color: var(--foreground);
}
.director-banner-content p {
  margin: 2px 0 0 0;
  font-size: 0.78rem;
  color: var(--muted-foreground);
}

/* ==========================================================================
   JOY ACADEMY DIGITAL TEXTBOOK READER & SELF-CHECK LMS STYLES (CHAPTER 01)
   ========================================================================== */

/* 1. Subtabs Navigation Bar */
.lec-subtabs-nav {
  display: flex;
  gap: 8px;
  border-bottom: 2px solid var(--border);
  margin-bottom: 24px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: thin;
}
.lec-subtab-btn {
  background: #F4F4F5;
  color: var(--muted-foreground);
  border: 1px solid var(--border);
  padding: 10px 18px;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  transition: all 0.2s ease;
}
.lec-subtab-btn:hover {
  background: #ECECEE;
  color: var(--foreground);
}
.lec-subtab-btn.active {
  background: #FFFFFF;
  color: #B45309;
  border-color: var(--gold-primary) var(--gold-primary) #FFFFFF var(--gold-primary);
  border-bottom: 2px solid #FFFFFF;
  margin-bottom: -2px;
  font-weight: 700;
  box-shadow: 0 -2px 8px rgba(212, 160, 23, 0.12);
}

/* 2. Tab Panes */
.lec-tab-pane {
  display: none;
  animation: fadeInPane 0.3s ease;
}
.lec-tab-pane.active {
  display: block;
}
@keyframes fadeInPane {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 3. Textbook Reader Container */
.joy-textbook-reader {
  display: flex;
  flex-direction: column;
  gap: 28px;
  font-family: inherit;
  color: #27272A;
  line-height: 1.75;
}

/* 3.1 Chapter Header Card */
.tb-header-card {
  background: linear-gradient(135deg, #18181B 0%, #09090B 100%);
  border: 1px solid rgba(212, 160, 23, 0.4);
  border-radius: var(--radius-xl);
  padding: 28px;
  color: #FAFAFA;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  position: relative;
  overflow: hidden;
}
.tb-header-card::before {
  content: "";
  position: absolute;
  top: 0; right: 0; width: 220px; height: 100%;
  background: radial-gradient(circle at top right, rgba(212, 160, 23, 0.2), transparent 70%);
  pointer-events: none;
}
.tb-chapter-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(212, 160, 23, 0.15);
  border: 1px solid rgba(212, 160, 23, 0.4);
  padding: 4px 12px;
  border-radius: var(--radius-full);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--gold-primary);
  margin-bottom: 12px;
}
.gold-pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #FBBF24;
  box-shadow: 0 0 8px #FBBF24;
}
.tb-main-title {
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 6px 0;
  color: #FFFFFF;
}
.tb-subtitle {
  font-size: 0.95rem;
  color: #A1A1AA;
  margin: 0 0 20px 0;
}
.tb-objectives-box {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  padding: 20px;
}
.tb-obj-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: #FBBF24;
  margin-bottom: 6px;
}
.tb-obj-sub {
  font-size: 0.84rem;
  color: #D4D4D8;
  margin: 0 0 14px 0;
}
.tb-obj-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tb-obj-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.92rem;
  color: #F4F4F5;
}
.tb-obj-list li i {
  margin-top: 4px;
  flex-shrink: 0;
}

/* 3.2 Section Cards */
.tb-section-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 26px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}
.tb-section-title {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--foreground);
  margin: 0 0 18px 0;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 2px solid #F4F4F5;
  padding-bottom: 12px;
}
.section-num {
  background: var(--gold-light);
  color: #B45309;
  font-size: 0.9rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
}
.tb-section-intro {
  font-size: 0.95rem;
  color: var(--muted-foreground);
  margin-bottom: 18px;
}

/* 3.3 Evidence Box */
.tb-evidence-box {
  background: #FFFDF7;
  border: 1px solid rgba(212, 160, 23, 0.35);
  border-left: 4px solid var(--gold-primary);
  border-radius: var(--radius-lg);
  padding: 20px;
  margin-bottom: 20px;
}
.tb-evidence-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.badge-evidence {
  background: #B45309;
  color: #FFFFFF;
  font-size: 0.76rem;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  letter-spacing: 0.05em;
}
.evidence-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--foreground);
}
.terms-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.term-card {
  background: #FFFFFF;
  border: 1px solid rgba(212, 160, 23, 0.25);
  border-radius: var(--radius-md);
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
}
.term-en {
  font-size: 0.88rem;
  font-weight: 700;
  color: #92400E;
}
.term-ko {
  font-size: 0.78rem;
  color: var(--muted-foreground);
}
.evidence-quote-box {
  background: #FFFFFF;
  border: 1px solid rgba(212, 160, 23, 0.3);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.evidence-quote-box i {
  font-size: 1.3rem;
  margin-top: 3px;
  flex-shrink: 0;
}
.evidence-content-body {
  font-size: 0.92rem;
  color: #3F3F46;
}

/* 3.4 Easy Box */
.tb-easy-box {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-left: 4px solid #3B82F6;
  border-radius: var(--radius-lg);
  padding: 20px;
}
.tb-easy-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.badge-easy {
  background: #2563EB;
  color: #FFFFFF;
  font-size: 0.76rem;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
}
.easy-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--foreground);
}
.easy-highlight-quote {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  font-size: 1rem;
  font-weight: 700;
  color: #92400E;
  margin-bottom: 14px;
  text-align: center;
}
.easy-content-body {
  font-size: 0.92rem;
  color: #334155;
}

/* 3.5 Comparison Table */
.tb-table-responsive {
  overflow-x: auto;
  margin-bottom: 18px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}
.pmu-comparison-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  text-align: left;
}
.pmu-comparison-table th {
  background: #18181B;
  color: #FAFAFA;
  padding: 12px 16px;
  font-weight: 700;
  font-size: 0.88rem;
  letter-spacing: -0.01em;
}
.pmu-comparison-table th:last-child {
  background: #B45309;
}
.pmu-comparison-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.pmu-comparison-table tr:last-child td {
  border-bottom: none;
}
.pmu-comparison-table .row-highlight {
  background: #FFFDF5;
}
.col-category {
  background: #FAFAFA;
  color: var(--foreground);
  width: 18%;
  white-space: nowrap;
}
.col-makeup {
  color: #52525B;
  width: 38%;
}
.col-pmu {
  color: #92400E;
  width: 44%;
}
.tb-must-remember-card {
  background: #FEF2F2;
  border: 1px solid #FECACA;
  border-left: 4px solid #EF4444;
  border-radius: var(--radius-lg);
  padding: 16px 20px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  font-size: 0.9rem;
  color: #991B1B;
}
.tb-must-remember-card i {
  font-size: 1.2rem;
  color: #DC2626;
  margin-top: 3px;
  flex-shrink: 0;
}

/* 3.6 Areas Three Grid */
.areas-three-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.area-card {
  background: #FAFAFA;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.area-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card);
  border-color: var(--gold-primary);
}
.area-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.area-card-header h4 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--foreground);
}
.area-card-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.area-card-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.86rem;
  color: #3F3F46;
}
.area-card-list li i {
  margin-top: 3px;
  flex-shrink: 0;
}
.tb-medical-note-card {
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-left: 4px solid #16A34A;
  border-radius: var(--radius-lg);
  padding: 14px 18px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.88rem;
  color: #166534;
}
.tb-medical-note-card i {
  font-size: 1.2rem;
  margin-top: 2px;
  flex-shrink: 0;
}

/* 3.7 Myth Box */
.tb-myth-box {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.myth-header {
  background: #FFF1F2;
  border-bottom: 1px solid #FECDD3;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.badge-myth {
  background: #E11D48;
  color: #FFFFFF;
  font-size: 0.74rem;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
}
.myth-text {
  font-size: 0.95rem;
  font-weight: 700;
  color: #9F1239;
  text-decoration: line-through;
}
.truth-body {
  background: #FFFFFF;
  padding: 18px;
}
.truth-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  color: #B45309;
  margin-bottom: 10px;
}
.truth-text {
  font-size: 0.92rem;
  color: #3F3F46;
}

/* 3.8 Steps Flow Container (10 Steps) */
.steps-flow-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.step-card-item {
  background: #FAFAFA;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  position: relative;
}
.step-num-badge {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #18181B;
  color: #FBBF24;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.9rem;
  flex-shrink: 0;
  border: 1px solid rgba(212, 160, 23, 0.5);
}
.step-info-box {
  flex: 1;
}
.step-name {
  margin: 0 0 2px 0;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--foreground);
}
.step-desc {
  margin: 0;
  font-size: 0.8rem;
  color: var(--muted-foreground);
  line-height: 1.4;
}
.step-connector-arrow {
  display: none;
}
.steps-quote-card {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: var(--radius-lg);
  padding: 14px 18px;
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 0.92rem;
  font-weight: 600;
  color: #92400E;
}
.steps-quote-card i {
  font-size: 1.2rem;
  flex-shrink: 0;
}
.steps-quote-card p {
  margin: 0;
}

/* 3.9 Prereq List Grid */
.prereq-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
}
.prereq-item-card {
  background: #FAFAFA;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px;
}
.prereq-tag {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--foreground);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.prereq-desc {
  margin: 0;
  font-size: 0.84rem;
  color: #52525B;
  line-height: 1.6;
}

/* 3.10 Signature Joy Field Note 01 Card */
.tb-fieldnote-card {
  background: linear-gradient(135deg, #1C1917 0%, #0C0A09 100%);
  border: 2px solid #D4A017;
  border-radius: var(--radius-xl);
  padding: 32px 28px;
  color: #FAFAFA;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(212, 160, 23, 0.2);
  position: relative;
  overflow: hidden;
}
.fieldnote-ribbon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #B45309;
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}
.fieldnote-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #FBBF24;
  margin: 0 0 4px 0;
}
.fieldnote-sub {
  font-size: 0.88rem;
  color: #A8A29E;
  margin: 0 0 20px 0;
}
.fieldnote-quote-box {
  background: rgba(251, 191, 36, 0.1);
  border: 1px dashed rgba(251, 191, 36, 0.4);
  border-radius: var(--radius-lg);
  padding: 14px 20px;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 800;
  color: #FDE68A;
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.fieldnote-quote-box i {
  color: #FBBF24;
  font-size: 0.9rem;
}
.fieldnote-gold-callout {
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-left: 4px solid #D97706;
  padding: 16px 20px;
  border-radius: var(--radius-lg);
  margin: 18px 0;
  font-size: 0.95rem;
  line-height: 1.75;
  color: #1E293B;
  display: block;
  box-shadow: 0 2px 8px rgba(217, 119, 6, 0.05);
}
.fieldnote-gold-callout strong {
  color: #92400E;
  font-size: 1.02rem;
}
.fieldnote-gold-callout ul, .fieldnote-gold-callout p {
  color: #334155;
  margin: 8px 0 0 0;
}
.fieldnote-gold-callout li {
  color: #334155;
  margin-bottom: 6px;
}
.fieldnote-gold-callout li strong {
  color: #0F172A;
}
.tb-fieldnote-card .fieldnote-gold-callout {
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.3);
  border-left: 4px solid #FBBF24;
  color: #FEF3C7;
}
.tb-fieldnote-card .fieldnote-gold-callout strong {
  color: #FBBF24;
}
.tb-fieldnote-card .fieldnote-gold-callout ul,
.tb-fieldnote-card .fieldnote-gold-callout p,
.tb-fieldnote-card .fieldnote-gold-callout li {
  color: #FAFAFA;
}

/* PMU Step Item in light card */
.pmu-step-card-light {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-left: 4px solid #D97706;
  border-radius: var(--radius-md);
  padding: 14px 16px;
  color: #1E293B;
  font-size: 0.92rem;
  line-height: 1.6;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pmu-step-card-light:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
.pmu-step-card-light strong {
  color: #92400E;
  font-weight: 800;
}

/* PMU Checklist Item in light card */
.pmu-checklist-card-light {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: var(--radius-md);
  padding: 12px 14px;
  color: #1E293B;
  font-size: 0.9rem;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.5;
}
.pmu-checklist-card-light i {
  color: #D97706;
  margin-top: 3px;
  flex-shrink: 0;
}

/* PMU Danger Warning Box */
.pmu-danger-box {
  background: #FEF2F2;
  border: 1px solid #FECACA;
  border-left: 4px solid #DC2626;
  border-radius: var(--radius-lg);
  padding: 18px 20px;
  margin: 18px 0;
  color: #1E293B;
  font-size: 0.95rem;
  line-height: 1.7;
}
.pmu-danger-box strong {
  color: #991B1B;
}

.fieldnote-body {
  font-size: 0.95rem;
  color: #E7E5E4;
  line-height: 1.85;
}
.fieldnote-body ul {
  margin: 10px 0 10px 24px;
}
.fieldnote-body li {
  margin-bottom: 6px;
}

/* 3.11 Joy 3-Steps Grid */
.joy-3steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}
.joy-step-col {
  background: #FAFAFA;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  text-align: center;
}
.joy-step-badge {
  display: inline-block;
  background: #18181B;
  color: #FBBF24;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  margin-bottom: 10px;
}
.joy-step-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--foreground);
  margin: 0 0 8px 0;
}
.joy-step-desc {
  font-size: 0.84rem;
  color: #52525B;
  margin: 0;
  line-height: 1.5;
}
.joy-goal-box {
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: var(--radius-lg);
  padding: 16px 20px;
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 0.92rem;
  color: #166534;
}
.joy-goal-box i {
  font-size: 1.4rem;
  color: #16A34A;
  flex-shrink: 0;
}

/* 3.12 Key Points Card */
.tb-keypoints-card {
  background: #FFFDF7;
  border: 1px solid rgba(212, 160, 23, 0.4);
  border-radius: var(--radius-xl);
  padding: 24px;
}
.keypoints-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.keypoints-header h3 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--foreground);
}
.keypoints-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.kp-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #FFFFFF;
  border: 1px solid rgba(212, 160, 23, 0.25);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  font-size: 0.9rem;
  color: #27272A;
}
.kp-badge {
  background: #B45309;
  color: #FFFFFF;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  margin-top: 2px;
}
.kp-text {
  flex: 1;
}

/* 4. Self-Check Interactive Quiz Container */
.joy-selfcheck-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.selfcheck-intro-card {
  background: linear-gradient(135deg, #FFFBEB 0%, #FEF3C7 100%);
  border: 1px solid #FDE68A;
  border-radius: var(--radius-xl);
  padding: 22px;
  display: flex;
  gap: 16px;
  align-items: center;
}
.selfcheck-intro-icon i {
  font-size: 2.2rem;
  color: #D97706;
}
.selfcheck-intro-card h3 {
  margin: 0 0 6px 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: #92400E;
}
.selfcheck-intro-card p {
  margin: 0;
  font-size: 0.88rem;
  color: #78350F;
}
.quiz-items-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.quiz-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 22px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}
.quiz-card-header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}
.quiz-num-badge {
  background: #18181B;
  color: #FBBF24;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.quiz-question {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--foreground);
}
.quiz-hint {
  font-size: 0.82rem;
  color: var(--muted-foreground);
  margin: 0 0 14px 0;
}
.quiz-input-box {
  margin-bottom: 12px;
}
.quiz-textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 12px;
  font-family: inherit;
  font-size: 0.9rem;
  color: var(--foreground);
  resize: vertical;
  background: #FAFAFA;
  box-sizing: border-box;
}
.quiz-textarea:focus {
  outline: none;
  border-color: var(--gold-primary);
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.15);
}
.quiz-input-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.quiz-save-status {
  font-size: 0.82rem;
  font-weight: 600;
}
.quiz-model-answer-box {
  background: #FFFDF5;
  border: 1px solid rgba(212, 160, 23, 0.4);
  border-left: 4px solid var(--gold-primary);
  border-radius: var(--radius-md);
  padding: 16px;
  margin-top: 14px;
  animation: fadeInPane 0.25s ease;
}
.model-ans-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.88rem;
  font-weight: 700;
  color: #B45309;
  margin-bottom: 8px;
}
.model-ans-text {
  font-size: 0.9rem;
  color: #3F3F46;
  line-height: 1.65;
}

/* 5. Academic References Container */
.joy-references-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.refs-intro-card {
  background: linear-gradient(135deg, #18181B 0%, #09090B 100%);
  border: 1px solid rgba(212, 160, 23, 0.4);
  border-radius: var(--radius-xl);
  padding: 22px;
  display: flex;
  gap: 16px;
  align-items: center;
  color: #FFFFFF;
}
.refs-intro-icon i {
  font-size: 2.2rem;
  color: #FBBF24;
}
.refs-intro-card h3 {
  margin: 0 0 6px 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: #FBBF24;
}
.refs-intro-card p {
  margin: 0;
  font-size: 0.88rem;
  color: #D4D4D8;
}
.refs-cards-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ref-item-card {
  background: #FFFFFF;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
}
.ref-num {
  font-size: 0.72rem;
  font-weight: 800;
  color: #B45309;
  letter-spacing: 0.05em;
}
.ref-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--foreground);
}
.ref-usage {
  font-size: 0.86rem;
  color: #52525B;
}
.ref-link-btn {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #F4F4F5;
  color: #18181B;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 6px 14px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  margin-top: 4px;
  transition: all 0.2s ease;
}
.ref-link-btn:hover {
  background: #18181B;
  color: #FBBF24;
  border-color: #18181B;
}







