/* ========================================================================== 7. Comprehensive Lesson Configurator & Session Runner ========================================================================== */ /* ======================================================================= Comprehensive Lesson Configurator & Session Runner (Beta) ======================================================================= */ .lesson-view, .lesson-runner-view { padding: 24px 20px; max-width: 960px; margin: 0 auto; width: 100%; box-sizing: border-box; } @media (max-width: 768px) { .lesson-view, .lesson-runner-view { padding: 12px 10px; padding-bottom: calc(75px + var(--sab)); } } .lesson-configurator-container { display: flex; flex-direction: column; gap: 20px; } /* Header Bar */ .lesson-header-bar { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--border-color); padding-bottom: 18px; } .lesson-title-wrap h2 { font-size: 24px; font-weight: 800; margin: 0 0 6px 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--text-main); } .lesson-subtitle { margin: 0; font-size: 14px; color: var(--text-muted); } .badge-beta { background: linear-gradient(135deg, #8b5cf6, #38bdf8); color: #fff; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: var(--radius-full); text-transform: uppercase; letter-spacing: 0.5px; } .badge-ai { background: rgba(139, 92, 246, 0.15); color: #8b5cf6; border: 1px solid rgba(139, 92, 246, 0.35); font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: var(--radius-sm); } .lesson-header-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .pulse-btn { box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.7); animation: btnPulse 2s infinite; } @keyframes btnPulse { 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.4); } 70% { transform: scale(1.02); box-shadow: 0 0 0 10px rgba(56, 189, 248, 0); } 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(56, 189, 248, 0); } } @media (max-width: 768px) { .lesson-header-bar { flex-direction: column; align-items: stretch; gap: 14px; padding-bottom: 14px; } .lesson-title-wrap h2 { font-size: 20px; } .lesson-subtitle { font-size: 13px; } .lesson-header-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; } .lesson-header-actions #lesson-start-btn { grid-column: span 2; order: -1; padding: 14px; font-size: 16px; font-weight: 800; } } /* Presets Chips Bar */ .lesson-presets-section { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 16px 20px; } .presets-section-title { font-size: 14px; font-weight: 700; margin-bottom: 12px; color: var(--text-main); } .lesson-presets-chips-row { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .lesson-presets-chips-row::-webkit-scrollbar { display: none; } .lesson-preset-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; background: var(--bg-main); border: 1.5px solid var(--border-color); border-radius: var(--radius-full); font-size: 13.5px; font-weight: 600; color: var(--text-main); cursor: pointer; white-space: nowrap; transition: var(--transition); user-select: none; -webkit-tap-highlight-color: transparent; } .lesson-preset-chip:hover { border-color: var(--primary); background: var(--bg-surface-hover); } .lesson-preset-chip.active { background: var(--primary); color: #fff; border-color: var(--primary); box-shadow: 0 2px 10px rgba(56, 189, 248, 0.35); } .preset-del-btn { margin-left: 6px; opacity: 0.7; font-size: 12px; border-radius: 50%; padding: 2px 6px; } .preset-del-btn:hover { opacity: 1; background: rgba(0, 0, 0, 0.2); } .preset-description-text { font-size: 13px; margin: 8px 0 0 0; color: var(--text-muted); } /* Blocks List & Cards */ .blocks-section-header { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; } .blocks-section-header h3 { margin: 0; font-size: 18px; font-weight: 700; color: var(--text-main); } .blocks-tip { font-size: 12.5px; color: var(--text-muted); } .lesson-steps-list { display: flex; flex-direction: column; gap: 12px; } .lesson-step-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 16px 18px; transition: border-color 0.2s ease, box-shadow 0.2s ease; } .lesson-step-card:hover { border-color: rgba(56, 189, 248, 0.4); } .lesson-step-card.step-disabled { opacity: 0.55; background: var(--bg-main); } .step-card-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; } .step-card-title-wrap { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; } .step-num { width: 28px; height: 28px; background: var(--bg-main); border: 1px solid var(--border-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; flex-shrink: 0; color: var(--text-main); } .step-icon { font-size: 20px; flex-shrink: 0; } .step-title { font-size: 15px; font-weight: 700; color: var(--text-main); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .step-card-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .step-card-actions .icon-btn { min-width: 34px; min-height: 34px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); font-size: 13px; } /* Switch Toggle */ .switch-toggle { position: relative; display: inline-block; width: 46px; height: 26px; flex-shrink: 0; } .switch-toggle input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--border-color); transition: .2s; border-radius: 26px; } .toggle-slider:before { position: absolute; content: ""; height: 20px; width: 20px; left: 3px; bottom: 3px; background-color: white; transition: .2s; border-radius: 50%; } input:checked + .toggle-slider { background-color: var(--success); } input:checked + .toggle-slider:before { transform: translateX(20px); } /* Step Card Body & Params */ .step-card-body { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border-color); } .step-param-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end; } .param-group { display: flex; flex-direction: column; gap: 6px; } .param-group label { font-size: 12.5px; font-weight: 600; color: var(--text-muted); } .param-group.flex-2 { flex: 2; min-width: 240px; } .segmented-control { display: inline-flex; background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 3px; gap: 3px; } .seg-btn { border: none; background: transparent; padding: 7px 14px; font-size: 13px; font-weight: 600; color: var(--text-muted); border-radius: var(--radius-sm); cursor: pointer; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; } .seg-btn:hover { color: var(--text-main); } .seg-btn.active { background: var(--primary); color: #fff; font-weight: 700; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); } /* Mode Segmented Control: 2x2 grid on mobile, horizontal pill on desktop */ .mode-segmented-control { display: flex; flex-wrap: wrap; gap: 4px; width: 100%; } .mode-segmented-control .seg-btn { flex: 1 1 calc(50% - 4px); display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 8px; font-size: 13px; text-align: center; } @media (min-width: 768px) { .step-param-row { flex-direction: row; align-items: flex-end; } .mode-segmented-control { display: inline-flex; flex-wrap: nowrap; width: auto; } .mode-segmented-control .seg-btn { flex: initial; padding: 7px 14px; } } @media (max-width: 767px) { .step-param-row { flex-direction: column; align-items: stretch; gap: 12px; } .param-group { width: 100%; } .param-group.flex-2 { min-width: 0; } .step-select-param { width: 100%; padding: 11px 12px; font-size: 14px; } } .step-select-param { background: var(--bg-main); color: var(--text-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 9px 12px; font-size: 13.5px; font-weight: 500; cursor: pointer; outline: none; transition: var(--transition); } .step-select-param:focus { border-color: var(--primary); } .ai-debrief-info-box { display: flex; align-items: center; gap: 12px; background: rgba(139, 92, 246, 0.08); border: 1px dashed rgba(139, 92, 246, 0.35); padding: 14px 16px; border-radius: var(--radius-md); font-size: 13.5px; color: var(--text-main); line-height: 1.5; } .ai-box-icon { font-size: 24px; flex-shrink: 0; } /* Bottom Floating CTA */ .lesson-bottom-cta { padding: 10px 0; } @media (max-width: 768px) { .lesson-bottom-cta { position: sticky; bottom: calc(12px + var(--sab)); z-index: 40; padding: 8px 0; margin-top: 16px; } .lesson-bottom-cta .btn { box-shadow: 0 4px 20px rgba(56, 189, 248, 0.4); } } .btn-xl { padding: 15px 24px; font-size: 17px; font-weight: 800; border-radius: var(--radius-lg); } /* ======================================================================= Lesson Session Runner Stage ======================================================================= */ .lesson-runner-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--border-color); flex-wrap: wrap; position: sticky; top: 0; z-index: 50; background: var(--bg-main); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .runner-nav-left { display: flex; align-items: center; gap: 12px; } .runner-timer-wrap { font-family: var(--font-mono, monospace); font-size: 15px; font-weight: 700; color: var(--text-main); background: var(--bg-card); padding: 5px 12px; border-radius: var(--radius-full); border: 1px solid var(--border-color); white-space: nowrap; } .runner-breadcrumbs-row { display: flex; align-items: center; gap: 6px; overflow-x: auto; max-width: 540px; padding: 4px 0; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .runner-breadcrumbs-row::-webkit-scrollbar { display: none; } .runner-crumb { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--radius-full); font-size: 12px; font-weight: 600; background: var(--bg-card); border: 1px solid var(--border-color); color: var(--text-muted); white-space: nowrap; transition: var(--transition); } .crumb-num { font-size: 11px; font-weight: 800; } .runner-crumb.step-done { background: rgba(16, 185, 129, 0.15); border-color: rgba(16, 185, 129, 0.4); color: var(--success); } .runner-crumb.step-active { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 0 12px rgba(56, 189, 248, 0.45); } .crumb-separator { color: var(--text-dim); font-size: 11px; } @media (max-width: 768px) { .lesson-runner-header { padding: 10px 8px; display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; } .runner-nav-left { gap: 6px; } .runner-nav-left .btn { padding: 6px 10px; font-size: 12px; } .runner-timer-wrap { font-size: 13px; padding: 4px 8px; } .runner-breadcrumbs-row { max-width: none; flex-wrap: nowrap; gap: 4px; justify-content: center; } .runner-crumb { padding: 4px 8px; font-size: 11px; } /* On mobile, collapse inactive crumbs to save horizontal space */ .runner-crumb:not(.step-active) .crumb-label { display: none; } .crumb-separator { font-size: 9px; } .runner-nav-right .btn { padding: 6px 8px; font-size: 12px; white-space: nowrap; } } .lesson-runner-progress-track { width: 100%; height: 4px; background: var(--bg-surface-hover); overflow: hidden; margin-bottom: 24px; } .lesson-runner-progress-fill { height: 100%; background: linear-gradient(90deg, #38bdf8, #8b5cf6); transition: width 0.3s ease; } /* Stage Card Box */ .step-card-box { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: 28px 24px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); max-width: 760px; margin: 0 auto; } @media (max-width: 640px) { .step-card-box { padding: 18px 14px; border-radius: var(--radius-md); } } .step-mini-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; gap: 10px; flex-wrap: wrap; } .step-tags-wrap { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .step-term-display { text-align: center; padding: 16px 0; } .display-term { font-size: 36px; font-weight: 800; margin: 0 0 6px 0; color: var(--text-main); letter-spacing: -0.5px; } .display-phonetic { font-size: 18px; color: var(--text-muted); } .step-context-box { background: var(--bg-main); border-left: 3px solid var(--primary); padding: 12px 16px; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; margin-top: 14px; font-size: 15px; line-height: 1.5; } /* ----------------------------------------------------------------------- Vocabulary Step: Modes ----------------------------------------------------------------------- */ /* Mode 1: Quiz (4 Options) */ .lesson-quiz-card { max-width: 680px; margin: 0 auto; } .lesson-quiz-options-grid { display: grid; grid-template-columns: 1fr; gap: 10px; width: 100%; } @media (min-width: 640px) { .lesson-quiz-options-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } } .lesson-quiz-opt-btn { display: flex; align-items: center; gap: 12px; padding: 14px 16px; min-height: 56px; background: var(--bg-main); border: 1.5px solid var(--border-color); border-radius: var(--radius-md); font-size: 15px; font-weight: 600; color: var(--text-main); cursor: pointer; transition: all 0.15s ease; text-align: left; user-select: none; -webkit-tap-highlight-color: transparent; } .lesson-quiz-opt-btn:hover:not(:disabled) { border-color: var(--primary); background: var(--bg-surface-hover); transform: translateY(-1px); } .lesson-quiz-opt-btn:active:not(:disabled) { transform: scale(0.98); } .quiz-opt-num { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--bg-card); border: 1px solid var(--border-color); font-size: 12px; font-weight: 700; color: var(--text-muted); flex-shrink: 0; } .quiz-opt-text { flex: 1; line-height: 1.35; word-break: break-word; } .lesson-quiz-opt-btn.opt-correct { background: rgba(16, 185, 129, 0.18) !important; border-color: var(--success) !important; color: var(--success) !important; } .lesson-quiz-opt-btn.opt-correct .quiz-opt-num { background: var(--success); color: #fff; border-color: var(--success); } .lesson-quiz-opt-btn.opt-wrong { background: rgba(239, 68, 68, 0.18) !important; border-color: var(--danger) !important; color: var(--danger) !important; } .lesson-quiz-opt-btn.opt-wrong .quiz-opt-num { background: var(--danger); color: #fff; border-color: var(--danger); } /* Mode 2: Flashcards */ .translation-reveal-banner { background: rgba(56, 189, 248, 0.1); border: 1px solid rgba(56, 189, 248, 0.3); padding: 16px 20px; border-radius: var(--radius-md); text-align: center; color: var(--text-main); } .tr-text { font-size: 22px; display: block; margin-top: 4px; } .tr-definition { font-size: 14px; } .rating-buttons-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; } @media (max-width: 640px) { .rating-buttons-row { grid-template-columns: repeat(2, 1fr); gap: 8px; } } .srs-btn-rating { display: flex; flex-direction: column; align-items: center; padding: 12px 6px; gap: 4px; min-height: 52px; border-radius: var(--radius-md); } .rating-key { font-size: 11px; opacity: 0.7; } .rating-label { font-size: 13px; font-weight: 700; } /* Mode 3: Typing & Mode 4: Dictation */ .typing-input-wrap { display: flex; flex-direction: column; gap: 10px; width: 100%; } @media (min-width: 640px) { .typing-input-wrap { flex-direction: row; } .typing-input-wrap .typing-main-input { flex: 1; } } .typing-main-input { font-size: 16px !important; /* Prevents auto-zoom on mobile safari/chrome */ padding: 12px 16px; border-radius: var(--radius-md); } .dictation-hero-play { padding: 10px 0; } .dictation-play-btn { padding: 14px 28px; font-size: 16px; font-weight: 700; border-radius: var(--radius-full); } .dictation-hint { font-size: 14px; } /* Shared Trainer Feedback Box */ .trainer-feedback-box { padding: 14px 18px; border-radius: var(--radius-md); font-size: 14.5px; line-height: 1.5; animation: fadeIn 0.2s ease-out; } .trainer-feedback-box.feedback-correct { background: rgba(16, 185, 129, 0.12); border: 1px solid rgba(16, 185, 129, 0.35); color: var(--text-main); } .trainer-feedback-box.feedback-wrong { background: rgba(239, 68, 68, 0.12); border: 1px solid rgba(239, 68, 68, 0.35); color: var(--text-main); } /* ----------------------------------------------------------------------- Grammar Questions & Theory Stage ----------------------------------------------------------------------- */ .grammar-question-box { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 20px 18px; } .grammar-sentence-prompt { font-size: 20px; font-weight: 600; line-height: 1.5; margin: 0 0 10px 0; color: var(--text-main); } .clue-tag { font-size: 13px; color: var(--text-muted); } .grammar-options-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; } @media (max-width: 640px) { .grammar-options-grid { grid-template-columns: 1fr; gap: 10px; } } .grammar-opt-btn { display: flex; align-items: center; gap: 12px; padding: 14px 18px; min-height: 54px; background: var(--bg-main); border: 1.5px solid var(--border-color); border-radius: var(--radius-md); cursor: pointer; font-size: 15px; font-weight: 600; color: var(--text-main); transition: all 0.15s ease; text-align: left; user-select: none; -webkit-tap-highlight-color: transparent; } .grammar-opt-btn:hover:not(:disabled) { border-color: var(--primary); background: var(--bg-surface-hover); } .grammar-opt-btn.opt-correct { background: rgba(16, 185, 129, 0.18) !important; border-color: var(--success) !important; color: var(--success) !important; } .grammar-opt-btn.opt-wrong { background: rgba(239, 68, 68, 0.18) !important; border-color: var(--danger) !important; color: var(--danger) !important; } .opt-key { width: 26px; height: 26px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; } .feedback-banner { padding: 16px 18px; border-radius: var(--radius-md); } .feedback-banner.fb-success { background: rgba(16, 185, 129, 0.12); border: 1px solid rgba(16, 185, 129, 0.35); } .feedback-banner.fb-danger { background: rgba(239, 68, 68, 0.12); border: 1px solid rgba(239, 68, 68, 0.35); } .fb-title { font-size: 16px; font-weight: 700; margin-bottom: 6px; } .fb-text { font-size: 14px; line-height: 1.45; } /* Murphy Golden Formula & Contrasts */ .golden-formula-box { background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(168, 85, 247, 0.08)); border: 1px solid rgba(99, 102, 241, 0.3); border-radius: var(--radius-md); padding: 16px; } .formula-label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; color: var(--primary); margin-bottom: 8px; } .formula-code { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 10px 14px; font-family: var(--font-mono, monospace); font-size: 14px; font-weight: 700; color: var(--text-main); overflow-x: auto; white-space: pre-wrap; margin: 0; } .contrast-card { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 16px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); } .contrast-row { display: flex; flex-direction: column; gap: 12px; } @media (min-width: 640px) { .contrast-row { flex-direction: row; gap: 16px; } } .contrast-col { flex: 1; background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 12px; } .contrast-col.a { border-left: 3px solid #38bdf8; } .contrast-col.b { border-left: 3px solid #10b981; } .contrast-col .col-title { font-size: 13px; font-weight: 700; color: var(--text-main); margin-bottom: 6px; } .contrast-col .col-example { font-size: 15px; font-weight: 600; color: var(--text-main); margin-bottom: 4px; } .contrast-col .col-trans { font-size: 13px; color: var(--text-muted); } .contrast-diff { background: rgba(245, 158, 11, 0.1); border: 1px solid rgba(245, 158, 11, 0.3); border-radius: var(--radius-sm); padding: 8px 12px; font-size: 13px; color: var(--text-main); } .journaling-box { background: rgba(56, 189, 248, 0.06); border: 1px dashed rgba(56, 189, 248, 0.3); border-radius: var(--radius-md); padding: 14px 18px; } .hw-text { font-size: 14px; font-weight: 600; color: var(--text-main); } /* ----------------------------------------------------------------------- Listening Stage ----------------------------------------------------------------------- */ .audio-player-card { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 20px; text-align: center; } .audio-controls-row { display: flex; justify-content: center; gap: 12px; align-items: center; flex-wrap: wrap; } .answer-input-group { display: flex; gap: 10px; } @media (max-width: 640px) { .answer-input-group { flex-direction: column; } } .transcript-box { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 12px 14px; font-size: 13.5px; } /* ----------------------------------------------------------------------- Reading Stage ----------------------------------------------------------------------- */ .article-paragraph-card { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 18px; margin-bottom: 14px; } .article-para-en { font-size: 17px; line-height: 1.75; margin: 0 0 10px 0; } .clickable-reader-word { cursor: pointer; border-radius: 3px; padding: 1px 3px; transition: background 0.15s; } .clickable-reader-word:hover { background: rgba(56, 189, 248, 0.25); color: var(--primary); } .article-para-ru { font-size: 14px; color: var(--text-muted); border-top: 1px dashed var(--border-color); padding-top: 8px; margin: 8px 0 0 0; } .vocab-highlights-bar { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 14px 16px; } .highlights-title { font-size: 13px; font-weight: 700; margin-bottom: 8px; display: block; } .highlights-chips { display: flex; flex-wrap: wrap; gap: 8px; } .vh-chip { background: var(--bg-card); border: 1px solid var(--border-color); padding: 5px 12px; border-radius: var(--radius-full); font-size: 12.5px; } /* Word Popup in Lesson: Floating on laptop, Bottom sheet on mobile */ .lesson-popup { position: fixed; z-index: 1000; width: 270px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 14px 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); animation: fadeIn 0.15s ease-out; } @media (max-width: 640px) { .lesson-popup { left: 14px !important; right: 14px !important; bottom: calc(20px + var(--sab)) !important; top: auto !important; width: auto !important; border-radius: var(--radius-lg); box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5); } } .popup-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border-color); padding-bottom: 6px; margin-bottom: 6px; } .popup-close-btn { border: none; background: transparent; cursor: pointer; color: var(--text-muted); font-size: 16px; } .popup-trans { font-size: 15px; font-weight: 700; color: var(--text-main); } /* ----------------------------------------------------------------------- AI Debrief Stage ----------------------------------------------------------------------- */ .lesson-debrief-card { max-width: 800px; } .debrief-banner-header { display: flex; align-items: center; gap: 20px; border-bottom: 1px solid var(--border-color); padding-bottom: 20px; flex-wrap: wrap; } .grade-badge-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 90px; height: 90px; background: var(--bg-main); border: 3px solid var(--primary); border-radius: 50%; flex-shrink: 0; } .grade-badge { font-size: 34px; font-weight: 900; line-height: 1; color: var(--primary); } .score-pct { font-size: 13px; font-weight: 700; color: var(--text-muted); } .debrief-titles { flex: 1; min-width: 220px; } .debrief-headline { font-size: 22px; font-weight: 800; margin: 0 0 8px 0; color: var(--text-main); } .blocks-scores-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; } .block-score-item { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 10px 12px; } .bs-header { display: flex; justify-content: space-between; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--text-main); } .bs-bar { width: 100%; height: 6px; background: var(--bg-card); border-radius: 3px; overflow: hidden; } .bs-bar-fill { height: 100%; background: var(--success); } .debrief-list, .tomorrow-focus-list { margin: 8px 0 0 0; padding-left: 20px; font-size: 14.5px; line-height: 1.6; } .tomorrow-focus-list { list-style: none; padding-left: 0; } .tomorrow-focus-list li { padding: 8px 12px; background: var(--bg-main); border-left: 3px solid var(--primary); margin-bottom: 6px; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-size: 14px; } .error-cards-list { display: flex; flex-direction: column; gap: 8px; } .error-analysis-item { display: flex; align-items: flex-start; gap: 10px; background: rgba(234, 179, 8, 0.1); border: 1px solid rgba(234, 179, 8, 0.3); border-radius: var(--radius-md); padding: 12px 14px; font-size: 14px; line-height: 1.45; } .celebrate-badge { font-size: 48px; margin-bottom: 12px; } .step-completed-box h3 { font-size: 24px; font-weight: 800; margin-bottom: 8px; color: var(--text-main); } .score-highlight { font-size: 16px; color: var(--text-muted); } /* History Modal items */ .lesson-history-list { display: flex; flex-direction: column; gap: 12px; max-height: 65vh; overflow-y: auto; } .lesson-history-item { background: var(--bg-main); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 14px 16px; } .lh-header { display: flex; justify-content: space-between; font-size: 15px; font-weight: 700; margin-bottom: 6px; } .lh-date { font-size: 12px; color: var(--text-muted); font-weight: normal; } .lh-stats { display: flex; gap: 12px; align-items: center; font-size: 13px; margin-bottom: 6px; } .lh-headline { font-size: 13px; font-style: italic; color: var(--text-dim); } @media (max-width: 640px) { .display-term { font-size: 26px; } }