:root{--ink:#18201c;--muted:#69736d;--line:#dfe6e1;--bg:#f6f8f6;--card:#fff;--green:#276a4b;--green2:#e7f2ec;--red:#9c3d3d;--amber:#8a651a;--shadow:0 18px 50px rgba(24,32,28,.08);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);line-height:1.7}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(1120px,calc(100% - 32px));margin:auto}.narrow{width:min(620px,calc(100% - 32px))}.site-header{height:68px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:900;color:var(--ink);font-size:20px;letter-spacing:-.02em}.header-inner nav{display:flex;align-items:center;gap:18px}.header-inner nav a{color:#47504b;font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--green);color:white!important;font:inherit;font-weight:800;padding:11px 18px;cursor:pointer;text-decoration:none!important}.button:hover{filter:brightness(.96)}.button.ghost{background:white;color:var(--green)!important;border:1px solid #bfd4c7}.button.small{padding:7px 12px;border-radius:9px;font-size:13px}.button.large{padding:14px 22px}.button.full{width:100%}.hero{padding:72px 0 56px;background:linear-gradient(145deg,#f8fbf9,#edf5f0)}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:64px}.eyebrow{display:block;color:var(--green);font-size:12px;font-weight:900;letter-spacing:.14em}.hero h1{font-size:clamp(46px,7vw,78px);line-height:1.08;letter-spacing:-.055em;margin:10px 0 22px}.lead{font-size:20px;color:#4e5d55;max-width:650px}.hero-actions{display:flex;gap:12px;margin:28px 0 14px}.micro{font-size:13px;color:var(--muted)}.hero-card,.panel,.reading-card,.result-card{background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.hero-card{padding:28px;transform:rotate(1deg)}.mini-badge,.pill{display:inline-flex;border-radius:999px;background:var(--green2);color:var(--green);padding:4px 10px;font-size:12px;font-weight:800}.pill.soft{background:#f0f2f0;color:#5c665f}.sample-body{font-size:20px;font-weight:800;margin:24px 0}.sample-choice{padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin:8px 0}.sample-choice.active{border-color:#80ae92;background:#f0f7f3}.sample-feedback{margin-top:18px;color:var(--green);font-weight:800}.section{padding:64px 0}.section-heading h2{font-size:36px;margin:6px 0 28px}.feature-grid,.study-grid,.metric-grid{display:grid;gap:18px}.feature-grid{grid-template-columns:repeat(3,1fr)}.feature{background:white;border:1px solid var(--line);border-radius:18px;padding:24px}.feature b{color:var(--green)}.feature h3{font-size:24px;margin:10px 0 4px}.feature p{margin:0;color:var(--muted)}.auth-wrap{padding:70px 0}.panel{padding:28px}.panel h1,.panel h2{margin-top:0}.stack{display:grid;gap:16px}.stack label{display:grid;gap:6px;font-weight:700;font-size:14px}input,select,textarea{width:100%;font:inherit;border:1px solid #ccd6cf;border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink)}textarea{resize:vertical}.stack small,label small{font-weight:400;color:var(--muted)}.center{text-align:center}.muted{color:var(--muted)}.flash{padding:12px 14px;border-radius:12px;margin:16px auto}.flash.success{background:#eaf7ef;color:#1d613d}.flash.error{background:#faeded;color:#883434}.page{padding:42px 0 72px}.dashboard-top,.page-heading.split,.panel-head,.reading-meta,.reading-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.dashboard-top h1,.page-heading h1{margin:4px 0 4px;font-size:34px;letter-spacing:-.03em}.stats-inline{display:flex;gap:12px}.stats-inline div,.metric{background:white;border:1px solid var(--line);border-radius:16px;padding:14px 18px;text-align:center}.stats-inline strong,.metric strong{display:block;font-size:28px}.stats-inline span,.metric span,.metric small{display:block;color:var(--muted);font-size:12px}.level-tabs{display:flex;gap:8px;margin:28px 0 18px}.level-tabs a{padding:8px 14px;border-radius:999px;background:white;border:1px solid var(--line);font-weight:800;color:#59635d}.level-tabs a.active{background:var(--ink);color:white;border-color:var(--ink)}.study-grid{grid-template-columns:repeat(2,1fr)}.study-card{display:block;background:white;border:1px solid var(--line);border-radius:22px;padding:24px;color:var(--ink);min-height:190px;transition:.15s}.study-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow)}.study-card.primary{background:#1f5b42;color:white;border-color:#1f5b42}.study-card span{font-size:12px;font-weight:900;letter-spacing:.1em;opacity:.72}.study-card h2{margin:14px 0 4px;font-size:24px}.study-card p{opacity:.72}.study-card b{display:block;margin-top:18px}.upgrade-strip{margin-top:22px;border:1px dashed #a8c3b2;border-radius:18px;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;background:#f4faf6}.upgrade-strip p{margin:3px 0 0;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.status{display:inline-flex;padding:4px 9px;border-radius:999px;background:#edf0ee;font-size:12px;font-weight:900}.status.active,.status.completed,.status.published{background:#e5f4ea;color:#21613d}.status.flagged,.status.failed,.status.past_due{background:#f9e8e8;color:#8a3434}.status.partial,.status.queued,.status.running{background:#fff4db;color:#7b5c18}.metric-grid{grid-template-columns:repeat(5,1fr);margin:20px 0}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #eef1ef;vertical-align:middle}th{font-size:12px;color:var(--muted);background:#fafbfa}.ok{color:var(--green);font-weight:900}.ng{color:var(--red);font-weight:900}.reading-page{width:min(860px,calc(100% - 32px));padding:28px 0 70px}.reading-meta{margin-bottom:14px}.reading-meta>div{display:flex;gap:6px}.reading-card{padding:34px}.reading-heading h1{margin:4px 0;font-size:30px}.text-toggle{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;color:var(--muted);cursor:pointer}.pre-questions{background:#f3f8f5;border-radius:14px;padding:16px 18px;margin:24px 0}.pre-questions p{margin:4px 0}.passage{font-size:18px;line-height:2.05;letter-spacing:.015em;padding:10px 2px 28px;white-space:normal}.furigana-off rt{display:none}.question-box{border-top:1px solid var(--line);padding-top:26px}.question-box h2{font-size:21px}.choices{display:grid;gap:10px}.choice{display:flex!important;align-items:flex-start;gap:12px;border:1px solid #dbe2dd;border-radius:14px;padding:14px 16px;font-weight:500!important;cursor:pointer}.choice:has(input:checked){border-color:#6e9e81;background:#eef7f1}.choice input{width:auto;margin-top:5px}.choice-index{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;background:#eef1ef;font-weight:900;flex:none}.result-card{padding:28px;display:flex;align-items:center;gap:20px;margin-bottom:18px}.result-card.correct{border-color:#b8d9c6;background:#f7fcf9}.result-card.wrong{border-color:#e2c6c6;background:#fffafa}.result-mark{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--green);color:white;font-size:36px;font-weight:900}.wrong .result-mark{background:var(--red)}.result-card h1{margin:4px 0}.selected-answer{margin:4px 0;color:var(--muted)}.explanation p{font-size:17px}.correct-answer{display:grid;gap:4px;background:#eff7f2;border-radius:12px;padding:14px 16px}.result-actions{display:flex;gap:10px;margin:18px 0}.report-box{margin-top:34px;color:var(--muted)}.report-box form{margin-top:14px;background:white;border:1px solid var(--line);border-radius:14px;padding:16px}.inventory{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.inventory div{border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}.inventory b,.inventory strong,.inventory span{display:block}.inventory strong{font-size:28px}.inventory span{font-size:12px;color:var(--muted)}.admin-links{display:flex;gap:12px;margin-top:18px}.admin-links a{background:white;border:1px solid var(--line);border-radius:12px;padding:12px 16px}.admin-generate{align-items:start}.panel pre{overflow:auto;background:#18201c;color:#eaf2ed;padding:12px;border-radius:10px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.filter-bar{display:flex;gap:8px;margin:16px 0}.filter-bar select{max-width:180px}.inline-form{display:flex;gap:6px;align-items:center}.inline-form select{min-width:110px}.site-footer{border-top:1px solid var(--line);padding:26px 0;color:var(--muted);font-size:13px;background:white}hr{border:0;border-top:1px solid var(--line);margin:22px 0}.empty-state{text-align:center;background:white;border:1px solid var(--line);border-radius:20px;padding:38px}.empty-state h2{margin-top:0}@media(max-width:760px){.header-inner nav a:not(.button):not(.account-link){display:none}.hero{padding:42px 0}.hero-grid,.feature-grid,.study-grid,.two-col,.metric-grid,.inventory{grid-template-columns:1fr}.hero-card{transform:none}.hero h1{font-size:48px}.dashboard-top,.page-heading.split,.reading-heading{align-items:flex-start;flex-direction:column}.stats-inline{width:100%}.stats-inline div{flex:1}.metric-grid{grid-template-columns:repeat(2,1fr)}.study-card{min-height:0}.reading-card{padding:22px}.passage{font-size:16px}.result-actions,.hero-actions{flex-direction:column}.result-actions .button,.hero-actions .button{width:100%}.form-row{grid-template-columns:1fr}.inline-form{flex-wrap:wrap}.filter-bar{flex-wrap:wrap}}

.checkline{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}.checkline input{width:auto}
.compact-input{max-width:90px}.inline-add{display:flex;gap:8px;align-items:center;margin-top:16px}.inline-add input{max-width:320px}.inline-add select{max-width:130px}.taxonomy-actions{display:flex;gap:8px;align-items:center}.taxonomy-table input[type=checkbox]{width:auto}.taxonomy-table select{min-width:90px}@media(max-width:760px){.inline-add{align-items:stretch;flex-direction:column}.inline-add input,.inline-add select{max-width:none}}

ruby{ruby-align:center}rt{font-size:.55em;color:#66726b;font-weight:500}.furigana-off rt{display:none}.admin-question-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.admin-question-meta>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.admin-question-meta span{display:block;font-size:11px;color:var(--muted)}.admin-question-meta b{display:block;margin-top:2px}.admin-preview-choices{display:grid;gap:8px;margin:14px 0}.admin-preview-choice{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.admin-preview-choice.correct{border-color:#77a98a;background:#eef7f1}.admin-preview-body{font-size:17px;line-height:2;white-space:normal}.quality-checks{display:flex;flex-wrap:wrap;gap:6px}.quality-checks span{font-size:12px;padding:4px 8px;border-radius:999px;background:#edf0ee}.quality-checks .pass{background:#e5f4ea;color:#21613d}@media(max-width:760px){.admin-question-meta{grid-template-columns:1fr 1fr}}

.button.danger{background:var(--red);color:#fff!important}.admin-question-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-question-actions form{margin:0}.generation-watch{margin-bottom:20px;border-color:#b8d9c6}.generation-watch #generation-links{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}@media(max-width:760px){.admin-question-actions{align-items:stretch;flex-direction:column;width:100%}.admin-question-actions .button,.admin-question-actions form{width:100%}.admin-question-actions form .button{width:100%}}

/* =========================================================
   Learner reading v1.4 — EDN reading UI inspired
   本文 → 設問 → 回答結果 → フィードバックを1ページで保持
========================================================= */
html{scroll-behavior:smooth}
.learner-reading-body{background:#f7f8fa}
.learner-reading-page{width:min(920px,calc(100% - 28px));padding-top:20px}
.learner-reading-toolbar{margin-bottom:10px;min-height:38px}
.reading-toolbar-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.reading-back{font-size:14px;font-weight:700;color:#475569}
.learner-reading-shell{display:grid;gap:12px}
.learner-reading-titlebar{padding:4px 2px 8px}
.learner-reading-titlebar h1{font-size:clamp(24px,3.6vw,32px);line-height:1.45;margin:4px 0 2px;letter-spacing:-.025em}
.reading-theme{margin:2px 0 0;color:#6b7280;font-size:13px}
.edn-pre-questions{margin:0;padding:14px 16px;border:1px dashed #cbd5e1;border-radius:10px;background:#f9fafb;box-shadow:none}
.edn-pre-questions b{display:block;font-size:13px;color:#475569;margin-bottom:4px}
.edn-pre-questions p{font-size:14px;color:#4b5563;margin:3px 0}
.study-pane{background:#fff;border:1px solid #e6e8eb;border-radius:12px;box-shadow:0 6px 18px rgba(15,23,42,.055);padding:18px 20px}
.study-pane-label{font-size:12px;font-weight:800;color:#6b7280;margin-bottom:8px;letter-spacing:.04em}
.reading-passage-pane{scroll-margin-top:86px}
.learner-passage{font-size:18px;line-height:2.08;letter-spacing:.012em;padding:2px 0 4px;color:#1f2937}
.reading-question-pane{scroll-margin-top:86px}
.question-label{font-size:14px;color:#334155;letter-spacing:0}
.learner-question-text{font-size:19px;line-height:1.75;margin:4px 0 14px;color:#111827}
.learner-choices{display:grid;gap:10px;margin:0}
.learner-choice{position:relative;display:flex!important;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:12px 14px;border:1px solid #d8d8d8;border-radius:8px;background:#f9fbfe;font-size:16px;line-height:1.65;font-weight:500!important;transition:background-color .18s,border-color .18s,box-shadow .18s,opacity .18s}
label.learner-choice{cursor:pointer}
label.learner-choice:hover{background:#f1f6ff;border-color:#b8d0ff}
.learner-choice:has(input:checked){background:#eef5ff;border-color:#7aa7ef;box-shadow:0 0 0 2px rgba(59,130,246,.12)}
.learner-choice input{position:absolute;opacity:0;pointer-events:none}
.learner-choice .choice-index{display:inline-flex;min-width:28px;width:28px;height:28px;margin:0;align-items:center;justify-content:center;border-radius:50%;background:#eef1f5;color:#475569;font-size:13px;font-weight:900;flex:none}
.learner-choice .choice-text{min-width:0;flex:1}
.learner-choice.choice-static{cursor:default}
.learner-choice.is-correct{background:#e9ffef;border-color:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.16)}
.learner-choice.is-correct .choice-index{background:#34d399;color:#fff}
.learner-choice.is-wrong{background:#fff1f2;border-color:#fb7185;box-shadow:0 0 0 3px rgba(251,113,133,.11)}
.learner-choice.is-wrong .choice-index{background:#fb7185;color:#fff}
.learner-choice.is-dim{opacity:.62;background:#fafafa}
.choice-result-label{align-self:center;font-size:11px;font-weight:800;color:#64748b;white-space:nowrap;margin-left:6px}
.learner-choice.is-correct .choice-result-label{color:#047857}
.learner-choice.is-wrong .choice-result-label{color:#be123c}
.answer-submit{margin-top:4px;border-radius:9px;background:#2563eb}
.answer-submit:hover{background:#1d4ed8;filter:none}
.edn-furigana-toggle{border-radius:8px;padding:7px 10px;background:#fff;color:#334155;font-size:13px;font-weight:700}
.edn-furigana-toggle:hover{background:#f8fafc}
.inline-feedback{scroll-margin-top:86px;padding:18px 20px}
.inline-feedback.is-correct{border-color:#b7e4c7}
.inline-feedback.is-wrong{border-color:#f1c7cf}
.inline-result-row{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #edf0f2}
.inline-result-mark{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#10b981;color:#fff;font-size:30px;font-weight:900;line-height:1;flex:none}
.inline-feedback.is-wrong .inline-result-mark{background:#e11d48}
.inline-result-row h2{font-size:20px;margin:2px 0 0}
.feedback-copy{margin-top:14px;padding:14px 16px;background:#fff;border:1px solid #e6e8eb;border-radius:12px;line-height:1.8}
.feedback-heading{font-size:12px;color:#6b7280;margin-bottom:6px;font-weight:800}
.feedback-copy p{font-size:16px;margin:0;white-space:normal}
.inline-correct-answer{margin-top:10px;background:#f0fdf4;border:1px solid #d1fae5;padding:12px 14px;border-radius:10px}
.inline-correct-answer b{font-size:12px;color:#047857}
.inline-correct-answer span{font-size:15px}
.feedback-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}
.feedback-actions .button{border-radius:8px;padding:9px 14px;font-size:14px}
.inline-report-box{margin-top:18px;padding-top:10px;border-top:1px solid #eef1f3;font-size:13px}
.inline-report-box form{box-shadow:none}
.learner-reading-page ruby{line-height:1.9}
.learner-reading-page rt{font-size:.55em}
@media(max-width:760px){
  .learner-reading-page{width:min(100% - 20px,920px);padding-top:12px}
  .learner-reading-toolbar{align-items:flex-start;gap:8px}
  .reading-toolbar-actions{justify-content:flex-start}
  .study-pane{padding:15px 14px}
  .learner-passage{font-size:16px;line-height:2}
  .learner-question-text{font-size:17px}
  .learner-choice{font-size:15px;padding:11px 12px}
  .choice-result-label{white-space:normal;font-size:10px}
  .feedback-actions{align-items:stretch;flex-direction:column}
  .feedback-actions .button{width:100%}
}

/* =========================================================
   Learner reading v1.5 — wide desktop 2-column layout
   EDN-inspired: passage left / question & choices right
========================================================= */
@media (min-width: 980px){
  .learner-reading-page{
    width:min(1360px,calc(100% - 40px));
    padding-top:18px;
  }
  .learner-reading-shell{
    grid-template-columns:minmax(0,1.72fr) minmax(340px,.92fr);
    column-gap:16px;
    row-gap:12px;
    align-items:start;
  }
  .learner-reading-titlebar,
  .learner-reading-shell > .edn-pre-questions,
  .learner-reading-shell > .inline-feedback{
    grid-column:1 / -1;
  }
  .learner-reading-shell > .reading-passage-pane{
    grid-column:1;
    grid-row:auto;
    min-width:0;
  }
  .learner-reading-shell > .reading-question-pane{
    grid-column:2;
    grid-row:auto;
    min-width:0;
    align-self:start;
    position:sticky;
    top:86px;
  }
  .learner-reading-shell > .inline-feedback{
    position:relative;
    z-index:1;
  }
  .learner-passage{
    font-size:18px;
    line-height:2.08;
  }
  .reading-question-pane{
    padding:16px 14px;
  }
  .learner-question-text{
    font-size:17px;
    line-height:1.7;
    margin-bottom:12px;
  }
  .learner-choice{
    font-size:14.5px;
    line-height:1.6;
    padding:11px 12px;
  }
  .learner-choice .choice-index{
    min-width:26px;
    width:26px;
    height:26px;
  }
  .answer-submit{
    padding:11px 14px;
  }
}

@media (min-width: 1280px){
  .learner-reading-shell{
    grid-template-columns:minmax(0,1.78fr) minmax(380px,.92fr);
    column-gap:18px;
  }
  .reading-passage-pane{
    padding:20px 22px;
  }
  .reading-question-pane{
    padding:16px 16px;
  }
}

@media (min-width: 980px) and (max-height: 760px){
  .learner-reading-shell > .reading-question-pane{
    position:static;
  }
}


/* =========================================================
   Learner reading v1.6 — result animation / first-try clear
========================================================= */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.answer-result-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;pointer-events:none}
.answer-result-overlay[hidden]{display:none!important}
.answer-result-symbol{width:156px;height:156px;display:flex;align-items:center;justify-content:center;font-family:Arial,"Noto Sans JP",sans-serif;font-size:150px;font-weight:900;line-height:1;opacity:0;transform:scale(.35);filter:drop-shadow(0 10px 26px rgba(15,23,42,.18));text-shadow:0 2px 0 rgba(255,255,255,.9)}
.answer-result-symbol.is-correct{color:#12a96d}
.answer-result-symbol.is-wrong{color:#e11d48}
.answer-result-overlay.is-active .answer-result-symbol{animation:reading-result-pop .55s cubic-bezier(.16,1.35,.4,1) forwards}
.answer-result-overlay.is-leaving .answer-result-symbol{animation:reading-result-out .36s ease forwards}
.attempt-note{margin:4px 0 0;color:#64748b;font-size:12px}
@keyframes reading-result-pop{0%{opacity:0;transform:scale(.32) rotate(-9deg)}62%{opacity:1;transform:scale(1.14) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes reading-result-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.18)}}
@media (min-width:980px){
  .learner-reading-page.has-result .learner-reading-shell > .reading-question-pane{position:static;top:auto}
}
@media (max-width:760px){
  .answer-result-symbol{width:124px;height:124px;font-size:120px}
}
@media (prefers-reduced-motion:reduce){
  .answer-result-overlay.is-active .answer-result-symbol{animation:none;opacity:1;transform:none}
  .answer-result-overlay.is-leaving .answer-result-symbol{animation:none;opacity:0}
}

/* =========================================================
   Learner reading v1.7 — instant choice judgment / retry
========================================================= */
.choice-button{appearance:none;-webkit-appearance:none;font:inherit;color:inherit;margin:0;cursor:pointer}
.choice-button:focus-visible{outline:3px solid rgba(37,99,235,.24);outline-offset:2px}
.choice-button.is-eliminated,
.learner-choice.is-eliminated{background:#f1f3f5!important;border-color:#d7dce1!important;box-shadow:none!important;color:#8b95a1!important;opacity:.66}
.choice-button.is-eliminated .choice-index,
.learner-choice.is-eliminated .choice-index{background:#d7dce1!important;color:#7b8794!important}
.choice-button.is-eliminated:hover{background:#f1f3f5!important;border-color:#d7dce1!important}
.choice-button:disabled{cursor:not-allowed}
.choice-button.is-correct{background:#e9ffef!important;border-color:#34d399!important;box-shadow:0 0 0 3px rgba(52,211,153,.16)!important;color:inherit!important;opacity:1!important}
.choice-button.is-correct .choice-index{background:#34d399!important;color:#fff!important}
.instant-answer-form.is-answering .choice-button:not(.is-eliminated):not(.is-correct){pointer-events:none;opacity:.72}
.choice-attempt-status{min-height:20px;margin-top:2px;font-size:12px;font-weight:700;color:#64748b}
.choice-attempt-status.is-wrong{color:#b4233d}
.choice-attempt-status.is-correct{color:#047857}
@media(max-width:760px){
  .choice-button{width:100%}
}

/* =========================================================
   Learner dashboard v1.8 — simple two-path UX
========================================================= */
.learner-dashboard{width:min(1120px,calc(100% - 32px));padding-top:30px}
.learner-dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.learner-dashboard-head h1{font-size:clamp(28px,4vw,38px);line-height:1.25;letter-spacing:-.035em;margin:5px 0 4px}
.learner-dashboard-head p{margin:0}
.learner-mini-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.learner-mini-stats span{display:inline-flex;align-items:baseline;gap:5px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px}
.learner-mini-stats b{font-size:15px;color:var(--ink)}
.quick-study-panel,.choose-problem-panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px rgba(24,32,28,.055)}
.quick-study-panel{padding:26px;margin-bottom:18px}
.quick-study-copy h2,.choose-problem-head h2{font-size:28px;line-height:1.3;letter-spacing:-.025em;margin:4px 0}
.quick-study-copy p,.choose-problem-head p{margin:2px 0 0;color:var(--muted);font-size:14px}
.quick-level-tabs{display:grid;grid-template-columns:repeat(5,1fr);max-width:650px;margin:20px 0 18px;border:1px solid #dbe3de;border-radius:13px;overflow:hidden;background:#f7f9f8}
.quick-level-tabs a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:8px 10px;color:#46534c;border-right:1px solid #e2e8e4;text-decoration:none!important}
.quick-level-tabs a:last-child{border-right:0}
.quick-level-tabs b{font-size:15px}
.quick-level-tabs small{font-size:11px;color:#829087}
.quick-level-tabs a.active{background:#276a4b;color:#fff}
.quick-level-tabs a.active small{color:#d7eee0}
.quick-study-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-action-card{display:flex;align-items:center;gap:13px;min-height:82px;padding:16px 18px;border:1px solid #dbe3de;border-radius:15px;background:#fff;color:var(--ink);text-decoration:none!important;transition:transform .14s,box-shadow .14s,border-color .14s}
.quick-action-card:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(24,32,28,.08);border-color:#adc6b6}
.quick-action-card.primary{background:#276a4b;color:#fff;border-color:#276a4b}
.quick-action-card.primary small{color:#d9eee2}
.quick-action-card>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}
.quick-action-card b{font-size:17px;line-height:1.45}
.quick-action-card small{font-size:12px;color:var(--muted);margin-top:2px}
.quick-action-card>strong{font-size:20px;margin-left:auto}
.quick-action-icon{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;flex:none;border-radius:50%;background:#edf5f0;color:var(--green);font-size:21px;font-weight:900}
.quick-action-card.primary .quick-action-icon{background:rgba(255,255,255,.16);color:#fff}
.quick-action-card.is-disabled{opacity:.58;background:#f7f8f7;box-shadow:none;cursor:not-allowed}
.choose-problem-panel{padding:24px 26px}
.choose-problem-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}
.problem-level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.problem-level-card{font:inherit;color:var(--ink);background:#fbfcfb;border:1px solid #dce4df;border-radius:15px;padding:15px 12px;min-height:112px;text-align:left;cursor:pointer;transition:background .14s,border-color .14s,transform .14s,box-shadow .14s}
.problem-level-card:hover:not(:disabled){background:#fff;border-color:#9fbea9;transform:translateY(-1px);box-shadow:0 8px 18px rgba(24,32,28,.07)}
.problem-level-card:disabled{opacity:.45;cursor:not-allowed}
.problem-level-name{display:block;font-weight:900;font-size:14px;color:var(--green)}
.problem-level-card strong{display:block;font-size:28px;line-height:1.2;margin:5px 0}
.problem-level-card strong small{font-size:12px;font-weight:700;margin-left:2px;color:var(--muted)}
.problem-level-meta{display:block;font-size:11px;color:var(--muted);white-space:nowrap}
.learner-plan-note{text-align:center;color:var(--muted);font-size:12px;margin:16px 0 0}
body.problem-picker-open{overflow:hidden}
.problem-picker-modal[hidden]{display:none!important}
.problem-picker-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px}
.problem-picker-backdrop{position:absolute;inset:0;background:rgba(23,31,27,.48);backdrop-filter:blur(2px)}
.problem-picker-dialog{position:relative;z-index:1;width:min(920px,100%);max-height:min(82vh,780px);display:flex;flex-direction:column;background:#fff;border:1px solid #d9e0dc;border-radius:20px;box-shadow:0 24px 80px rgba(15,23,42,.24);overflow:hidden}
.problem-picker-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 18px 12px;border-bottom:1px solid #edf0ee}
.problem-picker-header h2{font-size:21px;margin:0;letter-spacing:-.02em}
.problem-picker-header p{font-size:12px;color:var(--muted);margin:2px 0 0}
.problem-picker-close{border:1px solid #d8dfdb;border-radius:10px;background:#f5f7f6;padding:8px 13px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;color:#46524b}
.problem-picker-tools{display:grid;grid-template-columns:1fr 190px;gap:9px;padding:12px 18px 10px}
.problem-picker-tools input,.problem-picker-tools select{height:42px}
.problem-picker-message{min-height:22px;padding:0 18px;color:var(--red);font-size:12px}
.problem-picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 18px;overflow:auto;overscroll-behavior:contain}
.problem-picker-card{display:flex;flex-direction:column;min-height:142px;padding:15px;border:1px solid #dfe5e1;border-radius:14px;background:#fff}
.problem-picker-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.problem-picker-card h3{font-size:16px;line-height:1.5;margin:0;letter-spacing:-.015em}
.problem-genre-pill{display:inline-flex;flex:none;border-radius:999px;padding:3px 8px;background:#edf8f8;color:#49757a;font-size:11px;white-space:nowrap}
.problem-picker-theme{font-size:12px;line-height:1.5;color:var(--muted);margin:7px 0 12px;padding-bottom:10px;border-bottom:1px dashed #e6eae7;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.problem-picker-card-bottom{display:flex;align-items:center;gap:8px;margin-top:auto}
.problem-learning-state{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}
.problem-learning-state.is-new{background:#eef3ff;color:#3a63b8}
.problem-learning-state.is-clear{background:#e7f6ec;color:#1d6a40}
.problem-learning-state.is-review{background:#fff1df;color:#8a5a11}
.problem-picker-start{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#276a4b;color:#fff!important;padding:6px 11px;font-size:12px;font-weight:900;text-decoration:none!important}
.problem-picker-locked{margin-left:auto;color:var(--muted);font-size:11px}
.problem-picker-loading,.problem-picker-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:42px 10px}
.problem-picker-footer{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 18px 14px;border-top:1px solid #edf0ee;background:#fafbfa}
.problem-picker-footer span{min-width:64px;text-align:center;color:var(--muted);font-size:12px}
.problem-picker-footer button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:760px){
  .learner-dashboard{width:min(100% - 20px,1120px);padding-top:20px}
  .learner-dashboard-head{align-items:flex-start;flex-direction:column;gap:10px}
  .learner-mini-stats{justify-content:flex-start}
  .quick-study-panel,.choose-problem-panel{padding:18px;border-radius:17px}
  .quick-level-tabs{width:100%;margin-top:16px}
  .quick-level-tabs a{flex-direction:column;gap:0;min-height:50px;padding:5px}
  .quick-level-tabs small{font-size:9px}
  .quick-study-actions{grid-template-columns:1fr}
  .problem-level-grid{grid-template-columns:repeat(2,1fr)}
  .problem-level-card:last-child:nth-child(odd){grid-column:1/-1}
  .problem-picker-modal{padding:8px}
  .problem-picker-dialog{max-height:92vh;border-radius:16px}
  .problem-picker-tools{grid-template-columns:1fr;padding:10px 12px}
  .problem-picker-grid{grid-template-columns:1fr;padding:0 12px 14px}
  .problem-picker-header{padding:14px 12px 10px}
}

/* =========================================================
   Landing page v1.9 — KOTONOHA Learning inspired layout
========================================================= */
body.landing{background:#fff;color:#123a36}
body.landing main{background:#fff}
.landing-container{width:min(1240px,calc(100% - 56px));margin:0 auto}
.site-header.landing-site-header{height:88px;background:#fff;border-bottom:1px solid #e2ebe6;position:sticky;top:0;z-index:30;backdrop-filter:none}
.landing-header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}
.landing-brand{display:inline-flex;align-items:center;gap:14px;color:#0d4842!important;text-decoration:none!important;min-width:0}
.landing-brand-icon{display:block;width:48px;height:48px;flex:none}
.landing-brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.05}
.landing-brand-copy strong{font-size:22px;font-weight:900;letter-spacing:.02em;white-space:nowrap}
.landing-brand-copy small{margin-top:7px;font-size:9px;font-weight:900;letter-spacing:.14em;color:#607c73;white-space:nowrap}
.landing-nav{display:flex;align-items:center;gap:28px;flex:none}
.landing-nav>a:not(.button){position:relative;padding:31px 0 27px;color:#294d47;font-size:14px;font-weight:800;text-decoration:none!important;white-space:nowrap}
.landing-nav>a:not(.button).active::after{content:"";position:absolute;left:0;right:0;bottom:18px;height:3px;border-radius:999px;background:#176e59}
.landing-register-button{border-radius:999px!important;padding:10px 18px!important;background:#eef8f3!important;border:1px solid #bddbcf;color:#176e59!important}

.landing-hero{padding:24px 0 22px;background:#fff}
.landing-hero-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);align-items:stretch;min-height:292px;background:#fff}
.landing-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:24px 42px 24px 28px;position:relative;z-index:2}
.landing-kicker{display:block;color:#176e59;font-size:11px;font-weight:900;letter-spacing:.16em;margin-bottom:8px}
.landing-hero h1{margin:0;color:#113f3a;font-size:clamp(40px,4.4vw,58px);line-height:1.28;letter-spacing:-.035em;font-weight:900}
.landing-lead{max-width:600px;margin:18px 0 0;color:#486761;font-size:17px;line-height:1.9;font-weight:650}
.landing-hero-actions{display:flex;align-items:center;gap:12px;margin-top:22px}
.landing-primary-button,.landing-login-button{min-height:48px;border-radius:999px;padding:12px 23px}
.landing-primary-button{background:#176e59}
.landing-login-button{border-color:#b8d8cb!important;background:#fff!important}
.landing-plan-note{margin:12px 0 0;color:#728880;font-size:12px}
.landing-hero-media{position:relative;overflow:hidden;min-height:292px;background:#edf7f2}
.landing-hero-media::before{content:"";position:absolute;left:0;top:0;bottom:0;width:72px;z-index:1;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.landing-hero-media img{display:block;width:100%;height:100%;min-height:292px;object-fit:cover;object-position:center}

.landing-feature-strip{padding:0 0 34px;background:#fff}
.landing-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.landing-feature-card{display:flex;align-items:flex-start;gap:18px;min-height:166px;padding:28px 24px;border:1px solid #cae2d8;border-radius:22px;background:#f1f8f5}
.landing-feature-icon{display:flex;align-items:center;justify-content:center;flex:none;width:58px;height:58px;border:1px solid #c7e0d6;border-radius:16px;background:#fff;color:#176e59;font-size:26px;font-weight:900;box-shadow:0 8px 22px rgba(23,110,89,.06)}
.landing-feature-card h2{margin:5px 0 8px;color:#123f3a;font-size:24px;line-height:1.35;letter-spacing:-.025em}
.landing-feature-card p{margin:0;color:#59716b;font-size:14px;line-height:1.85}
.landing-flow-section{padding:30px 0 54px;background:#fff}
.landing-flow-inner{display:flex;align-items:center;justify-content:space-between;gap:36px;padding-top:26px;border-top:1px solid #e4ece8}
.landing-flow-inner h2{margin:4px 0 5px;color:#123f3a;font-size:30px;letter-spacing:-.025em}
.landing-flow-inner p{margin:0;color:#6a7f79}
.landing-text-link{display:inline-flex;align-items:center;gap:8px;flex:none;font-weight:900;color:#176e59!important;text-decoration:none!important}
body.landing .site-footer{background:#fff;border-top:1px solid #e3ebe7}

@media(max-width:980px){
  .landing-container{width:min(100% - 36px,1240px)}
  .landing-nav{gap:18px}
  .landing-nav-secondary{display:none!important}
  .landing-hero-inner{grid-template-columns:1fr 1fr}
  .landing-hero-copy{padding-left:10px;padding-right:24px}
  .landing-hero h1{font-size:43px}
  .landing-lead{font-size:15px}
}
@media(max-width:760px){
  .landing-container{width:min(100% - 28px,1240px)}
  .site-header.landing-site-header{height:72px}
  .landing-brand{gap:10px}
  .landing-brand-icon{width:40px;height:40px}
  .landing-brand-copy strong{font-size:18px}
  .landing-brand-copy small{font-size:7px;margin-top:5px}
  .landing-nav{gap:8px}
  .landing-nav>a:not(.button){display:none}
  .landing-register-button{display:inline-flex!important;padding:8px 13px!important;font-size:12px!important}
  .landing-hero{padding:14px 0 20px}
  .landing-hero-inner{grid-template-columns:1fr;min-height:0}
  .landing-hero-copy{padding:28px 4px 26px}
  .landing-hero h1{font-size:39px;line-height:1.25}
  .landing-lead{font-size:15px;line-height:1.8}
  .landing-hero-actions{align-items:stretch;flex-direction:row}
  .landing-hero-actions .button{width:auto;flex:1;padding:11px 12px}
  .landing-hero-media{min-height:210px;border-radius:0}
  .landing-hero-media::before{display:none}
  .landing-hero-media img{min-height:210px}
  .landing-feature-grid{grid-template-columns:1fr}
  .landing-feature-card{min-height:0;padding:20px}
  .landing-feature-card h2{font-size:21px}
  .landing-feature-icon{width:50px;height:50px;font-size:22px}
  .landing-flow-inner{align-items:flex-start;flex-direction:column;gap:14px}
  .landing-flow-inner h2{font-size:25px}
}

/* =========================================================
   Landing hero v1.10 — photographic, compact hero
========================================================= */
@media (min-width:761px){
  .landing-hero{padding:12px 0 18px}
  .landing-hero-inner{grid-template-columns:minmax(0,.94fr) minmax(520px,1.06fr);min-height:198px;max-height:198px;overflow:hidden}
  .landing-hero-copy{padding:14px 34px 14px 28px;justify-content:center}
  .landing-kicker{font-size:10px;margin-bottom:3px}
  .landing-hero h1{font-size:clamp(34px,3.25vw,44px);line-height:1.12;white-space:nowrap}
  .landing-lead{margin-top:8px;max-width:570px;font-size:14px;line-height:1.65}
  .landing-hero-actions{margin-top:11px}
  .landing-primary-button,.landing-login-button{min-height:40px;padding:8px 19px}
  .landing-plan-note{display:none}
  .landing-hero-media{min-height:198px;height:198px;background:#eef5f1}
  .landing-hero-media::before{width:58px}
  .landing-hero-media img{width:100%;height:198px;min-height:198px;object-fit:cover;object-position:center 38%}
}
@media (max-width:760px){
  .landing-hero-copy{padding:22px 4px 20px}
  .landing-hero h1{font-size:34px;line-height:1.22;white-space:normal}
  .landing-lead{margin-top:10px}
  .landing-hero-media{min-height:178px;height:178px}
  .landing-hero-media img{height:178px;min-height:178px;object-fit:cover;object-position:center 37%}
}


/* =========================================================
   v1.11 Landing shell alignment with KOTONOHA Learning
   / care-worker visual proportions
   ========================================================= */
@media(min-width:761px){
  .landing-container{
    width:92%;
    max-width:1280px;
  }

  /* Header: same visual height / spacing as care-worker */
  .site-header.landing-site-header{
    height:auto;
    min-height:94px;
    position:static;
    background:#fff;
    border-bottom:1px solid #d9e5df;
  }
  .landing-header-inner{
    min-height:94px;
    padding:19px 0 17px;
    gap:28px;
  }
  .landing-brand{
    gap:11px;
    line-height:1.15;
  }
  .landing-brand-icon{
    width:58px;
    height:58px;
  }
  .landing-brand-copy{
    gap:3px;
    line-height:1.15;
  }
  .landing-brand-copy strong{
    font-size:22px;
    letter-spacing:.035em;
  }
  .landing-brand-copy small{
    margin-top:0;
    font-size:9px;
    letter-spacing:.15em;
  }
  .landing-nav{
    gap:4px;
    margin-left:auto;
  }
  .landing-nav>a:not(.button){
    display:flex;
    align-items:center;
    min-height:42px;
    padding:7px 12px;
    font-size:13px;
    color:#5f746f;
  }
  .landing-nav>a:not(.button).active::after{
    left:12px;
    right:12px;
    bottom:2px;
    height:2px;
  }
  .landing-register-button{
    min-height:36px;
    padding:6px 12px!important;
    font-size:12px!important;
  }

  /* Hero: same height and blended-photo treatment as care-worker */
  .landing-hero{
    padding:24px 0 0;
    background:#fff;
  }
  .landing-hero-inner{
    position:relative;
    isolation:isolate;
    display:flex;
    align-items:center;
    min-height:290px;
    max-height:none;
    overflow:hidden;
    background:#f6faf7;
  }
  .landing-hero-inner::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(
      90deg,
      rgba(255,255,255,.99) 0%,
      rgba(255,255,255,.96) 39%,
      rgba(255,255,255,.72) 54%,
      rgba(255,255,255,.20) 76%,
      rgba(255,255,255,.03) 100%
    );
  }
  .landing-hero-copy{
    position:relative;
    z-index:2;
    width:min(58%,720px);
    padding:34px;
    justify-content:center;
  }
  .landing-kicker{
    margin-bottom:5px;
    font-size:11px;
  }
  .landing-hero h1{
    max-width:720px;
    margin:0 0 12px;
    font-size:clamp(34px,3.35vw,50px);
    line-height:1.35;
    letter-spacing:-.025em;
    white-space:normal;
    text-shadow:0 1px 0 rgba(255,255,255,.7);
  }
  .landing-lead{
    max-width:680px;
    margin:0;
    font-size:15px;
    line-height:1.8;
    color:#425e58;
    text-shadow:0 1px 4px rgba(255,255,255,.95);
  }
  .landing-hero-actions{
    margin-top:15px;
  }
  .landing-primary-button,
  .landing-login-button{
    min-height:44px;
    padding:10px 20px;
  }
  .landing-plan-note{
    margin-top:9px;
  }
  .landing-hero-media{
    position:absolute;
    inset:0;
    z-index:0;
    min-height:290px;
    background:#edf7f2;
  }
  .landing-hero-media::before{
    display:none;
  }
  .landing-hero-media img{
    width:100%;
    height:100%;
    min-height:290px;
    object-fit:cover;
    object-position:68% 42%;
  }

  /* Keep the next section's rhythm close to the reference */
  .landing-feature-strip{
    padding:24px 0 34px;
  }

  /* Landing footer: same visual density as care-worker */
  .landing-footer{
    margin-top:18px;
    border-top:1px solid #d9e5df;
    background:#f8faf8;
    color:#5f746f;
  }
  .landing-footer .landing-footer-inner{
    width:92%;
    max-width:1280px;
    margin:0 auto;
    padding:34px 0 28px;
  }
  .landing-footer .landing-footer-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:32px;
    padding-bottom:24px;
  }
  .landing-footer .landing-footer-brand{
    display:flex;
    flex-direction:column;
    gap:5px;
    color:#173b36;
    text-decoration:none;
  }
  .landing-footer .landing-footer-brand strong{
    font-size:18px;
    letter-spacing:.035em;
  }
  .landing-footer .landing-footer-brand span{
    font-size:9px;
    font-weight:750;
    letter-spacing:.14em;
    color:#5f746f;
  }
  .landing-footer .landing-footer-nav{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px 20px;
  }
  .landing-footer .landing-footer-nav a{
    color:#5f746f;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
  }
  .landing-footer .landing-footer-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding-top:18px;
    border-top:1px solid #d9e5df;
    font-size:10px;
  }
  .landing-footer .landing-footer-bottom p{
    margin:0;
  }
}

@media(max-width:760px){
  .site-header.landing-site-header{
    position:static;
  }
  .landing-hero{
    padding-top:14px;
  }
  .landing-hero-inner{
    display:grid;
    grid-template-columns:1fr;
    max-height:none;
    overflow:visible;
  }
  .landing-hero-inner::after{
    display:none;
  }
  .landing-hero-copy{
    width:100%;
  }
  .landing-hero-media{
    position:relative;
    inset:auto;
  }
  .landing-hero-media img{
    object-position:center 42%;
  }

  .landing-footer .landing-footer-inner{
    width:min(100% - 28px,1280px);
    margin:0 auto;
    padding:26px 0 92px;
  }
  .landing-footer .landing-footer-top{
    display:block;
    padding-bottom:18px;
  }
  .landing-footer .landing-footer-nav{
    justify-content:flex-start;
    margin-top:16px;
  }
  .landing-footer .landing-footer-bottom{
    display:block;
    padding-top:14px;
  }
  .landing-footer .landing-footer-bottom p+p{
    margin-top:5px;
  }
}

/* =========================================================
   v1.12.1 Learner header aligned with Challenge JLPT
   ========================================================= */
.reading-auth-nav{display:flex;align-items:center;min-width:0}
.reading-user-auth{display:flex;align-items:center;gap:9px;min-width:0}
.reading-user-name{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#294d47;font-size:12px;font-weight:900}
.reading-user-tools{display:flex;align-items:center;gap:6px;min-width:0}
.reading-user-link,.reading-logout-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 10px;border:1px solid #bdd5ca;border-radius:10px;background:rgba(255,255,255,.9);color:#315c50!important;text-decoration:none!important;font:inherit;font-size:11.5px;font-weight:900;white-space:nowrap;cursor:pointer;box-shadow:none;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}
.reading-user-link:hover,.reading-logout-button:hover{border-color:#86b39f;background:#fff;color:var(--green)!important;transform:translateY(-1px)}
.reading-logout-form{margin:0;display:flex}
.landing-nav.reading-auth-nav{gap:0}
.landing-nav.reading-auth-nav .reading-user-auth{margin-left:auto}
.landing-nav.reading-auth-nav .reading-user-link,.landing-nav.reading-auth-nav .reading-logout-button{padding:0 11px}
@media(max-width:760px){
  .reading-user-auth{flex-direction:column;align-items:flex-end;gap:2px}
  .reading-user-name{max-width:170px;font-size:10px;line-height:1.15}
  .reading-user-tools{gap:3px}
  .reading-user-link,.reading-logout-button{min-height:27px;padding:3px 6px;font-size:9.5px}
  .header-inner{gap:10px}
  .header-inner nav.reading-auth-nav{display:flex}
  .landing-nav.reading-auth-nav{display:flex}
}
@media(max-width:430px){
  .reading-user-name{max-width:130px}
  .reading-user-tools{gap:2px}
  .reading-user-link,.reading-logout-button{padding-left:5px;padding-right:5px;font-size:9px}
}

/* =========================================================
   v1.12.2 Landing page as learner study home
   ========================================================= */
.landing-study-home{padding:4px 0 30px;background:#fff;scroll-margin-top:18px}
.landing-study-dashboard{padding-top:0}
.landing-learner-head{margin:0 0 18px;padding-top:4px}
.landing-learner-head h2{font-size:clamp(28px,3.4vw,38px);line-height:1.25;letter-spacing:-.035em;margin:5px 0 4px;color:#123a36}
body.landing .landing-study-home .quick-study-panel,
body.landing .landing-study-home .choose-problem-panel{box-shadow:0 10px 30px rgba(24,32,28,.045)}
body.landing .landing-study-home .choose-problem-panel{margin-top:18px}
body.landing .landing-study-home + .landing-feature-strip{padding-top:8px}
@media(max-width:760px){
  .landing-study-home{padding:0 0 24px;scroll-margin-top:10px}
  .landing-learner-head{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:14px}
  .landing-learner-head h2{font-size:28px}
  .landing-study-dashboard .quick-study-panel,
  .landing-study-dashboard .choose-problem-panel{padding:18px;border-radius:17px}
  .landing-study-dashboard .choose-problem-head{align-items:flex-start;flex-direction:column}
  .landing-study-dashboard .choose-problem-head .button{width:100%;justify-content:center}
}


/* =========================================================
   v1.12.7 Learning page header — exact top-page brand shell
   ========================================================= */
body.learner-reading-body > header.site-header{
  display:none;
}
body.learner-reading-body main > .learning-page-unified-header{
  display:block;
  width:100%;
  margin:0;
}
@media(max-width:760px){
  body.learner-reading-body main > .learning-page-unified-header{
    display:block;
  }
}

/* =========================================================
   v1.12.10 Learning controls — Challenge JLPT style
   ========================================================= */
.reading-control-switch{
  appearance:none;border:0;background:transparent;padding:0;margin:0;
  display:inline-flex;align-items:center;gap:7px;color:#245d87;
  font:inherit;font-size:13px;font-weight:800;line-height:1;cursor:pointer;
  white-space:nowrap
}
.reading-switch-track{
  width:42px;height:26px;padding:3px;border-radius:999px;background:#cbd5e1;
  display:inline-flex;align-items:center;box-sizing:border-box;transition:background .18s ease;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)
}
.reading-switch-knob{
  width:20px;height:20px;border-radius:50%;background:#fff;display:block;
  box-shadow:0 1px 3px rgba(15,23,42,.25);transform:translateX(0);transition:transform .18s ease
}
.reading-control-switch.is-on .reading-switch-track{background:#3b91e8}
.reading-control-switch.is-on .reading-switch-knob{transform:translateX(16px)}
.reading-control-switch:focus-visible{outline:3px solid rgba(59,145,232,.22);outline-offset:4px;border-radius:8px}
.reading-control-label{position:relative;top:.5px}

.reading-translation-picker{
  position:relative;display:inline-flex;align-items:center;min-width:176px;height:36px;
  border:1px solid #c9d7e6;border-radius:999px;background:#fff;color:#174b72;
  box-sizing:border-box;overflow:hidden
}
.reading-translation-globe{
  position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;
  color:#2991e5;pointer-events:none;z-index:1
}
.reading-translation-globe svg{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.7}
.reading-translation-picker select{
  appearance:auto;-webkit-appearance:auto;width:100%;height:100%;border:0;outline:0;background:transparent;
  padding:0 12px 0 31px;color:#174b72;font:inherit;font-size:13px;font-weight:800;cursor:pointer
}
.reading-translation-picker:focus-within{border-color:#3b91e8;box-shadow:0 0 0 3px rgba(59,145,232,.14)}
.reading-translation-picker:has(select:disabled){opacity:.7;background:#f8fafc}

/* Language selection lives in the pre-reading card. Feedback only shows the result. */
.feedback-translation{margin-top:12px;padding-top:0;border-top:0}
.feedback-translation-button{
  appearance:none;border:1px solid #b9d3ea;border-radius:999px;background:#fff;color:#1d6fa9;
  min-height:38px;padding:7px 15px;display:inline-flex;align-items:center;gap:7px;
  font:inherit;font-size:13px;font-weight:800;line-height:1;cursor:pointer;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease
}
.feedback-translation-button:hover{background:#f4f9fe;border-color:#7eb5e2}
.feedback-translation-button:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(59,145,232,.18);border-color:#3b91e8}
.feedback-translation-button:disabled{opacity:.65;cursor:wait;background:#f8fafc}
.feedback-translation-button-globe{width:16px;height:16px;color:#2991e5;display:inline-flex}
.feedback-translation-button-globe svg{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.7}
.feedback-translation-status{min-height:0;margin-top:7px;font-size:13px;color:#66736f}
.feedback-translation-status:empty{display:none}
.feedback-translation-result{margin-top:10px;padding:12px 14px;border-radius:10px;background:#f6faf8;border:1px solid #dce9e3}
.feedback-translation-result-heading{margin-bottom:6px;font-size:12px;font-weight:800;letter-spacing:.04em;color:#557068}
.feedback-translation-result p{margin:0;white-space:pre-wrap;line-height:1.8;font-size:15px}
.reading-control-switch:hover{background:transparent}

@media(max-width:760px){
  .reading-toolbar-actions{width:100%;justify-content:flex-start}
  .reading-translation-picker{min-width:166px;max-width:100%}
}
@media(max-width:480px){
  .reading-toolbar-actions{gap:9px}
  .reading-control-switch{order:3}
  .reading-translation-picker{order:4;min-width:0;width:min(100%,220px)}
}


/* =========================================================
   v1.12.12 Mobile learning layout cleanup
   PC layout unchanged / mobile only cleanup
   ========================================================= */
@media(max-width:760px){
  body.learner-reading-body .learning-page-unified-header{
    border-bottom:1px solid #e2ebe6;
  }
  body.learner-reading-body .learning-page-unified-header .landing-header-inner{
    min-height:0;
    padding:10px 0 12px;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  body.learner-reading-body .learning-page-unified-header .landing-brand{
    align-self:flex-start;
  }
  body.learner-reading-body .learning-page-unified-header .landing-nav.reading-auth-nav{
    width:100%;
    display:block;
  }
  body.learner-reading-body .learning-page-unified-header .reading-user-auth{
    width:100%;
    align-items:flex-start;
    gap:6px;
  }
  body.learner-reading-body .learning-page-unified-header .reading-user-name{
    max-width:none;
    font-size:11px;
    line-height:1.25;
  }
  body.learner-reading-body .learning-page-unified-header .reading-user-tools{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  body.learner-reading-body .learning-page-unified-header .reading-user-link,
  body.learner-reading-body .learning-page-unified-header .reading-logout-button{
    width:100%;
    min-height:32px;
    padding:6px 8px;
    font-size:10px;
    justify-content:center;
  }
  body.learner-reading-body .learning-page-unified-header .reading-logout-form{
    display:block;
    width:100%;
    grid-column:1 / -1;
  }

  .reading-page{
    width:min(100%,calc(100% - 20px));
    padding:14px 0 44px;
  }
  .reading-card{
    padding:18px;
    border-radius:18px;
  }
  .learner-reading-toolbar{
    display:grid;
    grid-template-columns:1fr;
    align-items:start;
    gap:10px;
    margin-bottom:12px;
  }
  .learner-reading-toolbar .reading-back{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    font-size:13px;
  }
  .reading-toolbar-actions{
    width:100%;
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    align-items:center;
    gap:8px 10px;
  }
  .reading-toolbar-actions .pill{
    max-width:100%;
  }
  .reading-toolbar-actions .reading-control-switch{
    order:3;
  }
  .reading-toolbar-actions .reading-translation-picker{
    order:4;
    width:100%;
    min-width:0;
    max-width:none;
    flex:1 1 100%;
  }
  .reading-heading h1,
  .learner-reading-titlebar h1{
    font-size:26px;
    line-height:1.3;
  }
}

@media(max-width:420px){
  body.learner-reading-body .learning-page-unified-header .landing-brand-copy strong{
    font-size:17px;
  }
  body.learner-reading-body .learning-page-unified-header .landing-brand-copy small{
    font-size:6.5px;
    letter-spacing:.12em;
  }
  body.learner-reading-body .learning-page-unified-header .reading-user-tools{
    grid-template-columns:1fr;
  }
  .reading-toolbar-actions .reading-control-switch{
    width:100%;
    justify-content:flex-start;
  }
}


/* =========================================================
   v1.12.13 Mobile header overlap fix
   ========================================================= */
@media(max-width:760px){
  body.learner-reading-body .site-header.landing-site-header.learning-page-unified-header{
    height:auto;
    min-height:0;
  }
  body.learner-reading-body main > .learning-page-unified-header{
    margin-bottom:8px;
  }
  body.learner-reading-body .learning-page-unified-header .landing-header-inner{
    min-height:0;
  }
  body.learner-reading-body .learning-page-unified-header .reading-user-tools{
    align-items:stretch;
  }
  .learner-reading-toolbar{
    margin-top:0;
  }
}

@media(max-width:480px){
  .reading-toolbar-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    align-items:center;
  }
  .reading-toolbar-actions .pill{
    justify-content:center;
    min-height:30px;
  }
  .reading-toolbar-actions .reading-control-switch,
  .reading-toolbar-actions .reading-translation-picker{
    grid-column:1 / -1;
  }
}


/* =========================================================
   v1.12.14 Toolbar row split for mobile
   ========================================================= */
.learner-reading-toolbar{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:start;
}
.learner-toolbar-row{
  display:flex;
  align-items:center;
  gap:10px;
}
.learner-toolbar-row-primary{
  justify-content:flex-start;
  flex-wrap:wrap;
}
.learner-toolbar-row-secondary{
  justify-content:flex-end;
  flex-wrap:wrap;
}
.learner-toolbar-badges{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

@media(min-width:761px){
  .learner-reading-toolbar{
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px 18px;
    align-items:center;
  }
  .learner-toolbar-row-primary{
    min-width:0;
  }
  .learner-toolbar-row-secondary{
    min-width:0;
    justify-content:flex-end;
  }
}

@media(max-width:760px){
  .learner-reading-toolbar{
    gap:8px;
  }
  .learner-toolbar-row-primary{
    justify-content:flex-start;
    gap:8px;
  }
  .learner-toolbar-row-secondary{
    justify-content:flex-end;
    gap:8px;
  }
  .learner-toolbar-badges{
    gap:8px;
  }
}

@media(max-width:480px){
  .learner-toolbar-row-primary{
    align-items:center;
  }
  .learner-toolbar-row-secondary{
    justify-content:flex-end;
  }
  .learner-toolbar-row-secondary .reading-control-switch{
    flex:0 0 auto;
  }
  .learner-toolbar-row-secondary .reading-translation-picker{
    width:min(100%,220px);
    min-width:0;
  }
}

/* =========================================================
   v1.12.15 Reading audio player
   ========================================================= */
.study-pane-label-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.reading-audio-player{display:block;width:min(340px,100%);height:38px}
.admin-audio-player{display:block;width:min(520px,100%);margin-top:10px}
.admin-audio-panel{margin:16px 0 20px}
@media(max-width:760px){
  .study-pane-label-row{align-items:flex-start;flex-direction:column;gap:8px}
  .reading-audio-player{width:100%;height:40px}
}

/* =========================================================
   v1.12.16 Admin level modal + audio management
   ========================================================= */
.admin-level-manager-panel{margin-top:20px}
.admin-level-manager-panel .panel-head{align-items:flex-start}
.admin-level-manager-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.admin-level-manager-card{display:flex;flex-direction:column;gap:5px;padding:20px 16px;border:1px solid #d7e4dd;border-radius:18px;background:#fff;color:#173b36!important;text-decoration:none!important;transition:.15s ease;box-shadow:0 8px 24px rgba(24,32,28,.035)}
.admin-level-manager-card:hover{transform:translateY(-2px);border-color:#a8cdbd;box-shadow:0 14px 30px rgba(24,32,28,.07)}
.admin-level-manager-card strong{font-size:25px;line-height:1}
.admin-level-manager-card .admin-level-count{font-size:13px;font-weight:900;color:#41655b}
.admin-level-manager-card small{font-size:11px;color:#71827c}

.admin-question-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:22px}
.admin-question-modal-backdrop{position:absolute;inset:0;background:rgba(28,37,48,.52);backdrop-filter:blur(1px)}
.admin-question-modal-dialog{position:relative;z-index:1;width:min(1180px,calc(100vw - 36px));height:min(78vh,760px);min-height:520px;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#fff;border:1px solid #dbe4df;border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.24);overflow:hidden}
.admin-question-modal-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px 12px;border-bottom:1px solid #e8eeeb}
.admin-question-modal-header>div{display:flex;align-items:baseline;gap:10px}
.admin-question-modal-header h2{margin:0;font-size:22px;letter-spacing:-.025em}
.admin-question-modal-header span{font-size:12px;color:#7a8782}
.admin-question-modal-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d5ded9;border-radius:50%;font-size:22px;line-height:1;color:#687670!important;text-decoration:none!important;background:#fff}
.admin-question-modal-filters{display:grid;grid-template-columns:minmax(250px,1.5fr) 170px 170px auto auto;gap:7px;padding:10px 14px;border-bottom:1px solid #e8eeeb;background:#fbfcfb}
.admin-question-modal-filters input,.admin-question-modal-filters select{height:36px;padding:6px 10px;font-size:12px;border-radius:8px}
.admin-question-audio-form{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.admin-question-modal-table-wrap{min-height:0;overflow:auto}
.admin-question-modal-table{min-width:900px;font-size:12px}
.admin-question-modal-table thead{position:sticky;top:0;z-index:2}
.admin-question-modal-table th{background:#f7f9f8;color:#75827d;font-size:10px;letter-spacing:.02em}
.admin-question-modal-table td{padding:9px 10px;vertical-align:middle}
.admin-question-modal-table tbody tr:hover{background:#fbfdfc}
.admin-question-modal-table input[type=checkbox]{width:16px;height:16px;padding:0}
.admin-audio-status{display:inline-flex;align-items:center;min-height:23px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:900;background:#edf0ee;color:#65716c;white-space:nowrap}
.admin-audio-status.is-ready{background:#e4f6e9;color:#23623e}
.admin-audio-status.is-pending,.admin-audio-status.is-generating{background:#fff3d9;color:#7b5a16}
.admin-audio-status.is-failed{background:#fbe6e6;color:#913a3a}
.admin-audio-status.is-stale{background:#e8eefb;color:#365f9c}
.admin-audio-row-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}
.admin-icon-button{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;padding:0;border:1px solid #d4dfda;border-radius:9px;background:#fff;color:#315c50!important;text-decoration:none!important;font:inherit;font-size:13px;cursor:pointer}
.admin-icon-button:hover{background:#f2f8f5;border-color:#9dbfaf}
.admin-icon-button.danger{border-color:#ebc9c9;color:#9c3d3d!important;background:#fffafa}
.admin-question-modal-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:10px 14px;border-top:1px solid #e1e9e5;background:#f8faf9}
.admin-modal-pagination{display:flex;align-items:center;gap:7px;font-size:11px;color:#6e7a75}
.admin-audio-shared-player{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}
.admin-audio-shared-player strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.admin-audio-shared-player audio{height:32px;max-width:320px}
.admin-question-bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.admin-question-bulk-actions b{font-size:12px;white-space:nowrap}

@media(max-width:980px){
  .admin-level-manager-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-question-modal{padding:10px}
  .admin-question-modal-dialog{width:calc(100vw - 20px);height:88vh}
  .admin-question-modal-filters{grid-template-columns:1fr 1fr 1fr auto auto}
  .admin-question-modal-filters input[type=search]{grid-column:1/-1}
  .admin-question-modal-footer{grid-template-columns:1fr}
  .admin-modal-pagination{justify-content:center}
  .admin-audio-shared-player{justify-content:center}
  .admin-question-bulk-actions{justify-content:center}
}
@media(max-width:650px){
  .admin-level-manager-grid{grid-template-columns:1fr 1fr}
  .admin-question-modal{padding:0}
  .admin-question-modal-dialog{width:100vw;height:100vh;max-height:none;border-radius:0;border:0}
  .admin-question-modal-header{padding:13px 12px 9px}
  .admin-question-modal-header h2{font-size:18px}
  .admin-question-modal-filters{grid-template-columns:1fr 1fr;padding:8px}
  .admin-question-modal-filters input[type=search]{grid-column:1/-1}
  .admin-question-modal-filters .button{width:100%}
  .admin-audio-shared-player{display:grid;grid-template-columns:1fr}
  .admin-audio-shared-player audio{width:100%;max-width:none}
  .admin-question-bulk-actions .button{flex:1 1 160px}
}
@media(min-width:0px){body:has(.admin-question-modal) > .container > .flash{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:1305;width:min(720px,calc(100% - 28px));box-shadow:0 12px 36px rgba(15,23,42,.18)}}

/* =========================================================
   v1.12.19 Unified simple admin dashboard
   ========================================================= */
.admin-unified-dashboard{max-width:980px}
.admin-dashboard-heading{margin-bottom:18px}
.admin-metrics-compact{grid-template-columns:repeat(3,minmax(0,180px));margin:0 0 18px}
.admin-metrics-compact .metric{padding:12px 16px}
.admin-metrics-compact .metric strong{font-size:26px}
.admin-inventory-panel,.admin-recent-jobs-panel{margin-top:16px}
.admin-inventory-panel .panel-head p{margin:4px 0 0;font-size:12px}
.admin-inventory-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.admin-inventory-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:112px;border:1px solid var(--line);border-radius:14px;padding:12px;color:var(--ink)!important;text-decoration:none!important;background:#fff;transition:.15s ease}
.admin-inventory-card:hover{border-color:#9fc1b0;background:#f7fbf9;transform:translateY(-1px)}
.admin-inventory-card b,.admin-inventory-card strong,.admin-inventory-card span,.admin-inventory-card small{display:block;text-align:center}
.admin-inventory-card strong{font-size:26px;line-height:1.15;margin:5px 0}
.admin-inventory-card span{font-size:11px;color:var(--muted)}
.admin-inventory-card small{margin-top:4px;font-size:10px;color:#75827d}
.admin-secondary-links{display:flex;justify-content:flex-end;gap:14px;margin:14px 2px 0;font-size:12px}
.admin-secondary-links a{color:#65766f}
.admin-job-row{cursor:pointer}
.admin-job-row:hover{background:#fbfdfc}

.admin-generate-modal{position:fixed;inset:0;z-index:1210;display:flex;align-items:center;justify-content:center;padding:22px}
.admin-generate-modal-dialog{position:relative;z-index:1;width:min(720px,calc(100vw - 36px));max-height:min(88vh,760px);display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;border:1px solid #dbe4df;border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.24);overflow:hidden}
.admin-generate-modal-body{overflow:auto;padding:18px 20px 22px}
.admin-generate-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.admin-generate-form-compact{gap:13px}
.admin-generate-form-compact label{font-size:12px}
.admin-generate-form-compact select,.admin-generate-form-compact input{margin-top:5px}
.admin-generation-watch-compact{margin:0 0 16px;padding:14px 16px;border:1px solid #b8d9c6;border-radius:14px;background:#f7fcf9}
.admin-generation-watch-compact h3{margin:0;font-size:16px}
.admin-generation-watch-compact p{margin:7px 0}
.admin-generation-watch-compact #generation-links{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:760px){
  .admin-unified-dashboard{width:min(100% - 24px,980px)}
  .admin-dashboard-heading{align-items:stretch}
  .admin-dashboard-heading .button{width:100%}
  .admin-metrics-compact{grid-template-columns:repeat(3,1fr)}
  .admin-inventory-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-inventory-card:last-child:nth-child(odd){grid-column:1/-1}
  .admin-secondary-links{justify-content:flex-start;flex-wrap:wrap}
  .admin-generate-modal{padding:8px}
  .admin-generate-modal-dialog{width:calc(100vw - 16px);max-height:94vh;border-radius:14px}
  .admin-generate-fields{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .admin-metrics-compact{grid-template-columns:1fr 1fr 1fr;gap:6px}
  .admin-metrics-compact .metric{padding:9px 6px}
  .admin-metrics-compact .metric strong{font-size:22px}
  .admin-generate-fields{grid-template-columns:1fr}
}


/* =========================================================
   v1.12.20 Reading paragraph typography
   ========================================================= */
.learner-passage > p{
  margin:0;
  padding:0;
  text-indent:1em;
}
.learner-passage > p + p{
  margin-top:0;
}

/* =========================================================
   v1.12.23 Free AdSense
   Free learner only; Premium/admin HTML contains no ad code.
========================================================= */
.reading-ad-slot{
  width:100%;
  margin:14px auto 18px;
  overflow:hidden;
  text-align:center;
}
.reading-ad-label{
  display:block;
  margin:0 0 4px;
  color:#98a19c;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.08em;
}
.learner-reading-page > .reading-ad-question-top{
  margin-top:0;
  margin-bottom:14px;
}
.landing-study-dashboard > .reading-ad-study-home{
  margin:18px 0;
}
@media(max-width:760px){
  .reading-ad-slot{
    margin:10px auto 14px;
  }
  .landing-study-dashboard > .reading-ad-study-home{
    margin:14px 0;
  }
}



/* =========================================================
   v1.12.24 Reading / Listening practice mode
   ========================================================= */
.practice-pre-card{padding:14px 16px}
.practice-pre-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:4px}
.practice-pre-card-head>b{margin:4px 0 0}
.practice-pre-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.practice-intro{grid-column:1/-1;display:grid;gap:12px}
.practice-intro[hidden],.practice-mode-status[hidden],.study-pane[hidden],.reading-audio-player[hidden],.listening-passage-tools[hidden],.learner-passage[hidden]{display:none!important}
.practice-choice-copy{font-size:13px;color:#64748b;font-weight:700;text-align:center}
.practice-choice-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.practice-mode-button{appearance:none;border:1px solid #d9e2dc;background:#fff;border-radius:14px;padding:16px 18px;display:flex;align-items:center;gap:13px;text-align:left;font:inherit;color:#25332b;cursor:pointer;box-shadow:0 5px 16px rgba(15,23,42,.045);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.practice-mode-button:hover:not(:disabled){transform:translateY(-1px);border-color:#9dbdad;box-shadow:0 8px 22px rgba(15,23,42,.07)}
.practice-mode-button:focus-visible{outline:3px solid rgba(39,106,75,.18);outline-offset:2px}
.practice-mode-button:disabled{opacity:.55;cursor:not-allowed;background:#f8faf9}
.practice-mode-icon{font-size:27px;line-height:1;flex:none}
.practice-mode-button strong{display:block;font-size:16px;margin-bottom:2px}
.practice-mode-button small{display:block;color:#738078;font-size:12px;line-height:1.5}
.practice-mode-status{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px}
.practice-mode-badge{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;border-radius:999px;background:#eef6f1;color:#245d43;font-size:13px;font-weight:900}
.practice-change-button{appearance:none;border:0;background:transparent;color:#326f52;font:inherit;font-size:12px;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.listening-passage-tools{margin:2px 0 12px}
.practice-mode-listening .reading-passage-pane{min-height:150px}
.practice-mode-listening .study-pane-label-row{align-items:center}
.practice-mode-listening .reading-audio-player{width:min(520px,100%)}
.practice-mode-reading .reading-passage-pane .reading-audio-player{margin-left:auto}
.practice-mode-reading .learner-passage{padding-top:4px}
.practice-pre-card .reading-control-switch{background:transparent}
.practice-pre-card .reading-translation-picker{background:#fff}
.practice-intro .reading-ad-wrap{margin-top:2px}

@media(max-width:760px){
  .practice-pre-card-head{flex-direction:column;gap:10px}
  .practice-pre-controls{width:100%;justify-content:flex-start}
  .practice-pre-controls .reading-translation-picker{width:100%;max-width:none}
  .practice-choice-actions{grid-template-columns:1fr}
  .practice-mode-status{align-items:flex-start;flex-direction:column;gap:5px}
  .practice-change-button{padding:0}
  .practice-mode-button{padding:14px}
}
