:root{--bg:#f6f5ef;--paper:#fffefa;--ink:#243b34;--muted:#6e7c73;--green:#164b40;--soft:#e6eee6;--line:#dce2d8;--orange:#a85e2d;--cream:#f4e8d7;--reading-size:21px;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b98145;outline-offset:3px}button{color:inherit}button:disabled{cursor:default;opacity:.45}a{color:var(--green)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:var(--paper);padding:12px}.skip-link:focus{top:10px}.topbar{background:rgba(246,245,239,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:12;backdrop-filter:blur(16px)}.topbar-inner{max-width:900px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:15px 24px}.brand{display:flex;align-items:center;gap:11px;font-size:16px;font-weight:650;border:0;background:none;padding:0;text-align:left}.brand small{display:block;letter-spacing:1.6px;font-size:8px;margin-top:5px;font-weight:500;color:var(--muted)}.brand-mark{display:grid;place-items:center;background:var(--green);color:#fff5e0;font-family:Georgia,serif;font-size:27px;line-height:1;width:42px;height:43px;border-radius:13px 13px 13px 3px;font-weight:500}.icon-button{background:none;border:0;min-width:44px;min-height:44px;display:inline-grid;place-items:center;border-radius:12px;font-size:30px}.icon-button:hover{background:var(--soft)}#main{max-width:900px;margin:auto;padding:30px 24px 115px;outline:none}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2px;color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.4;letter-spacing:-.7px;font-weight:650;margin:10px 0 12px}h2{font-size:20px;font-weight:650}h3{font-size:17px}p{line-height:1.8}.muted{color:var(--muted)}.small{font-size:12px}.hero{padding:5px 0 27px;position:relative}.hero p{color:var(--muted);font-size:14px;max-width:470px}.hero h1 em{font-family:Georgia,"Songti SC",serif;font-style:normal;color:var(--green)}.hero-stat{position:absolute;right:6px;top:25px;text-align:right}.hero-stat strong{font-family:Georgia,serif;font-size:54px;font-weight:400;line-height:1}.hero-stat span{display:block;color:var(--muted);font-size:12px;margin-top:9px}.route-strip{display:flex;align-items:center;gap:12px;background:#e9eee5;border-radius:14px;padding:16px 18px;font-size:13px;margin:0 0 30px}.route-strip .n{background:var(--green);color:white;border-radius:50%;display:inline-grid;place-items:center;width:21px;height:21px;font-size:11px;margin-right:6px}.route-strip .arrow{color:#9eafa1}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section-heading span{font-size:12px;color:var(--muted)}.unit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.unit-card{position:relative;border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:22px;text-align:left;min-height:176px;display:flex;flex-direction:column;gap:12px;box-shadow:0 3px 9px #213b2910;transition:transform .15s,border-color .15s}.unit-card:hover{transform:translateY(-2px);border-color:#9eafa1}.unit-card:first-child{grid-column:1 / -1;min-height:190px;background:var(--green);color:var(--paper);border-color:var(--green)}.unit-card .meta{font-size:11px;letter-spacing:.6px;opacity:.72}.unit-card h3{font-size:21px;line-height:1.4;font-weight:550}.unit-card .card-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:10px;opacity:.8}.unit-card .tag{font-size:11px;border-radius:5px;background:var(--soft);padding:4px 8px;align-self:start}.unit-card:first-child .tag{background:#ffffff1a}.unit-card .arrow-circle{position:absolute;right:22px;top:22px;border:1px solid #879a883b;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-size:19px}.unit-card:first-child .arrow-circle{border-color:#ffffff40}.unit-card .card-progress{width:100%;height:3px;background:#dde4da;border-radius:3px;overflow:hidden}.unit-card:first-child .card-progress{background:#ffffff20}.card-progress i{height:100%;display:block;background:#cc905b}.download-card{margin-top:25px;padding:20px 0;border-top:1px solid var(--line);display:flex;gap:15px;justify-content:space-between;align-items:center}.download-card p{font-size:12px;color:var(--muted);margin-top:5px}.download-links{display:flex;gap:9px;flex-shrink:0}.download-links a{font-size:12px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;text-decoration:none;background:var(--paper)}.local-note{font-size:11px;color:var(--muted);margin:14px 0;line-height:1.8}.bottom-nav{position:fixed;bottom:0;width:100%;padding:8px 0 calc(8px + env(safe-area-inset-bottom));background:rgba(255,254,250,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;justify-content:center;gap:90px;z-index:15}.bottom-nav button{position:relative;background:none;border:0;display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;padding:0 14px;color:var(--muted)}.bottom-nav button.active{color:var(--green);font-weight:650}.bottom-nav span:not(:empty){background:var(--cream);font-size:10px;padding:2px 5px;border-radius:10px}.back-link{display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:0;min-height:40px;font-size:13px;color:var(--muted);margin:-7px 0 8px}.reader-top{display:flex;justify-content:space-between;gap:10px;align-items:start}.reader-top h1{font-size:26px;margin:8px 0}.reader-top p{font-size:12px;color:var(--muted)}.stage-count{text-align:right;white-space:nowrap;margin-top:15px}.stage-count strong{font-family:Georgia,serif;font-size:29px;font-weight:400}.stage-count small{font-size:13px;color:var(--muted)}.progress-dots{display:flex;gap:6px;margin:22px 0 19px}.progress-dots button{height:7px;padding:0;flex:1;border:0;background:#dce3d9;border-radius:5px;position:relative}.progress-dots button:after{content:'';position:absolute;left:0;right:0;top:-7px;bottom:-7px}.progress-dots button.current{background:#c88c52}.progress-dots button.done{background:var(--green)}.phase-nav{display:flex;background:#e8ece5;border-radius:12px;padding:4px;gap:4px;margin-bottom:23px}.phase-nav button{border:0;background:none;border-radius:9px;flex:1;padding:12px;font-size:13px;color:var(--muted)}.phase-nav button.active{background:var(--paper);color:var(--green);font-weight:650;box-shadow:0 1px 5px #1b382116}.phase-title{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:17px}.phase-title h2{font-size:20px}.phase-title p{font-size:12px;color:var(--muted);margin-top:6px}.text-button{font-size:12px;border:0;background:none;color:var(--green);min-height:44px;padding:4px 0;white-space:nowrap}.word-list{display:flex;flex-direction:column;gap:10px}.word-row{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:15px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:center}.word-row.known{background:#f0f4ed;border-color:#d7e2d3}.word-row.help{border-color:#dfc7a9}.word-link{border:0;background:none;padding:0;text-align:left;overflow-wrap:anywhere;min-height:30px;justify-self:start}.word-link strong{font-family:Georgia,serif;font-size:21px;font-weight:500;display:block;line-height:1.4}.word-link small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.word-actions{display:flex;gap:5px}.choice{font-size:12px;min-height:38px;padding:7px 10px;border:1px solid var(--line);background:transparent;border-radius:8px;white-space:nowrap}.choice.selected[data-choice=known]{background:var(--green);color:white;border-color:var(--green)}.choice.selected[data-choice=help]{background:var(--cream);color:#855225;border-color:#d8b58a}.inline-meaning{grid-column:1 / -1;border-top:1px solid #e7dfd0;padding-top:10px;font-size:13px;line-height:1.7}.inline-meaning span{color:var(--muted);margin-right:8px}.actions-panel{margin-top:24px;display:flex;flex-direction:column;gap:11px}.primary-button{background:var(--green);color:white;border:1px solid var(--green);border-radius:12px;padding:15px 18px;min-height:52px;font-weight:600;font-size:14px}.primary-button:hover{background:#0d3b31}.secondary-button{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:12px 15px;min-height:46px;font-size:13px}.actions-panel p{text-align:center;color:var(--muted);font-size:11px}.reading-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:12px;color:var(--muted);gap:10px}.reading-toolbar .tools{display:flex;align-items:center;gap:5px}.font-button{min-width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:15px}.article-card{padding:28px 30px;background:var(--paper);border:1px solid var(--line);border-radius:17px;box-shadow:0 3px 12px #213b2908}.article-card p{font-family:Georgia,"Times New Roman","Songti SC",serif;font-size:var(--reading-size);line-height:1.95;letter-spacing:.05px;overflow-wrap:anywhere;margin:0 0 1.1em}.article-card p:last-child{margin:0}.inline-word{font:inherit;color:inherit;background:linear-gradient(transparent 80%,#d9e6cf 80%);padding:0;border:0;border-bottom:1px solid #83a080;border-radius:0;display:inline;cursor:pointer}.inline-word.help{background:linear-gradient(transparent 75%,#efd9bd 75%);border-color:#bc8b56}.reading-note{font-size:12px;line-height:1.8;margin:14px 2px;color:var(--muted)}.original-options{border-top:1px solid var(--line);margin-top:23px;padding-top:16px}.original-options summary{font-size:13px;cursor:pointer;min-height:40px}.original-options p{font-size:15px;line-height:1.8;padding:6px 0;font-family:Georgia,"Songti SC",serif}.complete{padding:35px 0;text-align:center}.complete .seal{margin:0 auto 20px;width:65px;height:65px;background:var(--soft);border-radius:50%;font-size:32px;display:grid;place-items:center;color:var(--green)}.complete h1{font-size:28px}.complete p{color:var(--muted);font-size:14px}.complete .summary{display:flex;justify-content:center;gap:45px;padding:25px;margin:20px 0;border-block:1px solid var(--line)}.summary strong{display:block;font-family:Georgia,serif;font-size:30px;font-weight:400;margin-bottom:5px}.summary span{font-size:11px;color:var(--muted)}.complete .actions-panel{max-width:400px;margin:25px auto}.empty{text-align:center;padding:55px 20px;background:var(--paper);border:1px dashed #bfccb9;border-radius:17px}.empty p{font-size:13px;color:var(--muted);margin:12px 0 22px}.saved-list{display:flex;flex-direction:column;gap:11px}.saved-row{border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:17px;display:flex;gap:15px;align-items:center;justify-content:space-between}.saved-row .word-link{flex:1}.saved-row .meaning{font-size:12px;margin-top:5px;font-family:inherit;color:var(--muted)}.saved-row .remove-word{font-size:11px;color:var(--muted);border:0;background:none;min-height:40px}dialog{width:min(100% - 28px,600px);padding:0 24px 27px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 20px 100px #122c3040}dialog::backdrop{background:#142d2859;backdrop-filter:blur(3px)}.sheet-handle{width:36px;height:4px;background:#dce1d7;border-radius:5px;margin:12px auto 0}.sheet-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--paper);z-index:2;padding:8px 0 4px}.dict-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin:8px 0 20px}.dict-heading h2{font-family:Georgia,serif;font-size:34px;font-weight:400;overflow-wrap:anywhere}.dict-heading .lemma{font-size:13px;color:var(--muted);margin-top:7px}.save-word{font-size:12px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:var(--soft);min-height:42px;white-space:nowrap}.sense-primary{background:var(--soft);padding:17px 18px;border-radius:12px;margin-bottom:18px}.sense-primary small{display:block;color:#4d6b59;font-size:11px;margin-bottom:8px}.sense-primary p{font-size:18px;line-height:1.6}.pos{font-family:Georgia,serif;font-style:italic;color:#6e7c73;margin-right:9px}.dict-section{margin:20px 0}.dict-section h3{font-size:12px;font-weight:650;color:var(--muted);margin-bottom:12px}.sense-line{display:flex;align-items:baseline;gap:5px;padding:5px 0;font-size:14px;line-height:1.6}.sense-line .pos{min-width:28px}.context-box{font-family:Georgia,"Songti SC",serif;font-size:18px;line-height:1.75;padding-left:15px;border-left:2px solid #bfcdba}.example{padding:10px 0}.example .en{font-family:Georgia,serif;font-size:17px;line-height:1.65}.example .zh{font-size:13px;color:var(--muted);margin-top:4px}.source-note{font-size:10px;color:#7e887f;line-height:1.7;margin-top:10px}.external-links{display:flex;gap:9px;margin-top:10px}.external-links a{display:block;text-align:center;border:1px solid var(--line);border-radius:10px;padding:12px 10px;font-size:13px;text-decoration:none;flex:1}.search-form{display:flex;gap:8px;margin:18px 0}.search-form input{width:100%;min-width:0;background:#f5f5ee;border:1px solid var(--line);border-radius:10px;padding:13px;font-size:16px;color:var(--ink)}.search-form button{border:0;background:var(--green);color:white;border-radius:10px;padding:0 18px;white-space:nowrap}.search-result{display:block;border:0;border-bottom:1px solid var(--line);background:none;width:100%;padding:15px 0;text-align:left;font-size:15px}.search-result small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.search-context{font-size:11px;color:var(--muted);padding:5px 0 12px}.loading{text-align:center;margin:70px 0}.loading .brand-mark{margin:0 auto 20px}.error-box{background:var(--paper);border:1px solid var(--line);padding:25px;border-radius:15px}.error-box p{margin:10px 0 20px;font-size:13px}#toast{position:fixed;bottom:95px;left:50%;transform:translate(-50%,15px);background:#1b3931;color:white;max-width:85vw;border-radius:10px;padding:12px 18px;font-size:13px;opacity:0;transition:all .2s;pointer-events:none;z-index:40}#toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:700px){.reader{max-width:650px;margin:auto}.hero h1{font-size:39px}.unit-card:first-child h3{font-size:28px}.unit-card:first-child{padding:26px}.word-list{gap:11px}}@media(max-width:600px){#main{padding:24px 18px 105px}.topbar-inner{padding:12px 18px}.brand{font-size:15px}.brand-mark{width:37px;height:39px;font-size:25px}.hero-stat{display:none}h1{font-size:30px}.hero p{font-size:13px}.route-strip{padding:14px 12px;gap:8px;font-size:12px;margin-bottom:26px}.route-strip .n{width:19px;height:19px;margin-right:4px}.unit-grid{grid-template-columns:1fr;gap:12px}.unit-card,.unit-card:first-child{min-height:158px;padding:19px}.unit-card h3{font-size:21px}.unit-card:first-child h3{font-size:25px}.download-card{display:block}.download-links{margin-top:13px}.bottom-nav{gap:52px}.reader-top h1{font-size:25px}.phase-title h2{font-size:19px}.word-row{padding:13px 12px;gap:8px}.word-link strong{font-size:20px}.choice{padding:7px 9px;font-size:11px;min-height:39px}.article-card{padding:22px 20px}.article-card p{line-height:1.95}.reading-toolbar{font-size:11px}.stage-count strong{font-size:26px}dialog{margin: auto 0 0;width:100%;max-width:none;max-height:88dvh;border-radius:24px 24px 0 0;border-bottom:0;padding:0 22px calc(25px + env(safe-area-inset-bottom))}.dict-heading h2{font-size:33px}.sheet-head{padding-top:5px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Reading v2: dependable local tools, audio and importing. */
.library-tools,.backup-buttons,.saved-controls{display:flex;align-items:center;gap:12px;margin:12px 0 25px;flex-wrap:wrap}.library-tools{justify-content:space-between}.filter-bar{display:flex;justify-content:space-between;gap:9px;font-size:11px;color:var(--muted);margin:-3px 0 15px;align-items:center}.filter-bar label{display:flex;align-items:center;gap:6px;min-height:40px}.filter-bar input,.setting-row input[type=checkbox]{accent-color:var(--green);width:18px;height:18px}.sound-button{display:inline-grid;place-items:center;min-width:36px;min-height:38px;background:var(--soft);border:1px solid var(--line);border-radius:9px;color:var(--green);font-size:19px}.pronunciation-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-3px 0 20px}.pronunciation-row .secondary-button{padding:8px 13px;min-height:42px}.teaching-label{font-size:10px;color:#9b4637}.plain-word{font:inherit;letter-spacing:inherit;color:inherit;border:0;background:none;margin:0;padding:0;display:inline;cursor:pointer}.plain-word:hover,.plain-word:focus-visible{background:#e8eee2;border-radius:3px}.settings-card{border:1px solid var(--line);background:var(--paper);padding:22px;border-radius:17px;margin:18px 0}.settings-card h2{font-size:19px;margin-bottom:13px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:60px;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.setting-row:last-of-type{border-bottom:0}.setting-row small{display:block;font-size:11px;color:var(--muted);line-height:1.6;margin-top:5px}.setting-row select{font:inherit;max-width:185px;min-height:40px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:7px}.import-options{margin:24px 0}#import-form label{display:block;font-size:13px;margin:18px 0 8px}#import-form input,#import-form textarea{display:block;box-sizing:border-box;width:100%;margin:9px 0;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;font-size:16px;padding:14px;font-family:inherit;line-height:1.6}#import-form textarea{font-family:Georgia,serif;resize:vertical}#import-form .primary-button{width:100%}.review-card{border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:26px;margin:22px 0}.review-card h2{font-family:Georgia,serif;font-size:34px;font-weight:400;display:inline;margin-right:15px;overflow-wrap:anywhere}.review-card .context-box{margin:24px 0}.review-card>.primary-button{width:100%;margin-top:10px}.review-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.review-actions button{flex:1;white-space:nowrap;font-size:12px}.link-fallback{font-size:12px;color:var(--muted);margin-top:15px}.link-fallback summary{cursor:pointer;min-height:32px}.link-fallback input{width:100%;font-size:12px;margin-top:10px;border:1px solid var(--line);padding:10px;border-radius:8px;background:var(--bg)}.link-fallback p{margin:5px 0 10px}.dictionary-open{overflow:hidden}.bottom-nav{gap:35px}.bottom-nav button{padding:0 10px}#audio-status{position:fixed;right:14px;bottom:77px;border-radius:8px;background:var(--soft);color:var(--green);padding:0 10px;font-size:11px;line-height:27px;z-index:45;pointer-events:none}#audio-status:empty{display:none}.progress-dots{max-height:38px;flex-wrap:wrap;overflow-y:auto}.progress-dots button{min-width:15px;max-width:200px}.article-card{content-visibility:auto;contain-intrinsic-size:auto 450px}@media(max-width:600px){.bottom-nav{gap:16px}.settings-card{padding:18px}.setting-row{gap:10px}.setting-row select{max-width:155px}.filter-bar{font-size:10px}.word-actions{gap:4px}.word-actions .sound-button{min-width:31px}.word-actions .choice{padding:7px}.review-card{padding:20px}.library-tools .secondary-button{font-size:12px}}@media(max-width:360px){.word-actions .sound-button{display:none}.word-actions .choice{padding:7px 6px}.phase-title h2{font-size:17px}.filter-bar{flex-wrap:wrap}.setting-row{align-items:start;flex-wrap:wrap}.bottom-nav{gap:4px}}

/* Reading Ultra: readable themes, complete controls and recoverable local work. */
:root {
  --muted:#56645b;
  --reading-leading:1.95;
  --panel:#e9eee5;
  --field:#f5f5ee;
  --known:#f0f4ed;
  --button-fill:#164b40;
  --button-text:#fffefa;
  --notice-bg:#fff0d9;
  --notice-ink:#6f3b18;
  --notice-line:#d4b184;
  --danger:#923b31;
  --highlight:#d9e6cf;
  --highlight-help:#efd9bd;
}
[hidden] { display:none !important; }
button, a, input, select, textarea, summary { touch-action:manipulation; }
select, textarea { font:inherit; }
button, input, select, textarea { max-width:100%; }
button:not(.inline-word):not(.plain-word),
input:not([type=checkbox]):not([type=radio]):not([type=file]), select,
summary, .download-links a, .external-links a { min-height:44px; }
button:not(.inline-word):not(.plain-word) { min-width:44px; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline:3px solid #9f5e21;
  outline-offset:3px;
}
input::placeholder, textarea::placeholder { color:var(--muted);opacity:1; }
.brand { min-width:0; }
.brand-mark { flex-shrink:0;background:var(--button-fill);color:var(--button-text); }
.topbar { background:var(--bg); }
.bottom-nav { background:var(--paper);gap:clamp(4px,5vw,35px); }
.bottom-nav button { min-width:0; }
.route-strip, .phase-nav { background:var(--panel); }
.route-strip { flex-wrap:wrap; }
.route-strip .arrow, .pos, .source-note { color:var(--muted); }
.route-strip .n { background:var(--button-fill);color:var(--button-text); }
.unit-card .meta, .unit-card .card-foot { opacity:1;color:var(--muted); }
.unit-card h3 { padding-right:20px;overflow-wrap:anywhere; }
.unit-card:first-child { background:var(--button-fill);color:var(--button-text);border-color:var(--button-fill); }
.unit-card:first-child .meta, .unit-card:first-child .card-foot { color:#dcebe2; }
.unit-card:first-child .tag { color:var(--button-text); }
.unit-card .card-foot { flex-wrap:wrap; }
.unit-card .card-progress { background:var(--line); }
.section-heading { flex-wrap:wrap;gap:8px; }
.download-links { flex-wrap:wrap; }
.download-links a, .external-links a { display:flex;align-items:center;justify-content:center; }
.external-links { flex-wrap:wrap; }
.external-links a { min-width:120px; }
.back-link, .word-link, .remove-word, .save-word { min-height:44px; }
.reader-top>div:first-child, .phase-title>div:first-child,
.dict-heading>div:first-child, .material-row>div:first-child { min-width:0; }
.reader-top h1, .reader-top p, .dict-heading .lemma { overflow-wrap:anywhere; }
.phase-title { flex-wrap:wrap; }
.phase-nav button { min-width:0; }
.word-row.known { background:var(--known);border-color:var(--line); }
.word-row.help { border-color:var(--notice-line); }
.word-actions { align-items:center; }
.sound-button, .word-actions .sound-button, .font-button {
  display:inline-grid;
  place-items:center;
  min-width:44px;
  min-height:44px;
  width:44px;
  height:44px;
  flex:0 0 44px;
}
.word-actions .choice { min-height:44px;padding:8px 11px;font-size:12px; }
.choice.selected[data-choice=known] {
  background:var(--button-fill);color:var(--button-text);border-color:var(--button-fill);
}
.choice.selected[data-choice=help] { background:var(--cream);color:var(--notice-ink);border-color:var(--notice-line); }
.inline-meaning { border-color:var(--line);overflow-wrap:anywhere; }
.primary-button, .search-form button { background:var(--button-fill);color:var(--button-text);border-color:var(--button-fill); }
.primary-button:hover { background:#0d3b31; }
.pronunciation-row .secondary-button { min-height:44px; }
.reading-toolbar { flex-wrap:wrap; }
.reading-toolbar .tools { margin-left:auto; }
.article-card p { line-height:var(--reading-leading); }
.article-card { content-visibility:visible;contain-intrinsic-size:none; }
.inline-word { background:linear-gradient(transparent 80%,var(--highlight) 80%); }
.inline-word.help { background:linear-gradient(transparent 75%,var(--highlight-help) 75%); }
.plain-word:hover, .plain-word:focus-visible { background:var(--soft); }
.article-card button:focus-visible { outline-offset:2px;border-radius:3px; }
.sense-primary small { color:var(--muted); }
.sheet-handle { background:var(--line); }
.sense-line>span:last-child, .context-box, .example { overflow-wrap:anywhere; }
.search-form input, .link-fallback input { background:var(--field);color:var(--ink); }
.setting-row { flex-wrap:wrap; }
.setting-row>span { flex:1 1 155px;min-width:0; }
.setting-row select { min-height:44px;max-width:100%;flex:0 1 225px; }
.setting-row input[type=checkbox] { flex:0 0 20px; }
.filter-bar label { min-height:44px; }
.filter-bar, .library-tools, .backup-buttons { flex-wrap:wrap; }
.review-actions button { flex:1 1 180px;white-space:normal; }
.review-card .sound-button { vertical-align:middle; }
.link-fallback summary, .original-options summary, .dict-section summary {
  min-height:44px;padding:11px 0;cursor:pointer;line-height:1.6;
}
.progress-dots {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(44px,1fr));
  gap:8px;
  max-height:none;
  overflow:visible;
  margin:18px 0;
  counter-reset:reading-round;
}
.progress-dots button {
  counter-increment:reading-round;
  display:grid;
  place-items:center;
  min-width:44px;
  max-width:none;
  width:100%;
  min-height:44px;
  height:44px;
  padding:0;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--paper);
  color:var(--muted);
  font-size:13px;
  font-weight:600;
}
.progress-dots button:empty::before { content:counter(reading-round); }
.progress-dots button::after { content:none; }
.progress-dots button.done { background:var(--soft);color:var(--green);border-color:var(--line); }
.progress-dots button.current { background:var(--cream);color:var(--notice-ink);border:2px solid var(--notice-line); }
.round-picker, .progress-select, .segment-picker, .round-select {
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:18px 0;font-size:13px;color:var(--muted);
}
.round-picker select, select.progress-select, select.segment-picker,
select.round-select, .progress-dots select {
  width:100%;min-width:0;max-width:100%;min-height:44px;
  padding:10px 12px;border:1px solid var(--line);border-radius:10px;
  background:var(--paper);color:var(--ink);font-size:16px;
}
.candidate-note {
  padding:14px 16px;margin:0 0 16px;background:var(--soft);
  color:var(--ink);border:1px solid var(--line);border-radius:12px;
  font-size:13px;line-height:1.8;overflow-wrap:anywhere;
}
.candidate-note .text-button { display:block;white-space:normal;text-align:left; }
.previous-context {
  margin:16px 0;border:1px solid var(--line);border-radius:12px;
  padding:0 16px;background:var(--paper);
}
.previous-context summary { padding:13px 0;cursor:pointer;font-size:13px;color:var(--green);line-height:1.6; }
.previous-context p {
  font-family:Georgia,"Times New Roman",serif;font-size:var(--reading-size);
  line-height:var(--reading-leading);white-space:pre-line;overflow-wrap:anywhere;padding:6px 0 20px;
}
.keyboard-note { color:var(--muted);font-size:12px;line-height:1.7;margin:12px 2px; }
.material-list { margin-top:28px; }
.material-list>h2 { margin:28px 0 14px;font-size:19px; }
.material-row {
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:18px;margin:12px 0;background:var(--paper);border:1px solid var(--line);border-radius:14px;
}
.material-row>div:first-child { flex:1 1 190px; }
.material-row h3 { font-size:17px;line-height:1.6;overflow-wrap:anywhere; }
.material-row p { font-size:12px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere; }
.material-row input[data-material-title] {
  width:100%;min-width:0;padding:10px 12px;margin:6px 0;
  border:1px solid var(--line);border-radius:9px;background:var(--field);color:var(--ink);font-size:16px;
}
.material-actions { display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;flex:0 1 260px; }
.material-actions .text-button { padding-inline:8px;white-space:normal; }
.material-actions details { flex:1 1 100%;min-width:0;text-align:left; }
.material-actions summary { font-size:13px;line-height:1.6;padding:11px 0;color:var(--danger);cursor:pointer; }
.material-actions details[open] { padding:10px 12px;border:1px solid var(--notice-line);border-radius:10px;background:var(--notice-bg); }
.material-actions details p { color:var(--notice-ink); }
.danger-button {
  padding:11px 13px;min-height:44px;background:var(--paper);color:var(--danger);
  border:1px solid currentColor;border-radius:9px;font-size:13px;line-height:1.6;margin-top:12px;
}
#storage-status {
  max-width:852px;width:calc(100% - 36px);margin:16px auto 0;padding:14px 16px;
  color:var(--notice-ink);background:var(--notice-bg);border:1px solid var(--notice-line);
  border-radius:12px;font-size:13px;line-height:1.8;overflow-wrap:anywhere;
}
#storage-status .text-button { color:inherit;text-decoration:underline;white-space:normal;text-align:left;margin-right:14px; }
[data-theme=dark] {
  color-scheme:dark;
  --bg:#141d19;
  --paper:#1c2922;
  --ink:#e8efe7;
  --muted:#b6c3b8;
  --green:#a6d7b6;
  --soft:#2b3c30;
  --line:#526257;
  --orange:#e4ae7c;
  --cream:#453925;
  --panel:#26362c;
  --field:#17231c;
  --known:#24342a;
  --button-fill:#245d4d;
  --button-text:#fffefa;
  --notice-bg:#382b1d;
  --notice-ink:#f0cea0;
  --notice-line:#b4946a;
  --danger:#ffb4aa;
  --highlight:#3c5740;
  --highlight-help:#65512f;
}
[data-theme=dark] .primary-button:hover { background:#2b6c58; }
[data-theme=dark] .teaching-label { color:#efb6a8; }
[data-theme=dark] .unit-card:first-child .meta,
[data-theme=dark] .unit-card:first-child .card-foot { color:#e0eee4; }
[data-theme=dark] .inline-word { border-color:#89ae8a; }
[data-theme=dark] .inline-word.help { border-color:#cbad78; }
[data-theme=dark] .context-box { border-color:#8dba94; }
[data-theme=dark] .empty { border-color:var(--line); }
[data-theme=dark] #toast { background:#e8efe7;color:#14231b; }
[data-theme=dark] button:focus-visible, [data-theme=dark] a:focus-visible,
[data-theme=dark] input:focus-visible, [data-theme=dark] select:focus-visible,
[data-theme=dark] textarea:focus-visible, [data-theme=dark] summary:focus-visible { outline-color:#edc28f; }
@media(max-width:600px) {
  .word-row { grid-template-columns:minmax(0,1fr);padding:14px;gap:10px; }
  .word-actions { justify-content:flex-end;width:100%;gap:8px; }
  .word-actions .choice { min-width:70px;min-height:44px;padding:8px 12px;font-size:12px; }
  .word-actions .sound-button { display:inline-grid;min-width:44px;min-height:44px; }
  .word-link { max-width:100%; }
  .article-card p { line-height:var(--reading-leading); }
  .material-row { flex-direction:column;gap:12px;padding:16px; }
  .material-row>div:first-child { flex:auto;width:100%; }
  .material-actions { flex:auto;width:100%;justify-content:flex-start;gap:8px; }
  .dict-heading { flex-wrap:wrap;gap:12px; }
  .dict-heading>div:first-child { width:100%; }
  .save-word { margin-left:auto; }
  .settings-card { padding:18px 16px; }
  .setting-row { gap:10px; }
  .setting-row select { flex:1 1 100%;max-width:100%;font-size:16px; }
  .setting-row input[type=checkbox] { margin-left:auto; }
  .filter-bar { font-size:12px; }
  .download-links a { flex:1 1 120px; }
  .bottom-nav { gap:4px; }
  .bottom-nav button { flex:1 1 0;justify-content:center;gap:5px;padding:0 5px;font-size:12px; }
}
@media(max-width:360px) {
  #main { padding-inline:16px; }
  .topbar-inner { padding-inline:16px; }
  .brand { font-size:14px;gap:8px; }
  .brand small { font-size:7px;letter-spacing:1px; }
  .word-actions .sound-button { display:inline-grid; }
  .word-actions .choice { padding:8px 12px; }
  .article-card { padding:20px 16px; }
  .reader-top { flex-wrap:wrap; }
  .stage-count { margin-top:0;margin-left:auto; }
  .complete .summary { gap:24px;padding:20px 8px; }
  .route-strip { column-gap:7px;row-gap:10px;font-size:11px; }
  .phase-nav button { padding:12px 8px; }
  dialog { padding-inline:18px; }
}

/* Sentence assistance: preserve the original reading text and separate word/sentence selection. */
.reading-toolbar .tools{flex-wrap:wrap;justify-content:flex-end;gap:8px}
.sentence-toggle[aria-pressed=true]{background:var(--soft);border-radius:9px;padding:8px 12px}
.article-card .sentence-button{display:inline;border:0;background:none;color:inherit;font:inherit;line-height:inherit;text-align:left;margin:0;padding:0;min-width:0;min-height:0;white-space:normal;overflow-wrap:anywhere;border-bottom:1px dashed var(--line);border-radius:3px}
.article-card .sentence-button:hover,.article-card .sentence-button:focus-visible{background:var(--soft)}
.sentence-selected{font-family:Georgia,serif;font-size:20px;line-height:1.8;margin:20px 0;padding:16px;background:var(--soft);border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.sentence-steps{padding-left:24px;margin:18px 0;line-height:1.7;font-size:14px}
.sentence-steps li{margin:10px 0;padding-left:4px}.sentence-steps span{display:block;color:var(--muted);font-size:12px}
.sentence-pause{display:flex;gap:10px;align-items:center;min-height:44px;font-size:14px}.sentence-pause input{width:20px;height:20px;accent-color:var(--green)}
.sentence-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 8px}.sentence-actions button{flex:1 1 210px;white-space:normal;line-height:1.5}
.sentence-prompt-details{margin:20px 0;border:1px solid var(--line);border-radius:10px;padding:0 12px}
.sentence-prompt-details summary{padding:12px 0;font-size:13px;cursor:pointer}
#sentence-prompt{width:100%;display:block;resize:vertical;padding:12px;background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:16px;line-height:1.6;min-height:220px}
.sentence-direct a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}

/* Make whole-sentence support discoverable before students read. */
.sentence-help-banner{display:flex;align-items:center;gap:14px;width:100%;margin:8px 0 18px;padding:17px 18px;border:2px solid var(--button-fill);border-radius:14px;background:var(--button-fill);color:var(--button-text);text-align:left;box-shadow:0 3px 8px #163b3017}
.sentence-help-banner>span:nth-child(2){flex:1;min-width:0}.sentence-help-banner strong{display:block;font-size:18px;line-height:1.5;font-weight:700}.sentence-help-banner small{display:block;font-size:12px;line-height:1.6;margin-top:4px;opacity:.95}.sentence-help-icon{flex:0 0 34px;display:grid;place-items:center;width:34px;height:34px;border:2px solid currentColor;border-radius:50%;font-size:23px;font-weight:700}.sentence-help-arrow{font-size:26px;flex:none}
.sentence-help-banner.selecting{background:var(--notice-bg);color:var(--notice-ink);border-color:var(--notice-line);box-shadow:none}
.sentence-selection .sentence-button{display:block;width:100%;text-align:left;border:1px solid var(--line);padding:12px;margin:10px 0;border-radius:10px;background:var(--paper);min-height:48px}.sentence-selection .sentence-button:hover{border-color:var(--green)}
.sentence-provider-label{display:block;font-size:14px;font-weight:650;margin:22px 0 10px}.sentence-provider-label select{display:block;width:100%;max-width:100%;padding:12px;background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:10px;font-size:16px;margin-top:8px}
.wechat-guide{margin:16px 0;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);font-size:13px;line-height:1.8}.wechat-guide summary{padding:12px 0;cursor:pointer;font-weight:650}.wechat-guide ol{margin:0 0 14px;padding-left:22px}.wechat-guide li{margin:8px 0}.wechat-guide p{font-size:12px;color:var(--muted);padding-bottom:14px}
@media(max-width:360px){.sentence-help-banner{gap:10px;padding:15px 12px}.sentence-help-banner strong{font-size:17px}.sentence-help-banner small{font-size:12px}.sentence-help-icon{flex-basis:29px;width:29px;height:29px}.sentence-help-arrow{font-size:22px}}
