/* VƯỜN NGOẠI NGỮ v6.15.222 — Lesson Module UI Standard
   Lesson 1 is the visual reference; all lessons reuse the same DOM/data bindings.
   CSS only: no Supabase, content, ID, progress, Speaking, Shadowing or quiz logic changes. */

/* =========================================================
   1. SHARED MODULE LANGUAGE
   ========================================================= */
body.lesson-view-active #view-lesson .skill-panel.active{
  scroll-margin-top:138px;
}

body.lesson-view-active #view-lesson .activity-heading-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  flex-wrap:wrap!important;
}

body.lesson-view-active #view-lesson .activity-heading-actions .ghost,
body.lesson-view-active #view-lesson .activity-heading-actions .activity-reset-btn{
  min-height:36px!important;
  padding:0 11px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
  background:#fff!important;
  border:1px solid #dfe8e5!important;
  box-shadow:none!important;
}

body.lesson-view-active #view-lesson .card{
  box-shadow:none!important;
}

body.lesson-view-active #view-lesson select,
body.lesson-view-active #view-lesson input,
body.lesson-view-active #view-lesson textarea{
  border-color:#dce6e2!important;
  background:#fff!important;
}

body.lesson-view-active #view-lesson select:focus,
body.lesson-view-active #view-lesson input:focus,
body.lesson-view-active #view-lesson textarea:focus{
  border-color:#8fcfc3!important;
  outline:none!important;
  box-shadow:0 0 0 3px rgba(20,142,126,.10)!important;
}

/* =========================================================
   2. LISTENING — one clear practice path
   ========================================================= */
body.lesson-view-active #skill-listening .lesson-part-listening{
  display:grid!important;
  gap:12px!important;
}

body.lesson-view-active #skill-listening .listening-path-card{
  margin:0 0 14px!important;
  padding:14px!important;
  border:1px solid #dce8e4!important;
  border-radius:17px!important;
  background:linear-gradient(135deg,#fbfefd,#f3faf8)!important;
  box-shadow:none!important;
}

body.lesson-view-active #skill-listening .listening-path-title{
  margin-bottom:10px!important;
}
body.lesson-view-active #skill-listening .listening-path-title span{
  color:#14766c!important;
  font-size:10px!important;
}
body.lesson-view-active #skill-listening .listening-path-title strong{
  font-size:12px!important;
  color:#536660!important;
}

body.lesson-view-active #skill-listening .listening-path-step{
  min-height:58px!important;
  padding:9px 10px!important;
  border-radius:13px!important;
  border:1px solid #e0e9e6!important;
  background:#fff!important;
}
body.lesson-view-active #skill-listening .listening-path-step>b{
  width:27px!important;
  height:27px!important;
  font-size:10px!important;
}
body.lesson-view-active #skill-listening .listening-path-step span{
  font-size:11px!important;
  line-height:1.35!important;
}

body.lesson-view-active #skill-listening .listening-practice-section,
body.lesson-view-active #skill-listening .listening-fill-section{
  margin-top:14px!important;
  padding:16px!important;
  border:1px solid #e1eae7!important;
  border-radius:18px!important;
  background:#fbfdfc!important;
}

body.lesson-view-active #skill-listening .listening-fill-section{
  padding-top:16px!important;
}

body.lesson-view-active #skill-listening .listening-section-head{
  margin-bottom:10px!important;
}
body.lesson-view-active #skill-listening .listening-section-head>span{
  width:30px!important;
  height:30px!important;
  flex-basis:30px!important;
  border-radius:9px!important;
  font-size:12px!important;
}
body.lesson-view-active #skill-listening .listening-section-head h3{
  font-size:16px!important;
}
body.lesson-view-active #skill-listening .listening-section-head p{
  font-size:11.5px!important;
  line-height:1.45!important;
}

body.lesson-view-active #skill-listening .listening-controls{
  margin:8px 0 10px!important;
  padding:8px!important;
  border-radius:12px!important;
  background:#f6faf8!important;
  border-color:#dfe9e5!important;
}
body.lesson-view-active #skill-listening .listening-control-buttons button{
  min-height:36px!important;
  padding:7px 9px!important;
  font-size:11px!important;
  border-radius:9px!important;
}
body.lesson-view-active #skill-listening .listening-control-status{
  margin-top:5px!important;
  font-size:10px!important;
}

body.lesson-view-active #skill-listening .exercise-item{
  margin:0!important;
  padding:14px!important;
  border-radius:15px!important;
  border:1px solid #e2e9e6!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.lesson-view-active #skill-listening .exercise-stack{
  gap:8px!important;
  padding-bottom:8px!important;
}

/* =========================================================
   3. READING / READ ALONG — text first, questions second
   ========================================================= */
body.lesson-view-active #skill-reading .reading-card{
  padding:0!important;
  overflow:hidden!important;
  border-radius:18px!important;
  background:#fff!important;
}

body.lesson-view-active #skill-reading .reading-card>p:first-child{
  margin:0!important;
  padding:20px!important;
  font-size:16px!important;
  line-height:1.78!important;
  color:#30453f!important;
  background:linear-gradient(180deg,#fbfefd,#f8fbfa)!important;
  border-bottom:1px solid #e6eeeb!important;
}

body.lesson-view-active #skill-reading .reading-q{
  margin:0!important;
  padding:16px 20px!important;
  border-top:1px solid #edf1ef!important;
}
body.lesson-view-active #skill-reading .reading-q:first-of-type{
  border-top:0!important;
}
body.lesson-view-active #skill-reading .reading-q>strong{
  display:block!important;
  margin-bottom:9px!important;
  font-size:13px!important;
  line-height:1.45!important;
  color:#294941!important;
}
body.lesson-view-active #skill-reading .mcq{
  gap:6px!important;
  margin-top:0!important;
}
body.lesson-view-active #skill-reading .mcq button{
  min-height:40px!important;
  padding:9px 11px!important;
  border-radius:10px!important;
  border-color:#e1e8e5!important;
  font-size:11.5px!important;
}

/* =========================================================
   4. ROLE PLAY — a real dialogue stage
   ========================================================= */
body.lesson-view-active #skill-roleplay .roleplay-toolbar{
  display:grid!important;
  grid-template-columns:minmax(180px,1fr) auto auto!important;
  align-items:end!important;
  gap:10px!important;
  margin:0 0 10px!important;
  padding:13px!important;
  border:1px solid #dce8e4!important;
  border-radius:16px!important;
  background:#f8fbfa!important;
}

body.lesson-view-active #skill-roleplay .roleplay-role-field{
  display:grid!important;
  gap:5px!important;
}
body.lesson-view-active #skill-roleplay .roleplay-role-field>span{
  font-size:10px!important;
  font-weight:850!important;
  color:#60746e!important;
}
body.lesson-view-active #skill-roleplay .roleplay-role-field select{
  min-height:40px!important;
  border-radius:10px!important;
  padding:0 10px!important;
}

body.lesson-view-active #skill-roleplay .roleplay-toggle{
  min-height:40px!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:0 10px!important;
  border:1px solid #e0e8e5!important;
  border-radius:10px!important;
  background:#fff!important;
  font-size:10.5px!important;
}

body.lesson-view-active #skill-roleplay #roleplayStart{
  min-height:40px!important;
  padding:0 14px!important;
  border-radius:10px!important;
  font-size:11px!important;
}

body.lesson-view-active #skill-roleplay .roleplay-status{
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 10px!important;
  padding:6px 9px!important;
  border-radius:999px!important;
  background:#eef7f4!important;
  color:#4d6c65!important;
  font-size:10px!important;
  font-weight:750!important;
}

body.lesson-view-active #skill-roleplay .roleplay-stage{
  min-height:230px!important;
  padding:18px!important;
  border:1px solid #dfe9e5!important;
  border-radius:19px!important;
  background:
    radial-gradient(circle at 92% 8%,rgba(18,139,123,.06),transparent 12rem),
    linear-gradient(180deg,#fff,#fbfdfc)!important;
}

body.lesson-view-active #skill-roleplay .roleplay-result:not(.hidden){
  margin-top:10px!important;
  padding:13px!important;
  border:1px solid #dce8e4!important;
  border-radius:14px!important;
  background:#f7fbfa!important;
}

/* =========================================================
   5. SHADOWING / DUBBING — practice console, not admin screen
   ========================================================= */
body.lesson-view-active #skill-shadowing .ai-policy-card,
body.lesson-view-active #skill-dubbing .ai-policy-card,
body.lesson-view-active #skill-speaking .ai-policy-card,
body.lesson-view-active #skill-writing .ai-policy-card,
body.lesson-view-active #skill-grammar .ai-policy-card{
  border-radius:14px!important;
  box-shadow:none!important;
}

body.lesson-view-active #skill-shadowing #shadowFullDialogue{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(240px,.65fr)!important;
  gap:14px!important;
  align-items:center!important;
  margin:10px 0!important;
  padding:13px 14px!important;
  border-radius:15px!important;
  background:#f8fbfa!important;
  border:1px solid #dce8e4!important;
}
body.lesson-view-active #skill-shadowing #shadowFullDialogue strong{
  font-size:12.5px!important;
}
body.lesson-view-active #skill-shadowing #shadowFullDialogue .muted{
  margin-top:3px!important;
  font-size:10px!important;
}

body.lesson-view-active #skill-shadowing .shadow-toolbar-v2{
  margin:0 0 10px!important;
  padding:13px!important;
  border-radius:15px!important;
  background:#fff!important;
  border:1px solid #dfe8e5!important;
}
body.lesson-view-active #skill-shadowing .shadow-quick-settings{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
}
body.lesson-view-active #skill-shadowing .shadow-quick-settings .field label{
  font-size:10px!important;
}
body.lesson-view-active #skill-shadowing .shadow-quick-settings select{
  min-height:40px!important;
}
body.lesson-view-active #skill-shadowing .audio-quality-note{
  display:block!important;
  margin-top:4px!important;
  font-size:9px!important;
  line-height:1.35!important;
}

body.lesson-view-active #skill-shadowing .shadow-practice-options{
  margin-top:10px!important;
  border-top:1px solid #e8eeec!important;
  padding-top:8px!important;
}
body.lesson-view-active #skill-shadowing .shadow-practice-options summary{
  cursor:pointer!important;
  color:#526760!important;
  font-size:10.5px!important;
  font-weight:800!important;
}
body.lesson-view-active #skill-shadowing .shadow-practice-options-grid{
  margin-top:9px!important;
  gap:8px!important;
}

body.lesson-view-active #skill-shadowing .lesson-shell{
  grid-template-columns:230px minmax(0,1fr)!important;
  gap:10px!important;
}
body.lesson-view-active #skill-shadowing .line-list{
  padding:10px!important;
  border-radius:16px!important;
  border:1px solid #dfe8e5!important;
  background:#f8fbfa!important;
}
body.lesson-view-active #skill-shadowing .aside-title{
  margin:2px 4px 8px!important;
  font-size:11px!important;
}
body.lesson-view-active #skill-shadowing .line-btn{
  margin-bottom:4px!important;
  padding:8px!important;
  border-radius:10px!important;
}
body.lesson-view-active #skill-shadowing .line-dot{
  width:24px!important;
  height:24px!important;
  font-size:9px!important;
}
body.lesson-view-active #skill-shadowing .line-speaker{
  font-size:9.5px!important;
}

body.lesson-view-active #skill-shadowing .practice-card{
  padding:18px!important;
  border-radius:18px!important;
}
body.lesson-view-active #skill-shadowing .script-area{
  min-height:210px!important;
  padding:20px 0!important;
}
body.lesson-view-active #skill-shadowing .english{
  font-size:clamp(24px,3.8vw,38px)!important;
  line-height:1.22!important;
}
body.lesson-view-active #skill-shadowing .vietnamese{
  margin-top:10px!important;
  font-size:14px!important;
}
body.lesson-view-active #skill-shadowing .action-grid{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:7px!important;
}
body.lesson-view-active #skill-shadowing .action-grid button{
  min-height:42px!important;
  padding:8px!important;
  font-size:10.5px!important;
  border-radius:11px!important;
}

body.lesson-view-active #skill-dubbing .dubbing-shell{
  padding:18px!important;
  border-radius:18px!important;
  border:1px solid #dfe8e5!important;
  background:#fff!important;
}
body.lesson-view-active #skill-dubbing .dubbing-head{
  padding-bottom:12px!important;
  margin-bottom:12px!important;
  border-bottom:1px solid #e8eeec!important;
}
body.lesson-view-active #skill-dubbing .dubbing-actions{
  gap:7px!important;
}
body.lesson-view-active #skill-dubbing .dubbing-actions button{
  min-height:42px!important;
  padding:8px 11px!important;
  border-radius:11px!important;
  font-size:10.5px!important;
}

/* =========================================================
   6. AI SPEAKING — coach workspace
   ========================================================= */
body.lesson-view-active #skill-speaking .ai-speaking-card{
  padding:18px!important;
  border-radius:18px!important;
  border:1px solid #dfe8e5!important;
}

body.lesson-view-active #skill-speaking .ai-speaking-top{
  padding-bottom:12px!important;
  margin-bottom:12px!important;
}
body.lesson-view-active #skill-speaking .ai-speaking-top h3{
  margin:5px 0 3px!important;
  font-size:18px!important;
}
body.lesson-view-active #skill-speaking .ai-live-badge,
body.lesson-view-active #skill-speaking .ai-credit-badge{
  font-size:9.5px!important;
}

body.lesson-view-active #skill-speaking .ai-quick-settings{
  gap:8px!important;
  padding:12px!important;
  border-radius:14px!important;
  background:#f8fbfa!important;
}
body.lesson-view-active #skill-speaking .ai-quick-settings select{
  min-height:38px!important;
}
body.lesson-view-active #skill-speaking #aiStartBtn{
  min-height:40px!important;
  border-radius:10px!important;
}

body.lesson-view-active #skill-speaking .ai-chat{
  min-height:280px!important;
  max-height:520px!important;
  border-radius:16px!important;
  border-color:#e0e9e6!important;
  background:#fbfdfc!important;
}
body.lesson-view-active #skill-speaking .ai-input-shell{
  margin-top:10px!important;
  padding:12px!important;
  border-radius:15px!important;
  background:#f8fbfa!important;
}
body.lesson-view-active #skill-speaking .ai-input-actions{
  gap:7px!important;
}
body.lesson-view-active #skill-speaking .ai-input-actions button{
  min-height:40px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
}

/* =========================================================
   7. GRAMMAR / WRITING — calm consolidation area
   ========================================================= */
body.lesson-view-active #skill-grammar .grammar-foundation{
  display:grid!important;
  gap:9px!important;
}

body.lesson-view-active #skill-grammar .grammar-ai-card{
  margin-top:12px!important;
  padding:16px!important;
  border-radius:17px!important;
  border:1px solid #dfe8e5!important;
  background:#fbfdfc!important;
}
body.lesson-view-active #skill-grammar .grammar-ai-head h3{
  font-size:17px!important;
}
body.lesson-view-active #skill-grammar .grammar-ai-head p{
  font-size:11px!important;
}

body.lesson-view-active #skill-writing .writing-card{
  padding:16px!important;
  border-radius:17px!important;
}
body.lesson-view-active #skill-writing #writingPrompt{
  padding:12px!important;
  margin:0 0 10px!important;
  border-radius:12px!important;
  background:#f8fbfa!important;
  font-size:12px!important;
  line-height:1.55!important;
}
body.lesson-view-active #skill-writing #writingBox{
  min-height:180px!important;
  border-radius:12px!important;
}
body.lesson-view-active #skill-writing .writing-actions-v2{
  gap:7px!important;
}
body.lesson-view-active #skill-writing .writing-actions-v2 button{
  min-height:40px!important;
  padding:8px 11px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
}

/* =========================================================
   8. GAME — game board with compact review
   ========================================================= */
body.lesson-view-active #skill-quiz .quiz-coverage{
  margin:0 0 10px!important;
  padding:11px 12px!important;
  border-radius:14px!important;
  background:#f7fbfa!important;
  box-shadow:none!important;
}
body.lesson-view-active #skill-quiz .quiz-coverage-kicker{
  font-size:9.5px!important;
}
body.lesson-view-active #skill-quiz .quiz-coverage strong{
  font-size:12.5px!important;
}
body.lesson-view-active #skill-quiz .quiz-coverage-chips span{
  padding:4px 7px!important;
  font-size:9.5px!important;
}

body.lesson-view-active #skill-quiz .exercise-stack{
  gap:8px!important;
  padding-bottom:8px!important;
}
body.lesson-view-active #skill-quiz .quiz-question-card,
body.lesson-view-active #skill-quiz .exercise-item{
  padding:14px!important;
  border:1px solid #e1e9e6!important;
  border-left:3px solid #b7dcd4!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.lesson-view-active #skill-quiz .quiz-question-meta{
  margin-bottom:6px!important;
}
body.lesson-view-active #skill-quiz .quiz-question-meta span,
body.lesson-view-active #skill-quiz .quiz-question-meta b{
  font-size:9.5px!important;
}
body.lesson-view-active #skill-quiz .quiz-question-card .choices label{
  padding:8px 9px!important;
  border-radius:9px!important;
}
body.lesson-view-active #skill-quiz .quiz-question-card .choices label span{
  font-size:11px!important;
}

body.lesson-view-active #skill-quiz .quiz-result{
  margin:10px 0 0!important;
  padding:12px!important;
  justify-content:space-between!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,#f4fbf8,#fffaf0)!important;
  border:1px solid #dce8e4!important;
}
body.lesson-view-active #skill-quiz #submitQuiz{
  min-height:42px!important;
  padding:0 14px!important;
  border-radius:10px!important;
  font-size:11px!important;
}
body.lesson-view-active #skill-quiz .quiz-result strong{
  font-size:16px!important;
}
body.lesson-view-active #skill-quiz .quiz-review{
  padding:13px!important;
  border-radius:15px!important;
}
body.lesson-view-active #skill-quiz .quiz-review-item{
  padding:9px!important;
  border-radius:11px!important;
}

/* =========================================================
   9. MOBILE — same Lesson system for iOS + Android
   ========================================================= */
@media(max-width:900px){
  body.lesson-view-active #view-lesson .activity-heading-actions{
    justify-content:flex-start!important;
  }

  body.lesson-view-active #skill-listening .listening-practice-section,
  body.lesson-view-active #skill-listening .listening-fill-section{
    padding:13px!important;
  }

  body.lesson-view-active #skill-roleplay .roleplay-toolbar{
    grid-template-columns:1fr 1fr!important;
  }
  body.lesson-view-active #skill-roleplay .roleplay-role-field{
    grid-column:1/-1!important;
  }
  body.lesson-view-active #skill-roleplay #roleplayStart{
    width:100%!important;
  }

  body.lesson-view-active #skill-shadowing #shadowFullDialogue{
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-shadowing #shadowFullDialogue audio{
    width:100%!important;
  }
  body.lesson-view-active #skill-shadowing .lesson-shell{
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-shadowing .line-list{
    max-height:210px!important;
    overflow:auto!important;
  }
  body.lesson-view-active #skill-shadowing .action-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.lesson-view-active #skill-shadowing .action-grid button:first-child{
    grid-column:1/-1!important;
  }

  body.lesson-view-active #skill-speaking .ai-speaking-top{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  body.lesson-view-active #skill-speaking .ai-speaking-meters{
    justify-content:flex-start!important;
  }

  body.lesson-view-active #skill-quiz .quiz-result{
    align-items:stretch!important;
  }
}

@media(max-width:560px){
  body.lesson-view-active #skill-listening .listening-path-steps{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  body.lesson-view-active #skill-listening .listening-path-arrow{
    display:none!important;
  }

  body.lesson-view-active #skill-reading .reading-card>p:first-child{
    padding:16px!important;
    font-size:15px!important;
  }
  body.lesson-view-active #skill-reading .reading-q{
    padding:14px 16px!important;
  }

  body.lesson-view-active #skill-roleplay .roleplay-toolbar{
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-roleplay .roleplay-toggle{
    width:100%!important;
  }

  body.lesson-view-active #skill-shadowing .shadow-quick-settings{
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-shadowing .practice-card{
    padding:14px!important;
  }
  body.lesson-view-active #skill-shadowing .script-area{
    min-height:170px!important;
    padding:16px 0!important;
  }
  body.lesson-view-active #skill-shadowing .english{
    font-size:26px!important;
  }
  body.lesson-view-active #skill-shadowing .action-grid{
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-shadowing .action-grid button:first-child{
    grid-column:auto!important;
  }

  body.lesson-view-active #skill-speaking .ai-speaking-card{
    padding:14px!important;
  }
  body.lesson-view-active #skill-speaking .ai-chat{
    min-height:240px!important;
  }
  body.lesson-view-active #skill-speaking .ai-input-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }

  body.lesson-view-active #skill-writing .writing-actions-v2{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-writing .writing-actions-v2 button{
    width:100%!important;
  }

  body.lesson-view-active #skill-quiz .quiz-result{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  body.lesson-view-active #skill-quiz #submitQuiz{
    width:100%!important;
  }
}
