:root{--ps-blue:#168cf0;--ps-navy:#092d69;--ps-green:#28bf64;--ps-red:#f2515d}
.practice-suite{position:relative;width:100%;min-height:var(--app-h);overflow:hidden;background:linear-gradient(#cceeff,#ebf9ff);color:var(--ps-navy);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}
.practice-suite [hidden]{display:none!important}
.practice-suite *{box-sizing:border-box}.practice-suite button,.practice-suite input,.practice-suite textarea,.practice-suite select{font:inherit}.practice-suite button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ps-hero{position:relative;height:clamp(190px,24svh,260px);overflow:hidden;background:#3eaff2}.ps-hero>img,.ps-hero picture,.ps-hero picture img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ps-nav{position:absolute;top:max(18px,var(--sat));width:68px;height:68px;padding:0;border:2px solid #8bd3fb;border-radius:50%;background:rgba(255,255,255,.97);box-shadow:0 5px 13px rgba(16,90,148,.22);display:grid;place-items:center;transition:transform .13s ease}.ps-nav:active{transform:scale(.94)}.ps-nav.back{left:max(24px,var(--sal))}.ps-nav.home-nav{right:max(24px,var(--sar))}.ps-nav img{width:36px;height:36px;object-fit:contain}
.ps-card,.ps-finish{position:relative;height:calc(100svh - clamp(170px,22svh,235px));min-height:540px;margin:-20px max(28px,var(--sar)) 0 max(28px,var(--sal));padding:18px 26px 22px;border:4px solid #74cdfa;border-radius:32px;background:rgba(255,255,255,.985);box-shadow:0 12px 30px rgba(18,105,168,.2),inset 0 0 0 2px #ebf9ff}
.ps-header{min-height:68px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;border-bottom:1px solid #dcecf7;padding-bottom:12px}.ps-unit{display:flex;flex-direction:column;gap:5px;line-height:1.25}.ps-unit label{color:#6592b6;font-size:14px;font-weight:800}.ps-unit select{width:min(100%,280px);min-height:42px;padding:6px 38px 6px 13px;border:2px solid #9bd6f7;border-radius:14px;background:#f4fbff;color:#0a4e95;font-size:18px;font-weight:900}.ps-progress{display:flex;align-items:baseline;gap:2px;padding:10px 25px;border-radius:999px;background:#e6f5ff;font-size:18px;color:#687d93}.ps-progress strong{color:#0877df;font-size:27px}.ps-actions{display:flex;justify-content:flex-end;gap:12px}.ps-actions button{min-width:88px;min-height:47px;border:2px solid #8ccff5;border-radius:999px;background:#fff;color:#0a73d4;font-size:17px;font-weight:900;box-shadow:0 3px 7px rgba(13,105,169,.1)}.ps-actions .answer{border-color:#f2c96b;color:#a76b00;background:#fffaf0}.ps-actions .previous{width:47px;min-width:47px;padding:0;display:grid;place-items:center}.ps-actions .previous svg{width:24px;height:24px}.ps-actions button:disabled{opacity:.38;cursor:default;box-shadow:none}.ps-actions button:active:not(:disabled){transform:translateY(2px) scale(.97)}
.ps-unit-two-level{min-width:0}.ps-selectors{width:min(100%,620px);display:flex;gap:8px}.ps-unit .ps-selectors select{width:auto;min-width:0;max-width:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ps-unit .ps-unit-select{flex:0 1 245px}.ps-unit .ps-lesson-select{flex:1 1 350px}
.ps-header-two-level{grid-template-columns:minmax(0,1.6fr) auto minmax(190px,.7fr)}
.ps-grid{height:calc(100% - 68px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:clamp(22px,3vw,44px);padding:22px 8px 4px}.ps-question-side{position:relative;min-width:0;padding:3px 10px;overflow:auto}.ps-ribbon{display:inline-flex;align-items:center;min-height:42px;padding:0 30px 0 22px;color:#765000;background:linear-gradient(90deg,#ffd05c,#ffe994);clip-path:polygon(0 0,100% 0,calc(100% - 16px) 50%,100% 100%,0 100%);font-size:19px;font-weight:900}.ps-source{margin:9px 0 0;color:#7190aa;font-size:14px;font-weight:800}.ps-reading{max-height:210px;margin:16px 0 0;padding:15px 17px;overflow:auto;border:1px solid #d8e7ef;border-radius:17px;background:#f8fcff;color:#3a5268;font-size:16px;line-height:1.75;white-space:pre-wrap}.ps-question{min-height:190px;padding:25px 8px;font-size:clamp(25px,2.35vw,36px);line-height:1.65;font-weight:750;color:#263a50;white-space:pre-wrap;overflow-wrap:anywhere}.ps-question.long{font-size:clamp(21px,2vw,30px)}.ps-question.very-long{font-size:clamp(18px,1.7vw,25px);line-height:1.5}.ps-feedback{min-height:58px;display:flex;align-items:center;justify-content:center;border-radius:18px;font-size:21px;font-weight:900;opacity:0;transform:translateY(8px);transition:.18s}.ps-feedback.show{opacity:1;transform:translateY(0)}.ps-feedback.correct{color:#168a48;background:#e0f8e9;border:2px solid #63d48c}.ps-feedback.wrong{color:#c72c3b;background:#fff0f1;border:2px solid #ff939b}
.ps-question-media{display:flex;justify-content:center;margin:12px 0 0}.ps-question-media img{display:block;width:auto;max-width:min(100%,340px);max-height:210px;border-radius:16px;object-fit:contain}
.ps-reading-wrap{position:relative;margin-top:14px;padding-top:42px;border:1px solid #d8e7ef;border-radius:17px;background:#f8fcff}.ps-reading-wrap .ps-reading{margin:0;border:0;border-radius:0;background:transparent}.ps-reading-expand{position:absolute;z-index:2;right:9px;top:7px;min-height:30px;padding:4px 13px;border:1px solid #9acff0;border-radius:999px;background:#fff;color:#0b72c8;font-size:13px;font-weight:900}.ps-reading-modal{position:fixed;z-index:2000;inset:0 0 auto;height:64svh;display:flex;align-items:flex-end;justify-content:center;padding:0 max(18px,var(--sar)) 8px max(18px,var(--sal));background:transparent;pointer-events:none}.ps-reading-dialog{position:relative;width:min(980px,94vw);height:auto;max-height:66svh;overflow:auto;padding:20px 32px;border:3px solid #f1c85e;border-radius:24px;background:#fffdf5;box-shadow:0 18px 55px rgba(24,45,64,.3);color:#334b5e;white-space:pre-wrap;font-size:clamp(16px,1.55vw,21px);line-height:1.75;pointer-events:auto}.ps-reading-dialog h2{margin:0 48px 12px 0;color:#815514}.ps-reading-close{position:absolute;right:12px;top:8px;width:40px;height:40px;border:2px solid #e0b34d;border-radius:50%;background:#fff;color:#8d5a08;font-size:28px;line-height:1}
.ps-reading-wrap.reading-blurred .ps-reading{filter:blur(4px);opacity:.52;user-select:none}.ps-reading-wrap.reading-blurred .ps-reading-expand{opacity:.55}
.ps-response{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:8px 10px;overflow:auto}.ps-options{display:grid;gap:14px}.ps-option{min-height:82px;display:grid;grid-template-columns:54px 1fr;align-items:center;padding:13px 22px;border:2px solid #d5e4ee;border-radius:22px;background:#fff;color:#263748;text-align:left;font-size:25px;box-shadow:0 5px 12px rgba(26,89,128,.08);transition:.14s}.ps-option b{font-size:29px;color:#0b65ba}.ps-option:active{transform:scale(.985)}.ps-option.correct{color:#167742;border-color:#43c875;background:#e5f9ec}.ps-option.wrong{color:#b72835;border-color:#f26470;background:#fff0f1}
.ps-entry{display:flex;flex-direction:column;gap:14px}.ps-entry label{color:#64809a;font-size:16px;font-weight:800}.ps-input{width:100%;min-height:170px;padding:19px;resize:none;border:3px solid #68c8fb;border-radius:22px;outline:none;background:#f8fdff;color:#173657;font-size:21px;line-height:1.55}.ps-input.short{min-height:92px}.ps-input:focus{border-color:#168cf0;box-shadow:0 0 0 6px rgba(22,140,240,.12)}.ps-input.correct{border-color:#43c875;background:#e8faef;color:#167742}.ps-input.wrong{border-color:#f26470;background:#fff0f1;color:#b72835}.ps-submit{min-height:57px;border:0;border-radius:18px;background:linear-gradient(#3aabfb,#1488ed);color:#fff;font-size:20px;font-weight:900}
.ps-answer-panel{position:absolute;inset:60px 0 auto;z-index:5;padding:24px 26px;border:3px solid #f2c96b;border-radius:22px;background:#fffaf0;box-shadow:0 14px 35px rgba(111,79,15,.2);color:#5c4422;font-size:18px;line-height:1.65}.ps-answer-panel b{font-size:22px;color:#9c6200}.ps-answer-panel p{margin:12px 0 18px;max-height:180px;overflow:auto}.ps-answer-panel button{min-height:49px;padding:0 25px;border:0;border-radius:999px;background:#f4b72e;color:#593b00;font-weight:900}
.ps-grid.shake{animation:psShake .38s ease}.ps-finish{text-align:center;padding-top:11vh}.ps-finish img{width:100px;height:100px}.ps-finish h1{margin:16px 0 0;font-size:36px}.ps-finish p{color:#71869b;font-size:19px}.ps-finish button{margin-top:24px;padding:14px 34px;border:0;border-radius:999px;background:#168cf0;color:#fff;font-size:19px;font-weight:900}
.practice-suite.chinese{--ps-blue:#eaa72f;--ps-navy:#593024;background:linear-gradient(#fff0b4,#fff8df)}.practice-suite.chinese .ps-hero{background:#f2c85d}.practice-suite.chinese .ps-card,.practice-suite.chinese .ps-finish{border-color:#f2c85d;box-shadow:0 12px 30px rgba(137,91,21,.18),inset 0 0 0 2px #fff9df}.practice-suite.chinese .ps-unit select{border-color:#ecc96e;background:#fffaf0;color:#7a4812}.practice-suite.chinese .ps-progress{background:#fff3cf}.practice-suite.chinese .ps-progress strong{color:#d67a23}.practice-suite.chinese .ps-submit{background:linear-gradient(#f6c84f,#e9a429)}

.oral-suite{width:100%;min-height:var(--app-h);margin:0 auto;background:#dff5ff}.oral-suite .ps-card{display:grid;grid-template-columns:minmax(300px,.92fr) minmax(410px,1.08fr);grid-template-rows:56px 48px minmax(110px,1fr) 106px;column-gap:clamp(24px,3vw,48px);row-gap:10px}.oral-status{grid-column:1/-1;display:grid;grid-template-columns:180px 180px 1fr;gap:10px;align-items:center}.oral-pill{min-height:50px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#e4f4ff;font-size:20px;font-weight:900}.oral-skip{justify-self:end;border:0;background:transparent;color:#0873df;font-size:20px;font-weight:900}.oral-type{grid-column:1;align-self:center;justify-self:center;padding:9px 25px;border-radius:999px;background:#dff2ff;font-weight:900}.oral-question{grid-column:1;display:grid;place-items:center;text-align:center;font-size:clamp(42px,4.8vw,62px);font-weight:950}.oral-question.compact{font-size:clamp(31px,3.55vw,46px)}.oral-answer-wrap{grid-column:1}.oral-answer{width:min(82%,360px);height:72px;margin:auto;display:flex;align-items:center;justify-content:center;border:3px solid #55c5ff;border-radius:18px;background:#f0faff;font-size:34px;font-weight:900}.oral-answer.wrong{border-color:#ff8c8c;animation:psShake .28s}.oral-note{height:25px;text-align:center;color:#ef6262;font-weight:800}.oral-keypad{grid-column:2;grid-row:2/5;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(5,minmax(0,1fr));gap:10px}.oral-keypad button{border:2px solid #74c9ff;border-radius:18px;background:linear-gradient(#fff,#f4faff);color:#052b6c;font-size:clamp(28px,3vw,39px);font-weight:950}.oral-keypad button:active{transform:translateY(2px);background:#e4f5ff}.oral-keypad .equals{grid-column:1/-1;color:#fff;background:linear-gradient(#38a8fb,#1289ec);font-size:45px}.oral-keypad .equals.success{animation:psSuccess .7s;background:linear-gradient(#58dd87,#20bb5c);border-color:#19aa50;box-shadow:0 0 0 7px rgba(43,202,105,.15)}
@keyframes psShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(4px)}}@keyframes psSuccess{0%{transform:scale(1)}38%{transform:scale(1.035)}100%{transform:scale(1)}}
@media(max-width:799px),(orientation:portrait){.ps-hero{height:190px}.ps-card,.ps-finish{height:auto;min-height:calc(100svh - 175px);margin:-16px 12px 0;padding:16px 14px 28px;border-radius:27px}.ps-header{grid-template-columns:1fr auto;gap:10px}.ps-unit{grid-column:1}.ps-progress{grid-column:2;padding:8px 14px}.ps-actions{grid-column:1/-1}.ps-actions button{min-width:94px;min-height:43px}.ps-grid{height:auto;display:block;padding:18px 2px}.ps-question{min-height:0;font-size:22px;padding:20px 4px}.ps-reading{max-height:235px}.ps-response{padding:12px 2px}.ps-option{min-height:70px;font-size:19px}.oral-suite .ps-card{display:block}.oral-status{display:grid;grid-template-columns:1fr 1fr 1fr}.oral-pill,.oral-skip{font-size:16px}.oral-type{display:table;margin:16px auto}.oral-question{min-height:105px;font-size:40px}.oral-answer{height:64px}.oral-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.oral-keypad button{min-height:62px;font-size:30px}.oral-keypad .equals{min-height:64px}.ps-nav{width:56px;height:56px;top:max(12px,var(--sat))}.ps-nav.back{left:14px}.ps-nav.home-nav{right:14px}.ps-nav img{width:30px;height:30px}}
@media(max-width:799px),(orientation:portrait){.ps-selectors{width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:7px}.ps-unit .ps-selectors select{width:100%;font-size:16px}.ps-question.long{font-size:20px}.ps-question.very-long{font-size:18px}}
@media(max-width:799px) and (orientation:portrait){.practice-suite .ps-nav{position:fixed;z-index:100;top:max(12px,var(--sat))}.practice-suite .ps-nav.back{left:max(12px,var(--sal));right:auto}.practice-suite .ps-nav.home-nav{left:auto;right:max(12px,var(--sar))}}
@media(min-width:700px) and (orientation:landscape){.oral-suite,.practice-suite.math{background:url('assets/ipad-landscape/math-daily-bg.png') center/cover fixed no-repeat}.practice-suite.chinese{background:url('assets/ipad-landscape/chinese-practice-bg.png') center/cover fixed no-repeat}.oral-suite .ps-hero,.practice-suite.math .ps-hero,.practice-suite.chinese .ps-hero{background:transparent}.oral-suite .ps-hero>img,.oral-suite .ps-hero>picture,.practice-suite.math .ps-hero>img,.practice-suite.chinese .ps-hero>img{opacity:0}.oral-suite .ps-card,.practice-suite.math .ps-card,.practice-suite.chinese .ps-card{background:rgba(255,255,255,.94)}.oral-suite .ps-nav,.practice-suite.math .ps-nav,.practice-suite.chinese .ps-nav{border:0;background:transparent;box-shadow:none}.oral-suite .ps-nav img,.practice-suite.math .ps-nav img,.practice-suite.chinese .ps-nav img{opacity:0}}
html.device-landscape .oral-suite,html.device-landscape .practice-suite.math{background:url('assets/ipad-landscape/math-daily-bg.png') center/cover fixed no-repeat}html.device-landscape .practice-suite.chinese{background:url('assets/ipad-landscape/chinese-practice-bg.png') center/cover fixed no-repeat}html.device-landscape .oral-suite .ps-hero,html.device-landscape .practice-suite.math .ps-hero,html.device-landscape .practice-suite.chinese .ps-hero{background:transparent}html.device-landscape .oral-suite .ps-hero>img,html.device-landscape .oral-suite .ps-hero>picture,html.device-landscape .practice-suite.math .ps-hero>img,html.device-landscape .practice-suite.chinese .ps-hero>img{opacity:0}html.device-landscape .oral-suite .ps-card,html.device-landscape .practice-suite.math .ps-card,html.device-landscape .practice-suite.chinese .ps-card{background:rgba(255,255,255,.94)}html.device-landscape .oral-suite .ps-nav,html.device-landscape .practice-suite.math .ps-nav,html.device-landscape .practice-suite.chinese .ps-nav{border:0;background:transparent;box-shadow:none}html.device-landscape .oral-suite .ps-nav img,html.device-landscape .practice-suite.math .ps-nav img,html.device-landscape .practice-suite.chinese .ps-nav img{opacity:0}

/* V5.51：iPad 以运行时方向类控制完整横版排版，不再依赖 Safari 偶尔失真的媒体方向。 */
html.device-landscape .oral-suite .ps-card,
html.device-landscape .practice-suite.math .ps-card,
html.device-landscape .practice-suite.chinese .ps-card{height:calc(100svh - clamp(170px,22svh,235px));min-height:540px;margin:-20px max(28px,var(--sar)) 0 max(28px,var(--sal));padding:18px 26px 22px;border-radius:32px;background:rgba(255,255,255,.94)}
html.device-landscape .practice-suite .ps-header{grid-template-columns:1fr auto 1fr;gap:16px}
html.device-landscape .practice-suite .ps-unit{grid-column:auto}
html.device-landscape .practice-suite .ps-progress{grid-column:auto;padding:10px 25px}
html.device-landscape .practice-suite .ps-actions{grid-column:auto}
html.device-landscape .practice-suite .ps-grid{height:calc(100% - 68px);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:clamp(22px,3vw,44px);padding:22px 8px 4px}
html.device-landscape .oral-suite .ps-card{display:grid;grid-template-columns:minmax(300px,.92fr) minmax(410px,1.08fr);grid-template-rows:56px 48px minmax(110px,1fr) 106px;column-gap:clamp(24px,3vw,48px);row-gap:10px}
html.device-landscape .oral-suite .oral-status{display:grid;grid-template-columns:180px 180px 1fr}
html.device-landscape .oral-suite .oral-type{grid-column:1;margin:0}
html.device-landscape .oral-suite .oral-question{grid-column:1;min-height:0}
html.device-landscape .oral-suite .oral-keypad{grid-column:2;grid-row:2/5;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(5,minmax(0,1fr))}

/* 背景图上的图标只作装饰；真实按钮保持可见并覆盖在准确、安全的点击位置。 */
html.device-landscape .practice-suite .ps-nav{position:fixed!important;z-index:500!important;top:max(18px,var(--sat))!important;width:68px!important;height:68px!important;border:2px solid #8bd3fb!important;background:rgba(255,255,255,.98)!important;box-shadow:0 5px 13px rgba(16,90,148,.22)!important;pointer-events:auto!important}
html.device-landscape .practice-suite .ps-nav.back{left:max(24px,var(--sal))!important;right:auto!important}
html.device-landscape .practice-suite .ps-nav.home-nav{left:auto!important;right:max(24px,var(--sar))!important}
html.device-landscape .practice-suite .ps-nav img{width:36px!important;height:36px!important;opacity:1!important;pointer-events:none!important}

/* V5.52：横版背景自带导航图标，网页按钮只负责可靠点击；竖版继续显示原按钮。 */
html.device-landscape .practice-suite{background-attachment:scroll;background-position:center center;overflow-x:hidden}
html.device-landscape .practice-suite .ps-card,
html.device-landscape .practice-suite .ps-finish{width:min(calc(100% - 56px),1320px);margin-left:auto!important;margin-right:auto!important}
html.device-landscape .practice-suite .ps-nav{position:fixed!important;z-index:1000!important;top:max(14px,var(--sat))!important;width:86px!important;height:86px!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;opacity:1!important;pointer-events:auto!important;touch-action:manipulation!important}
html.device-landscape .practice-suite .ps-nav.back{left:max(10px,var(--sal))!important;right:auto!important}
html.device-landscape .practice-suite .ps-nav.home-nav{left:auto!important;right:max(10px,var(--sar))!important}
html.device-landscape .practice-suite .ps-nav img{opacity:0!important;pointer-events:none!important}

/* 竖版按钮锁定在可视页面两侧，避免 iOS 将 100vw 解释为较宽的布局视口。 */
html.device-portrait .practice-suite .ps-nav{position:fixed!important;z-index:1000!important;top:max(10px,var(--sat))!important;pointer-events:auto!important}
html.device-portrait .practice-suite .ps-nav.back{left:max(10px,var(--sal))!important;right:auto!important}
html.device-portrait .practice-suite .ps-nav.home-nav{left:auto!important;right:max(10px,var(--sar))!important}

/* 手机横屏高度较小时压缩内容并允许纵向滚动，避免强制 540px 高度遮挡按钮。 */
@media(max-height:600px) and (min-width:600px){
  html.device-landscape .practice-suite{min-height:var(--app-h);overflow-y:auto;background-size:cover}
  html.device-landscape .practice-suite .ps-hero{height:82px}
  html.device-landscape .practice-suite .ps-card,
  html.device-landscape .practice-suite .ps-finish{width:calc(100% - 22px);height:auto;min-height:calc(100svh - 72px);margin:-10px auto 12px!important;padding:10px 14px 14px;border-width:3px;border-radius:21px}
  html.device-landscape .practice-suite .ps-header{min-height:50px;gap:8px;padding-bottom:7px}
  html.device-landscape .practice-suite .ps-unit label{font-size:11px}
  html.device-landscape .practice-suite .ps-unit select{min-height:34px;font-size:14px}
  html.device-landscape .practice-suite .ps-progress{padding:5px 12px;font-size:13px}
  html.device-landscape .practice-suite .ps-progress strong{font-size:20px}
  html.device-landscape .practice-suite .ps-actions{gap:6px}
  html.device-landscape .practice-suite .ps-actions button{min-width:67px;min-height:34px;font-size:13px}
  html.device-landscape .practice-suite .ps-grid{height:auto;grid-template-columns:minmax(0,1fr) minmax(270px,.9fr);gap:12px;padding:9px 2px 0}
  html.device-landscape .practice-suite .ps-ribbon{min-height:30px;font-size:14px}
  html.device-landscape .practice-suite .ps-source{font-size:11px}
  html.device-landscape .practice-suite .ps-reading{max-height:105px;margin-top:7px;padding:8px;font-size:12px}
  html.device-landscape .practice-suite .ps-question{min-height:80px;padding:8px 3px;font-size:18px;line-height:1.45}
  html.device-landscape .practice-suite .ps-option{min-height:46px;padding:7px 44px 7px 12px;border-radius:14px;font-size:15px}
  html.device-landscape .practice-suite .ps-option b{font-size:17px}
  html.device-landscape .practice-suite .ps-input{min-height:82px;font-size:15px}
  html.device-landscape .practice-suite .ps-input.short{min-height:58px}
  html.device-landscape .practice-suite .ps-submit{min-height:39px;font-size:15px}
  html.device-landscape .oral-suite .ps-card{grid-template-columns:minmax(230px,.9fr) minmax(310px,1.1fr);grid-template-rows:40px 34px 82px 58px;column-gap:18px;row-gap:6px}
  html.device-landscape .oral-suite .oral-status{grid-template-columns:110px 110px 1fr;gap:6px}
  html.device-landscape .oral-suite .oral-pill{min-height:34px;font-size:14px}
  html.device-landscape .oral-suite .oral-question{font-size:32px}
  html.device-landscape .oral-suite .oral-question.compact{font-size:24px}
  html.device-landscape .oral-suite .oral-answer{height:48px;font-size:23px}
  html.device-landscape .oral-suite .oral-keypad{gap:5px}
  html.device-landscape .oral-suite .oral-keypad button{border-radius:11px;font-size:19px}
  html.device-landscape .practice-suite .ps-nav{top:max(5px,var(--sat))!important;width:62px!important;height:62px!important}
  html.device-landscape .practice-suite .ps-nav.back{left:max(5px,var(--sal))!important}
  html.device-landscape .practice-suite .ps-nav.home-nav{right:max(5px,var(--sar))!important}
}

/* V5.49：导航键以真实视觉视口定位，避免 iOS Safari 将右侧安全区算到内容画布之外。 */
@media(max-width:799px),(orientation:portrait){.practice-suite .ps-nav{position:fixed!important;z-index:300!important;top:max(10px,var(--sat))!important;width:54px!important;height:54px!important}.practice-suite .ps-nav.back{left:max(10px,var(--sal))!important;right:auto!important}.practice-suite .ps-nav.home-nav{left:calc(100vw - 64px)!important;right:auto!important}.practice-suite .ps-nav img{width:29px!important;height:29px!important}}
@media(prefers-reduced-motion:reduce){.practice-suite *{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* English grammar practice uses the supplied full-page artwork in both orientations. */
.practice-suite.english-grammar{--ps-blue:#2589eb;--ps-navy:#173f78;box-sizing:border-box;min-height:var(--app-h);padding-top:43svh;background:#dff5ff;overflow-x:hidden;overflow-y:auto}
.practice-suite.english-grammar .ps-hero{position:absolute;z-index:0;inset:0 0 auto;height:var(--app-h);background:#dff5ff;overflow:hidden;pointer-events:none}
.practice-suite.english-grammar .ps-hero picture,.practice-suite.english-grammar .ps-hero picture img{width:100%;height:100%;object-fit:cover;object-position:center top}
.practice-suite.english-grammar .ps-nav{pointer-events:auto}
.practice-suite.english-grammar .ps-card,.practice-suite.english-grammar .ps-finish{z-index:2;height:auto;min-height:54svh;margin:0 max(20px,var(--sar)) 18px max(20px,var(--sal));border-color:#80c9f6;background:rgba(255,255,255,.95);box-shadow:0 14px 34px rgba(36,108,169,.18),inset 0 0 0 2px #eefaff}
.practice-suite.english-grammar .ps-unit select{border-color:#a9d8f8;background:#f7fcff;color:#174778}
.practice-suite.english-grammar .ps-progress{background:#e6f5ff}.practice-suite.english-grammar .ps-progress strong{color:#167bd8}
@media(max-width:799px),(orientation:portrait){.practice-suite.english-grammar{padding-top:43svh}.practice-suite.english-grammar .ps-card,.practice-suite.english-grammar .ps-finish{min-height:55svh;margin:0 12px 16px}}
@media(min-width:700px) and (orientation:landscape){.practice-suite.english-grammar{padding-top:42svh}.practice-suite.english-grammar .ps-hero>picture{opacity:1}.practice-suite.english-grammar .ps-card,.practice-suite.english-grammar .ps-finish{width:min(calc(100% - 56px),1320px);min-height:56svh;margin:0 auto 16px!important;background:rgba(255,255,255,.94)}.practice-suite.english-grammar .ps-nav img{opacity:0!important}}
html.device-landscape .practice-suite.english-grammar{padding-top:42svh;background:#dff5ff}html.device-landscape .practice-suite.english-grammar .ps-hero>picture{opacity:1}html.device-landscape .practice-suite.english-grammar .ps-card,html.device-landscape .practice-suite.english-grammar .ps-finish{height:auto;min-height:56svh;margin:0 auto 16px!important}

/* V5.47 unified answer-state artwork and dynamic math unit plaque. */
.ps-feedback{gap:10px}.ps-feedback img{width:30px;height:30px;object-fit:contain}.ps-option{position:relative;padding-right:62px}.ps-answer-icon{position:absolute;right:18px;top:50%;width:34px;height:34px;object-fit:contain;transform:translateY(-50%)}
.ps-hero-unit{position:absolute;left:30%;top:57%;width:29%;min-height:19%;display:flex;align-items:center;justify-content:center;padding:5px 13px;border-radius:999px;background:#fff3c8;color:#764316;font-size:clamp(13px,1.45vw,22px);font-weight:900;text-align:center;box-shadow:inset 0 0 0 2px rgba(170,111,26,.12)}
/* 竖屏用动态单元标题完整盖住素材中预留的标题牌，避免两层文字露边。 */
html.device-portrait .practice-suite.math .ps-hero-unit{left:18%;top:60%;width:46%;min-height:18%;padding:3px 10px;font-size:clamp(11px,3.2vw,16px)}
/* 每日口算竖屏使用完整口算背景，动态题目卡覆盖素材中的示例内容。 */
html.device-portrait .oral-suite{background:#72ceff url('assets/practice/math-daily-hero-portrait.png') center top/100% auto no-repeat}
html.device-portrait .oral-suite .ps-hero{background:transparent}html.device-portrait .oral-suite .ps-hero picture{opacity:0}
html.device-portrait .oral-suite .ps-card{margin-left:max(20px,var(--sal));margin-right:max(20px,var(--sar));background:#fff}
html.device-portrait .oral-suite .ps-nav{background:transparent!important;border:0!important;box-shadow:none!important}html.device-portrait .oral-suite .ps-nav img{opacity:0!important}

/* 必须位于所有媒体查询之后，防止 Safari 的错误媒体匹配覆盖运行时方向。 */
html.device-landscape .practice-suite .ps-nav{position:fixed!important;z-index:1000!important;top:max(14px,var(--sat))!important;width:86px!important;height:86px!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;opacity:1!important;pointer-events:auto!important;touch-action:manipulation!important}
html.device-landscape .practice-suite .ps-nav.back{left:max(10px,var(--sal))!important;right:auto!important}
html.device-landscape .practice-suite .ps-nav.home-nav{left:auto!important;right:max(10px,var(--sar))!important}
html.device-landscape .practice-suite .ps-nav img{opacity:0!important;pointer-events:none!important}
html.device-portrait .practice-suite .ps-nav.back{left:max(10px,var(--sal))!important;right:auto!important}
html.device-portrait .practice-suite .ps-nav.home-nav{left:auto!important;right:max(10px,var(--sar))!important}
@media(max-height:600px) and (min-width:600px){html.device-landscape .practice-suite .ps-nav{top:max(5px,var(--sat))!important;width:62px!important;height:62px!important}html.device-landscape .practice-suite .ps-nav.back{left:max(5px,var(--sal))!important}html.device-landscape .practice-suite .ps-nav.home-nav{right:max(5px,var(--sar))!important}}

/* V5.55.1：横屏练习统一为“上方题目、下方作答”，避免视线左右跳转。 */
html.device-landscape .practice-suite:not(.oral-suite) .ps-grid{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-content:start;gap:10px!important;padding:12px 8px 4px!important;overflow-y:auto}
html.device-landscape .practice-suite:not(.oral-suite) .ps-question-side{min-height:0;padding:0 8px;overflow:visible}
html.device-landscape .practice-suite:not(.oral-suite) .ps-question{min-height:74px;padding:10px 3px;font-size:clamp(18px,2vw,26px)}
html.device-landscape .practice-suite:not(.oral-suite) .ps-question.long{font-size:clamp(17px,1.65vw,22px)}
html.device-landscape .practice-suite:not(.oral-suite) .ps-question.very-long{font-size:clamp(15px,1.42vw,19px);line-height:1.45}
html.device-landscape .practice-suite:not(.oral-suite) .ps-reading{max-height:105px;margin-top:7px;padding:9px 12px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-response{min-height:0;padding:4px 8px 8px;justify-content:flex-start;overflow:visible}
html.device-landscape .practice-suite:not(.oral-suite) .ps-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-option{min-height:58px;padding:8px 48px 8px 15px;font-size:clamp(16px,1.65vw,22px)}
html.device-landscape .practice-suite:not(.oral-suite) .ps-entry{gap:8px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-input{min-height:86px;padding:12px 15px;font-size:18px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-input.short{min-height:62px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-submit{min-height:45px}

@media(max-height:600px) and (orientation:landscape){
html.device-landscape .oral-suite .ps-card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto minmax(82px,1fr) auto minmax(120px,1.15fr)!important;gap:7px!important;overflow-y:auto}
html.device-landscape .oral-suite .oral-status{grid-column:1;grid-row:1}
html.device-landscape .oral-suite .oral-type{grid-column:1;grid-row:2;justify-self:center}
html.device-landscape .oral-suite .oral-question{grid-column:1;grid-row:3;min-height:82px}
html.device-landscape .oral-suite .oral-answer-wrap{grid-column:1;grid-row:4}
html.device-landscape .oral-suite .oral-keypad{grid-column:1;grid-row:5;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(2,minmax(52px,1fr));gap:7px}
html.device-landscape .oral-suite .oral-keypad .equals{grid-column:6/8;grid-row:2}
}

@media(max-height:600px) and (min-width:600px){
  html.device-landscape .practice-suite:not(.oral-suite) .ps-grid{grid-template-rows:auto auto!important;overflow:visible}
  html.device-landscape .practice-suite:not(.oral-suite) .ps-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.device-landscape .oral-suite .ps-card{grid-template-rows:34px 30px 65px 52px 105px!important}
  html.device-landscape .oral-suite .oral-keypad{grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(2,49px);gap:5px}
  html.device-landscape .oral-suite .oral-keypad .equals{grid-column:6/8;grid-row:2}
}

/* 强制结束页与答题页互斥，须置于所有横屏 display 规则之后。 */
html .practice-suite .ps-card[hidden],html .practice-suite .ps-finish[hidden]{display:none!important}

/* V5.55.4：练习页计时、完整列表、可关闭答案与完成庆祝。 */
.ps-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}
.ps-actions time,.oral-timer{align-self:center;color:#88a0b5;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ps-unit,.ps-selectors{min-width:0;max-width:100%}.ps-unit .ps-selectors select{width:100%;max-width:100%;font-size:clamp(13px,1.45vw,18px)}
.ps-unit:not(.ps-unit-two-level) .ps-selectors{width:min(100%,520px)}.ps-unit:not(.ps-unit-two-level) .ps-unit-select{width:100%;flex:1 1 auto}
.ps-answer-panel{padding-right:62px}.ps-answer-panel .ps-answer-close{position:absolute;right:12px;top:10px;width:40px;height:40px;min-height:40px;padding:0;border:2px solid #e8c068;border-radius:50%;background:#fff;color:#97600b;font-size:29px;line-height:1}
.ps-victory{position:absolute;inset:0;overflow:hidden;pointer-events:none}.ps-victory span{position:absolute;top:-12%;color:#ffc332;font-size:34px;animation:psCelebrate 2.2s ease-out infinite}.ps-victory span:nth-child(1){left:13%;animation-delay:.05s}.ps-victory span:nth-child(2){left:31%;color:#56c9ff;animation-delay:.34s}.ps-victory span:nth-child(3){left:49%;color:#ff7185;animation-delay:.18s}.ps-victory span:nth-child(4){left:68%;color:#62d579;animation-delay:.5s}.ps-victory span:nth-child(5){left:84%;animation-delay:.27s}
@keyframes psCelebrate{0%{transform:translateY(0) rotate(0);opacity:0}12%{opacity:1}100%{transform:translateY(72svh) rotate(520deg);opacity:0}}

html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level{grid-template-columns:minmax(0,1fr) auto minmax(230px,.7fr)}
html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level .ps-selectors{width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level .ps-unit select{width:100%;min-height:34px;padding-top:4px;padding-bottom:4px;font-size:clamp(13px,1.35vw,17px)}
html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level{min-height:96px;align-items:start}
html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level .ps-progress,html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level .ps-actions{margin-top:16px}
html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level+.ps-grid{height:calc(100% - 96px)}
html.device-landscape .oral-suite .oral-status{grid-template-columns:minmax(95px,180px) minmax(95px,180px) auto 1fr!important}.oral-timer{justify-self:center}.oral-skip{grid-column:4}
@media(max-width:799px),(orientation:portrait){.ps-actions time{margin-right:auto}.oral-status{grid-template-columns:1fr 1fr auto!important}.oral-timer{grid-column:3;grid-row:1}.oral-skip{grid-column:1/-1;justify-self:end}.ps-answer-panel{inset:50px 0 auto;padding:22px 54px 22px 18px}}
@media(max-height:600px) and (min-width:600px){html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level{min-height:76px}html.device-landscape .practice-suite:not(.oral-suite) .ps-header-two-level+.ps-grid{height:auto}html.device-landscape .oral-suite .oral-status{grid-template-columns:100px 100px auto 1fr!important}}

.home{position:relative}.home-practice-progress{position:absolute;z-index:7;left:max(10px,var(--sal));top:34%;width:150px;margin:0;padding:10px 11px 12px;pointer-events:none;border:1px solid rgba(255,255,255,.85);border-radius:17px;background:rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(4,69,133,.18);color:#123f77}.home-practice-progress h2{margin:0 0 7px;font-size:13px;text-align:center}.home-progress-row{display:block;margin-top:7px}.home-progress-row>div:first-child{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:5px}.home-progress-row b{font-size:11px;white-space:nowrap}.home-progress-row span{color:#6d849d;font-size:9px;white-space:nowrap}.home-progress-track{height:6px;margin-top:3px;overflow:hidden;border-radius:999px;background:#dcebf6}.home-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#35bdf6,#35c877)}
@media(max-width:520px){.home-practice-progress{left:max(6px,var(--sal));top:31%;width:116px;padding:7px 8px 9px;border-radius:14px}.home-practice-progress h2{font-size:11px;margin-bottom:4px}.home-progress-row{margin-top:5px}.home-progress-row b{font-size:9px}.home-progress-row span{font-size:8px}.home-progress-track{height:5px}}

/* V5.59 subject statistics, circular completion status and device-safe layouts. */
.ps-progress,.oral-progress-ring,.home-progress-ring{--ring-color:#25a8ef;position:relative;isolation:isolate;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:conic-gradient(var(--ring-color) calc(var(--progress,0)*1%),#dcebf4 0);font-variant-numeric:tabular-nums}
.ps-progress::before,.oral-progress-ring::before,.home-progress-ring::before{content:"";position:absolute;z-index:-1;border-radius:inherit;background:#fff}
.ps-progress{width:68px;height:68px;padding:0;gap:0;text-align:center;color:#6d8498;box-shadow:0 3px 10px rgba(19,116,180,.12)}
.ps-progress::before{inset:6px}.ps-progress>div{display:flex;align-items:baseline;justify-content:center;line-height:1}.ps-progress strong{font-size:21px}.ps-progress span{font-size:12px}.ps-progress small{margin-top:-7px;font-size:10px;font-weight:800}
.practice-suite.chinese .ps-progress{--ring-color:#e5a42a}.practice-suite.english-grammar .ps-progress{--ring-color:#2589eb}.practice-suite.math .ps-progress{--ring-color:#42b86a}
.oral-progress-ring{--ring-color:#35bdf6;width:52px;height:52px;color:#3f759d;text-align:center}
.oral-progress-ring::before{inset:5px}.oral-progress-ring>div{display:flex;align-items:baseline;justify-content:center;line-height:1}.oral-progress-ring strong{color:#0877df;font-size:17px}.oral-progress-ring span{font-size:10px}.oral-progress-ring small{margin-top:-5px;font-size:8px;font-weight:900}

.ps-victory span{animation:none;opacity:0}.ps-victory.is-playing span{animation:psCelebrate 1.7s ease-out 1 both}
.ps-victory.is-playing span:nth-child(1){animation-delay:.02s}.ps-victory.is-playing span:nth-child(2){animation-delay:.16s}.ps-victory.is-playing span:nth-child(3){animation-delay:.08s}.ps-victory.is-playing span:nth-child(4){animation-delay:.24s}.ps-victory.is-playing span:nth-child(5){animation-delay:.12s}

.home-practice-progress{top:31%;width:min(370px,31vw);padding:12px 13px 14px;pointer-events:auto}
.home-practice-progress h2{margin-bottom:9px;font-size:15px;text-align:left}
.home-progress-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.home-progress-row{min-width:0;margin:0;padding:7px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;border:1px solid #dcecf6;border-radius:14px;background:rgba(249,253,255,.92)}
.home-progress-ring{width:42px;height:42px;--ring-color:#35bdf6;background:conic-gradient(var(--ring-color) calc(var(--home-progress,0)*1%),#dcebf4 0);color:#116bb8}
.home-progress-ring::before{inset:4px}.home-progress-ring strong{font-size:12px}.home-progress-ring small{font-size:7px;font-weight:900}
.home-progress-copy{min-width:0}.home-progress-copy>div{display:flex;align-items:baseline;justify-content:space-between;gap:4px}.home-progress-copy b{font-size:12px}.home-progress-copy span{font-size:9px}.home-progress-copy em{display:block;margin-top:3px;color:#657f96;font-size:8px;font-style:normal;white-space:nowrap}

@media(max-width:799px),(orientation:portrait){
  .practice-suite{min-height:var(--app-h);min-height:var(--app-h);overflow-x:hidden}
  .practice-suite .ps-card,.practice-suite .ps-finish{height:auto;min-height:calc(100dvh - 175px);padding-bottom:max(20px,var(--sab))}
  .ps-header{grid-template-columns:minmax(0,1fr) 58px;gap:9px}.ps-header .ps-actions{grid-column:1/-1;justify-content:flex-end;flex-wrap:wrap}.ps-progress{width:58px;height:58px}.ps-progress::before{inset:5px}.ps-progress strong{font-size:18px}
  .home-practice-progress{top:30%;left:max(6px,var(--sal));width:min(270px,63vw);padding:8px 9px 10px;border-radius:15px}
  .home-practice-progress h2{margin-bottom:6px;font-size:12px}.home-progress-list{grid-template-columns:1fr;gap:5px}.home-progress-row{grid-template-columns:34px minmax(0,1fr);gap:6px;padding:5px;border-radius:11px}.home-progress-ring{width:34px;height:34px}.home-progress-ring strong{font-size:10px}.home-progress-copy b{font-size:10px}.home-progress-copy span{font-size:8px}.home-progress-copy em{font-size:7px;margin-top:1px}
  .oral-status{grid-template-columns:1fr 58px auto!important;min-width:0}.oral-progress-ring{width:50px;height:50px}.oral-skip{grid-column:1/-1}
}
@media(max-width:430px) and (orientation:portrait){
  .practice-suite .ps-card,.practice-suite .ps-finish{margin-left:max(8px,var(--sal));margin-right:max(8px,var(--sar));padding-left:13px;padding-right:13px;border-radius:24px}
  .ps-actions button{min-width:74px;min-height:43px;font-size:15px}.ps-question{font-size:clamp(21px,6.3vw,29px)}.ps-option{min-height:68px;padding-left:15px;font-size:20px}
  .home-practice-progress{top:29%;width:min(245px,67vw)}
}
@media(min-width:700px) and (orientation:landscape){
  .practice-suite .ps-card,.practice-suite .ps-finish{max-width:1320px;padding-left:max(18px,var(--sal));padding-right:max(18px,var(--sar))}
  .ps-header{grid-template-columns:minmax(0,1fr) 68px minmax(230px,.7fr)}
  .home-practice-progress{top:28%;width:min(430px,34vw)}
}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){
  .ps-progress{width:52px!important;height:52px!important;padding:0!important}.ps-progress::before{inset:5px}.ps-progress strong{font-size:16px!important}.ps-progress span{font-size:9px}.ps-progress small{font-size:8px}
  .home-practice-progress{top:21%;width:min(520px,45vw);padding:7px 9px 9px}.home-practice-progress h2{margin-bottom:5px;font-size:12px}.home-progress-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.home-progress-row{grid-template-columns:31px minmax(0,1fr);padding:4px;gap:5px}.home-progress-ring{width:31px;height:31px}.home-progress-copy b{font-size:9px}.home-progress-copy span,.home-progress-copy em{font-size:7px}
}
@media(prefers-reduced-motion:reduce){.ps-victory.is-playing span{animation:none!important;opacity:.75!important;top:18%!important}}

/* V6.3 home progress: three subjects with the original underline bars. */
.home-practice-progress{top:31%;width:min(190px,24vw);padding:10px 12px 12px;pointer-events:auto}
.home-practice-progress h2{margin:0 0 7px;font-size:13px;text-align:left}
.home-progress-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-progress-title h2{margin:0}.home-progress-reset{width:26px;height:26px;min-width:26px;padding:4px;border:1px solid #b9dcf2;border-radius:50%;display:grid;place-items:center;background:#f7fcff;color:#157fdc;cursor:pointer;box-shadow:0 3px 8px rgba(20,103,171,.12)}.home-progress-reset svg{display:block;width:16px;height:16px}.home-progress-reset:active{transform:scale(.92)}
.home-progress-list{display:block}
.home-progress-row{display:block;margin:8px 0 0;padding:0;border:0;border-radius:0;background:transparent}
.home-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:7px}
.home-progress-head b{font-size:11px;white-space:nowrap}
.home-progress-head span{color:#6d849d;font-size:9px;white-space:nowrap}
.home-progress-track{height:6px;margin-top:4px;overflow:hidden;border-radius:999px;background:#dcebf6}
.home-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#35bdf6,#35c877)}
.home-progress-row>em{display:block;margin-top:3px;color:#657f96;font-size:8px;font-style:normal;white-space:nowrap}
@media(max-width:799px),(orientation:portrait){.home-practice-progress{top:30%;width:min(155px,41vw);padding:8px 9px 10px}.home-practice-progress h2{font-size:11px;margin-bottom:4px}.home-progress-reset{width:23px;height:23px;min-width:23px;padding:4px}.home-progress-reset svg{width:14px;height:14px}.home-progress-row{margin-top:6px}.home-progress-head b{font-size:9px}.home-progress-head span{font-size:8px}.home-progress-track{height:5px;margin-top:3px}.home-progress-row>em{font-size:7px}}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){.home-practice-progress{top:21%;width:min(190px,22vw);padding:7px 9px 9px}.home-practice-progress h2{font-size:11px}.home-progress-row{margin-top:5px}.home-progress-head b{font-size:9px}.home-progress-head span,.home-progress-row>em{font-size:7px}.home-progress-track{height:4px}}

/* V5.60 English classroom activity system. */
.practice-suite.english-classroom{--ps-blue:#2589eb;--ps-navy:#173f78;box-sizing:border-box;min-height:var(--app-h);min-height:var(--app-h);padding-top:43svh;background:#dff5ff;overflow-x:hidden;overflow-y:auto}
.practice-suite.english-classroom .ps-hero{position:absolute;z-index:0;inset:0 0 auto;height:var(--app-h);height:var(--app-h);background:#dff5ff;overflow:hidden;pointer-events:none}
.practice-suite.english-classroom .ps-hero picture,.practice-suite.english-classroom .ps-hero picture img{display:block;width:100%;height:auto;min-height:0;object-fit:contain;object-position:center top}
.practice-suite.english-classroom .ps-nav{pointer-events:auto}.practice-suite.english-classroom .ps-card,.practice-suite.english-classroom .ps-finish{z-index:2;height:auto;min-height:55svh;margin:0 max(20px,var(--sar)) 18px max(20px,var(--sal));border-color:#80c9f6;background:rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(36,108,169,.18),inset 0 0 0 2px #eefaff}
.practice-suite.english-classroom .ps-unit select{border-color:#a9d8f8;background:#f7fcff;color:#174778}.practice-suite.english-classroom .ps-progress{--ring-color:#2589eb;background:conic-gradient(var(--ring-color) calc(var(--progress,0)*1%),#dcebf4 0)}
.practice-suite.english-classroom .ps-ribbon{color:#124f8a;background:linear-gradient(90deg,#bce9ff,#e5f7ff)}.practice-suite.english-classroom .ps-submit{background:#177dcc}.practice-suite.english-classroom .ps-submit:active{transform:translateY(1px) scale(.99)}
.match-question{min-height:160px;font-size:clamp(17px,1.75vw,24px);line-height:2.25}.ps-match-slot{display:inline-flex;min-width:108px;min-height:40px;margin:2px 5px;padding:5px 12px;align-items:center;justify-content:center;border:2px dashed #63b7e9;border-radius:12px;background:#eef9ff;color:#1471b8;font-size:.82em;font-weight:900;vertical-align:middle}.ps-match-slot.filled{border-style:solid;background:#dff3ff;color:#0c5897}.ps-match{display:grid;gap:14px}.ps-match>p,.ps-tf-tip{margin:0;color:#547894;font-weight:800;text-align:center}.ps-word-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.ps-word-bank button{min-height:48px;max-width:100%;padding:8px 16px;border:2px solid #b7dff6;border-radius:14px;background:#fff;color:#174f7c;font-size:16px;font-weight:850;text-align:left;transition:transform .14s ease,border-color .14s ease,background .14s ease}.ps-word-bank button.selected{border-color:#168cf0;background:#dff3ff;transform:translateY(-2px)}.ps-response.wrong .ps-word-bank{animation:psShake .28s ease}
.tf-question{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px}.ps-inline-tf{display:inline-flex;gap:10px;margin-left:10px}.ps-inline-tf button{width:58px;height:50px;border:2px solid #86c7ee;border-radius:14px;background:#fff;color:#126aad;font-size:22px;font-weight:950}.ps-inline-tf button:active{transform:scale(.96)}.ps-inline-tf button.correct{border-color:#43c875;background:#e5f9ec;color:#167742}.ps-inline-tf button.wrong{border-color:#f26470;background:#fff0f1;color:#b72835}
.practice-suite.english-classroom .ps-reading-dialog{border-color:#7fc9f2;background:#fafdff}.practice-suite.english-classroom .ps-reading-dialog h2{color:#155c97}.practice-suite.english-classroom .ps-reading-close{border-color:#82c5ec;color:#145f9d}
.ps-reading-intro{margin:0 0 12px}.ps-table-scroll{max-width:100%;overflow-x:auto;border:1px solid #b7dff6;border-radius:14px;background:#fff}.ps-reading-table{width:100%;min-width:560px;border-collapse:separate;border-spacing:0;color:#274b68;font-size:15px;line-height:1.4}.ps-reading-table caption{padding:11px 14px;background:#dff3ff;color:#145f9d;font-size:17px;font-weight:950;text-align:left}.ps-reading-table th,.ps-reading-table td{padding:10px 12px;border-right:1px solid #d5e9f5;border-bottom:1px solid #d5e9f5;text-align:left;vertical-align:top}.ps-reading-table thead th{background:#eff9ff;color:#174f7c;font-weight:950}.ps-reading-table tbody th{background:#f8fcff;color:#174f7c;white-space:nowrap}.ps-reading-table tr>*:last-child{border-right:0}.ps-reading-table tbody tr:last-child>*{border-bottom:0}
@media(max-width:799px),(orientation:portrait){.practice-suite.english-classroom{padding-top:43svh}.practice-suite.english-classroom .ps-card,.practice-suite.english-classroom .ps-finish{min-height:56svh;margin:0 10px 14px}.match-question{font-size:16px;line-height:2.15}.ps-match-slot{min-width:92px;min-height:36px;margin:2px 3px;padding:4px 8px}.ps-word-bank{gap:7px}.ps-word-bank button{min-height:43px;padding:7px 11px;font-size:14px}.ps-inline-tf button{width:54px;height:48px}}
@media(min-width:700px) and (orientation:landscape){.practice-suite.english-classroom{padding-top:42svh}.practice-suite.english-classroom .ps-card,.practice-suite.english-classroom .ps-finish{width:min(calc(100% - 56px),1320px);min-height:57svh;margin:0 auto 16px!important}.practice-suite.english-classroom .ps-nav img{opacity:0!important}}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){.practice-suite.english-classroom{padding-top:37svh}.practice-suite.english-classroom .ps-card,.practice-suite.english-classroom .ps-finish{min-height:65svh}}
@media(prefers-reduced-motion:reduce){.ps-word-bank button,.ps-inline-tf button,.ps-match-slot{transition:none!important}}

/* Guided two-month study plan. */
.ps-finish-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.ps-finish .ps-continue,.guided-continue{min-height:48px;padding:0 24px;border:0;border-radius:16px;background:linear-gradient(135deg,#168cf8,#176fe7);color:#fff;font-size:17px;font-weight:950;box-shadow:0 8px 18px rgba(22,119,232,.22)}.ps-finish .ps-again{min-height:48px;padding:0 26px;border:2px solid #168cf0;border-radius:16px;background:#fff;color:#168cf0;font-size:17px;font-weight:950;box-shadow:0 8px 18px rgba(22,140,240,.12)}
.guided-continue-wrap{display:flex;justify-content:center;padding:22px 4px 4px}.guided-tabs{grid-template-columns:1fr}
.study-plan-finish,.study-review-page{min-height:var(--app-h);padding:24px;background:linear-gradient(160deg,#dff5ff,#f8fcff)}.study-plan-finish{display:grid;place-items:center}.study-plan-finish-card{width:min(92vw,560px);padding:42px 24px;border:1px solid #d8eafb;border-radius:28px;background:#fff;text-align:center;box-shadow:0 16px 42px rgba(30,83,130,.15)}.study-plan-finish-card>img{width:76px}.study-plan-finish-card h1{margin:16px 0 8px;color:#173f78}.study-plan-finish-card p{color:#64809f}.study-plan-finish-card button,.study-review-card button{min-height:46px;padding:0 20px;border:0;border-radius:14px;background:#1688f8;color:#fff;font-weight:900}
.study-review-page>header{display:grid;grid-template-columns:54px 1fr 54px;align-items:center;gap:12px;width:min(100%,920px);margin:0 auto 20px}.study-review-page>header>button{width:52px;height:52px;padding:0;border:0;border-radius:50%;background:#fff;box-shadow:0 6px 16px rgba(29,77,121,.14)}.study-review-page>header>button img{width:100%;height:100%;object-fit:contain}.study-review-page>header div{text-align:center}.study-review-page>header span{color:#1688f8;font-weight:900}.study-review-page>header h1{margin:3px 0 0;color:#173f78;font-size:clamp(22px,4vw,32px)}.study-review-list{display:grid;gap:14px;width:min(100%,920px);margin:auto}.study-review-card{padding:18px;border:1px solid #dceaf5;border-radius:22px;background:#fff;box-shadow:0 8px 22px rgba(35,82,126,.1)}.study-review-card>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.study-review-card b{color:#173f78;font-size:19px}.study-review-card small{color:#7890aa}.study-review-card p{color:#526f8f;line-height:1.75}.study-review-empty{padding:50px 20px;border-radius:24px;background:#fff;text-align:center;color:#607b98}
@media(max-width:520px){.study-plan-finish,.study-review-page{padding:14px 10px}.study-review-page>header{grid-template-columns:46px 1fr 46px}.study-review-page>header>button{width:44px;height:44px}.study-review-card{padding:15px}.ps-finish-actions{flex-direction:column;align-items:center}.ps-finish .ps-continue,.ps-finish-actions>button{width:min(100%,280px)}}

.study-settings-page{min-height:var(--app-h);padding:24px;background:linear-gradient(160deg,#dff5ff,#f8fcff);color:#173f78}.study-settings-page>header{display:grid;grid-template-columns:56px 1fr 56px;align-items:start;gap:14px;width:min(100%,1040px);margin:0 auto 20px}.study-settings-page>header>button{width:52px;height:52px;padding:0;border:0;border-radius:50%;background:#fff;box-shadow:0 6px 16px rgba(29,77,121,.14)}.study-settings-page>header>button img{width:100%;height:100%;object-fit:contain}.study-settings-page>header>div{text-align:center}.study-settings-page>header span{color:#1688f8;font-weight:900}.study-settings-page>header h1{margin:3px 0 4px;font-size:clamp(24px,4vw,34px)}.study-settings-page>header p{margin:0;color:#6a829d;font-size:14px}.study-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,1040px);margin:auto}.study-settings-grid article{padding:18px;border:1px solid #dceaf5;border-radius:22px;background:#fff;box-shadow:0 8px 22px rgba(35,82,126,.09)}.study-settings-grid h2{margin:0 0 14px;font-size:19px}.study-settings-grid label{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:10px;margin-top:10px;color:#57728f;font-weight:850}.study-settings-grid select,.study-settings-grid input{width:100%;min-width:0;height:44px;padding:0 12px;border:1px solid #cfe1f0;border-radius:12px;background:#f8fcff;color:#173f78;font:inherit;font-weight:800}.study-settings-grid p{margin:10px 0 0;color:#7a90a8;font-size:13px}.study-settings-fixed b{display:inline-block;padding:9px 14px;border-radius:12px;background:#eaf5ff;color:#1680e8}.study-settings-page>footer{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;width:min(100%,1040px);margin:22px auto 0;padding-bottom:max(16px,var(--sab))}.study-settings-page>footer button{min-height:50px;padding:0 24px;border:0;border-radius:15px;background:#1688f8;color:#fff;font-weight:950;box-shadow:0 8px 18px rgba(22,119,232,.18)}.study-settings-page>footer .secondary{border:1px solid #bcd9ef;background:#fff;color:#567490;box-shadow:none}.study-settings-grid article{position:relative}.study-settings-grid h2{line-height:24px;padding-right:34px}.study-enable{position:absolute!important;top:19px;right:18px;display:flex!important;grid-template-columns:none!important;align-items:center;justify-content:center;margin:0!important;padding:0;cursor:pointer;user-select:none}.study-enable input{width:22px!important;height:22px!important;min-width:0;flex:0 0 auto;accent-color:#1688f8;cursor:pointer}.study-settings-grid select:disabled,.study-settings-grid input:disabled{opacity:.45;background:#eef3f7;cursor:not-allowed}.study-enable-words{right:48px!important}
@media(max-width:700px){.study-settings-page{padding:14px 10px}.study-settings-page>header{grid-template-columns:46px 1fr 46px}.study-settings-page>header>button{width:44px;height:44px}.study-settings-grid{grid-template-columns:1fr}.study-settings-grid article{padding:15px}.study-enable{top:16px;right:15px}.study-enable-words{right:45px!important}.study-settings-grid label{grid-template-columns:105px minmax(0,1fr);font-size:14px}.study-settings-page>footer{position:sticky;bottom:0;padding:12px 0 max(12px,var(--sab));background:linear-gradient(transparent,#edf8ff 22%)}.study-settings-page>footer button{flex:1;padding:0 12px}}

/* ===== V7.2.0 口算：九宫格数字键盘 + 分数线 + 分数竖排（左题右键） ===== */
.oral-suite .oral-keypad{grid-auto-flow:row}
.oral-suite .oral-keypad .keyDot{grid-column:1;grid-row:4}
.oral-suite .oral-keypad .key0{grid-column:2;grid-row:4}
.oral-suite .oral-keypad .keyBack{grid-column:3;grid-row:4}
.oral-suite .oral-keypad .keyFracBtn{display:none;grid-column:1;grid-row:5;place-items:center}
.oral-suite .oral-keypad .keyYou{display:none;grid-column:3;grid-row:4;place-items:center}
.oral-suite .oral-keypad .equals{grid-column:1/-1;grid-row:5}
.oral-suite .ps-card.is-frac .keyDot{display:none}
.oral-suite .ps-card.is-frac .key0{grid-column:1;grid-row:4}
.oral-suite .ps-card.is-frac .keyBack{grid-column:2;grid-row:4}
.oral-suite .ps-card.is-frac .keyYou{display:grid;grid-column:3;grid-row:4}
.oral-suite .ps-card.is-frac .keyFracBtn{display:grid}
.oral-suite .ps-card.is-frac .equals{grid-column:2/4;grid-row:5}
.oral-keypad button.keyFracBtn{background:linear-gradient(#eaf6ff,#d4ebff);border-color:#8fd0ff}
.oral-keypad button.keyYou{background:linear-gradient(#fff3e2,#ffe2c0);border-color:#f3c48b;color:#8a5310;font-size:clamp(24px,2.6vw,34px)}
.keyFrac{display:block;width:56%;height:6px;border-radius:4px;background:#0a3d80;margin:0 auto}
/* 题目中的分数（竖排），em 单位随题号字号缩放 */
.oral-question .fx-operand{display:inline-flex;align-items:center;vertical-align:middle;margin:0 .05em}
.oral-question .fx-whole{margin-right:.1em}
.oral-question .fx-frac{display:inline-flex;flex-direction:column;align-items:stretch;vertical-align:middle;line-height:1.06;margin:0 .03em}
.oral-question .fx-n,.oral-question .fx-d{padding:0 .14em;text-align:center;min-width:.7em}
.oral-question .fx-n{border-bottom:.08em solid currentColor}
.oral-question .fx-op{margin:0 .2em}
.oral-question.compact .fx-n,.oral-question.compact .fx-d{padding:0 .1em}
/* 答案框中的分数（竖排） */
.oral-answer .af{display:inline-flex;flex-direction:column;align-items:stretch;vertical-align:middle;line-height:1.04}
.oral-answer .af-n,.oral-answer .af-d{padding:0 8px;text-align:center;min-width:30px}
.oral-answer .af-n{border-bottom:3px solid currentColor}
.oral-answer .af-ph{font-style:normal;color:#9bb8d6;font-weight:700}
/* 矮横屏（手机横放）单栏：7 列 × 2 行，容纳分数线/小数点 */
@media(max-height:600px) and (orientation:landscape){
  html.device-landscape .oral-suite .oral-keypad .keyDot,
  html.device-landscape .oral-suite .oral-keypad .key0,
  html.device-landscape .oral-suite .oral-keypad .keyBack,
  html.device-landscape .oral-suite .oral-keypad .keyFracBtn,
  html.device-landscape .oral-suite .oral-keypad .keyYou,
  html.device-landscape .oral-suite .oral-keypad .equals{grid-row:auto;grid-column:auto}
  html.device-landscape .oral-suite .oral-keypad{grid-auto-flow:row dense}
  html.device-landscape .oral-suite .oral-keypad .keyDot{grid-column:3;grid-row:2}
  html.device-landscape .oral-suite .oral-keypad .key0{grid-column:4;grid-row:2}
  html.device-landscape .oral-suite .oral-keypad .keyBack{grid-column:5;grid-row:2}
  html.device-landscape .oral-suite .oral-keypad .equals{grid-column:6/8;grid-row:2}
  html.device-landscape .oral-suite .ps-card.is-frac .oral-keypad{grid-template-columns:repeat(8,minmax(0,1fr))}
  html.device-landscape .oral-suite .ps-card.is-frac .key0{grid-column:2;grid-row:2}
  html.device-landscape .oral-suite .ps-card.is-frac .keyBack{grid-column:3;grid-row:2}
  html.device-landscape .oral-suite .ps-card.is-frac .keyYou{grid-column:4;grid-row:2;display:grid}
  html.device-landscape .oral-suite .ps-card.is-frac .keyFracBtn{grid-column:5;grid-row:2;display:grid}
  html.device-landscape .oral-suite .ps-card.is-frac .equals{grid-column:6/9;grid-row:2}
}
.oral-question .fx-line{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap;gap:.04em}

/* 分数作答：分母先、分子后，支持带分数；输入框槽位高亮 */
.oral-answer .af-edit{display:inline-flex;flex-direction:row;align-items:center;gap:2px}
.oral-answer .af-frac{display:inline-flex;flex-direction:column;align-items:stretch;line-height:1.05}
.oral-answer .af-slot{min-width:46px;min-height:29px;padding:0 6px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid transparent}
.oral-answer .af-bar{height:3px;background:#0a3d80;border-radius:2px;margin:2px 0}
.oral-answer .af-whole{padding:0 4px;align-self:center}
.oral-answer .af-slot.active{background:#d6efff;box-shadow:0 0 0 3px rgba(21,144,234,.30);border-color:#7cc7ff}
.oral-answer .af-slot.empty{color:#b9d4ec}
.oral-answer .af-blank{display:inline-block;width:20px;height:3px;border-radius:2px;background:#cfe4f7}
.oral-answer .af-cur{display:inline-block;width:3px;height:1.05em;background:#1590ea;border-radius:2px;animation:afBlink 1s steps(1) infinite}
.oral-note.is-tip{color:#1f8fe0;font-weight:800}
@keyframes afBlink{50%{opacity:0}}
@media(max-width:799px),(orientation:portrait){.oral-answer .af-slot{min-width:40px;min-height:26px}}
