/* ============================================================
   朵拉高中英文寫作課 — 共用樣式
   品牌色：米白 #F5F1E8 / 深墨綠 #2D4A3E / 赤紅 #C84B31
   字體：Noto Sans TC（內文）+ Noto Serif TC（標題）
   風格：日式精緻、大留白、淡陰影
   ============================================================ */

:root{
  --cream:#F5F1E8;
  --cream-deep:#E8E2D0;
  --paper:#FBF8F1;
  --leaf:#2D4A3E;
  --leaf-soft:#4A6B5F;
  --red:#C84B31;
  --red-soft:#E07A5F;
  --ink:#2b2418;
  --ink-soft:#5a5346;
  --gold:#D49A3A;
  --ok:#3d7a4e;
  --shadow:0 2px 8px rgba(45,74,62,.08);
  --shadow-lg:0 6px 22px rgba(45,74,62,.12);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Noto Sans TC',sans-serif;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(circle at 15% 12%, rgba(200,75,49,.04) 0%, transparent 42%),
    radial-gradient(circle at 85% 70%, rgba(45,74,62,.05) 0%, transparent 48%);
}
h1,h2,h3,h4{font-family:'Noto Serif TC',serif;color:var(--leaf);line-height:1.3;}
.wrap{max-width:840px;margin:0 auto;padding:0 22px;}

/* ===== 頂部列 ===== */
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(245,241,232,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--cream-deep);
}
.topbar .inner{
  max-width:840px;margin:0 auto;padding:10px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.topbar .brand{font-family:'Noto Serif TC',serif;font-weight:700;color:var(--leaf);font-size:16px;}
.topbar .brand small{display:block;font-family:'Noto Sans TC';font-weight:400;font-size:11px;color:var(--ink-soft);letter-spacing:.04em;}

/* 老師版切換鈕 */
.mode-toggle{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  border:1.5px solid var(--leaf);color:var(--leaf);background:transparent;
  font-family:'Noto Sans TC';font-size:13px;font-weight:600;
  padding:6px 14px;border-radius:30px;transition:.2s;white-space:nowrap;
}
.mode-toggle:hover{background:rgba(45,74,62,.06);}
.mode-toggle .dot{width:8px;height:8px;border-radius:50%;background:var(--cream-deep);transition:.2s;}
body.teacher .mode-toggle{background:var(--leaf);color:#fff;}
body.teacher .mode-toggle .dot{background:var(--gold);}

/* ===== Hero ===== */
.hero{padding:54px 22px 30px;text-align:center;}
.hero .kicker{
  display:inline-block;font-size:13px;letter-spacing:.12em;color:var(--red);
  font-weight:600;margin-bottom:14px;
  border:1.4px solid var(--red);border-radius:30px;padding:4px 16px;
}
.hero h1{font-size:clamp(30px,6.4vw,46px);font-weight:700;letter-spacing:.01em;}
.hero .lead{margin-top:16px;color:var(--ink-soft);font-size:clamp(15px,3.2vw,17px);max-width:620px;margin-left:auto;margin-right:auto;}

/* ===== 區塊 ===== */
section{padding:26px 0;}
.sec-label{
  font-family:'Noto Serif TC',serif;font-size:13px;color:var(--red);
  letter-spacing:.08em;font-weight:500;margin-bottom:4px;
}
h2.sec-title{font-size:clamp(22px,4.6vw,28px);margin-bottom:6px;}
h2.sec-title .num{color:var(--cream-deep);font-size:.85em;margin-right:8px;}
.sec-desc{color:var(--ink-soft);font-size:15px;margin-bottom:18px;}

/* ===== 卡片 ===== */
.card{
  background:var(--paper);border:1px solid var(--cream-deep);border-radius:8px;
  padding:24px 26px;box-shadow:var(--shadow);margin-bottom:16px;
}
.card.tight{padding:18px 20px;}

/* ===== 老師版專用框（學生版隱藏）===== */
.teacher-note{display:none;}
body.teacher .teacher-note{display:block;}
.teacher-note{
  background:linear-gradient(180deg,#eef4f0 0%,#e9f1ec 100%);
  border:1px solid #bcd3c6;border-left:4px solid var(--leaf);
  border-radius:7px;padding:18px 22px;margin:14px 0;box-shadow:var(--shadow);
}
.teacher-note .tn-head{
  font-family:'Noto Serif TC',serif;font-weight:700;color:var(--leaf);
  font-size:15px;margin-bottom:8px;display:flex;align-items:center;gap:8px;
}
.teacher-note .tn-head::before{content:'👩‍🏫';}
.teacher-note ul{margin:6px 0 0 20px;}
.teacher-note li{margin-bottom:5px;font-size:14.5px;color:var(--ink-soft);}
.teacher-note .time-chip{
  display:inline-block;background:var(--leaf);color:#fff;font-size:12px;
  padding:2px 10px;border-radius:20px;margin-right:8px;font-weight:600;
}

/* 學生版時顯示「老師版有更多」提示條（可選）*/
.teacher-hint{
  display:flex;gap:8px;align-items:center;font-size:13px;color:var(--leaf-soft);
  background:rgba(45,74,62,.05);border:1px dashed var(--cream-deep);
  border-radius:6px;padding:8px 14px;margin:10px 0;
}
body.teacher .teacher-hint{display:none;}

/* ===== 範文區 ===== */
.essay{
  background:#fff;border:1px solid var(--cream-deep);border-radius:8px;
  padding:22px 24px;font-size:16px;line-height:2.05;box-shadow:var(--shadow);
}
.essay .zh{color:var(--ink-soft);font-size:14px;border-top:1px dashed var(--cream-deep);margin-top:14px;padding-top:12px;}
.essay .hl{background:rgba(212,154,58,.28);border-radius:3px;padding:0 3px;font-weight:500;}

/* ===== 同義詞銀行 ===== */
.syn-grid{display:grid;gap:14px;}
.syn-card{
  background:var(--paper);border:1px solid var(--cream-deep);border-left:4px solid var(--gold);
  border-radius:7px;padding:16px 18px;box-shadow:var(--shadow);
}
.syn-card .zh{font-family:'Noto Serif TC',serif;font-weight:700;color:var(--leaf);font-size:16px;margin-bottom:3px;}
.syn-card .zh .lv{font-family:'Noto Sans TC';font-size:11px;font-weight:600;color:#fff;background:var(--red);border-radius:20px;padding:1px 9px;margin-left:8px;vertical-align:middle;}
.syn-card .base{font-size:13px;color:var(--ink-soft);margin-bottom:8px;}
.syn-card .base b{color:var(--red);}
.syn-card .words{display:flex;flex-wrap:wrap;gap:7px;}
.syn-card .w{
  background:#fff;border:1px solid var(--cream-deep);border-radius:5px;
  padding:4px 11px;font-size:14px;color:var(--ink);font-family:'Noto Serif TC',serif;
}
.syn-card .w.star{border-color:var(--gold);background:rgba(212,154,58,.12);}
.syn-card .eg{margin-top:10px;font-size:13.5px;color:var(--ink-soft);font-style:italic;border-top:1px dashed var(--cream-deep);padding-top:8px;}

/* ===== 填空練習 ===== */
.blank{
  display:inline-block;border-bottom:2px solid var(--red);min-width:88px;
  text-align:center;color:var(--red);font-weight:600;cursor:pointer;
  font-family:'Noto Serif TC',serif;padding:0 6px;position:relative;
}
.blank::after{content:'？';color:var(--red-soft);font-size:13px;}
.blank.revealed{color:var(--leaf);border-color:var(--leaf);}
.blank.revealed::after{content:'';}

/* ===== 小測 / 互動題 ===== */
.q{background:var(--paper);border:1px solid var(--cream-deep);border-radius:7px;padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow);}
.q .qhead{font-weight:600;color:var(--leaf);margin-bottom:10px;font-size:15px;}
.q .qhead .qn{display:inline-block;background:var(--leaf);color:#fff;border-radius:50%;width:24px;height:24px;text-align:center;line-height:24px;font-size:13px;margin-right:8px;}
.q input[type=text]{
  width:100%;border:1px solid var(--cream-deep);border-radius:6px;
  padding:9px 12px;font-size:15px;font-family:'Noto Serif TC',serif;background:#fff;
}
.q input[type=text]:focus{outline:none;border-color:var(--leaf);}
.q .ans{display:none;margin-top:10px;padding:10px 14px;background:rgba(61,122,78,.08);border-left:3px solid var(--ok);border-radius:5px;font-size:14px;color:var(--ink-soft);}
.q .ans.show{display:block;}
.q .ans b{color:var(--ok);}
.opt{display:block;border:1px solid var(--cream-deep);border-radius:6px;padding:9px 14px;margin-bottom:7px;cursor:pointer;background:#fff;font-size:14.5px;transition:.15s;}
.opt:hover{border-color:var(--leaf-soft);}
.opt.correct{border-color:var(--ok);background:rgba(61,122,78,.1);}
.opt.wrong{border-color:var(--red);background:rgba(200,75,49,.08);}

/* ===== 寫作練習 ===== */
textarea.write{
  width:100%;min-height:160px;border:1px solid var(--cream-deep);border-radius:8px;
  padding:14px 16px;font-size:15px;font-family:'Noto Serif TC',serif;line-height:1.9;
  background:#fff;resize:vertical;
}
textarea.write:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px rgba(45,74,62,.08);}
.write-meta{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:13px;color:var(--ink-soft);}
.saved-tag{color:var(--ok);font-size:12px;opacity:0;transition:.3s;}
.saved-tag.on{opacity:1;}

/* ===== 按鈕 ===== */
.btn{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:none;
  background:var(--leaf);color:#fff;font-family:'Noto Sans TC';font-size:14px;font-weight:600;
  padding:9px 20px;border-radius:6px;transition:.2s;text-decoration:none;
}
.btn:hover{background:#24402a;box-shadow:var(--shadow);transform:translateY(-1px);}
.btn.ghost{background:transparent;color:var(--leaf);border:1.5px solid var(--leaf);}
.btn.ghost:hover{background:rgba(45,74,62,.06);}
.btn.sm{padding:6px 14px;font-size:13px;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}

/* ===== 自評檢核表 ===== */
.checklist{list-style:none;}
.checklist li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--cream-deep);}
.checklist input{margin-top:5px;width:17px;height:17px;accent-color:var(--leaf);flex-shrink:0;}
.checklist label{font-size:14.5px;color:var(--ink-soft);cursor:pointer;}

/* ===== 評分量表 ===== */
.rubric{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);}
.rubric th,.rubric td{border:1px solid var(--cream-deep);padding:9px 12px;text-align:left;vertical-align:top;}
.rubric th{background:var(--leaf);color:#fff;font-family:'Noto Serif TC';font-weight:500;}
.rubric td:first-child{font-weight:600;color:var(--leaf);white-space:nowrap;}

/* ===== 導覽 ===== */
.lesson-nav{display:flex;justify-content:space-between;gap:12px;margin:32px 0 14px;}
.lesson-nav a{flex:1;text-decoration:none;color:var(--leaf);background:var(--paper);border:1px solid var(--cream-deep);border-radius:8px;padding:14px 16px;transition:.2s;box-shadow:var(--shadow);}
.lesson-nav a:hover{border-color:var(--leaf);transform:translateY(-2px);}
.lesson-nav .dir{font-size:12px;color:var(--ink-soft);}
.lesson-nav .ttl{font-family:'Noto Serif TC';font-weight:700;font-size:15px;margin-top:2px;}
.lesson-nav a.next{text-align:right;}
.lesson-nav a.disabled{opacity:.4;pointer-events:none;}

/* ===== 頁尾 ===== */
footer{text-align:center;padding:36px 22px 48px;color:var(--ink-soft);font-size:13px;}
footer .logo{font-family:'Noto Serif TC';font-weight:700;color:var(--leaf);font-size:15px;}

/* ===== 進度膠囊（總覽用）===== */
.step-list{display:grid;gap:14px;}
.step{display:flex;gap:16px;background:var(--paper);border:1px solid var(--cream-deep);border-radius:9px;padding:18px 20px;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:.2s;}
.step:hover{border-color:var(--leaf);transform:translateY(-2px);box-shadow:var(--shadow-lg);}
.step .no{flex-shrink:0;width:46px;height:46px;border-radius:50%;background:var(--leaf);color:#fff;font-family:'Noto Serif TC';font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;}
.step .body h3{font-size:17px;margin-bottom:3px;}
.step .body p{font-size:14px;color:var(--ink-soft);}
.step .body .tag{display:inline-block;font-size:12px;color:var(--red);margin-top:6px;border:1px solid var(--red);border-radius:20px;padding:1px 10px;}

@media(max-width:560px){
  .lesson-nav{flex-direction:column;}
  .essay{font-size:15px;}
  .topbar .brand small{display:none;}
}
