/* --- Sidebar Fixes --- */
.sidebar { width: 300px; height: 100vh; background: #0f172a; border-right: 1px solid #1e293b; color: white; display: flex; flex-direction: column; overflow-y: auto; }
.nav-section { padding: 1.5rem; border-bottom: 1px solid #1e293b; }
.nav-label { font-size: 0.75rem; text-transform: uppercase; color: #64748b; letter-spacing: 0.05rem; margin-bottom: 0.8rem; }

/* Subject List */
.nav-list { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.nav-list li { padding: 0.85rem 1rem; border-radius: 12px; cursor: pointer; display: flex; align-items: center; gap: 0.8rem; font-weight: 600; transition: 0.2s; background: transparent; }
.nav-list li:hover { background: #1e293b; }
.nav-list li.active { background: #3b82f6; color: white; }

/* Units List (Stacked Vertical) */
#sidebar-curriculum { display: flex; flex-direction: column; gap: 2rem; }
.unit-group { display: flex; flex-direction: column; }
.unit-label { font-size: 0.9rem; font-weight: 800; color: #3b82f6; margin-bottom: 0.5rem; padding-left: 0.6rem; }
.lesson-list { list-style: none; padding-left: 0.8rem; border-left: 2px solid #334155; margin-left: 0.6rem; display: flex; flex-direction: column; gap: 0.3rem; }
.lesson-list li { padding: 0.5rem 0.8rem; border-radius: 8px; font-size: 0.95rem; cursor: pointer; color: #94a3b8; transition: 0.2s; }
.lesson-list li:hover { color: white; background: #1e293b; }
.lesson-list li.active { color: white; font-weight: 700; background: #3b82f6; }

/* --- Dashboard (Intro Card) Fixes --- */
.main-layout { flex: 1; min-height: 100vh; overflow-y: auto; background: #0f172a; }
.dashboard-content { max-width: 900px; margin: 0 auto; padding: 4rem 2rem; }
.lesson-intro-card { background: #1e293b; border-radius: 24px; overflow: hidden; box-shadow: 0 20px 40px rgba(0,0,0,0.3); }
.intro-banner { height: 280px; background-size: cover; background-position: center; border-bottom: 4px solid #3b82f6; }
.intro-body { padding: 3rem; color: #f8fafc; }
.intro-body h1 { font-size: 2.8rem; margin: 1rem 0; font-family: 'Georgia', serif; font-weight: 900; }
.badge { background: #3b82f6; color: white; padding: 0.4rem 1rem; border-radius: 99px; font-size: 0.8rem; font-weight: 800; text-transform: uppercase; }

.intro-section { margin-top: 3rem; }
.intro-section h3 { font-size: 1.2rem; margin-bottom: 1.5rem; color: #64748b; border-bottom: 1px solid #334155; padding-bottom: 0.5rem; }

/* Highlights Grid */
.highlights-grid { list-style: none; display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.highlights-grid li { background: #0f172a; padding: 1.5rem; border-radius: 16px; border: 1px solid #334155; }
.hl-en { font-weight: 700; font-size: 1rem; margin-bottom: 0.4rem; color: #3b82f6; }
.hl-ko { font-size: 0.95rem; color: #94a3b8; line-height: 1.5; }

/* Rich Card Fixes */
.rich-card { background: #0f172a; padding: 2rem; border-radius: 16px; margin-bottom: 1rem; border: 1px solid #334155; }
.s-title { display: flex; align-items: baseline; gap: 1rem; margin-bottom: 1rem; }
.s-title h4 { font-size: 1.3rem; font-family: 'Georgia', serif; }
.s-title .ko { font-size: 0.95rem; color: #64748b; }
.s-body { line-height: 1.6; font-size: 1.1rem; }
.s-body .ko { margin-top: 1rem; font-size: 1rem; color: #94a3b8; font-family: initial; }

.intro-footer { margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid #334155; text-align: center; }
.btn-large { padding: 1.2rem 2.8rem; font-size: 1.2rem; border-radius: 16px; }

/* Overlays */
.overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(15, 23, 42, 0.9); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: center; }
.hidden { display: none !important; }
.view { width: 100%; height: 100%; }
.hidden-view { display: none; }
.active-view { display: block; }
