
:root{
  --bg:#f4f6fb;--card:#fff;--text:#172033;--muted:#6f7788;--line:#e5e9f2;
  --brand:#3157e5;--soft:#edf2ff;--good:#16835a;--hard:#d95858;
  --normal:#d9942f;--easy:#2a9a68;--purple:#7854c4
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}
.hidden{display:none!important}.center{min-height:var(--meq-viewport-height,100dvh);display:grid;place-items:center;padding:20px}
.login{width:min(430px,100%);text-align:center}.brand{width:60px;height:60px;margin:auto;display:grid;place-items:center;background:var(--brand);color:#fff;border-radius:18px;font-weight:900}.error{color:#b33;margin-top:8px}
header,main{max-width:900px;margin:auto}
header{padding:20px 14px 5px;display:flex;justify-content:space-between;align-items:end}
.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--muted);font-weight:800}
h1{margin:5px 0}h1 small{font-size:12px;color:var(--brand)}h2{margin:0 0 5px}h3{margin:20px 0 8px;font-size:15px}
.quota{text-align:right}.quota b{display:block;font-size:25px;color:var(--brand)}.quota span{font-size:11px;color:var(--muted)}
main{padding:5px 14px 74px}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;margin:12px 0;box-shadow:0 5px 20px rgba(25,35,65,.04)}
.hero,.home-hero{border-left:5px solid var(--brand)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;text-align:center}
.stat b{display:block;font-size:23px;color:var(--brand)}.stat span{font-size:11px;color:var(--muted)}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;background:#edf0f5;padding:4px}
.nav,.mode,.filter{background:transparent;color:#5d6474}
.nav.active,.mode.active,.filter.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.seg{display:grid;grid-template-columns:1fr 1fr;background:#eef1f6;padding:3px;border-radius:13px;margin-bottom:16px}
button{border:0;border-radius:12px;padding:11px 14px;font:inherit;font-weight:700;cursor:pointer}
.primary{background:var(--brand);color:#fff;width:100%}.primary.compact{width:auto}.ghost,.actions button{background:#eef1f6;color:#394158}.wide{width:100%;margin-top:8px}.danger{background:#fff0f0;color:#a33}
input,textarea,select{width:100%;border:1px solid #cbd1df;border-radius:13px;padding:13px;font:inherit;background:#fff;color:var(--text)}
textarea{min-height:110px;resize:vertical;margin:7px 0 11px}label{display:block;font-weight:800;margin:7px 0}
.status,.muted{color:var(--muted);font-size:13px}.row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.actions{display:flex;gap:8px;flex-wrap:wrap}
.badge{display:inline-block;background:#e9efff;color:#2a49b6;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}
.badge.soft{background:#eef5ff}.badge.warm{background:#fff0d6;color:#885900}.badge.green{background:#e7f7ef;color:#176b4b}.badge.grammar{background:#f1ebff;color:#6540b5}
.grammar-card{border-left:4px solid #8a69d4}
.big{font-size:22px;line-height:1.55;font-weight:800;margin-top:8px}.english{font-size:18px;line-height:1.6;margin-top:8px}.jp{font-size:15px;line-height:1.8;margin-top:8px}
.translation-box{margin-top:12px;padding:12px 14px;border-radius:12px;background:#f7f8fb;border:1px solid var(--line);font-size:15px;line-height:1.7}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chip{background:#eef2ff;color:#334fae;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.difficulty-guide{background:#f7f8fb;border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin:8px 0 12px;font-size:13px;line-height:1.6}
.chat{display:flex;flex-direction:column;gap:9px;max-height:500px;overflow:auto;margin-bottom:12px}
.bubble{max-width:88%;padding:12px 14px;border-radius:16px;line-height:1.6}.bubble.ai{align-self:flex-start;background:#eef2ff}.bubble.user{align-self:flex-end;background:var(--brand);color:#fff}
.bubble-message{white-space:pre-wrap}
.bubble-translation-support{margin-top:9px;padding-top:8px;border-top:1px solid rgba(74,91,140,.16)}
.bubble-support-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.bubble-translation-toggle,.bubble-save-my-english{min-height:32px;padding:6px 9px;border-radius:9px;font-size:12px;font-weight:850;text-align:left}
.bubble-translation-toggle{background:#fff;color:#263a73;border:1px solid #cfd8f2}
.bubble-save-my-english{background:#eef3ff;color:#284b9b;border:1px solid #c7d4f4}
.bubble-translation-toggle:hover,.bubble-translation-toggle:focus-visible,.bubble-save-my-english:hover,.bubble-save-my-english:focus-visible{filter:brightness(.98);box-shadow:0 0 0 2px rgba(63,103,210,.12)}
.bubble-save-my-english:disabled{opacity:.72;cursor:default}
.bubble-translation{margin-top:7px;padding:10px 11px;border-radius:10px;background:#fff;color:#24324d;border:1px solid #d7deef;font-size:13px;line-height:1.65}
.task-list{display:grid;gap:8px;margin-top:14px}.task-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;background:#f7f8fc;border:1px solid var(--line);padding:13px 14px}.task-card b{display:block}.task-card small{display:block;color:var(--muted);margin-top:3px}.task-icon{width:30px;height:30px;border-radius:10px;background:#e9efff;color:var(--brand);display:grid;place-items:center;font-weight:900}
.completion{min-width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#eaf0ff;color:var(--brand);font-weight:900}
.report-number{font-size:30px;font-weight:900;color:var(--brand)}.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.report-grid div{background:#f7f8fb;border-radius:12px;padding:11px;text-align:center}.report-grid b{display:block;font-size:20px}.report-grid span{font-size:11px;color:var(--muted)}
.prompt{font-size:21px;font-weight:800;line-height:1.6;padding:16px 0}.answer{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
.review-kicker{font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.04em}
.rating-title{margin-top:20px;font-weight:800}.rating-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.rate{padding:14px 8px;border:1px solid var(--line);background:#fff}.rate strong{display:block;font-size:15px}.rate span{display:block;font-size:11px;margin-top:4px;color:var(--muted)}
.rate.hard strong{color:var(--hard)}.rate.normal strong{color:var(--normal)}.rate.easy strong{color:var(--easy)}
.due-badge{text-align:center;min-width:64px;background:#eef2ff;border-radius:14px;padding:8px 10px}.due-badge b{display:block;font-size:22px;color:var(--brand)}.due-badge span{font-size:10px;color:var(--muted)}
.empty-state{text-align:center;padding:28px 10px;color:var(--muted)}.empty-state h3{color:var(--text)}.done-icon{width:52px;height:52px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#e7f7ef;color:var(--good);font-size:26px;font-weight:900}
.schedule-list{display:grid;gap:8px;margin-top:12px}.schedule-row{display:flex;justify-content:space-between;padding:10px 12px;background:#f7f8fb;border-radius:12px}.schedule-row span{color:var(--muted)}
.item{padding:14px 0;border-bottom:1px solid var(--line)}.item .jp0{font-size:12px;color:var(--muted)}.item .en0{font-weight:800;line-height:1.5}.meta{font-size:11px;color:var(--muted);margin-top:5px}
.library-hero{border-left:5px solid var(--purple)}.library-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.filter{background:#eef1f6}
.filebtn{display:inline-block;background:#eef1f6;padding:10px 14px;border-radius:12px;cursor:pointer}.filebtn input{display:none}
.library-hero-copy{display:grid;gap:10px}.library-hero-note{margin:0;padding:10px 12px;background:#f6f7fb;border:1px solid var(--line);border-radius:12px;font-size:12px;color:#4d5870;line-height:1.6}.library-hero-note strong{color:var(--text)}
.data-manage-details{margin-top:12px}.data-manage-card{display:grid;gap:14px}.data-manage-copy p{margin:.35em 0 0}.data-manage-actions{display:flex;gap:10px;flex-wrap:wrap}.data-manage-actions>*{flex:0 0 auto}.data-manage-points .summary-line b{color:var(--text)}
.summary-list{display:grid;gap:7px}.summary-line{background:#f7f8fb;border-radius:11px;padding:10px 12px;line-height:1.6}
.remember-list{display:grid;gap:9px}.remember-card{border:1px solid var(--line);border-radius:13px;padding:12px}.remember-card b{display:block;font-size:17px}.remember-card span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.remember-card small{display:block;margin-top:7px;line-height:1.5}.remember-card button{margin-top:8px;background:#eef1f6}
.next-goal{margin-top:16px;padding:13px;background:#eef8f3;border-radius:13px}.next-goal b{color:var(--good)}
footer{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.93);border-top:1px solid var(--line);padding:9px;text-align:center;font-size:10px;color:var(--muted)}
@media(max-width:680px){.stats{grid-template-columns:repeat(2,1fr)}.tabs{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr}.big{font-size:20px}.rating-grid{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr}.task-card{grid-template-columns:auto 1fr auto}}

.ask-teacher-card{
  border-left:4px solid var(--purple);
}
.badge.teacher{
  background:#f1ebff;
  color:#6540b5;
}
.ask-title{
  margin:8px 0 0;
  font-size:16px;
}
.suggested-questions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:14px 0 8px;
}
.question-chip{
  background:#f3f0fb;
  color:#6047a1;
  font-size:12px;
  padding:8px 10px;
}
.teacher-answer{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.teacher-answer-badge{
  background:#eaf0ff;
  color:var(--brand);
}
.teacher-examples{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.teacher-example{
  padding:11px 12px;
  border-radius:12px;
  background:#f7f8fb;
  border:1px solid var(--line);
}
.teacher-example b{
  display:block;
  line-height:1.5;
}
.teacher-example span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
}
.teacher-key-point{
  margin-top:12px;
  padding:11px 12px;
  border-radius:12px;
  background:#eef8f3;
  color:#176b4b;
  font-weight:700;
  line-height:1.6;
}

.hint-area{margin:4px 0 10px}
.hint-btn{background:#fff7dd;color:#785b00}
.hint-btn:disabled{opacity:.75;cursor:default}
.hint-box{margin-top:9px;padding:11px 13px;border-radius:12px;background:#fffaf0;border:1px solid #eee2bd;color:#66501a;font-size:14px;line-height:1.6}

.teacher-save-point{margin-top:12px}
.review-memory-point{margin-top:16px;padding:13px 14px;border-radius:13px;background:#eef8f3;border:1px solid #d8eee3}
.review-memory-point .jp{margin-top:7px;color:#176b4b;font-weight:700}
.library-memory-point{margin-top:9px;padding:9px 11px;border-radius:11px;background:#eef8f3;border:1px solid #d8eee3;font-size:13px;line-height:1.6}
.library-memory-point b{display:block;color:#176b4b;margin-bottom:3px}
.library-memory-point span{display:block}

.review-rule-note{
  margin:8px 0 0;
  padding:10px 12px;
  border-radius:11px;
  background:#f7f8fb;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}

.review-scene-box{margin:12px 0 6px}
.review-scene-wrap{margin-top:10px}
.review-scene-img{
  width:100%;
  max-width:360px;
  display:block;
  border-radius:16px;
  border:1px solid var(--line);
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.scene-note{
  margin:8px 0 0;
  font-size:12px;
  color:var(--muted);
}
.scene-image{
  width:100%;
  max-width:280px;
  display:block;
  margin-top:12px;
  border-radius:16px;
  border:1px solid var(--line);
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.library-scene-box{
  margin-top:10px;
}
.generating{
  opacity:.75;
  pointer-events:none;
}

.review-seg{margin-top:14px}
.review-mode-help{margin:10px 0 0}
.scene-hint-badge{
  display:inline-block;
  margin-bottom:8px;
  padding:5px 10px;
  border-radius:999px;
  background:#eef4ff;
  color:#3157e5;
  font-weight:700;
  font-size:12px;
}

.startup-box{
  width:min(420px,100%);
  text-align:center;
  padding:24px;
}
.startup-box .brand{margin-bottom:14px}
.startup-box p{color:var(--muted)}

.pronunciation-panel{border-left:5px solid var(--purple)}
.pron-title{margin-top:8px}
.pron-audio-actions{margin-top:12px}
.pron-guide{margin-top:14px}
.pron-section{padding:12px 0;border-top:1px solid var(--line)}
.pron-section:first-child{border-top:0}
.pron-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ipa{font-size:20px;line-height:1.7;font-family:Georgia,"Times New Roman",serif;margin-top:7px}
.stress-line{font-size:18px;font-weight:800;line-height:1.6;margin-top:7px}
.pron-list{display:grid;gap:7px;margin-top:8px}
.pron-list-item{padding:9px 11px;border-radius:11px;background:#f7f8fb;border:1px solid var(--line);line-height:1.6}
.pron-list-item b{display:block}
.pron-diagnosis{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.pron-result{margin-top:14px;padding:14px;border-radius:14px;background:#f7f8fb;border:1px solid var(--line)}
.pron-score-wrap{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start}
.pron-score{display:block;font-size:34px;color:var(--brand);margin-top:4px}
@media(max-width:680px){
  .pron-grid{grid-template-columns:1fr}
  .pron-score-wrap{grid-template-columns:1fr}
}

/* ===== v6.0 UI refinement ===== */
body{padding-bottom:92px}
header{padding-top:14px}
header h1{font-size:20px}
main{padding-bottom:110px}
.card{box-shadow:0 3px 14px rgba(25,35,65,.035)}
.step-label{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--brand);margin-bottom:6px}
.make-intro{margin:0 0 14px}
.make-input-card textarea{min-height:135px}

/* Bottom navigation */
.bottom-nav{
  position:fixed;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  z-index:50;
  width:min(900px,100%);
  margin:0;
  padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  border-radius:18px 18px 0 0;
  border:1px solid var(--line);
  border-bottom:0;
  background:rgba(255,255,255,.97);
  box-shadow:0 -8px 30px rgba(27,36,64,.09);
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:2px;
}
.bottom-nav .nav{
  min-height:54px;
  padding:6px 2px;
  border-radius:13px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  font-size:10px;
  background:transparent;
  box-shadow:none;
}
.bottom-nav .nav.active{background:#f0f4ff;color:var(--brand)}
.nav-icon{font-size:20px;line-height:1}
.create-nav{position:relative}
.create-icon{
  width:37px;height:37px;border-radius:50%;
  display:grid;place-items:center;
  margin-top:-20px;
  background:var(--brand);color:#fff;
  box-shadow:0 6px 18px rgba(49,87,229,.28);
  font-size:27px;
}
.create-nav.active .create-icon{background:#2447c7}

/* Home */
.home-focus{padding:20px}
.home-welcome{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.home-welcome h2{font-size:22px;line-height:1.4;max-width:540px}
.review-cta{
  width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;
  margin:18px 0;padding:15px;
  text-align:left;background:#edf2ff;color:var(--text);border:1px solid #dbe4ff
}
.review-cta-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--brand);color:#fff;font-size:23px}
.review-cta-copy small,.review-cta-copy b,.review-cta-copy span{display:block}
.review-cta-copy small{font-size:10px;color:var(--muted);margin-bottom:2px}
.review-cta-copy b{font-size:17px}
.review-cta-copy span{font-size:12px;color:var(--brand);margin-top:2px;font-weight:800}
.review-cta-arrow{font-size:25px;color:var(--brand)}
.quick-make{padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.quick-make label{font-size:17px;margin-top:0}
.quick-make textarea{min-height:86px;margin-bottom:8px}
.secondary-route{
  width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;
  margin-top:14px;background:transparent;border:0;padding:9px 4px;color:var(--text)
}
.secondary-route b,.secondary-route small{display:block}
.secondary-route small{color:var(--muted);font-weight:500;margin-top:2px}
.compact-stats{margin-top:10px}
.home-details summary,.result-details summary,.ask-teacher-card summary,.pron-guide-details summary{
  cursor:pointer;font-weight:850;list-style:none
}
.home-details summary::-webkit-details-marker,.result-details summary::-webkit-details-marker,.ask-teacher-card summary::-webkit-details-marker,.pron-guide-details summary::-webkit-details-marker{display:none}
.home-details summary::after,.result-details summary::after,.ask-teacher-card summary::after,.pron-guide-details summary::after{
  content:"＋";float:right;color:var(--muted)
}
.home-details[open] summary::after,.result-details[open] summary::after,.ask-teacher-card[open] summary::after,.pron-guide-details[open] summary::after{content:"−"}
.report-head{margin-top:12px}
.settings-row{margin-top:14px;align-items:center}

/* Make result: one obvious primary action */
.result-primary{border:2px solid #dfe6ff}
.result-main{font-size:25px;margin:14px 0 10px}
.result-actions{margin-bottom:12px}
.remember-cta{
  margin-top:18px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:12px;align-items:center
}
.remember-cta small,.remember-cta b{display:block}
.remember-cta small{font-size:11px;color:var(--muted);margin-bottom:2px}
.result-details>summary,.ask-teacher-card>summary{font-size:16px}
.detail-section{padding:18px 0;border-top:1px solid var(--line)}
.detail-section:first-of-type{margin-top:14px}
.grammar-card-inline{border-left:3px solid #8a69d4;padding-left:12px}
.ask-teacher-card[open] .ask-title{margin-top:16px}

/* Library */
.library-item{padding:17px}
.library-item-top{display:flex;gap:10px;align-items:flex-start}
.library-copy{min-width:0;flex:1}
.more-btn{background:transparent;color:var(--muted);padding:6px 9px;font-size:18px}
.library-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.library-primary-actions button{background:#eef1f6;color:#394158}
.library-primary-actions .practice-btn{background:#edf2ff;color:#284bc0}
.item-menu{margin-top:8px;padding:8px;background:#f7f8fb;border:1px solid var(--line);border-radius:12px;display:flex;gap:8px;flex-wrap:wrap}
.item-menu button{background:#fff;border:1px solid var(--line)}
.danger-text{color:#a33!important}
.compact-scene{margin-top:12px}
.compact-scene .scene-image{max-height:210px;object-fit:cover}

/* Pronunciation: first show only the useful next action */
.pron-quick-point{
  margin:14px 0;padding:13px 14px;border-radius:13px;
  background:#f1ebff;color:#513398;font-weight:800;line-height:1.65
}
.pron-guide-details{margin-top:10px;border:1px solid var(--line);border-radius:13px;padding:12px 14px}
.pron-guide-details .pron-guide{margin-top:10px}
.pron-diagnosis h3{font-size:18px}

/* Mobile */
@media(max-width:680px){
  header .eyebrow{display:none}
  header{padding-bottom:0}
  header h1{font-size:18px}
  main{padding-left:10px;padding-right:10px}
  .card{border-radius:17px;padding:15px}
  .home-focus{padding:16px}
  .home-welcome h2{font-size:19px}
  .completion{min-width:50px;height:50px}
  .compact-stats{grid-template-columns:repeat(4,1fr);gap:5px}
  .compact-stats .stat{padding:9px 4px}
  .compact-stats .stat b{font-size:19px}
  .result-main{font-size:22px}
  .remember-cta{display:block}
  .remember-cta .primary{width:100%;margin-top:10px}
  .bottom-nav{border-radius:16px 16px 0 0}
}

/* v6.0.2 Voice input */
.voice-input-row{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin:-2px 0 10px;
}
.voice-input-btn{
  min-height:42px;
}
.voice-input-btn.listening{
  background:#fff0f0!important;
  border-color:#ef9a9a!important;
  color:#b42318!important;
}
.voice-status{
  min-width:0;
  flex:1;
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
}
#chatCard .actions .voice-status{
  flex-basis:100%;
}
@media(max-width:680px){
  .voice-input-btn{width:auto;min-width:132px}
  .voice-status{flex-basis:100%}
}

/* v6.0.4 AI conversation teacher */
.talk-teacher{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.talk-teacher>summary{
  cursor:pointer;
  list-style:none;
  font-weight:850;
  color:#4d3a91;
}
.talk-teacher>summary::-webkit-details-marker{display:none}
.talk-teacher>summary::after{
  content:"＋";
  float:right;
  color:var(--muted);
}
.talk-teacher[open]>summary::after{content:"−"}
.talk-teacher .muted{margin:9px 0 12px}
.talk-question-chips{margin-bottom:12px}
.talk-question-chip{
  background:#f3efff;
  color:#523a97;
  border:1px solid #e0d7fb;
}
#talkTeacherAnswerBox{margin-top:14px}

/* v6.1 stability */
.bubble.pending{
  opacity:.68;
}

/* ===== v6.2 Learning Loop ===== */
.daily-prompt-card{border-left:4px solid #5e7de7}
.daily-prompt-text{font-size:18px;font-weight:750;line-height:1.65;margin:12px 0 15px}
.monthly-report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.monthly-report-grid>div{padding:12px;border:1px solid var(--line);border-radius:13px;text-align:center}
.monthly-report-grid b,.monthly-report-grid span{display:block}
.monthly-report-grid b{font-size:23px}
.monthly-report-grid span{font-size:11px;color:var(--muted);margin-top:3px}
.growth-summary{display:grid;gap:8px;margin-top:12px}
.growth-summary>div{display:flex;justify-content:space-between;gap:12px;padding:11px 2px;border-top:1px solid var(--line)}
.growth-summary span{color:var(--muted)}
.mission-option{margin:12px 0 15px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fafbff}
.mission-switch{display:flex;align-items:flex-start;gap:10px;margin:0}
.mission-switch input{margin-top:4px}
.mission-switch b,.mission-switch small{display:block}
.mission-switch small{font-weight:500;color:var(--muted);margin-top:2px}
.mission-preview{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mission-chip{font-size:11px;padding:6px 8px;border-radius:999px;background:#edf2ff;color:#314fac;border:1px solid #d9e2ff}
.active-mission{margin-bottom:13px;padding:12px;border-radius:13px;background:#f4f7ff;border:1px solid #dce5ff}
.mission-targets{display:grid;gap:5px;margin-top:8px}
.mission-target{display:flex;gap:7px;font-size:12px;color:#4d5873}
.mission-target.done{text-decoration:line-through;color:#71825a}
.library-primary-actions{grid-template-columns:repeat(3,1fr)}
.library-primary-actions .used-btn{background:#eef9ef;color:#397443}
.listening-card{border-left:4px solid #58a16a}
.listening-card textarea{margin-top:12px}
.listening-result{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fafbfc;display:grid;gap:10px}
.listening-score{font-size:30px;font-weight:900;color:var(--brand)}
@media(max-width:680px){
  .library-primary-actions .used-btn{grid-column:1/-1}
}

/* ===== v6.2.1 Pronunciation Progress ===== */
.monthly-report-grid{grid-template-columns:repeat(5,1fr)}
.pron-progress{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}
.pron-progress-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.pron-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}
.pron-status.not-started{background:#f2f3f5;color:#68707d}
.pron-status.training{background:#fff3e8;color:#a35a16}
.pron-status.improving{background:#eef3ff;color:#3558b4}
.pron-status.mastered{background:#edf8ef;color:#347143}
.pron-progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pron-progress-grid>div{padding:10px;border-radius:11px;background:#fff;border:1px solid var(--line);text-align:center}
.pron-progress-grid span,.pron-progress-grid b{display:block}
.pron-progress-grid span{font-size:11px;color:var(--muted);margin-bottom:3px}
.pron-progress-grid b{font-size:17px}
@media(max-width:680px){
  .monthly-report-grid{grid-template-columns:repeat(2,1fr)}
  .pron-progress-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===== v6.2.2 Storage Rescue ===== */
.storage-manager{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcff}
.storage-manager p{margin:4px 0 0}
.storage-meter{margin-top:13px}
.storage-meter-bar{height:10px;background:#e9edf3;border-radius:999px;overflow:hidden}
.storage-meter-bar span{display:block;height:100%;width:0;background:#6f86d8;transition:width .25s ease}
.storage-meter-bar span[data-risk="warn"]{background:#d7a23d}
.storage-meter-bar span[data-risk="danger"]{background:#d05a58}
.storage-meter-labels{margin-top:6px;font-size:12px}
.storage-risk{font-weight:800}
.storage-risk.safe{color:#367b4b}
.storage-risk.warn{color:#a16912}
.storage-risk.danger{color:#b84442}
.storage-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.storage-breakdown>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:white}
.storage-breakdown span,.storage-breakdown b{display:block}
.storage-breakdown span{font-size:11px;color:var(--muted);margin-bottom:3px}
.storage-actions{margin-top:12px}
button.danger{background:#fff0f0;color:#a43f3d;border:1px solid #f2cccc}
@media(max-width:680px){
  .storage-breakdown{grid-template-columns:1fr}
}

/* ===== v6.2.3 Mobile Speech & Voice Picker ===== */
.voice-picker{margin:10px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.voice-picker label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}
.voice-picker select{width:100%;margin:0}
.voice-picker p{margin:6px 0 0}
.compact-picker{padding:9px 10px;margin-top:9px}
@media(max-width:680px){.voice-picker select{font-size:16px}}

/* ===== v6.2.4 Voice punctuation + compact mobile My English Challenge ===== */
@media(max-width:680px){
  .active-mission{
    margin:0 0 8px;
    padding:7px 2px 8px;
    border:0;
    border-bottom:1px solid var(--line);
    border-radius:0;
    background:transparent;
  }
  .active-mission .row{
    min-height:0;
    margin-bottom:4px;
  }
  .active-mission .row b{font-size:12px}
  #missionProgress{
    font-size:11px;
    color:var(--muted);
  }
  .mission-targets{
    display:flex;
    gap:6px;
    margin-top:4px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    padding-bottom:1px;
  }
  .mission-targets::-webkit-scrollbar{display:none}
  .mission-target{
    flex:0 0 auto;
    max-width:78vw;
    gap:4px;
    padding:5px 8px;
    border-radius:999px;
    background:#f4f7ff;
    font-size:10px;
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mission-target.done{background:#f0f5ed}

  .mission-option{
    margin:8px 0 10px;
    padding:9px 10px;
  }
  .mission-switch small{
    font-size:10px;
    line-height:1.35;
  }
  .mission-preview{
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    padding-bottom:1px;
  }
  .mission-preview::-webkit-scrollbar{display:none}
  .mission-chip{
    flex:0 0 auto;
    max-width:72vw;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* ===== v6.2.5 Review Rating History ===== */
.library-primary-actions{grid-template-columns:repeat(4,1fr)}
.library-primary-actions .history-btn{background:#f6f3ff;color:#5e4b9a}
.review-history-box{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fafbfc}
.review-history-title{font-weight:800;font-size:13px;margin-bottom:8px}
.review-history-list{display:grid;gap:7px}
.review-history-row{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:white}
.review-history-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}
.review-rating{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}
.review-rating.hard{background:#fff0ef;color:#ad4944}
.review-rating.normal{background:#fff7e8;color:#9b6b17}
.review-rating.easy{background:#edf8ef;color:#367245}
.review-history-date{font-size:11px;color:var(--muted)}
.review-history-sub{font-size:10px;color:var(--muted);margin-top:5px}
@media(max-width:680px){
  .library-primary-actions{grid-template-columns:1fr 1fr}
  .library-primary-actions .used-btn,
  .library-primary-actions .history-btn{grid-column:auto}
}

/* ===== v6.2.6 Curated Voice Profiles ===== */
.voice-profile-help{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 10px;
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.voice-profile-help span{
  font-size:10px;
  line-height:1.4;
  color:var(--muted);
}
.voice-picker select{
  font-weight:650;
}
@media(max-width:680px){
  .voice-profile-help{
    grid-template-columns:1fr;
    gap:4px;
  }
}

/* ===== v6.2.7 Daily Prompt Placeholder ===== */
#makeInput::placeholder{
  color:var(--muted);
  opacity:.72;
}

/* ===== v6.3 My English Story ===== */
.story-card{border-left:4px solid #8a66d8}
.badge.purple{background:#f1ebff;color:#6844b0}
.story-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.story-controls label{font-size:12px;font-weight:750}
.story-controls select{width:100%;margin-top:5px}
.story-result{margin-top:15px}
.story-mode-tabs{display:flex;gap:6px;margin:10px 0}
.story-mode-tabs button{flex:1}
.story-mode-tabs button.active{background:#ece6ff;color:#6041aa;border-color:#d4c6ff}
.story-dialogue{display:grid;gap:9px;margin:12px 0}
.story-line{padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.story-line.target{border-color:#d7c8ff;background:#fbf9ff}
.story-speaker{font-size:11px;font-weight:900;color:#7558b3;margin-bottom:4px}
.story-line-text{font-size:15px;font-weight:700;line-height:1.5}
.story-ja{font-size:11px;color:var(--muted);margin-top:5px}
.story-blank{width:100%;padding:10px;border:1px dashed #bda9e8;background:#f7f3ff;color:#6f53ad;border-radius:10px}
.story-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.story-target-details{margin-top:12px}
.story-target-row{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.story-target-row>span{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f0ebff;color:#6844b0;font-size:11px;font-weight:900}
@media(max-width:680px){
  .story-actions{grid-template-columns:1fr}
  .story-line{padding:9px 10px}
}

/* ===== v6.3.2 Safe Image Organizer ===== */
.image-organizer{
  margin-top:14px;
  padding:13px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.image-organizer-tools{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0;
}
.image-organizer-list{
  display:grid;
  gap:7px;
  max-height:330px;
  overflow-y:auto;
}
.image-organizer-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:center;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fafbfc;
  cursor:pointer;
}
.image-organizer-row input{
  width:18px;
  height:18px;
  margin:0;
}
.image-organizer-text{
  min-width:0;
}
.image-organizer-text .english{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:12px;
}
.image-organizer-text .muted{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:10px;
}
.image-organizer-meta{
  text-align:right;
  white-space:nowrap;
}
.image-organizer-meta b,
.image-organizer-meta span{
  display:block;
}
.image-organizer-meta b{font-size:11px}
.image-organizer-meta span{font-size:9px;color:var(--muted)}
.image-organizer-footer{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--line);
}
@media(max-width:680px){
  .image-organizer-tools{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .image-organizer-row{
    grid-template-columns:auto 1fr;
  }
  .image-organizer-meta{
    grid-column:2;
    text-align:left;
    display:flex;
    gap:8px;
  }
  .image-organizer-footer{
    align-items:stretch;
    flex-direction:column;
  }
}

/* ===== v6.4 My English Browser & Flashcards ===== */
.myenglish-viewbar{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  margin-bottom:12px;
}
.myenglish-viewbar p{margin:3px 0 0}
.myenglish-viewbuttons{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.myenglish-viewbuttons button{
  padding:8px 12px;
  border-radius:10px;
  background:#f1f3f7;
  color:#536071;
}
.myenglish-viewbuttons button.active{
  background:#e8edff;
  color:#3157d5;
  border-color:#ccd7ff;
}

.my-card-mode{
  margin:8px 0 4px;
}
.my-card-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.my-card-tools{
  display:flex;
  gap:6px;
}
.my-flashcard{
  min-height:300px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fafbff 100%);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  box-shadow:0 8px 30px rgba(62,76,120,.06);
}
.my-flashcard-label{
  font-size:11px;
  font-weight:900;
  color:#6d7b91;
  margin-bottom:16px;
  letter-spacing:.04em;
}
.my-flashcard-front{
  font-size:22px;
  line-height:1.6;
  font-weight:800;
  max-width:760px;
  margin-bottom:20px;
}
.my-flashcard-back{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--line);
  width:100%;
  font-size:19px;
  line-height:1.6;
  font-weight:750;
}
.my-flashcard-point{
  margin-top:14px;
  width:100%;
  padding:11px 13px;
  border-radius:12px;
  background:#eef8f3;
  color:#2e6550;
  text-align:left;
  font-size:12px;
}
.my-card-nav{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
  margin-top:10px;
}

@media(max-width:680px){
  .myenglish-viewbar{
    align-items:flex-start;
    flex-direction:column;
  }
  .myenglish-viewbuttons{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }
  .myenglish-viewbuttons button{
    width:100%;
    padding:8px 6px;
    font-size:11px;
  }
  .my-card-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }
  .my-card-tools{
    width:100%;
  }
  .my-card-tools button{
    flex:1;
  }
  .my-flashcard{
    min-height:260px;
    padding:20px 14px;
  }
  .my-flashcard-front{
    font-size:19px;
  }
  .my-flashcard-back{
    font-size:17px;
  }
  .my-card-nav{
    grid-template-columns:1fr 1fr;
  }
  #myCardSpeak{
    grid-column:1/-1;
    grid-row:2;
  }
}

/* ===== v6.4.1 Flashcard image support ===== */
.my-flashcard-image-wrap{
  width:100%;
  display:flex;
  justify-content:center;
  margin:0 0 18px;
}
.my-flashcard-image{
  max-width:min(100%, 380px);
  max-height:240px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid var(--line);
  box-shadow:0 6px 18px rgba(62,76,120,.08);
  background:#f7f8fb;
  cursor:zoom-in;
}
@media(max-width:680px){
  .my-flashcard-image{
    max-width:100%;
    max-height:200px;
  }
}

/* ===== v6.4.3 Repeatable Story Blanks ===== */
.story-blank{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-height:52px;
}
.story-blank small{
  display:block;
  font-size:9px;
  opacity:.72;
  font-weight:600;
}
.story-blank.revealed{
  background:#fbf9ff;
  border-style:solid;
  color:inherit;
}
.story-blank.revealed span{
  font-size:14px;
  font-weight:750;
  line-height:1.45;
}

/* ===== v6.5 Saved Story Cards ===== */
.story-actions.three{grid-template-columns:repeat(3,1fr)}
.saved-story-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.saved-story-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}
.saved-story-flashcard{
  min-height:250px;padding:22px;border:1px solid #dacfff;border-radius:18px;
  background:linear-gradient(180deg,#fff 0%,#fbf9ff 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center
}
.saved-story-card-label{font-size:10px;font-weight:900;color:#7657bd;margin-bottom:8px}
.saved-story-flashcard h3{margin:0 0 6px;font-size:22px}
.saved-story-body{
  width:100%;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);
  text-align:left;display:grid;gap:7px
}
.saved-story-line{padding:8px 10px;border-radius:10px;background:#fff;border:1px solid var(--line)}
.saved-story-line b{display:block;font-size:10px;color:#7457b6;margin-bottom:3px}
.saved-story-line div{font-size:13px;font-weight:650}
.saved-story-line small{display:block;margin-top:3px;color:var(--muted)}
.saved-story-card-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}
@media(max-width:680px){
  .story-actions.three{grid-template-columns:1fr}
  .saved-story-flashcard{min-height:220px;padding:18px 12px}
  .saved-story-flashcard h3{font-size:19px}
  .saved-story-card-actions{grid-template-columns:1fr 1fr}
}

/* ===== v6.6 Story Pronunciation & Teacher ===== */
.story-practice-details,
.story-teacher-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.story-pron-list{display:grid;gap:6px;margin:10px 0}
.story-pron-line-btn{
  width:100%;display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;
  text-align:left;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fafbfc
}
.story-pron-line-btn span{font-size:10px;font-weight:900;color:#7658b6}
.story-pron-line-btn b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.story-pron-panel{margin-top:10px;padding:12px;border:1px solid #d9cdf8;border-radius:12px;background:#fbf9ff}
.story-pron-target{margin-bottom:10px}
.story-pron-result{
  margin-top:10px;padding:12px;border-radius:11px;background:white;border:1px solid var(--line);
  display:grid;gap:8px
}
.story-pron-score{font-size:28px;font-weight:900;color:#5d4ab0}
.story-teacher-details textarea{margin-top:10px}
.teacher-shortcuts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.teacher-shortcuts button{padding:6px 9px;font-size:11px}
.story-teacher-details .teacher-answer{
  margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;line-height:1.65
}
.teacher-examples{margin-top:10px;display:grid;gap:6px}
.teacher-examples>div{padding:8px;border-radius:8px;background:#f7f8fb}
.teacher-examples small{display:block;color:var(--muted);margin-top:3px}
.teacher-key-point{margin-top:10px;padding:9px;border-radius:9px;background:#eef8f3}
@media(max-width:680px){
  .story-pron-line-btn{grid-template-columns:1fr}
  .story-pron-line-btn span{margin-bottom:-3px}
}

/* ===== v6.7 Unified SRS Self-Rating ===== */
.my-flashcard-rating{width:100%;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.my-flashcard-rating-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:7px}
.review-self{padding:9px 7px;border-radius:10px;font-size:11px;font-weight:800}
.review-self.hard{background:#fff0ef;color:#a74742}
.review-self.normal{background:#fff7e8;color:#946715}
.review-self.easy{background:#edf8ef;color:#347143}
.story-self-rating{
  display:grid;grid-template-columns:auto repeat(3,auto);gap:5px;align-items:center;
  margin-top:8px;padding-top:8px;border-top:1px dashed #d8cff1
}
.story-self-rating>span{font-size:10px;font-weight:800;color:#66547f}
.story-self-rating button{padding:5px 7px;font-size:10px;border-radius:8px}
.story-self-rating small{grid-column:1/-1;color:var(--muted)}
.story-favorite-toggle.active{background:#fff8df;color:#8b6814;border-color:#ead78b}
@media(max-width:680px){
  .my-flashcard-rating-buttons{grid-template-columns:1fr}
  .story-self-rating{grid-template-columns:1fr 1fr 1fr}
  .story-self-rating>span{grid-column:1/-1}
}

/* ===== v6.8 Manual My English Story Selection ===== */
.story-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
.story-manual-picker{
  margin:12px 0;padding:12px;border:1px solid #d9cff3;border-radius:14px;background:#fcfbff
}
.story-manual-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px
}
.story-manual-head p{margin:3px 0 0}
.story-selection-count{
  flex:none;padding:5px 9px;border-radius:999px;background:#eee8ff;color:#604aa3;
  font-size:11px;font-weight:900
}
.story-manual-picker input[type="search"]{width:100%;margin-bottom:8px}
.story-selected-items{
  display:flex;gap:6px;overflow-x:auto;padding:2px 0 9px;min-height:30px;scrollbar-width:thin
}
.story-selected-chip{
  display:flex;align-items:center;gap:7px;flex:0 0 auto;max-width:260px;padding:6px 8px;
  border-radius:999px;border:1px solid #d8ccf5;background:#f0ebff;color:#57428f
}
.story-selected-chip span{
  max-width:215px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:750
}
.story-selected-chip b{font-size:12px}
.story-manual-list{display:grid;gap:6px;max-height:330px;overflow-y:auto;padding-right:2px}
.story-manual-row{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer
}
.story-manual-row.selected{border-color:#b9a7ec;background:#f6f2ff}
.story-manual-row.disabled{opacity:.45;cursor:not-allowed}
.story-manual-row input{width:17px;height:17px;margin:0}
.story-manual-row .english{
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px
}
.story-manual-row .muted{
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px
}
.story-item-status{
  padding:4px 6px;border-radius:999px;background:#f1f3f7;color:#697487;font-size:9px;font-weight:800
}
.story-no-results{padding:14px;text-align:center}
@media(max-width:680px){
  .story-controls{grid-template-columns:1fr}
  .story-manual-head{align-items:center}
  .story-manual-list{max-height:390px}
  .story-manual-row{grid-template-columns:auto minmax(0,1fr)}
  .story-item-status{grid-column:2;justify-self:start}
}

/* ===== v6.9 Stability & UI Polish ===== */
.story-generate-bar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:12px;padding:10px 11px;border:1px solid #ddd4f4;border-radius:13px;background:#faf8ff
}
.story-selection-summary{min-width:0;display:flex;flex-direction:column;gap:2px}
.story-selection-summary b{font-size:11px;color:#5b4694}
.story-selection-summary span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.story-generate-bar #generateStory{flex:none;width:auto;padding-left:16px;padding-right:16px}
.saved-story-section{margin-top:16px;padding-top:0;border-top:1px solid var(--line)}
.saved-story-summary{
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:14px 2px 8px;cursor:pointer
}
.saved-story-summary::-webkit-details-marker{display:none}
.saved-story-summary>span:first-child{display:flex;flex-direction:column;gap:2px}
.saved-story-summary small{font-size:9px;color:var(--muted);font-weight:500}
.saved-story-count{padding:4px 8px;border-radius:999px;background:#f0ebff;color:#62499f;font-size:10px;font-weight:850}
.saved-story-empty{padding:10px 0}
.saved-story-toolbar-actions{display:flex;gap:6px;align-items:center}
.danger-text{color:#a24a47!important}
.story-self-rating.completed{grid-template-columns:1fr;color:#347143;background:#f2faf4;border-radius:8px;padding:7px 8px;border-top:0}
.story-self-rating button:disabled,.my-flashcard-rating button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:680px){
  .story-generate-bar{position:sticky;bottom:72px;z-index:7;box-shadow:0 8px 24px rgba(60,48,98,.10)}
  .story-generate-bar #generateStory{padding:10px 12px;font-size:11px}
  .story-selection-summary span{max-width:190px}
  .saved-story-toolbar-actions{gap:4px}
  .saved-story-toolbar-actions button{font-size:9px;padding:6px 7px}
}

/* ===== v6.10 Character Voice Casting ===== */
.story-voice-details{
  margin-top:10px;
  border-top:1px solid var(--line);
  padding-top:10px;
}
.story-voice-assignments{
  display:grid;
  gap:7px;
  margin:10px 0;
}
.story-voice-row{
  display:grid;
  grid-template-columns:minmax(120px,.8fr) minmax(0,1.5fr) auto;
  gap:8px;
  align-items:center;
  padding:8px 9px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafbfc;
}
.story-voice-character{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.story-voice-character>span{
  font-size:20px;
}
.story-voice-character div{
  min-width:0;
}
.story-voice-character b,
.story-voice-character small{
  display:block;
}
.story-voice-character b{
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.story-voice-character small{
  font-size:9px;
  color:var(--muted);
}
.story-voice-row select{
  min-width:0;
  width:100%;
}
@media(max-width:680px){
  .story-voice-row{
    grid-template-columns:auto 1fr auto;
  }
  .story-voice-row select{
    grid-column:1/-1;
    grid-row:2;
  }
}

/* ===== v7.0 Learning Route ===== */
.today-plan-card h2,.speaking-card h2,.focus-card h2,.situation-test-card h2{margin-bottom:4px}
.plan-progress{
  min-width:48px;text-align:center;padding:8px 10px;border-radius:999px;
  background:#eee9ff;color:#5d47a0;font-weight:900
}
.today-plan-list{display:grid;gap:7px;margin-top:12px}
.today-plan-step{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;
  width:100%;padding:10px 11px;text-align:left;border:1px solid var(--line);
  border-radius:12px;background:#fff
}
.today-plan-step:hover{background:#faf9ff}
.today-plan-step.done{background:#f3faf5;border-color:#cfe7d5}
.today-plan-step>span:nth-child(2){display:flex;flex-direction:column;gap:2px}
.today-plan-step b{font-size:12px}
.today-plan-step small{font-size:9px;color:var(--muted)}
.today-plan-step>span:last-child{font-size:10px;font-weight:850;color:#716886}
.plan-check{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:#f0ecfb;color:#69539e;font-weight:900
}
.today-plan-step.done .plan-check{background:#dff2e4;color:#347143}
.today-plan-done{
  margin-top:10px;padding:10px;text-align:center;border-radius:10px;
  background:#f3faf5;color:#347143;font-weight:900
}

.home-insight-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px
}
.home-insight-grid>.card{margin:0}
.speaking-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px
}
.speaking-stats>div{
  padding:9px 5px;border-radius:10px;background:#f7f8fb;text-align:center
}
.speaking-stats b{display:block;font-size:18px}
.speaking-stats span{font-size:8px;color:var(--muted)}
.focus-english-list{display:grid;gap:6px;margin:9px 0}
.focus-row{
  display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;align-items:start;
  padding:7px 8px;border-radius:9px;background:#faf9ff
}
.focus-row b{
  display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.focus-row small{display:block;font-size:8px;color:var(--muted);margin-top:2px}

.situation-box{
  margin:12px 0;padding:14px;border-radius:13px;background:#faf7ef;border:1px solid #eadfc5
}
.situation-box small{display:block;color:#8c6c2d;font-size:9px;font-weight:850;margin-bottom:5px}
.situation-box div{font-size:14px;font-weight:700;line-height:1.65}
.situation-result{
  margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd
}
.situation-model-answer{
  margin-top:10px;padding-top:9px;border-top:1px solid var(--line)
}
.situation-model-answer small{font-size:9px;color:var(--muted)}
.situation-model-answer .english{font-size:14px;font-weight:800;margin-top:3px}

@media(max-width:680px){
  .home-insight-grid{grid-template-columns:1fr}
  .speaking-stats b{font-size:16px}
  .today-plan-step{padding:9px 8px;gap:8px}
}

/* ===== v7.0.2 Simplified Story Voice Picker ===== */
.story-voice-row select{
  font-weight:700;
  background:#fff;
}
.story-voice-row button{
  white-space:nowrap;
}
.story-voice-character small{
  line-height:1.3;
}
@media(max-width:680px){
  .story-voice-row{
    grid-template-columns:1fr auto;
  }
  .story-voice-row select{
    grid-column:1/-1;
    grid-row:auto;
  }
}

/* ===== v7.1 Information Architecture ===== */
.main-nav-four{
  grid-template-columns:repeat(4,1fr)!important;
}
.library-section-tabs{
  position:sticky;
  top:6px;
  z-index:8;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin:10px 0 12px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
}
.library-section-tab{
  border:0;
  border-radius:10px;
  padding:10px 7px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:850;
}
.library-section-tab.active{
  background:#ece6ff;
  color:#59409d;
}
.library-section-panel.hidden{display:none!important}
.story-result-head{align-items:flex-start}
.story-result-head>div{min-width:0}
.story-result-head h3{margin-bottom:2px}
.story-close-btn{flex:none;color:#726c7e}
@media(max-width:680px){
  .library-section-tabs{top:4px}
  .library-section-tab{font-size:10px;padding:9px 4px}
}

/* ===== v7.1.1 Real-life Test UX ===== */
#checkSituation{
  transition:opacity .15s ease;
}
#situationScore{
  min-width:56px;
  text-align:right;
}

/* ===== v7.2 Cost Saver ===== */
.cost-saver-settings{
  margin-top:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafcff;
}
.switch-label{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  font-weight:800;
}
.switch-label input{width:18px;height:18px}
.cost-summary{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:8px;
}
.cost-summary span{
  padding:5px 8px;
  border-radius:999px;
  background:#edf4ff;
  color:#46638f;
  font-size:9px;
  font-weight:800;
}

/* ===== v7.3 Card-first My English ===== */
.myenglish-viewbuttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-width:210px;
}
.my-card-integrated-actions{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-top:8px;
}
.my-card-integrated-actions button{
  font-size:10px;
  padding:9px 7px;
}
.library-card-item{
  border:1px solid #dde3ee;
  border-radius:16px;
  padding:14px;
  background:#fff;
  box-shadow:0 3px 12px rgba(43,55,82,.04);
}
.library-card-label{
  display:inline-block;
  margin-bottom:7px;
  padding:3px 6px;
  border-radius:999px;
  background:#f0ecff;
  color:#6850a4;
  font-size:8px;
  font-weight:850;
}
.library-card-item .jp0{
  font-size:13px;
  font-weight:800;
  margin-bottom:5px;
}
.library-card-item .en0{
  font-size:13px;
  line-height:1.55;
}
.library-card-actions{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
}
.library-card-actions button{
  padding:8px 5px;
  font-size:9px;
}
#myCardHistoryBox{
  margin-top:8px;
}
@media(max-width:680px){
  .myenglish-viewbar{
    align-items:flex-start;
    gap:8px;
  }
  .myenglish-viewbuttons{
    min-width:160px;
  }
  .my-card-integrated-actions{
    grid-template-columns:1fr 1fr 1fr;
  }
}

/* ===== v7.4 Home Information Architecture ===== */
.home-section-tabs{
  position:sticky;
  top:6px;
  z-index:9;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin:0 0 12px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
}
.home-section-tab{
  border:0;
  border-radius:10px;
  padding:10px 6px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:850;
}
.home-section-tab.active{
  background:#ece6ff;
  color:#59409d;
}
.home-section-panel.hidden{
  display:none!important;
}
.home-section-panel{
  display:grid;
  gap:12px;
}
.home-section-panel>.card,
.home-section-panel>section.card,
.home-section-panel>details.card{
  margin:0;
}
.home-panel-intro{
  padding:2px 2px 0;
}
.home-panel-intro h2{
  margin:0 0 3px;
  font-size:16px;
}
.home-panel-intro p{
  margin:0;
  font-size:10px;
}
.home-section-panel[data-home-panel="practice"] .focus-card,
.home-section-panel[data-home-panel="growth"] .speaking-card{
  width:100%;
}
.home-section-panel[data-home-panel="growth"] .compact-stats{
  margin:0;
}
.home-section-panel[data-home-panel="settings"]>details.card{
  margin:0;
}

@media(max-width:680px){
  .home-section-tabs{
    top:4px;
    gap:4px;
    padding:5px;
  }
  .home-section-tab{
    font-size:10px;
    padding:9px 3px;
  }
}

/* ===== v7.4.1 Always-on Cost Saver ===== */
.cost-saver-settings>.row{align-items:flex-start}

/* ===== v7.5 Mobile AI Conversation Setup ===== */
/* Critical fix: global input width must never enlarge checkboxes/radios. */
input[type="checkbox"],input[type="radio"]{
  width:auto;
  height:auto;
  padding:0;
  border-radius:initial;
}
.talk-setup-card{overflow:hidden}
.talk-setup-head h2{margin:7px 0 2px}
.talk-setup-head p{margin:0}
.talk-compact-settings{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.talk-setting-row{margin:0;display:block}
.talk-setting-row>span{display:block;font-size:10px;color:var(--muted);margin:0 0 4px;font-weight:850}
.talk-setting-row select{margin:0;padding:10px 11px;border-radius:11px;font-size:12px;font-weight:700}
.talk-guide{margin:9px 0;font-size:11px;padding:9px 11px}
.compact-mission-option{margin:9px 0 12px;padding:10px 11px}
.compact-mission-switch{align-items:center;gap:10px;cursor:pointer}
.mini-toggle-wrap{position:relative;display:inline-flex;flex:none;width:38px;height:22px}
.mini-toggle-wrap input{position:absolute;opacity:0;width:1px!important;height:1px!important;pointer-events:none}
.mini-toggle{position:absolute;inset:0;border-radius:999px;background:#cfd5df;transition:.18s ease}
.mini-toggle:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.18s ease}
.mini-toggle-wrap input:checked + .mini-toggle{background:var(--brand)}
.mini-toggle-wrap input:checked + .mini-toggle:after{transform:translateX(16px)}
.mission-copy{min-width:0}
.mission-copy b{font-size:12px}
.mission-copy small{font-size:9px;margin-top:1px}
.mission-preview-details{margin-top:7px}
.mission-preview-details summary{font-size:10px;color:#526078;cursor:pointer;font-weight:750}
.mission-preview-details .mission-preview{margin-top:7px}
.talk-start-btn{margin-top:4px;min-height:48px}

@media(max-width:680px){
  #talkView>.card{padding:14px}
  .talk-setup-head .badge{font-size:9px;padding:4px 7px}
  .talk-setup-head h2{font-size:18px}
  .talk-setup-head p{font-size:10px}
  .talk-compact-settings{grid-template-columns:1fr;gap:6px;margin-top:10px}
  .talk-setting-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:center;padding:3px 0}
  .talk-setting-row>span{margin:0;font-size:11px}
  .talk-setting-row select{padding:9px 10px;font-size:12px}
  .talk-guide{font-size:10px;line-height:1.45;padding:8px 10px;margin:6px 0 8px}
  .compact-mission-option{padding:9px 10px;margin:7px 0 10px}
  .mission-preview-details{margin-left:48px}
  .talk-start-btn{min-height:46px;font-size:14px;border-radius:13px}
}

/* ===== v7.5.1 Visible scene-image actions ===== */
.scene-cta-box{
  margin:10px 0 12px;
  padding:14px;
  border:1px dashed #c9d4ff;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fbff 0%,#fdfefe 100%);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.scene-cta-box.in-card{margin-top:14px;margin-bottom:8px}
.scene-cta-copy{display:flex;flex-direction:column;gap:4px}
.scene-cta-copy b{font-size:14px;color:#3554c7}
.scene-cta-copy span{font-size:12px;color:var(--muted);line-height:1.5}
.scene-image-toolbar{
  margin:10px 0 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.scene-image-toolbar.in-card{margin-top:14px;margin-bottom:8px}
.scene-status-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  background:#eef2ff;
  color:#4c52b8;
}
.scene-status-badge.done{
  background:#ecfbf3;
  color:#1f8a55;
}
@media(max-width:680px){
  .scene-cta-box,
  .scene-image-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .scene-cta-box button,
  .scene-image-toolbar button{
    width:100%;
  }
}

/* ===== v7.5.2 Scene image discovery ===== */
.scene-create-btn{border:0!important;background:linear-gradient(135deg,#7c4dff 0%,#4f62ff 100%)!important;color:#fff!important;font-weight:900!important;box-shadow:0 6px 16px rgba(83,73,255,.22)}
.scene-create-btn:hover{filter:brightness(.98)}
.scene-remake-btn{border:1px solid #9e8cff!important;background:#f0edff!important;color:#5f46c7!important;font-weight:850!important}
.library-image-tabs{display:flex;gap:7px;margin:8px 0 12px;padding:5px;border:1px solid var(--line);border-radius:13px;background:#f8f9fc;width:max-content;max-width:100%}
.image-filter{border:0;border-radius:9px;padding:8px 12px;background:transparent;color:var(--muted);font-size:10px;font-weight:850;white-space:nowrap}
.image-filter.active{background:#fff;color:#5b43a6;box-shadow:0 2px 7px rgba(47,55,94,.08)}
@media(max-width:680px){.library-image-tabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.image-filter{padding:8px 4px;font-size:9px}.scene-create-btn,.scene-remake-btn{width:100%}}

/* ===== v7.6 Learning Outcome & Topic Builder ===== */
.monthly-challenge-card h2{margin:5px 0 3px}
.challenge-month-badge{padding:6px 9px;border-radius:999px;background:#f2edff;color:#654ca5;font-size:10px;font-weight:850}
.challenge-progress-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin:10px 0}
.challenge-progress-track{height:7px;background:#edf0f5;border-radius:999px;overflow:hidden}
.challenge-progress-track span{display:block;height:100%;width:0;background:#3658ee;border-radius:999px;transition:width .2s ease}
.challenge-feedback{margin:10px 0;padding:12px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);line-height:1.6}
.challenge-model-answer{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.challenge-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}
.challenge-result-grid>div{text-align:center;padding:10px 5px;border-radius:11px;background:#f7f8fb}
.challenge-result-grid b{display:block;font-size:18px}.challenge-result-grid span{font-size:8px;color:var(--muted)}
.growth-comparison{margin:10px 0;padding:10px;border-radius:10px;background:#f3faf5;color:#356d48;font-size:11px;font-weight:700}

.topic-builder-panel h2{margin:4px 0}
.topic-source{display:flex;flex-direction:column;gap:4px;margin:10px 0;padding:12px;border-radius:12px;background:#f5faf7;border:1px solid #dbeee1}
.topic-source small{font-size:9px;color:var(--muted)}
.topic-builder-suggestions{display:grid;gap:8px;margin-top:10px}
.topic-suggestion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}
.topic-suggestion>div{display:flex;flex-direction:column;gap:3px}.topic-suggestion b{font-size:12px}.topic-suggestion span{font-size:10px;color:var(--muted)}
.topic-suggestion small{grid-column:1/-1;color:#627069;font-size:9px}

.story-layer-details{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}
.story-layer-details>summary{padding:11px 12px;font-weight:850;cursor:pointer}
.story-layer-content{padding:0 12px 12px}.story-more-main-action{margin-bottom:8px}
.story-layer-content>.story-favorite-toggle{margin-top:0}

.pron-verdict{margin:10px 0 12px;padding:12px;border-radius:12px;font-size:17px;font-weight:900;text-align:center}
.pron-verdict.clear,.story-pron-verdict.clear{background:#eef9f1;color:#2f7448}
.pron-verdict.mostly,.story-pron-verdict.mostly{background:#f3f7ff;color:#3f5d9c}
.pron-verdict.careful,.story-pron-verdict.careful{background:#fff8e8;color:#916f21}
.pron-verdict.retry,.story-pron-verdict.retry{background:#fff0ef;color:#a74b45}
.story-pron-verdict{padding:10px;border-radius:10px;font-weight:850}.story-pron-verdict small{display:block;margin-top:3px;font-size:10px;opacity:.7}

.my-card-integrated-actions{grid-template-columns:repeat(4,1fr)}
.library-card-actions{grid-template-columns:repeat(5,1fr)}
@media(max-width:680px){
  .challenge-result-grid{grid-template-columns:1fr 1fr}
  .topic-suggestion{grid-template-columns:1fr}.topic-suggestion button{width:100%}
  .my-card-integrated-actions{grid-template-columns:1fr 1fr}
}

/* ===== v7.6.1 Topic Builder fix ===== */
.topic-source b:empty::after{content:"My英語が未選択です";color:#9aa2ad;font-weight:700}
.topic-source.has-source{border-color:#b8dfc5;background:#f3fbf6}

/* ===== v7.7.0 Pronunciation tab & cleaner card actions ===== */
.library-section-tab{white-space:nowrap}
.my-card-action-stack{margin-top:10px;display:grid;gap:8px}
.my-card-primary-actions,.my-card-secondary-actions{display:grid;gap:8px}
.my-card-primary-actions{grid-template-columns:1fr 1fr}
.my-card-secondary-actions{grid-template-columns:1fr 1fr}
.my-card-primary-actions button,.my-card-secondary-actions button{min-height:46px;font-size:12px;font-weight:850;border-radius:14px}
.my-card-primary-actions .success{background:#e9f8ef;color:#246a42;border:1px solid #b9e2c7}
.my-card-primary-actions .accent{background:#f1ecff;color:#5e45a7;border:1px solid #d7cbff}
.my-card-helper{padding:0 2px}
.pron-section-copy{margin:4px 0 0}
.pron-target-picker{margin:12px 0 10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fafcff}
.pron-target-picker label{display:block;margin-bottom:8px;font-size:11px;font-weight:850}
.pron-target-picker-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}
.pron-target-picker-row select{min-width:0}
.pronunciation-panel .big{margin-top:8px}
.library-card-actions .practice-btn{background:#f0ecff;color:#5e45a7}
@media(max-width:680px){
  .library-section-tabs{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:3px;
    padding:4px;
  }
  .library-section-tab{
    min-width:0;
    padding:9px 2px;
    font-size:9px;
    letter-spacing:-.02em;
    overflow:hidden;
    text-overflow:clip;
  }
  .my-card-primary-actions,.my-card-secondary-actions{grid-template-columns:1fr}
  .pron-target-picker-row{grid-template-columns:1fr}
  .pron-target-picker-row button{width:100%}
}

/* ===== v7.7.1 Monthly Challenge free-answer grading ===== */
.challenge-free-score{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:11px 12px;border-radius:12px;background:#f5f8ff;border:1px solid #dce5ff}
.challenge-free-score>div{display:flex;flex-direction:column;gap:2px}.challenge-free-score small{font-size:9px;color:var(--muted)}.challenge-free-score b{font-size:20px;color:#2f55df}.challenge-free-score span{font-size:11px;font-weight:850}
.challenge-answer-block{margin:9px 0;padding:11px 12px;border-radius:11px;border:1px solid var(--line)}
.challenge-answer-block.user{background:#fafbfc}.challenge-answer-block.corrected{background:#f2fbf5;border-color:#cfe8d6}.challenge-answer-block small,.challenge-model-answer small{display:block;margin-bottom:4px;font-size:9px;font-weight:850;color:var(--muted)}
.challenge-answer-block .english,.challenge-model-answer .english{font-weight:800;line-height:1.55}.challenge-answer-block .jp,.challenge-model-answer .jp{margin-top:4px;font-size:10px;color:var(--muted)}
.challenge-explanation,.challenge-good-point{margin:9px 0;padding:10px 12px;border-radius:11px;line-height:1.6;font-size:11px}.challenge-explanation{background:#fff8e9}.challenge-good-point{background:#eef8ff}.challenge-explanation b,.challenge-good-point b{display:block;margin-bottom:3px}
.challenge-reference-only{padding:10px 0}.challenge-reference-only small{display:block;font-size:9px;font-weight:850;color:var(--muted);margin-bottom:4px}
@media(max-width:680px){.challenge-free-score{align-items:flex-start;flex-direction:column}.challenge-free-score span{font-size:10px}}

/* ===== v7.7.2 Monthly Challenge learning actions ===== */
.challenge-learning-actions{display:grid;gap:12px;margin:12px 0}
.challenge-action-buttons{display:grid;grid-template-columns:1fr;gap:8px}
.challenge-action-buttons button{min-height:44px;font-weight:850;border-radius:12px}
.challenge-action-buttons .accent{background:#eef4ff;color:#3157c7;border:1px solid #cddaff}
.challenge-teacher-box{padding:13px;border:1px solid #e1e5ee;border-radius:14px;background:#fbfcff}
.challenge-teacher-head>div{display:flex;flex-direction:column;gap:3px}
.challenge-teacher-head b{font-size:13px}.challenge-teacher-head span{font-size:10px;color:var(--muted)}
.challenge-question-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.challenge-question-chips button{font-size:9px}
.challenge-teacher-answer{margin-top:10px;padding:12px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.challenge-teacher-main{font-size:12px;line-height:1.7}
.challenge-teacher-examples{display:grid;gap:6px;margin-top:10px}
.challenge-teacher-examples>div{display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:9px;background:#f6f8fb}
.challenge-teacher-examples b{font-size:11px}.challenge-teacher-examples span{font-size:9px;color:var(--muted)}
@media(max-width:680px){
  .challenge-question-chips{display:grid;grid-template-columns:1fr 1fr}
  .challenge-question-chips button:last-child{grid-column:1/-1}
}

/* ===== v7.7.3 Four-column My English tabs ===== */
.library-section-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.library-section-tab{min-width:0;text-align:center}
@media(max-width:420px){
  .library-section-tab{font-size:8.5px;padding:8px 1px}
}

/* ===== v7.7.4 Monthly Challenge placement ===== */
.challenge-growth-summary h2{margin:5px 0 3px}
.challenge-growth-head{align-items:flex-start}
.challenge-growth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.challenge-growth-grid>div{padding:12px 8px;text-align:center;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.challenge-growth-grid span,.challenge-growth-grid small{display:block;color:var(--muted);font-size:9px}
.challenge-growth-grid b{display:block;margin:3px 0;font-size:20px}
.challenge-growth-grid b.positive{color:#25804d}
.challenge-growth-grid b.negative{color:#b34c48}
.challenge-growth-note{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:#f5f7fb;color:#596173;font-size:11px;font-weight:700}
[data-home-panel="practice"] #monthlyChallengeCard{margin-top:0}
@media(max-width:680px){
  .challenge-growth-grid{grid-template-columns:repeat(3,1fr);gap:5px}
  .challenge-growth-grid>div{padding:9px 4px}
  .challenge-growth-grid b{font-size:17px}
}

@media(max-width:680px){.data-manage-actions{display:grid;grid-template-columns:1fr;gap:8px}.data-manage-actions>*{width:100%;text-align:center}.library-hero-note{font-size:11px;padding:9px 10px}}

/* ===== v7.7.6 Saved Story inline Read / Blank ===== */
.saved-story-study{margin-top:10px}
.saved-story-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:9px;padding:4px;background:#f1f2f6;border-radius:11px}
.saved-story-mode-tabs button{border:0;background:transparent;color:#626b7d;padding:8px 10px;border-radius:8px;font-size:11px;font-weight:850}
.saved-story-mode-tabs button.active{background:#fff;color:#5d45a2;box-shadow:0 1px 5px rgba(45,49,70,.09)}
.saved-story-line.target{border-color:#dbcfff;background:#fbf9ff}
.saved-story-line-text{font-size:13px;font-weight:650}
.saved-story-blank{display:flex;width:100%;min-height:38px;flex-direction:column;justify-content:center;align-items:flex-start;text-align:left;padding:7px 9px;border:1px dashed #bdaaf4;border-radius:8px;background:#f6f2ff;color:#5d45a2}
.saved-story-blank span{font-size:12px;font-weight:800}
.saved-story-blank small{margin-top:2px;color:#8879aa;font-size:8px}
.saved-story-blank.revealed{background:#fff;border-style:solid}
@media(max-width:680px){
  .saved-story-card-actions{grid-template-columns:1fr 1fr 1fr}
  .saved-story-card-actions button{font-size:10px;padding:9px 5px}
}

/* ===== v7.8.0 Usability System ===== */
:root{
  --action-primary:var(--brand);
  --action-success:#2f7a4f;
  --action-accent:#654ca5;
}
button,.filebtn,select,input[type="search"]{min-height:44px}
button{touch-action:manipulation}

/* AI conversation: start first, details second */
.talk-start-hero{margin-top:14px;min-height:52px;font-size:15px;font-weight:900}
.talk-settings-details{margin-top:10px;border:1px solid var(--line);border-radius:13px;background:#fafbfe}
.talk-settings-details>summary{padding:11px 12px;cursor:pointer;font-size:11px;font-weight:850;color:#536077}
.talk-settings-details[open]>summary{border-bottom:1px solid var(--line)}
.talk-settings-details>.talk-compact-settings,.talk-settings-details>.talk-guide,.talk-settings-details>.compact-mission-option{margin-left:10px;margin-right:10px}

/* Review: one clear daily goal */
.review-essential-progress{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:6px 9px;border-radius:999px;background:#eef3ff;color:#40598f;font-size:10px;font-weight:800}
.review-essential-progress b{font-size:11px;color:#284bc0}
.rating-grid .rate{min-height:62px}
.rating-grid .rate strong{font-size:13px}
.rating-grid .rate span{font-size:9px}

/* My English: browse/search instead of button overload */
.library-search-wrap{display:grid;gap:5px;margin:0 0 8px}
.library-search-wrap label{font-size:10px;font-weight:850;color:var(--muted)}
.library-search-wrap input{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.library-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}
.library-filters .filter{min-height:40px;padding:7px 6px;font-size:10px}
.library-filters .filter.active{background:#ece6ff;color:#59409d}
.compact-list-actions{grid-template-columns:1fr auto!important}
.compact-list-actions button{min-height:44px!important;font-size:10px!important}
.item-menu{z-index:12}
.item-menu button{min-height:40px}

/* Pronunciation: visible learning steps */
.pron-step-label{display:grid;grid-template-columns:30px 1fr;column-gap:8px;row-gap:1px;align-items:center;margin:16px 0 8px}
.pron-step-label>span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ece6ff;color:#5b43a6;font-size:11px;font-weight:900}
.pron-step-label>b{font-size:13px}
.pron-step-label>small{font-size:9px;color:var(--muted)}
.pron-step-label.result-step{margin-top:0}
.pron-advanced-settings{margin:8px 0;border:1px solid var(--line);border-radius:11px;background:#fafbfe}
.pron-advanced-settings>summary{padding:9px 10px;cursor:pointer;font-size:10px;font-weight:800;color:#59657b}
.pron-advanced-settings .voice-picker{padding:0 10px 10px}
.pron-diagnosis{margin-top:10px}

/* Settings: utilitarian controls should look secondary */
.home-section-panel[data-home-panel="settings"] details>summary{min-height:44px;display:flex;align-items:center;font-weight:850}

/* Consistent feedback hierarchy */
.status:not(:empty){margin-top:8px;padding:8px 10px;border-radius:10px;background:#f7f8fb;line-height:1.5}

@media(max-width:680px){
  .library-filters{grid-template-columns:repeat(4,1fr);gap:4px}
  .library-filters .filter{font-size:9px;padding:6px 2px}
  .talk-start-hero{font-size:14px}
  .talk-settings-details>.talk-compact-settings{margin-top:8px}
  .compact-list-actions{grid-template-columns:1fr 1fr!important}
  .pron-audio-actions{display:grid;grid-template-columns:1fr 1fr}
  .pron-audio-actions #loadPronGuide{grid-column:1/-1}
}

/* ===== v7.8.1 Saved Story Teacher ===== */
.saved-story-teacher-details{
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fbfaff;
  overflow:hidden;
}
.saved-story-teacher-details>summary{
  padding:12px 14px;
  cursor:pointer;
  font-weight:850;
  color:#5d43a2;
}
.saved-story-teacher-details[open]>summary{
  border-bottom:1px solid var(--line);
}
.saved-story-teacher-details>p,
.saved-story-teacher-details>textarea,
.saved-story-teacher-details>.voice-input-row,
.saved-story-teacher-details>.teacher-shortcuts,
.saved-story-teacher-details>#askSavedStoryTeacher,
.saved-story-teacher-details>#savedStoryTeacherStatus,
.saved-story-teacher-details>#savedStoryTeacherAnswer{
  margin-left:12px;
  margin-right:12px;
}
.saved-story-teacher-details>p{margin-top:12px}
.saved-story-teacher-details>#savedStoryTeacherAnswer{margin-bottom:12px}
.saved-story-teacher-shortcuts{margin-top:8px}
@media(max-width:680px){
  .saved-story-teacher-shortcuts{
    display:grid;
    grid-template-columns:1fr;
  }
  .saved-story-teacher-shortcuts button{min-height:44px}
}

/* ===== v7.8.2 My英語 newest-first ===== */
.myenglish-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sort-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#4359b8;font-size:9px;font-weight:850}

/* ===== v7.8.3 Weakness Coach ===== */
.weakness-coach-card h2{margin:5px 0 3px}
.weakness-window-badge{padding:6px 9px;border-radius:999px;background:#f3f5f8;color:#687186;font-size:9px;font-weight:850;white-space:nowrap}
.weakness-coach-summary{margin:12px 0}
.weakness-coach-main{padding:14px;border-radius:14px;background:linear-gradient(180deg,#f7f4ff 0%,#fbfbff 100%);border:1px solid #ded5ff;display:grid;gap:5px}
.weakness-coach-main small{font-size:9px;color:#75679a;font-weight:850}
.weakness-coach-main b{font-size:20px;color:#4f3b93}
.weakness-coach-main span{font-size:10px;font-weight:800;color:#6b6282}
.weakness-coach-main p{margin:2px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.weakness-coach-list{display:grid;gap:10px}
.weakness-coach-item{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.weakness-coach-item.top{border-color:#d8ceff}
.weakness-coach-title{display:flex;align-items:center;justify-content:space-between;gap:10px}
.weakness-coach-title>div{display:flex;align-items:center;gap:7px;min-width:0}
.weakness-coach-title>div>span{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#f0ecff;color:#6148a7;font-size:9px;font-weight:900;flex:none}
.weakness-coach-title b{font-size:13px}
.weakness-coach-title strong{font-size:11px;color:#655b78;white-space:nowrap}
.weakness-coach-item>p{margin:7px 0 6px;color:var(--muted);font-size:10px;line-height:1.55}
.weakness-trend{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef7f1;color:#34734d;font-size:9px;font-weight:800}
.weakness-example{margin-top:9px;padding:10px;border-radius:11px;background:#f8fafc;border:1px solid var(--line);display:grid;gap:4px}
.weakness-example small{font-size:8px;color:var(--muted)}
.weak-wrong,.weak-correct{font-size:10px;line-height:1.5}
.weak-wrong{color:#8a5d39}.weak-correct{color:#2d6f49;font-weight:750}
.weakness-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
.weakness-actions button{min-height:42px;font-size:10px}
.weak-practice-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:11px 12px;border-radius:13px;background:#fff8e8;border:1px solid #ead9ab}
.weak-practice-banner>div{display:grid;gap:3px}
.weak-practice-banner b{font-size:12px}.weak-practice-banner small{font-size:9px;color:#806d3c}
@media(max-width:680px){
  .weakness-coach-head{align-items:flex-start}
  .weakness-actions{grid-template-columns:1fr}
  .weak-practice-banner{align-items:stretch;flex-direction:column}
  .weak-practice-banner button{width:100%}
}

/* ===== v7.8.4 Weakness Coach legacy fallback ===== */
.weakness-fallback-note{margin:8px 0;padding:9px 10px;border-radius:10px;background:#fff8e8;color:#7a6429;font-size:10px;line-height:1.55;border:1px solid #f1dfab}

/* ===== v7.8.5 AI conversation confirmation-first setup ===== */
.talk-current-settings{
  margin:14px 0 10px;
  padding:14px;
  border:1px solid #dfe5f1;
  border-radius:16px;
  background:linear-gradient(180deg,#fbfcff 0%,#f7f9ff 100%);
}
.talk-current-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.talk-current-settings-head>div{display:grid;gap:3px;min-width:0}
.talk-current-settings-head b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.talk-ready-badge{flex:none;padding:5px 9px;border-radius:999px;background:#eaf7ef;color:#34714d;font-size:10px;font-weight:850}
.talk-ready-badge.active{background:#e8eeff;color:#3155c8}
.talk-current-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.talk-current-grid>div{padding:9px 10px;border-radius:11px;background:#fff;border:1px solid #e7ebf4;min-width:0}
.talk-current-grid span{display:block;font-size:9px;color:var(--muted);margin-bottom:3px}
.talk-current-grid b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#talkCurrentMission.is-off{color:#8b93a4}
.talk-weak-focus{margin-top:10px;padding:10px 11px;border-radius:12px;background:#fff4df;border:1px solid #f0d59a;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px}
.talk-weak-focus>span{font-size:10px;font-weight:850;color:#8a5e17}
.talk-weak-focus>b{font-size:11px;color:#6f4810}
.talk-weak-focus>small{font-size:9px;color:#80683f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.talk-start-hero{margin-top:10px}
.talk-settings-details{margin-top:9px;border:1px solid var(--line);border-radius:13px;background:#fff}
.talk-settings-details>summary{padding:11px 12px;font-size:11px;font-weight:800;color:#465169;cursor:pointer}
@media(max-width:680px){
  .talk-current-settings{padding:11px;margin-top:10px}
  .talk-current-grid{grid-template-columns:1fr 1fr}
  .talk-current-grid>div{padding:8px 9px}
  .talk-weak-focus{grid-template-columns:1fr;gap:3px}
  .talk-weak-focus>small{white-space:normal;line-height:1.45}
  .talk-current-settings-head b{font-size:13px}
}

/* ===== v7.8.6 Inline AI Conversation Settings ===== */
.talk-current-settings-head small{
  display:block;
  margin-top:3px;
  font-size:10px;
  line-height:1.45;
  color:var(--muted);
  font-weight:500;
}
.talk-edit-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:12px;
}
.talk-setting-direct{
  padding:9px 10px;
  border:1px solid #e3e8f2;
  border-radius:12px;
  background:#fff;
}
.talk-setting-direct>span{
  font-size:9px;
  margin-bottom:5px;
}
.talk-setting-direct select{
  width:100%;
  padding:7px 4px;
  border:0;
  border-radius:0;
  background:transparent;
  font-weight:800;
  box-shadow:none;
}
.talk-guide-inline{
  margin:8px 0 0;
}
.talk-focus-card{
  margin:9px 0 0;
  background:#f8f9ff;
  border-color:#dfe4f6;
}
.talk-focus-card .mission-copy b{
  font-size:12px;
}
.talk-focus-card .mission-copy small{
  font-size:10px;
  line-height:1.5;
  margin-top:4px;
}
.focus3-name{
  display:inline-block;
  margin-left:4px;
  padding:2px 6px;
  border-radius:999px;
  background:#ece7ff;
  color:#6249a5;
  font-size:9px;
  vertical-align:1px;
}
.talk-start-hero{
  margin-top:12px;
}
@media(max-width:680px){
  .talk-edit-grid{
    grid-template-columns:1fr;
    gap:6px;
  }
  .talk-setting-direct{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    align-items:center;
    gap:8px;
    padding:7px 9px;
  }
  .talk-setting-direct>span{
    margin:0;
    font-size:10px;
  }
  .talk-setting-direct select{
    padding:7px 0;
    font-size:12px;
  }
  .talk-focus-card .mission-copy small{
    font-size:9px;
  }
}

/* ===== v7.8.7 Conversation end action placement ===== */
.talk-end-area{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.talk-end-area p{margin:0 0 8px;line-height:1.5}
.talk-end-btn{min-height:48px;background:#f2f4f8;color:#374158;border:1px solid var(--line)}
.talk-end-btn:hover{background:#e9edf4}
@media(max-width:680px){.talk-end-area{margin-top:14px;padding-top:12px}.talk-end-btn{min-height:48px}}

/* ===== v7.9.0 Unified disclosure & transient UI ===== */
details>summary{cursor:pointer;user-select:none}
.home-details>summary,.story-layer-details>summary,.saved-story-summary,.story-practice-details>summary,.story-target-details>summary,.story-voice-details>summary,.story-teacher-details>summary,.saved-story-teacher-details>summary{
  min-height:44px;
  display:flex;
  align-items:center;
}
details[open]>summary{font-weight:850}
.home-details[open],.story-layer-details[open],.saved-story-section[open]{scroll-margin-top:84px}
.transient-helper{font-size:10px;color:var(--muted)}
@media(max-width:680px){
  details>summary{min-height:44px}
}

/* ===== v7.10.0 Growth & learning outcome polish ===== */
.growth-overview-card{border-left:4px solid #34a26f;background:linear-gradient(180deg,#fbfffd 0%,#fff 100%)}
.growth-overview-head h2{margin:6px 0 3px}.growth-trend-badge{padding:6px 10px;border-radius:999px;background:#f0f2f6;color:#697287;font-size:10px;font-weight:850;white-space:nowrap}.growth-trend-badge.positive{background:#e8f8ef;color:#26714a}
.growth-overview-grid,.conversation-learning-snapshot{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.growth-overview-grid>div,.conversation-learning-snapshot>div{padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}.growth-overview-grid span,.conversation-learning-snapshot span{display:block;font-size:9px;color:var(--muted)}.growth-overview-grid b,.conversation-learning-snapshot b{display:block;font-size:20px;margin:4px 0}.growth-overview-grid small,.conversation-learning-snapshot small{display:block;font-size:9px;color:var(--muted);line-height:1.35}.growth-overview-message{margin-top:10px;padding:10px 12px;border-radius:11px;background:#f4f8f6;font-size:11px;line-height:1.6}
.focus3-explain{margin:4px 0 10px}.summary-save-actions{margin-top:10px}.summary-save-actions .primary{min-height:44px}
.pron-recent-trend{margin-top:12px;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fafcff}.pron-trend-bars{height:92px;display:flex;align-items:flex-end;gap:8px;margin:10px 0 4px}.pron-trend-item{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.pron-trend-item>span{width:100%;max-width:36px;min-height:12px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#6d78ff,#3558e9)}.pron-trend-item small{font-size:9px;font-weight:800}
.backup-last-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;border-radius:11px;background:#f7f8fb;font-size:11px}.backup-last-row span:first-child{color:var(--muted)}.backup-reminder{padding:4px 7px;border-radius:999px;background:#fff1df;color:#925b11;font-size:9px;font-weight:800}
@media(max-width:680px){.growth-overview-grid,.conversation-learning-snapshot{grid-template-columns:1fr 1fr}.growth-overview-grid>div:last-child,.conversation-learning-snapshot>div:last-child{grid-column:1/-1}.growth-overview-grid b,.conversation-learning-snapshot b{font-size:18px}}

/* ===== v7.12.0 English Character Growth ===== */
.character-growth-card{overflow:hidden;background:linear-gradient(145deg,#fbfbff 0%,#f5fbff 52%,#fbfff9 100%);border:1px solid #dfe6f3}
.character-growth-main{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;align-items:center}
.character-stage-wrap{height:128px;border-radius:22px;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#fff 0 32%,#edf4ff 70%,#e8f2ec 100%);position:relative;overflow:hidden}
.english-character{width:92px;height:112px;position:relative;transition:transform .25s ease}.english-character:hover{transform:translateY(-2px)}
.character-aura{position:absolute;inset:8px;border-radius:50%;background:radial-gradient(circle,rgba(104,120,255,.16),transparent 66%)}
.character-head{position:absolute;width:66px;height:62px;left:13px;top:12px;border-radius:48% 48% 44% 44%;background:#ffe1bd;border:3px solid #39435a;z-index:2}
.character-body{position:absolute;width:74px;height:58px;left:9px;bottom:0;border-radius:25px 25px 16px 16px;background:#6279e8;border:3px solid #39435a;z-index:1}
.character-eye{position:absolute;width:6px;height:8px;border-radius:50%;background:#30384a;top:24px}.character-eye.left{left:17px}.character-eye.right{right:17px}.character-mouth{position:absolute;width:15px;height:7px;border-bottom:2px solid #9a5f51;border-radius:0 0 12px 12px;left:23px;top:39px}
.character-badge{position:absolute;right:-6px;top:-12px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff;border:2px solid #dfe4f2;font-size:19px;box-shadow:0 4px 10px rgba(40,52,89,.12)}
.english-character.stage-2 .character-body{background:#4f91db}.english-character.stage-3 .character-body{background:#655bc7}.english-character.stage-4 .character-body{background:#277f72}.english-character.stage-5 .character-body{background:#a36c25}.english-character.stage-6 .character-body{background:#5a477d}.english-character.stage-3 .character-aura,.english-character.stage-4 .character-aura,.english-character.stage-5 .character-aura,.english-character.stage-6 .character-aura{background:radial-gradient(circle,rgba(107,91,199,.25),transparent 68%)}
.character-growth-copy h2{margin:7px 0 3px}.character-title-row{align-items:center}.character-level{font-size:12px;font-weight:900;padding:5px 9px;border-radius:999px;background:#252d43;color:#fff}.character-xp-row{display:flex;justify-content:space-between;gap:10px;margin-top:12px;font-size:9px;color:var(--muted);font-weight:750}.character-xp-track{height:8px;margin-top:5px;background:#e8ebf3;border-radius:999px;overflow:hidden}.character-xp-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6878ff,#39a875);transition:width .35s ease}
.character-stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:15px}.character-stats-grid>div{padding:10px 8px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.82);text-align:center}.character-stats-grid span{display:block;font-size:9px;color:#586176;font-weight:800}.character-stats-grid b{display:block;margin:4px 0 2px;font-size:22px}.character-stats-grid small{font-size:8px;color:var(--muted)}
.character-growth-goal{display:flex;gap:10px;align-items:flex-start;margin-top:11px;padding:10px 12px;border-radius:12px;background:#eef7f2;font-size:10px;line-height:1.5}.character-growth-goal b{white-space:nowrap;color:#26714a}.character-achievements-details{margin-top:8px}.character-achievements-details summary{min-height:42px;font-size:11px;font-weight:850}.character-achievements{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-top:5px}.character-achievement{display:flex;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff;position:relative}.character-achievement>span{font-size:20px}.character-achievement div{min-width:0}.character-achievement b{display:block;font-size:10px}.character-achievement small{display:block;font-size:8px;color:var(--muted);margin-top:2px}.character-achievement em{margin-left:auto;font-style:normal;font-size:8px;font-weight:900;color:#2d8257;background:#eaf8f0;padding:3px 6px;border-radius:999px}.character-achievement.locked{opacity:.55;filter:saturate(.5)}.character-growth-note{margin:9px 0 0}
@media(max-width:680px){.character-growth-main{grid-template-columns:94px minmax(0,1fr);gap:11px}.character-stage-wrap{height:112px}.english-character{transform:scale(.86)}.english-character:hover{transform:scale(.86)}.character-stats-grid{grid-template-columns:repeat(2,1fr)}.character-stats-grid>div:last-child{grid-column:1/-1}.character-achievements{grid-template-columns:1fr}.character-growth-copy h2{font-size:17px}.character-xp-row{font-size:8px}}

/* v7.13 RPG-style growth feedback */
.rpg-growth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.rpg-mini-panel{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--soft)}.rpg-panel-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:12px}.rpg-panel-head span{font-size:12px;color:var(--muted)}.skill-tree{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding-bottom:4px}.skill-node{min-width:82px;text-align:center;border-radius:12px;padding:10px 7px;border:1px solid var(--line);background:var(--card)}.skill-node span{font-size:22px;display:block}.skill-node b,.skill-node small{display:block}.skill-node small{font-size:10px;color:var(--muted);margin-top:3px}.skill-node.locked{opacity:.48;filter:grayscale(.65)}.skill-node.unlocked{box-shadow:0 4px 14px rgba(0,0,0,.06)}.skill-link{align-self:center;color:var(--muted);font-size:20px}.weakness-quest-list{display:grid;gap:8px}.weakness-quest{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 11px;border-radius:12px;background:var(--card);border:1px solid var(--line)}.weakness-quest div{min-width:0}.weakness-quest b,.weakness-quest small{display:block}.weakness-quest small{color:var(--muted);margin-top:3px}.weakness-quest>span{font-size:11px;font-weight:800;white-space:nowrap}.weakness-quest.cleared{border-style:solid}.session-result-card{margin:14px 0;padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--soft)}.session-result-head,.session-result-xp{display:flex;justify-content:space-between;align-items:center;gap:12px}.session-result-head span{font-size:12px;font-weight:900;letter-spacing:.08em}.session-result-head b{font-size:18px}.session-result-xp{margin:12px 0}.session-result-xp strong{font-size:24px}.session-result-xp small{color:var(--muted);text-align:right}.session-result-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.session-result-stats>div{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:10px;background:var(--card)}.session-result-stats b{font-size:18px}.session-no-change{grid-column:1/-1!important;color:var(--muted)}.session-result-quest{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--card);font-size:13px}
@media(max-width:640px){.rpg-growth-grid{grid-template-columns:1fr}.rpg-panel-head{align-items:flex-start;flex-direction:column}.session-result-stats{grid-template-columns:1fr}.session-result-xp{align-items:flex-start;flex-direction:column}.session-result-xp small{text-align:left}}

/* ===== v7.14.0 English Adventure ===== */
.adventure-hub-card{background:linear-gradient(160deg,#fffdf8 0%,#f7fbff 55%,#fbfff9 100%);border:1px solid #dde5ef;overflow:hidden}.adventure-hub-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.adventure-hub-head h2{margin:6px 0 3px}.adventure-rank{padding:7px 10px;border-radius:999px;background:#293247;color:#fff;font-size:11px;font-weight:900;white-space:nowrap}.adventure-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.adventure-panel{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.82)}.adventure-grid>.adventure-panel{margin-top:0}.memory-garden{min-height:128px;margin-top:10px;padding:12px;display:flex;gap:7px;align-content:flex-end;align-items:flex-end;flex-wrap:wrap;border-radius:16px;background:linear-gradient(#eaf6ff 0 48%,#e7f4db 48% 100%);border:1px solid #d7e6dc}.garden-plant{width:48px;min-height:58px;padding:4px;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:1px}.garden-plant span{font-size:27px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.08))}.garden-plant small{font-size:7px;color:#536174;font-weight:800}.garden-plant.risk span{filter:grayscale(.25) drop-shadow(0 2px 2px rgba(0,0,0,.08))}.garden-more,.garden-empty{align-self:center;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.78);font-size:10px;color:var(--muted)}.garden-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.garden-legend span{font-size:8px;color:var(--muted)}.weakness-monster-list{display:grid;gap:9px;margin-top:10px}.weakness-monster{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;padding:10px;border-radius:14px;background:#fff;border:1px solid var(--line)}.monster-avatar{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#f3f0ff;font-size:31px}.monster-copy{min-width:0}.monster-title{display:flex;justify-content:space-between;gap:8px;align-items:center}.monster-title b{font-size:11px}.monster-title span{font-size:9px;font-weight:900;color:#aa4b4b}.monster-hp,.boss-hp{height:7px;border-radius:999px;background:#eceef3;overflow:hidden;margin:6px 0}.monster-hp span,.boss-hp span{display:block;height:100%;background:linear-gradient(90deg,#dc5d5d,#f0a35d);border-radius:inherit;transition:width .3s ease}.weakness-monster small{font-size:8px;color:var(--muted)}.monster-actions{display:flex;gap:6px;margin-top:7px}.monster-actions button{min-height:32px;font-size:9px}.weakness-monster.defeated{opacity:.68}.weakness-monster.defeated .monster-avatar{background:#eef9f2}.monster-empty{font-size:10px;color:var(--muted);padding:10px}.english-world-map{display:flex;align-items:stretch;gap:7px;overflow-x:auto;padding:8px 0 3px}.world-area{min-width:118px;padding:11px 9px;border:1px solid var(--line);border-radius:15px;background:#fff;text-align:center}.world-area.locked{opacity:.58;filter:saturate(.55)}.world-area-icon{font-size:28px;margin-bottom:3px}.world-area b,.world-area small,.world-area em{display:block}.world-area b{font-size:10px}.world-area small{font-size:8px;color:var(--muted);min-height:22px;margin-top:2px}.world-area em{font-size:8px;font-style:normal;font-weight:900;margin-top:5px}.world-area-progress{height:5px;border-radius:999px;background:#e9edf2;overflow:hidden;margin-top:7px}.world-area-progress span{display:block;height:100%;background:linear-gradient(90deg,#6b78ed,#42a779);border-radius:inherit}.map-path{align-self:center;color:#9aa5b6;letter-spacing:2px}.boss-stage{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:12px;border-radius:15px;background:#fff7f1;border:1px solid #f1dfd1}.boss-stage.cleared{background:#f0fbf4;border-color:#d5eadc}.boss-avatar{width:64px;height:64px;display:grid;place-items:center;font-size:38px;border-radius:16px;background:rgba(255,255,255,.75)}.boss-stage b{font-size:13px}.boss-stage p{font-size:9px;color:var(--muted);margin:3px 0}.boss-stage small{font-size:8px;color:var(--muted)}.boss-panel .wide{margin-top:10px}
@media(max-width:680px){.adventure-grid{grid-template-columns:1fr}.adventure-hub-head{align-items:flex-start}.memory-garden{min-height:118px;padding:9px}.garden-plant{width:42px}.garden-plant span{font-size:24px}.weakness-monster{grid-template-columns:44px minmax(0,1fr)}.monster-avatar{width:44px;height:44px;font-size:26px}.monster-actions{flex-direction:column}.monster-actions button{width:100%}.boss-stage{grid-template-columns:54px 1fr}.boss-avatar{width:54px;height:54px;font-size:32px}.world-area{min-width:108px}}

/* v11.5.27 lazy feature loading */
.library-section-panel.is-loading{position:relative;min-height:160px}
.library-section-panel.is-loading::after{content:"学習ツールを準備中…";position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--muted);font-weight:800;letter-spacing:.02em;z-index:3}
.home-details[aria-busy="true"]>summary::after{content:" 読込中…";font-size:.72rem;color:var(--muted);font-weight:700}


/* ===== v11.6.38 Quest image memory styles ===== */
.scene-cta-box{flex-wrap:wrap}
.scene-style-control{flex:1 0 100%;width:100%;padding-top:11px;margin-top:2px;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent)}
.scene-style-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.scene-style-heading b{font-size:12px!important;color:var(--text)!important}
.scene-style-recommend{font-size:10px;font-weight:850;color:#8edcff;background:rgba(61,159,255,.12);border:1px solid rgba(94,188,255,.28);border-radius:999px;padding:4px 8px}
.scene-style-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.scene-style-chip{min-height:36px;border-radius:11px;border:1px solid var(--line)!important;background:color-mix(in srgb,var(--card) 90%,#132951 10%)!important;color:var(--muted)!important;font-size:11px!important;font-weight:850!important;padding:7px 5px!important;box-shadow:none!important}
.scene-style-chip:hover{border-color:#698eff!important;color:var(--text)!important}
.scene-style-chip.active{background:linear-gradient(135deg,rgba(91,77,255,.34),rgba(45,132,255,.28))!important;border-color:#7085ff!important;color:#fff!important;box-shadow:0 0 0 1px rgba(112,133,255,.16) inset!important}
.scene-style-help{display:block;margin-top:7px;font-size:10px;line-height:1.45;color:var(--muted)}
@media(max-width:680px){.scene-style-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-style-heading{align-items:flex-start}.scene-style-recommend{white-space:nowrap}}
