
  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  :root{--pri:#7f0909;--pri-soft:#fdf6e3;--ok:#22c55e;--warn:#d97706;--no:#dc2626;--bg:#fbf6ea;--card:#fffaf0;--txt:#3d2914;--sub:#8b6f47;--line:#e5cfae;--maxw:720px;--sec:#c9a227;--shadow:0 4px 14px rgba(90,60,20,.10)}
  body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--txt);line-height:1.55}
  a{color:inherit;text-decoration:none}
  .header{display:flex;align-items:center;justify-content:space-between;padding:10px 4px 12px;background:transparent;border-bottom:none;position:static;z-index:auto}
  .header-inner{max-width:var(--maxw);width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative}
  /* 顶栏控制项容器（用户切换 + 图标按钮 + 回到统一平台）：抽成 class，便于手机端用 CSS 控制间距 */
  .hd-acts{display:flex;align-items:center;gap:8px}
  .hd-bottom{display:contents}
  /* 用户切换按钮屏幕居中 */
  .hd-center{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;z-index:3}
  .header h1{font-size:16px;font-weight:700;display:flex;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .header .logo{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#c9a227,#7f0909);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px}
  .header .reset{font-size:12px;color:var(--sub);background:#f3f4f6;border:none;border-radius:7px;padding:6px 10px;font-weight:600}
  .header .reset:active{opacity:.8}
  .container{padding:16px 16px 40px;max-width:var(--maxw);margin:0 auto;padding-bottom:24px;min-height:calc(100dvh - 52px)}
  .sec-title{font-size:13px;font-weight:700;color:var(--sub);margin:14px 0 8px}
  .sec-title:first-child{margin-top:4px}
  .modes{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:10px}
  .mode{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 10px;cursor:pointer;transition:.15s;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:92px}
  .mode:active{transform:scale(.97)}
  .mode:hover{border-color:var(--pri);box-shadow:0 4px 16px rgba(90,60,20,.12)}
  .mode .ico{font-size:26px;line-height:1;width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;border-radius:12px}
  .mode.choice .ico{background:#fbf1d6;color:#b8860b}
  .mode.fill .ico{background:#fdf0db;color:#d97706}
  .mode.cloze .ico{background:#f6e4d3;color:#7f0909}
  .mode.pf .ico{background:#fbf1d6;color:#b8860b}
  .mode.dialog .ico{background:#fbe9e2;color:#7f0909}
  .mode.combine .ico{background:#f0e0bb;color:#7a3b12}
  .mode.bank .ico{background:#fbf1d6;color:#b8860b}
  .mode.wrong .ico{background:#fbe9e2;color:#7f0909}
  .mode.trash .ico{background:#f0e0bb;color:#7a3b12}
  .mode.listen .ico{background:#fbf1d6;color:#b8860b}
  .mode .t{font-size:15px;font-weight:600;margin:8px 0 4px}
  .mode .d{font-size:12px;color:var(--sub);line-height:1.45}
  .fy-type{padding:9px 16px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--txt);font-size:14px;cursor:pointer;font-weight:600;transition:.15s}
  .fy-type:hover{border-color:var(--pri);filter:brightness(1.02)}
  .fy-type.sel{border-color:var(--pri);background:var(--pri);color:#fff}
  .fy-row{display:flex;flex:1 1 100%;align-items:center;gap:10px;padding:9px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--txt);transition:.15s;user-select:none}
  .fy-row:hover{border-color:var(--pri);filter:brightness(1.02)}
  .fy-row.on{border-color:var(--pri);background:linear-gradient(135deg,rgba(201,162,39,.10),rgba(127,9,9,.06))}
  .fy-row .fy-chk{width:17px;height:17px;accent-color:var(--pri);cursor:pointer;margin:0;flex:0 0 auto}
  .fy-row .fy-lbl{font-size:14px;font-weight:700;white-space:nowrap;flex:0 0 auto}
  .fy-row .fy-axis{flex:1 1 auto;min-width:120px;display:flex;flex-direction:column;gap:3px}
  .fy-row .fy-axis.off{opacity:.4;justify-content:center}
  .fy-row .fy-range{width:100%;accent-color:var(--pri);cursor:pointer;height:22px;margin:0}
  .fy-row .fy-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--sub);line-height:1;padding:0 2px}
  .fy-row .fy-scale .fy-mid{opacity:.75}
  .fy-row .fy-val{font-size:12px;color:var(--sub);white-space:nowrap;flex:0 0 auto;min-width:56px;text-align:right}
  .fy-row .fy-val b{color:var(--pri);font-size:16px}
  /* 分院帽题型选择：选择题/填空题/完形填空/短文填空 4 种并排同一行（其余题型仍各占一行） */
  .fy-row.fy-inline{flex:1 1 0;min-width:0}
  .exam-cont{margin:6px 0 2px}
  .exam-note{margin:14px 0;text-align:center;font-size:13px;color:var(--sub)}
  /* ===== 手机竖屏（≤600px）：参照语文平台 —— 紧凑内边距 + 「标题一行（居中） + 控制项一行（居中）」 + 功能格 2 列 ===== */
  


@media (max-width:600px){
    /* 内容区：与语文 .wrap 的手机内边距一致（原 16/40/24 过松，是「间距很大」的主因） */
    .container{padding:6px 8px 16px;min-height:0}
    /* 功能格 2 列；grid-auto-rows 必须显式改 auto —— 继承的 1fr 会把行高拉满造成大间距 */
    .modes{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:10px;margin-top:0}
    .mode{padding:12px 6px;min-height:64px;gap:4px}
    .mode .ico{width:32px;height:32px;font-size:20px;margin-bottom:4px}
    .mode .t{font-size:13px;margin:4px 0 2px}
    .mode .d{font-size:10.5px;line-height:1.3}
    .mode .d b{font-size:12px}
    .sec-title{font-size:13px;margin:8px 0 5px}
    .version-bar{margin-top:10px;padding:6px;font-size:12px}
    .fy-row.fy-inline{flex:1 1 100%}
    /* 顶栏：标题一行（居中）+ 【用户切换 + 光荣榜等图标按钮】同一行（压缩纵向空间，原分两行） */
    .header{padding:6px 0 8px}
    .header-inner{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 8px;position:relative}
    .header h1{flex:1 1 100%;font-size:18px;justify-content:center;text-align:center;max-width:100%;overflow:visible;text-overflow:clip;white-space:normal;line-height:1.25}
    /* 用户切换 + 图标按钮 作为一个居中整体（对齐科学平台：整组居中，而非左/右两端分布） */
    .hd-bottom{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:10px;width:100%;order:2;margin:0}
    .hd-center{position:static;transform:none;left:auto;width:auto;flex:0 0 auto;order:0;margin:0}
    .hd-acts{order:0;flex:0 0 auto;width:auto;justify-content:center;flex-wrap:nowrap;gap:10px}
    /* 图标按钮与「回到统一平台」统一 38px 触控尺寸（与语文一致）；手机端后者只留图标
     * ⚠️ 必须加 body 前缀提高优先级：本文件后段有 .icon-btn{50px} / .home-link{50px} 的
     *    无条件规则（非媒体查询内），同优先级下会覆盖这里的手机端尺寸。 */
    body .icon-btn{width:38px;height:38px;border-radius:10px}
    body .icon-btn svg{width:20px;height:20px}
    body .home-link{width:38px;height:38px;padding:0;justify-content:center;border-radius:10px;gap:0}
    body .home-link svg{width:20px;height:20px}
    body .home-link .hl-txt{display:none}
    /* 用户切换胶囊：与语文一致（36px 高 / 26px 头像 / 14px 名字），居中作为控制行元素 */
    #uniUserSwitch.uni-us{height:36px;gap:7px;padding:0 14px 0 5px;border-width:1.5px;flex:0 0 auto;margin:0}
    #uniUserSwitch.uni-us .uav{width:26px;height:26px}
    #uniUserSwitch.uni-us .unm{font-size:14px}
    .pg-side{display:none}
    .pg-nav-sm{display:flex}
    .pg-nums{gap:5px;margin:10px 0 4px}
    .pg-nums .bp{min-width:32px;height:32px;font-size:14px}
  }
  /* ===== 超窄屏（≤380px）：再收一档（与语文一致） ===== */
  @media (max-width:380px){
    .modes{gap:6px}
    .mode{padding:8px 4px;min-height:52px;gap:2px}
    .mode .ico{width:26px;height:26px;font-size:17px;margin-bottom:2px}
    .mode .t{font-size:11px;margin:2px 0 1px}
    .mode .d{font-size:9px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
    .mode .d b{font-size:10.5px}
    .container{padding:6px 8px 8px}
    .header{padding:4px 0 6px}
    .header h1{font-size:16px}
    .version-bar{margin-top:6px;padding:4px;font-size:11px}
    body .icon-btn{width:36px;height:36px}
    body .icon-btn svg{width:19px;height:19px}
    body .home-link{width:36px;height:36px}
    .hd-acts{gap:9px}
    #uniUserSwitch.uni-us{height:34px;padding:0 12px 0 4px;gap:6px}
    #uniUserSwitch.uni-us .uav{width:24px;height:24px}
    #uniUserSwitch.uni-us .unm{font-size:13px}
  }
  .panel{background:var(--card);border-radius:14px;padding:10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
  .btn-main{width:100%;background:var(--pri);color:#fff;border:none;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:8px}
  .btn-main:active{opacity:.9}
  .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .btn-sub{width:100%;background:#f9fafb;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:13px;font-weight:600;color:var(--txt);display:flex;align-items:center;justify-content:center;gap:5px}
  .btn-sub .dot{width:7px;height:7px;border-radius:50%}
  .rules-card{background:var(--card);border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden;margin-top:2px}
  .rules-head{display:flex;align-items:center;gap:8px;padding:11px 13px;cursor:pointer;user-select:none}
  .rules-head .rh-ico{font-size:15px}
  .rules-head .rh-t{font-size:14px;font-weight:700;flex:1}
  .rules-head .rh-arrow{font-size:12px;color:var(--sub);transition:transform .18s ease}
  .rules-card.open .rh-arrow{transform:rotate(180deg)}
  .rules-body{max-height:0;overflow:hidden;transition:max-height .22s ease}
  .rules-card.open .rules-body{max-height:320px}
  .rules{background:transparent;padding:0 13px 12px;font-size:12px;color:#4b5563}
  .rules li{list-style:none;position:relative;padding-left:12px;margin-bottom:5px;line-height:1.45}
  .rules li::before{content:"·";position:absolute;left:0;font-weight:800;color:var(--pri)}
  .rules b{color:var(--txt)}
  .screen{display:none}
  .screen.on{display:block}
  .topbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
  .topbar .back{width:34px;height:34px;border-radius:10px;background:#f3f4f6;border:none;font-size:18px;display:flex;align-items:center;justify-content:center}
  .topbar h2{font-size:17px;font-weight:700;flex:1}
  .progress{height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden;margin-bottom:14px}
  .progress i{display:block;height:100%;background:var(--pri);width:0;transition:width .25s}
  .qcard{background:var(--card);border-radius:16px;padding:16px;margin-bottom:12px}
  .qmeta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
  .tag{font-size:11px;padding:3px 9px;border-radius:10px;background:var(--pri-soft);color:var(--pri);font-weight:600}
  .qnum{font-weight:800;font-size:15px;color:var(--pri);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}
  .q-trash{margin-left:auto;border:1px solid var(--line);background:var(--bg);color:var(--sub);border-radius:8px;font-size:12px;padding:4px 8px;cursor:pointer;white-space:nowrap;font-weight:600}
  .q-trash:hover{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
  .qtext{font-size:calc(16px * var(--fz, 1));line-height:1.7;margin-bottom:12px}
  /* 一键问AI按钮：与题干第一行同排（flex 行布局） */
  .ai-stem-row{display:flex;align-items:flex-start;gap:8px}
  .ai-stem-row > *{flex:1 1 auto;min-width:0}
  .ai-stem-row > .askai-btn{flex:0 0 auto;flex-shrink:0;margin:0;align-self:center}
  .opt{display:block;width:100%;text-align:left;background:#fafafa;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:9px;font-size:calc(15px * var(--fz, 1));color:var(--txt);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
  .opt:hover:not(.sel):not(.ok):not(.no){transform:scale(1.04);border-color:var(--ok);background:#f0fdf4;box-shadow:0 6px 16px rgba(34,197,94,.18);z-index:2}
  .opt.sel{border-color:var(--ok);background:#dcfce7;box-shadow:0 2px 10px rgba(34,197,94,.15)}
  .opt.ok{border-color:var(--ok);background:#dcfce7}
  .opt.no{border-color:var(--no);background:#fee2e2}
  .opt .lab{display:inline-block;width:22px;font-weight:700;color:var(--pri)}
  .opt.ok .lab{color:var(--ok)}.opt.no .lab{color:var(--no)}
  .wrong-item .opt .lab{width:auto;min-width:22px;margin-right:12px}
.opt-grid{display:flex;flex-wrap:wrap;gap:10px 14px;margin:8px 0 6px;align-items:stretch}
.opt-grid .opt{margin-bottom:0;width:auto;flex:0 0 auto;max-width:100%;display:inline-flex;align-items:center}
  .fillinp{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:16px 18px;font-size:calc(20px * var(--fz, 1));margin:6px 0;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
  .fillinp:hover{border-color:var(--ok);box-shadow:0 4px 12px rgba(34,197,94,.15);transform:scale(1.02)}
  .fillinp:focus{outline:none;border-color:var(--ok);background:#f0fdf4}
  /* 填空题：题干内联逐空输入框（有几个空给几个框） */
  .qtext.fill-inline{line-height:2.6;display:block;word-break:break-word}
  .fillmini{width:120px;border:1.5px solid var(--line);border-radius:8px;padding:6px 10px;font-size:calc(19px * var(--fz, 1));margin:0 3px;vertical-align:baseline;background:#fff;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
  .fillmini:hover{border-color:var(--ok);box-shadow:0 3px 8px rgba(34,197,94,.15);transform:scale(1.04)}
  .fillmini:focus{outline:none;border-color:var(--ok);background:#f0fdf4}
  .fillmini.ok{border-color:var(--ok);background:#ecfdf5;color:var(--ok)}
  .fillmini.no{border-color:var(--no);background:#fef2f2;color:var(--no)}
  /* ===== 选词填空：候选词池 + 空位点击/拖拽 ===== */
  .pfbank{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 12px;padding:12px;border-radius:12px;background:#f7edd0;border:1px solid var(--pri-soft)}
  .pfbank .pf-title{font-weight:800;color:var(--pri);margin-right:6px;font-size:16px}
  .pfword{display:inline-flex;align-items:center;padding:8px 14px;border-radius:10px;background:#fff;border:2px solid var(--pri);color:#7a3b12;font-size:calc(18px * var(--fz, 1));font-weight:700;cursor:grab;user-select:none;box-shadow:0 1px 3px rgba(0,0,0,.12);transition:opacity .15s,transform .1s}
  .pfword:hover{transform:translateY(-1px)}
  .pfword.drag{opacity:.4}
  .pfword.used{pointer-events:none;opacity:.25;filter:grayscale(1);cursor:default}
  .pfslot{display:inline-flex;align-items:center;min-width:130px;min-height:46px;padding:6px 12px;border:2px dashed var(--line);border-radius:10px;background:#fdf8ec;cursor:pointer;font-size:18px;font-weight:700;color:#7a3b12;transition:border-color .15s,background .15s}
  .pfslot.placeholder{color:#9ca3af;font-weight:400;font-size:14px}
  .pfslot.act{border:2px solid var(--pri);background:#f3e4c0}
  .pfslot.over{border-color:var(--pri);background:#f3e4c0}
  .pfslot.filled{border:2px solid var(--pri);background:#f7edd0}
  .pfslot.ok{border-color:var(--ok);background:#ecfdf5;color:var(--ok)}
  .pfslot.no{border-color:var(--no);background:#fef2f2;color:var(--no)}
  .pf-hint{font-size:13px;color:var(--sub);margin:2px 0 6px}
  .passage{background:#f9fafb;border-radius:12px;padding:14px;font-size:calc(15px * var(--fz, 1));line-height:1.9;margin-bottom:12px}
  .passage b{color:var(--pri)}
  .blankrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line)}
  .blankrow .bn{font-weight:700;color:var(--pri);min-width:30px}
  .blankrow .bo{flex:1;display:flex;gap:6px;flex-wrap:wrap}
  .bo span{padding:6px 12px;border-radius:9px;background:#f3f4f6;font-size:14px}
  .bo span.sel{background:var(--pri);color:#fff}
  .bo span.ok{background:var(--ok);color:#fff}
  .bo span.no{background:var(--no);color:#fff}
  .fb{margin-top:14px;padding:14px;border-radius:12px;background:#f9fafb;display:none}
  .fb.show{display:block}
  .fb .res{font-weight:800;margin-bottom:6px}
  .fb .res.ok{color:var(--ok)}.fb .res.no{color:var(--no)}
  .fb .ans{color:var(--pri);font-weight:700}
  .fb .exp{color:#4b5563;margin-top:6px;font-size:13px}
  .act{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
  .act button{flex:1;min-width:90px;border:none;border-radius:12px;padding:12px;font-size:14px;font-weight:700}
  /* 提交按钮放大 200%：练习每题「提交答案」(btn-submit) + 分院帽「提交试卷」(.exam-submit) */
  #btn-submit,.exam-submit .primary{zoom:2}
  @media(max-width:600px){#btn-submit,.exam-submit .primary{zoom:1.4}}
  .act .primary{background:var(--pri);color:#fff}
  .act .secondary{background:#f3f4f6;color:var(--txt)}
  .act .danger{background:#fee2e2;color:#b91c1c}
  .listitem{background:var(--card);border-radius:12px;padding:11px 12px;margin-bottom:8px}
  /* 已剔除题：整题置灰 + 居中横线表示删除（不可再作答） */
  .listitem.trashed{position:relative;opacity:.5;filter:saturate(.4)}
  .listitem.trashed::after{content:"";position:absolute;left:0;right:0;top:50%;height:3px;background:#ef4444;transform:translateY(-50%);pointer-events:none;box-shadow:0 0 5px rgba(239,68,68,.45)}
  .trash-tag{display:inline-block;margin:2px 0 6px;padding:2px 9px;border-radius:999px;background:#fde8e8;color:#b91c1c;font-size:12px;font-weight:700;border:1px solid #fca5a5}
  .listitem .t{font-size:calc(16px * var(--fz, 1));font-weight:600;margin-bottom:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .listitem .s{font-size:calc(14px * var(--fz, 1));color:var(--sub);line-height:1.45}
  .listitem .acts{display:flex;gap:8px;margin-top:9px}
  .listitem .acts button{font-size:13px;border:none;border-radius:7px;padding:5px 9px;background:#f3f4f6;color:var(--txt)}
  .empty{text-align:center;color:var(--sub);padding:40px 0;font-size:14px}
  .toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.78);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;z-index:50;display:none}
  .count-pill{font-size:12px;color:var(--sub);margin-left:auto}
  .seclevel{display:flex;gap:5px;margin:2px 0 4px;background:#f5ecd6;padding:4px;border-radius:10px}
  .seclevel .lv{flex:1;border:none;background:transparent;padding:7px;border-radius:8px;font-size:13px;font-weight:700;color:var(--sub);transition:.12s}
  .seclevel .lv.sel{background:#fff;color:var(--pri);box-shadow:0 1px 3px rgba(0,0,0,.08)}
  .seclevel .lv:active{transform:scale(.97)}
  .bank-tools{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;color:var(--sub);flex-wrap:wrap}
  .bank-tools select{padding:4px 8px;border:1.5px solid var(--line);border-radius:7px;font-size:13px;background:#fff;color:var(--txt);font-weight:600}
  .bank-search-box{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--sub)}
  .bank-search-box input{width:200px;max-width:46vw;padding:4px 9px;border:1.5px solid var(--line);border-radius:7px;font-size:13px;background:#fff;color:var(--txt)}
  .bank-search-box .bs-clear{border:1px solid var(--line);background:var(--bg);color:var(--sub);border-radius:7px;padding:3px 7px;cursor:pointer;font-size:12px}
  .ans-red{color:#ef4444;font-weight:800}
  /* 英语「划线部分」题：高亮被划线的字母(语音)或单词(同类词)，红色下划线 + 加粗，不覆盖原有文字色 */
  .uline{text-decoration:underline;text-decoration-color:#ef4444;text-decoration-thickness:2px;text-underline-offset:3px;font-weight:800}
  .optt{display:inline-block;padding:5px 11px;border-radius:8px;margin:3px 6px 3px 0;background:#f3f4f6;font-size:16px;line-height:1.4}
  .optt.green{color:#16a34a;font-weight:800;background:#dcfce7}
  .optt.red{color:#ef4444;font-weight:800;background:#fee2e2}
  .optt.blue{color:#1d4ed8;font-weight:700;background:#dbeafe}
  .exp{font-size:calc(14px * var(--fz, 1));color:#4b5563;margin-top:6px;background:#f9fafb;border-radius:8px;padding:8px 10px;line-height:1.5;border-left:3px solid var(--pri)}
  .bank-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0 18px;font-size:13px;color:var(--sub)}
  .bank-pager button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;color:var(--txt)}
  .bank-pager button:disabled{opacity:.4}
  .bank-pager .pginfo{font-weight:700;color:var(--txt)}
  /* ===== 统一翻页组件（复刻语文平台题库浏览 browse-side / browse-pager）：左右贴边竖按钮 + 底部 7 格页码 ===== */
  .pg-layout{display:flex;align-items:stretch;gap:8px}
  .pg-side{flex:0 0 46px;border:1px solid var(--line);background:var(--card);border-radius:12px;
    cursor:pointer;color:var(--pri);font-size:20px;display:none;flex-direction:column;
    align-items:center;justify-content:center;gap:4px;transition:.15s;
    /* 不被 .pg-layout 的 align-items:stretch 拉成整行长条：否则按钮高达 3400px+，
       内容 justify-content:center 会把「上一页/下一页」文字挤到 y≈1800 而首屏看不见。
       高度改为随视口伸缩的竖条（见下 height：clamp 150~560px），观感对齐语文 .exam-side 整条竖栏，sticky 保证滚动时常驻视口。 */
    align-self:flex-start;position:sticky;top:12px;z-index:5;
    height:clamp(150px, 90vh, 2400px)}
  .pg-side span{font-size:13px;color:var(--sub)}
  .pg-side:hover:not(:disabled){border-color:var(--pri);box-shadow:0 4px 14px rgba(90,60,20,.12)}
  .pg-side:disabled{opacity:.4;cursor:not-allowed}
  .pg-main{flex:1;min-width:0;display:flex;flex-direction:column}
  /* 底部页码跳转：默认 7 个（当前页前三后三；首页显示当前页及后面 6 个） */
  .pg-nums{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:12px 0 4px}
  .pg-nums .bp{min-width:36px;height:36px;padding:0 8px;border-radius:9px;border:1px solid var(--line);
    background:var(--card);color:var(--txt);font-size:15px;font-family:inherit;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;transition:.15s}
  .pg-nums .bp:hover{border-color:var(--pri);color:var(--pri)}
  .pg-nums .bp.cur{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}
  /* 手机端（≤600px）：隐藏两侧竖按钮，改用内容底部的横向上一页/下一页（页码条始终保留） */
  .pg-nav-sm{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
  .pg-nav-sm button{flex:1;min-width:90px;border:none;border-radius:12px;padding:11px;font-size:14px;font-weight:700}
  .pg-nav-sm button:disabled{opacity:.45}
  /* 题库浏览原有的 .bank-pager 复用 pg-nav-sm 的手机显隐后，需恢复其描边（同特异度、写在前会被 border:none 覆盖） */
  .bank-pager.pg-nav-sm button{border:1px solid var(--line);background:#fff;color:var(--txt)}
  @media (min-width:601px){
    .pg-side{display:flex}
    .pg-nav-sm{display:none}
  }
  .blank-line{font-size:13px;margin-top:3px}
  /* inline 正确答案（绿色下划线） */
  .inline-ans{color:#16a34a;text-decoration:underline;text-underline-offset:2px;font-weight:800}
  /* 完形填空原文中的空序号标记（按选项顺序重编为 1..N） */
  .bn-inline{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#f0e0bb;color:#7a3b12;font-size:13px;font-weight:800;margin:0 2px;vertical-align:baseline}
  /* 完形原文空位：序号 + 下划线 + 深蓝着重显示 */
  .blank-slot{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;margin:0 2px;border-radius:6px;background:#f0e0bb;color:#7a3b12;font-size:14px;font-weight:900;text-decoration:underline;text-underline-offset:2px;vertical-align:baseline;box-shadow:inset 0 0 0 1px #a3521a}
  /* 批量练习 / 译文相关 */
  .fillres{margin:8px 0;font-size:calc(14px * var(--fz, 1))}
  .trans{margin-top:8px;font-size:13px;color:#475569;background:#f0fdf4;border-left:3px solid var(--ok);border-radius:8px;padding:8px 10px;line-height:1.6}
  /* 练习结果页：百分制分数 + 正确率 + 错题/正确分区 */
  .result-summary{text-align:center;padding:18px 12px;background:linear-gradient(135deg,#fbf1d6,#fdf8ec);border-radius:16px;margin:10px 0 4px;box-shadow:0 2px 10px rgba(90,60,20,.10)}
  .result-summary .score-big{font-size:48px;font-weight:900;color:var(--pri);line-height:1;font-family:Georgia,"Times New Roman",serif}
  .result-summary .score-big span{font-size:18px;margin-left:4px;color:var(--sub);font-weight:700}
  .result-summary .score-sub{margin-top:8px;color:var(--sub);font-weight:700;font-size:15px}
  /* ===== 分院帽成绩页：分院结果 + 学院盾徽 + 随机祝福语 ===== */
  .house-card{margin:14px 0 4px;background:var(--card);border-radius:16px;padding:18px 16px;text-align:center;box-shadow:0 2px 10px rgba(90,60,20,.10);border:1px solid var(--line)}
  .house-crest{display:flex;justify-content:center;margin-bottom:6px}
  .house-crest svg{filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}
  .house-name{font-size:18px;font-weight:800;color:var(--txt);margin:2px 0 4px}
  .house-name b{font-size:22px}
  .house-en{font-size:13px;font-weight:600;color:var(--sub);margin-left:4px}
  .house-words{font-size:14px;line-height:1.7;color:var(--sub);background:#fdf8ec;border-radius:10px;padding:10px 12px;margin-top:8px;border-left:3px solid var(--pri)}
  .sec-title.wrong-sec{color:#dc2626;border-bottom:2px solid #fecaca;padding-bottom:4px}
  .sec-title.right-sec{color:#16a34a;border-bottom:2px solid #bbf7d0;padding-bottom:4px}
  .qcard.wrong-card{border-left:4px solid #dc2626}
  .qcard.ok-card{border-left:4px solid #16a34a}
  .ans-blue{color:#2563eb;font-weight:800}
  .ans-green{color:#16a34a;font-weight:800}
  .orig-sent{margin:6px 0 2px;line-height:1.85}
  .trans-sent{margin:0 0 12px;font-size:13px;color:#475569;padding-left:12px;border-left:3px solid var(--ok);line-height:1.6}
  .blank-exp{margin-top:10px;background:#f9fafb;border-radius:10px;padding:10px}
  .blank-exp .be{display:block;margin-bottom:8px;font-size:13px;line-height:1.5}
  .blank-exp .be b{color:var(--pri)}
  .blank-exp .be .st{color:var(--ok);font-weight:700}
  .batch-bar{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
  .batch-bar button{flex:1;min-width:90px;border:none;border-radius:12px;padding:11px;font-size:14px;font-weight:700}
  .batch-bar .primary{background:var(--pri);color:#fff}
  .batch-bar .secondary{background:#f3f4f6;color:var(--txt)}
  .batch-bar button:disabled{opacity:.45}
  /* 填空题分页导航 / 整轮提交按钮：比常规按钮约大 2 倍 */
  .batch-bar .paged-nav{padding:20px 16px;font-size:27px;min-width:150px;border-radius:14px}
  .batch-bar .paged-nav.big{width:100%;padding:22px 16px;font-size:30px}
  /* 紧凑解析标签列表 */
  .exp-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;font-size:11px;color:#4b5563}
  .exp-list .be{background:#f9fafb;border-radius:6px;padding:3px 7px;line-height:1.4;border-left:2px solid var(--pri)}
  .exp-list .be b{color:#ef4444;margin-right:3px}
  .bank-passage{font-size:calc(15px * var(--fz, 1));line-height:1.85;margin:8px 0 10px;background:#f9fafb;border-radius:10px;padding:10px 12px;text-align:justify}
  .bank-wordbank{font-size:12px;color:var(--sub);margin:6px 0 8px}
  .bank-wordbank span{display:inline-block;background:#f3f4f6;padding:2px 7px;border-radius:6px;margin:2px 3px 2px 0}
  /* 题库统计卡片（错题本 / 已学会） */
  .bank-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 12px}
  .bank-stat{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:14px;padding:12px;border:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,.04);cursor:pointer;transition:transform .1s,box-shadow .12s}
  .bank-stat:active{transform:scale(.97)}
  .bank-stat .bs-ico{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;background:#f3f4f6}
  .bank-stat:first-child .bs-ico{background:#fee2e2}
  .bank-stat:last-child .bs-ico{background:#dcfce7}
  .bank-stat .bs-meta{display:flex;flex-direction:column}
  .bank-stat .bs-name{font-size:12px;color:var(--sub);font-weight:600}
  .bank-stat .bs-count{font-size:20px;font-weight:800;color:var(--txt);line-height:1.1;font-family:Georgia,"Times New Roman",serif}
  /* 分区标题 + 题型卡片 + 年级/卷别 横向滚动 */
  .bank-sec{margin-bottom:12px}
  .bank-sec-label{font-size:12px;font-weight:800;color:var(--sub);margin:0 2px 6px;letter-spacing:.5px}
  .bank-type-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
  /* 题型卡片整体缩小一档（同一行要放下 4 个题型 + 错题本） */
  .btype{position:relative;border:none;border-radius:12px;padding:7px 2px 6px;text-align:center;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:transform .1s,box-shadow .12s;overflow:hidden}
  .btype:active{transform:scale(.96)}
  .btype.sel{box-shadow:0 0 0 2px var(--pri),0 3px 10px rgba(90,60,20,.16)}
  .btype .ico{width:27px;height:27px;border-radius:9px;margin:0 auto 3px;display:flex;align-items:center;justify-content:center;font-size:15px}
  .btype .nm{font-size:14px;font-weight:700;color:var(--txt)}
  .btype .ct{display:block;font-size:13px;font-weight:800;margin-top:2px;line-height:1.2}
  .btype .ct small{font-weight:600;font-size:11px;opacity:.75}
  .btype.choice .ico{background:#fbf1d6;color:#b8860b}
  .btype.choice .ct{color:#b8860b}
  .btype.fill .ico{background:#fdf0db;color:#d97706}
  .btype.fill .ct{color:#d97706}
  .btype.cloze .ico{background:#f6e4d3;color:#7f0909}
  .btype.cloze .ct{color:#7f0909}
  .btype.passage_fill .ico{background:#f7e9d8;color:#a3521a}
  .btype.passage_fill .ct{color:#a3521a}
  .btype.dialog .ico{background:#fbe9e2;color:#b8860b}
  .btype.dialog .ct{color:#b8860b}
  .btype.combine .ico{background:#f0e0bb;color:#7a3b12}
  .btype.combine .ct{color:#7a3b12}
  /* 「错题本」卡片：排在题型末尾（堂堂=连词成句之后），沿用题型卡片样式 */
  .btype.bwrong .ico{background:#fee2e2;color:#b91c1c}
  .btype.bwrong .ct{color:#b91c1c}
  .bank-level-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .bank-level-nav{display:flex;gap:6px;width:max-content;padding:2px}
  /* 年级/卷别：放大约 1 倍 + 改为卡片样式（白底+圆角+投影），选中仍为品牌色 */
  .bank-level-nav .lv{border:none;background:#fff;border-radius:14px;padding:14px 24px;font-size:24px;font-weight:800;color:var(--txt);white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:.12s}
  .bank-level-nav .lv:active{transform:scale(.96)}
  .bank-level-nav .lv.sel{background:var(--pri);color:#fff}
  .bank-level-nav .lv:active{transform:scale(.96)}
  .bank-back{margin:4px 0 8px}
  .bank-back .lv{border:none;background:#f5ecd6;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:700;color:var(--txt)}
  /* ===== 错题本：提示 / 题型筛选 / 错题卡片 ===== */
  .wrong-hint{font-size:12px;color:var(--sub);background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:8px 10px;margin:8px 0 6px;line-height:1.6}
  .wrong-filter{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;-webkit-overflow-scrolling:touch}
  .wrong-filter .lv{flex:0 0 auto;border:none;background:#d8e2ee;border-radius:9px;padding:7px 12px;font-size:15px;font-weight:700;color:var(--sub);white-space:nowrap;transition:.12s}
  .wrong-filter .lv.sel{background:var(--pri);color:#fff}
  .wrong-filter .lv:active{transform:scale(.96)}
  .wrong-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}
  .wi-head{font-size:17px;font-weight:700;color:var(--txt);line-height:1.5;margin-bottom:8px}
  .wi-row{font-size:17px;margin:8px 0 4px;line-height:1.7;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .wi-row .wi-ans{flex:1 1 auto;min-width:0}
  /* 错题本：题目文字与正确答案/我的答案保持同字号（均为 17px），避免答案显小 */
  .wrong-item .wi-ans, .wrong-item .ans-green, .wrong-item .ans-red{font-size:17px}
  .wrong-item .cloze-note{font-size:14px;color:var(--sub);font-weight:600}
  .wi-miss{color:var(--sub);font-weight:400;font-size:13px}
  .wi-exp{font-size:15px;color:var(--sub);background:#fdf8ec;border-radius:8px;padding:7px 9px;margin-top:6px;line-height:1.6}
  .wi-streak{font-size:12px;color:#d97706;margin-top:0;text-align:right;flex:0 0 auto;white-space:nowrap}
  .listen-item .s{margin:3px 0 6px}
  .listen-item .acts{display:flex;gap:8px;flex-wrap:wrap}
  @media (max-width:380px){
    .bank-type-nav{gap:6px}
    .btype .ico{width:24px;height:24px;font-size:14px}
    .btype .nm{font-size:13px}
    .btype .ct{font-size:12px}
    /* 小屏下年级卡片适当收一档，但仍明显大于改版前的 13px */
    .bank-level-nav .lv{font-size:17px;padding:10px 16px;border-radius:12px}
  }

  /* ============ 自适应：平板 / 1080p / 2K 自动放大 ============ */
  /* 平板（768–1279）：略微放宽，避免内容过窄 */
  @media (min-width:768px) and (max-width:1279px){ :root{--maxw:720px} .container{padding:16px} }

  /* 1080p 笔记本 / 中小显示器（≥1280）：放宽内容、放大字号与触控区 */
  @media (min-width:1280px){
    :root{--maxw:760px}
    body{font-size:17px}
    .header{padding:12px 18px}
    .header h1{font-size:18px}
    .container{padding:14px}
    .sec-title{font-size:14px;margin:16px 0 10px}
    .mode{padding:14px 10px;min-height:92px}
    .mode .ico{width:44px;height:44px;font-size:26px}
    .mode .t{font-size:15px}
    .mode .d{font-size:12px}
    .modes{gap:10px}
    .icon-btn{width:34px;height:34px}
    .icon-btn svg{width:20px;height:20px}
    .qcard{padding:20px}
    .qnum{font-size:16px}
    .qtext{font-size:calc(18px * var(--fz, 1))}
    .opt{padding:14px 16px;font-size:calc(16px * var(--fz, 1))}
    .passage{font-size:calc(16px * var(--fz, 1));padding:16px}
    .blankrow .bo span{padding:7px 14px;font-size:15px}
    .fillinp{padding:16px 18px;font-size:calc(20px * var(--fz, 1))}
    .bank-passage{font-size:calc(15px * var(--fz, 1));padding:12px 14px}
    .btn-main{padding:12px;font-size:15px}
    .btn-sub{padding:11px;font-size:14px}
    .listitem{padding:14px}
  }

  /* ===== 1080P 横屏（1920×1080）：对齐社会首页基准 ===== */
  @media (orientation:landscape) and (min-width:1200px) and (max-width:1920px) and (max-height:1150px){
    :root{--maxw:1380px}
    .container{padding:10px 20px 6px}
    .header{padding:6px 18px;margin-bottom:4px}
    .header h1{font-size:20px}
    .hd-acts{gap:8px}
    .modes{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
    .mode{padding:18px 14px;min-height:106px}
    .mode .ico{width:48px;height:48px;font-size:30px;border-radius:10px;margin-bottom:2px}
    .mode .t{font-size:18px;font-weight:700;margin:2px 0 1px}
    .mode .d{font-size:13px;line-height:1.4}
    .mode .d b{font-size:14px}
    .icon-btn{width:42px;height:42px}
    .icon-btn svg{width:22px;height:22px}
    .version-bar{margin-top:4px;font-size:12px;padding:3px 0}
  }

  /* 1080p 显示器 / 2K（≥1921px，排除 1920×1080 笔记本，已由上面的横屏块覆盖）：进一步放大，舒适阅读 */
  @media (min-width:1921px){
    :root{--maxw:760px}
    body{font-size:18px}
    .header{padding:14px 20px}
    .header h1{font-size:19px}
    .container{padding:16px}
    .mode .ico{width:48px;height:48px;font-size:30px}
    .mode .t{font-size:16px}
    .mode .d{font-size:13px}
    .modes{gap:12px}
    .qcard{padding:22px}
    .qtext{font-size:calc(19px * var(--fz, 1))}
    .opt{padding:15px 18px;font-size:calc(17px * var(--fz, 1))}
    .passage{font-size:calc(17px * var(--fz, 1))}
    .bank-passage{font-size:calc(16px * var(--fz, 1))}
    /* ≥1921px 与语文 .exam-side 的 min-1920 档同号（68px/28px/15px） */
    .pg-side{flex:0 0 68px;font-size:28px}
    .pg-side span{font-size:15px}
  }

  /* 2K / 4K 大屏（≥2560）：最大尺寸，远距离也可读 */
  @media (min-width:2560px){
    :root{--maxw:760px}
    body{font-size:20px}
    .header{padding:18px 26px}
    .header h1{font-size:22px}
    .container{padding:18px}
    .sec-title{font-size:16px}
    .mode .ico{width:54px;height:54px;font-size:34px}
    .mode .t{font-size:17px}
    .mode .d{font-size:14px}
    .modes{gap:14px}
    .qcard{padding:28px}
    .qnum{font-size:18px}
    .qtext{font-size:calc(22px * var(--fz, 1))}
    .opt{padding:18px 22px;font-size:calc(20px * var(--fz, 1))}
    .passage{font-size:calc(19px * var(--fz, 1));line-height:1.95;padding:18px}
    .bank-passage{font-size:calc(18px * var(--fz, 1));padding:16px 18px}
    .btn-main{padding:14px;font-size:17px}
  }

  /* 桌面鼠标设备：增加悬停反馈，操作更有“网页感” */
  @media (hover:hover) and (pointer:fine){
    .card{cursor:pointer;transition:transform .12s,box-shadow .12s}
    .card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
    .btn-main{cursor:pointer}
    .btn-main:hover{opacity:.93}
    .btn-sub{cursor:pointer}
    .btn-sub:hover{background:#f3f4f6}
    .opt{cursor:pointer}
    .act button{cursor:pointer}
    .listitem .acts button{cursor:pointer}
    .reset{cursor:pointer}
  }

  /* 版本栏（参考 192.168.31.20:8001） */
  .version-bar { display: flex; align-items: center; justify-content: center; gap: 12px;
    margin-top: 16px; padding: 8px; font-size: 12px; color: var(--sub); flex-wrap: wrap; }
  .v-tag { font-weight: 700; color: var(--pri); letter-spacing: .5px; }
  .v-time { color: var(--sub); }
  .v-log { border: 1px solid var(--line); background: var(--card); color: var(--pri);
    border-radius: 8px; padding: 5px 10px; font-size: 12px; cursor: pointer; font-family: inherit; }
  .v-log:hover { background: var(--bg); }
  /* 更新日志弹窗 */
  .modal-overlay { position: fixed; inset: 0; background: rgba(31,35,41,.45);
    display: flex; align-items: center; justify-content: center; z-index: 100; padding: 16px; }
  .modal { background: var(--card); border-radius: 16px; width: 100%; max-width: 520px;
    max-height: 80vh; display: flex; flex-direction: column; box-shadow: 0 16px 48px rgba(31,35,41,.18); }
  .modal-head { display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px; border-bottom: 1px solid var(--line); }
  .modal-title { font-size: 16px; font-weight: 600; }
  .exit-x { margin-left: auto; border: none; background: transparent; color: var(--sub);
    font-size: 20px; line-height: 1; cursor: pointer; padding: 3px 8px; border-radius: 8px; }
  .modal-body { padding: 14px 18px; overflow-y: auto; font-size: 13.5px; line-height: 1.7; }
  /* 设置页文字整体放大一档（独立弹窗与嵌入「用户设置」合并弹窗右栏均生效） */
  #settingsBody { zoom: 1.15; }
  .clog-item { padding: 12px 2px; border-bottom: 1px solid var(--line); }
  .clog-item:last-child { border-bottom: none; }
  .clog-h { display: flex; align-items: baseline; gap: 10px; margin-bottom: 4px; }
  .clog-v { font-weight: 700; color: var(--pri); font-size: 13px; }
  .clog-t { font-size: 12px; color: var(--sub); }
  .clog-d { font-size: 13px; line-height: 1.6; color: #374151; }
  
.icon-btn { display: inline-flex; align-items: center; justify-content: center; position: relative;
    width: 50px; height: 50px; padding: 0; border: none; border-radius: 10px;
    background: transparent; color: var(--sub); cursor: pointer; transition: all .15s;
    vertical-align: middle; }
  .icon-btn:hover { background: var(--card); color: var(--txt); }
  .icon-btn svg { width: 27.5px; height: 27.5px; display: block; }
  /* 顶部垃圾站图标右上角的未恢复题数徽标 */
  .icon-btn .badge { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px;
    padding: 0 4px; border-radius: 9px; background: #ef4444; color: #fff; font-size: 11px;
    line-height: 18px; text-align: center; font-weight: 700; box-shadow: 0 0 0 2px var(--bg); }
  .home-link { display: inline-flex; align-items: center; gap: 5px; height: 50px;
    padding: 0 12px; border-radius: 10px; background: transparent; color: var(--sub);
    font-size: 14px; font-weight: 700; text-decoration: none; transition: all .15s; }
  .home-link:hover { background: var(--card); color: var(--txt); }
  .home-link svg { width: 25px; height: 25px; display: block; }
  .top-home-link { margin-left: auto; display: inline-flex; align-items: center; height: 30px;
    padding: 0 12px; border-radius: 8px; background: rgba(127,9,9,.08); color: var(--pri);
    font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; }
  .top-home-link:hover { background: var(--pri); color: #fff; }
  .user-switch { display: inline-flex; background: var(--card); border: 1px solid var(--line);
    border-radius: 999px; padding: 3px; gap: 2px; max-width: 100%; overflow: hidden; min-width: 0; }
  .user-switch .us { position: relative; overflow: visible; border: none; background: transparent;
    color: var(--sub); font-weight: 600; font-size: 12px; padding: 6px 10px;
    border-radius: 999px; cursor: pointer; white-space: nowrap; transition: all .15s; }
  .user-switch .uav { display: inline-block; width: 18px; height: 18px; border-radius: 50%;
    background-size: cover; background-position: center; vertical-align: middle;
    margin-right: 4px; background-repeat: no-repeat; overflow: hidden;
    border: 1px solid rgba(255,255,255,.15); }
  .user-switch .us.active, .userswitch .us-btn.sel { opacity: 1 !important;
    box-shadow: 0 0 0 2px rgba(255,215,0,.42), 0 0 16px 4px rgba(255,200,50,.6), inset 0 0 12px rgba(255,236,150,.4) !important;
    border: 2px solid #ffd84d !important;
    background: linear-gradient(135deg,#fff8dd 0%,#fff3b8 100%) !important;
    color: #8a6900 !important; font-weight: 700 !important; }
  .user-switch .us.active::after, .userswitch .us-btn.sel::after { content: '';
    position: absolute; inset: -3px; border-radius: 999px;
    border: 1.5px solid rgba(255,215,0,.55);
    animation: goldRing2 2.2s ease-in-out infinite; pointer-events: none; }
  @keyframes goldRing2 {
    0%,100% { box-shadow: 0 0 0 0 rgba(255,215,0,.55), 0 0 10px 2px rgba(255,200,50,.35); }
    50%     { box-shadow: 0 0 0 6px rgba(255,215,0,0),  0 0 24px 8px rgba(255,200,50,.2); } }
  .user-switch .us:not(.active), .userswitch .us-btn:not(.sel) { opacity: .5; filter: grayscale(.4) brightness(.85); }
  .user-switch .us:not(.active):hover, .userswitch .us-btn:not(.sel):hover { opacity: .75; filter: grayscale(.1) brightness(1); }
  .set-section { margin-bottom: 4px; }
  .set-section-title { font-size: 14px; font-weight: 700; color: var(--txt);
    margin: 12px 0 8px; display: flex; align-items: center; gap: 6px; }
  .set-rules { background: var(--bg); border: 1px solid var(--line);
    border-radius: 12px; padding: 10px 14px; }
  .set-rules .ri { display: flex; gap: 8px; margin: 5px 0; font-size: 14.5px;
    color: var(--sub); line-height: 1.7; }
  .set-rules .ri .dot { flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%;
    background: var(--sub); margin-top: 8px; opacity: .5; }
  .set-rules b { color: var(--txt); }
  .set-div { border: none; border-top: 1px dashed var(--line); margin: 8px 0; }
  .set-save-sec { display: flex; align-items: center; gap: 14px; margin-top: 4px; }
  .save-settings-btn { border: none; background: var(--pri); color: #fff;
    font-size: 16px; font-weight: 700; padding: 13px 30px; border-radius: 12px;
    cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
  .save-settings-btn:hover { filter: brightness(1.06); }
  .save-settings-btn:active { transform: scale(.97); }
  .save-hint { font-size: 13px; font-weight: 600; }
  .set-row { display: grid; grid-template-columns: 1fr 170px 170px;
    align-items: center; gap: 10px; margin: 8px 0; }
  .set-row .set-label { font-size: 13.5px; color: var(--txt); font-weight: 500; }
  .set-row .num-inp { width: 64px; padding: 6px 6px; border: 1px solid var(--line);
    border-radius: 8px; font-size: 14px; text-align: center; background: var(--bg);
    color: var(--txt); justify-self: center; font-family: inherit; }
  /* 滑动条：题型题数 / 每页题数（左右拖动调节） */
  .set-row .sl-box { display: flex; align-items: center; gap: 8px; justify-self: stretch; min-width: 0; }
  .set-row .slider { flex: 1 1 60px; width: auto; min-width: 60px; height: 6px; accent-color: var(--pri);
    cursor: pointer; margin: 0; padding: 0; }
  .set-row .sl-val { flex: 0 0 40px; min-width: 40px; text-align: center; font-size: 15px;
    font-weight: 800; color: var(--pri); }
  .col-hdr { font-size: 12px; color: var(--sub); text-align: center; }
  .set-hint { font-size: 12.5px; color: var(--sub); line-height: 1.65; margin: 2px 0 10px; }
  /* 工具箱：重置/清空按钮 + 密码弹层 + 折叠 + 悬停提示 */
  .tool-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
  .set-actions { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
  .set-actions .save-settings-btn { margin-left: auto; }
  .toolbox-btn { position: relative; border: none; border-radius: 12px; padding: 14px 22px;
    font-size: 15px; font-weight: 700; cursor: pointer; transition: .15s; color: #fff; font-family: inherit; }
  .toolbox-btn.danger { background: #ef4444; }
  .toolbox-btn.danger:hover { background: #dc2626; }
  .toolbox-btn.warn { background: #f59e0b; }
  .toolbox-btn.warn:hover { background: #d97706; }
  .toolbox-btn.ghost { background: transparent; border: 1px solid var(--line); color: var(--sub); }
  .toolbox-btn.ghost:hover { background: var(--bg); }
  /* 列头行：与数据行共用同一套栅格，去除多余上下间距（避免 2K 下内联 grid 覆盖导致错位） */
  .set-row-head { margin: 0 0 4px; padding: 0; }
  /* 设置内「题库（年级）」选择 chips：按当前用户学段列出（小学/初中），与首页年级标签视觉一致 */
  .bank-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 2px; }
  .bank-chips .lv { border: none; background: #eef2f7; border-radius: 10px; padding: 9px 16px;
    font-size: 14px; font-weight: 700; color: var(--sub); white-space: nowrap; cursor: pointer; transition: .12s; font-family: inherit; }
  .bank-chips .lv.sel { background: var(--pri); color: #fff; }
  .bank-chips .lv:active { transform: scale(.96); }
  /* 悬停提示：浮层追加到 body，永不超出弹窗被裁切 */
  #floatTip { position: fixed; z-index: 9999; max-width: 380px; background: #1f2937; color: #fff;
    font-size: 13px; font-weight: 500; line-height: 1.6; padding: 10px 14px; border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,.28); pointer-events: none; display: none; }
  #floatTip .ft-arrow { position: absolute; left: 0; width: 0; height: 0; border: 7px solid transparent; }
  #floatTip.up .ft-arrow { bottom: -13px; border-top-color: #1f2937; }
  #floatTip.down .ft-arrow { top: -13px; border-bottom-color: #1f2937; }
  /* 密码弹层 */
  .pwd-pop { margin-top: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg); }
  .pwd-pop-inner { display: flex; flex-direction: column; gap: 12px; }
  .pwd-pop-title { font-size: 13.5px; font-weight: 700; color: var(--txt); }
  .pwd-input { padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 15px;
    background: var(--card); color: var(--txt); font-family: inherit; }
  .pwd-pop-actions { display: flex; gap: 10px; }
  .pwd-pop-actions .toolbox-btn { padding: 11px 18px; font-size: 14px; }
  /* 垃圾站顶部工具条（清空按钮 + 密码弹层） */
  .trash-tools { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
  .trash-tools .pwd-pop { margin-top: 0; }
  /* 任务A 合并：质检缺陷题区块并入垃圾站 */
  .trash-qc-wrap{margin-top:18px;border-top:2px dashed var(--line);padding-top:14px}
  .trash-qc-head{font-size:15px;font-weight:700;color:#b45309;margin-bottom:10px}
  .listitem.trash-item.qc-item{border-left:4px solid #f59e0b}
  /* 折叠标题 */
  .set-section-title.collapsible { cursor: pointer; user-select: none; }
  .set-section-title.collapsible:hover { color: var(--pri); }
  .set-section-title .chev { display: inline-block; transition: transform .15s; font-size: 12px; opacity: .7; }

.hidden { display: none !important; }

.qcode{display:inline-block;color:var(--pri);font-weight:700;margin-right:7px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.95em;vertical-align:1px}
.zhtr{margin-top:8px;padding:7px 10px;background:#fdf8ec;border-left:3px solid var(--pri);border-radius:6px;color:#5a4a32;font-size:15px;line-height:1.65;white-space:pre-wrap;word-break:break-word}
.listen-hint{font-size:1.05em;color:#6b7a73;margin-top:8px;line-height:1.6}
.listen-head{margin-bottom:8px}
.listen-ctl{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.listen-ctl .primary,.listen-ctl .secondary{padding:16px 30px;font-size:24px;border-radius:12px}
.listen-script{margin:12px 0;padding:14px 16px;background:#eaf2ee;border-left:3px solid #7d9c90;border-radius:8px;color:#40534b;font-size:18px;line-height:1.9;white-space:pre-wrap;word-break:break-word}
.listen-script span[data-i]{border-radius:4px}
.listen-script span[data-i].hl{background:#cde7da;box-shadow:0 0 0 2px #cde7da}
.listen-script .spk{font-weight:700;font-style:normal}
.ls-sent.hl{background:#cde7da;border-radius:4px;box-shadow:0 0 0 2px #cde7da}
#btn-submit-listen{padding:16px 34px;font-size:26px;border-radius:12px}
.listen-q .qcard{margin-bottom:14px}
.listen-item .acts button{padding:12px 22px;background:#7d9c90;color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:18px}
/* 听力训练首页：上下两块（已练习 / 未作），舒缓配色 */
.lp-sec{margin-bottom:20px}
.lp-sec-head{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:700;color:#43584e;margin:6px 0 12px}
.lp-sec-head .lp-count{font-size:14px;color:#7a8a82;font-weight:500;background:#e6efe9;border:1px solid #d3e3d9;padding:2px 10px;border-radius:999px}
.lp-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.lp-stat{background:#e8f1eb;border:1px solid #d8e6dc;border-radius:12px;padding:10px 18px;font-size:15px;color:#4f6a5c}
.lp-stat b{font-size:24px;color:#5f7e72;margin-right:4px}
.lp-done{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.lp-todo{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}
.listcard{background:var(--card);border:1px solid #dfe9e3;border-radius:16px;padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:.15s;box-shadow:0 2px 6px rgba(95,126,114,.08)}
.listcard:hover{border-color:#9fbcae;transform:translateY(-2px);box-shadow:0 8px 20px rgba(95,126,114,.16)}
.listcard .lc-top{display:flex;justify-content:space-between;align-items:center}
.listcard .lc-title{font-size:20px;font-weight:700;color:#3e4e46;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:54px}
.listcard .lc-meta{font-size:15px;color:#7ca08f}
.listcard .lc-scores{display:flex;gap:8px;margin-top:2px}
.listcard .sc-badge{flex:1;text-align:center;border-radius:10px;padding:4px 2px 6px;font-size:13px;color:#6b7a73}
.listcard .sc-badge b{display:block;font-weight:700;font-size:16px}
.listcard .sc-badge.fst{background:#e6f1ec;color:#4f7d68}
.listcard .sc-badge.best{background:#eef0e6;color:#7d8a5e}
.listcard .sc-badge.dur{background:#e7eef2;color:#5b7c92}
.listcard .lc-acts{margin-top:auto;display:flex;gap:8px}
.listcard .lc-acts button{flex:1;padding:11px 0;font-size:18px;border:none;border-radius:10px;background:#7d9c90;color:#fff;cursor:pointer}
.listcard .lc-acts button.ghost{background:#e6efe9;color:#4f6a5c}
.listcard.lp-todo-card .lc-acts button{background:#88a7b0}
.listcard.lp-todo-card{background:#e0f4ff;border-color:#bfe3f5}
.lp-more{width:100%;margin-top:12px;padding:14px 0;font-size:18px;border:1px dashed #b9cdc1;background:#f3f8f4;color:#5f7e72;border-radius:12px;cursor:pointer}
@media (max-width:900px){ .lp-done{grid-template-columns:repeat(2,1fr)} .lp-todo{grid-template-columns:1fr} }
@media (max-width:520px){ .lp-done{grid-template-columns:1fr} }
#screen-listen .listcard .qcode{color:#6f8f83}
#screen-listen .listcard .tag{background:#e6efe9;color:#5f7e72}
.tiles{display:flex;flex-wrap:wrap;gap:8px}
.tile{padding:8px 12px;background:#f7edd0;border:1px solid #e6d3a3;border-radius:8px;cursor:pointer;font-size:15px;color:#7a3b12;transition:.12s}
.tile:hover{border-color:var(--pri)}
.tile.used{opacity:.4;pointer-events:none;background:#f1f5f9;border-color:#e2e8f0;color:#94a3b8}
.cmb-ans{min-height:44px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border:1.5px dashed #e6d3a3;border-radius:10px;background:#fdf8ec;margin:4px 0;outline:none}
.cmb-ans:focus{border-color:var(--pri)}
.cmb-ans:empty:before{content:"点击上方词块，按顺序组成句子";color:#94a3b8;font-size:14px}
.cmb-chip{padding:8px 12px;background:#dcfce7;border:1px solid #86efac;border-radius:8px;cursor:pointer;font-size:15px;color:#166534;transition:.12s}
.cmb-chip:hover{background:#bbf7d0}
.cmb-bar{display:flex;align-items:center;gap:12px;margin:6px 0 2px;flex-wrap:wrap}
.cmb-reset{padding:6px 14px;background:#fff;border:1px solid #fca5a5;color:#dc2626;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600}
.cmb-reset:hover{background:#fef2f2}
.cmb-hint{font-size:13px;color:var(--sub)}
.dlg-line{margin:6px 0;line-height:1.7;font-size:calc(15px * var(--fz, 1))}
.dlg-line .sp{font-weight:700;color:var(--pri);margin-right:4px}
.dlg-line .bo{display:inline-flex;flex-wrap:wrap;gap:8px;vertical-align:middle}
.dlg-line .bo span{margin:2px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:14px;background:#fff}
.dlg-line .bo span.sel{border-color:var(--pri);background:var(--pri);color:#fff}
.dlg-line .bo span.ok{border-color:#16a34a;background:#16a34a;color:#fff}
.dlg-line .bo span.no{border-color:#ef4444;background:#ef4444;color:#fff}
/* —— 情景对话：答案池 + 序号空 的作答方式 —— */
.dlg-slot{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:30px;padding:2px 12px;margin:0 4px;border:1.5px dashed var(--pri);border-radius:9px;cursor:pointer;font-size:14px;font-weight:700;color:var(--pri);background:#fff;vertical-align:middle}
.dlg-slot.act{border-style:solid;background:var(--pri);color:#fff;box-shadow:0 0 0 3px rgba(127,9,9,.18)}
.dlg-slot.filled{border-style:solid;border-color:var(--line);color:var(--txt);font-weight:600}
.dlg-slot.ok{border-color:#16a34a;background:#16a34a;color:#fff}
.dlg-slot.no{border-color:#ef4444;background:#ef4444;color:#fff}
.dlg-pool{margin:12px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.dlg-pool-title{font-size:13px;color:var(--sub);margin-bottom:8px;font-weight:700}
.dlg-cand{display:inline-flex;margin:4px 6px 4px 0;padding:8px 14px;border:1px solid var(--line);border-radius:9px;cursor:pointer;background:#fff;font-size:14px;color:var(--txt);transition:.15s;text-align:left}
.dlg-cand:hover{border-color:var(--pri);color:var(--pri);transform:translateY(-1px)}
.dlg-hint{font-size:12px;color:var(--sub);margin-top:6px}
.userswitch{display:flex;align-items:center;gap:10px;padding:8px 14px;background:linear-gradient(90deg,#fbf1d6,#f7edd0);border-bottom:1px solid var(--line)}
.us-label{font-size:13px;color:var(--sub);font-weight:600}
.us-btn{border:1px solid var(--line);background:#fff;color:var(--sub);padding:6px 16px;border-radius:999px;font-size:14px;cursor:pointer;transition:.15s}
.us-btn:hover{border-color:var(--pri);color:var(--pri)}
.us-btn.sel{background:var(--pri);color:#fff;border-color:var(--pri);font-weight:700;box-shadow:0 2px 6px rgba(90,60,20,.3)}
/* ===== Harry Potter 英伦风格增强（仅视觉，不改布局）===== */
body{background:radial-gradient(1200px 600px at 20% -10%,rgba(201,162,39,.10),transparent 60%),radial-gradient(1000px 500px at 110% 10%,rgba(127,9,9,.06),transparent 55%),linear-gradient(180deg,#fbf6ea 0%,#f7efdc 100%)!important}
.topbar{background:linear-gradient(135deg,#b8860b 0%,#d4af37 50%,#c9a227 100%)!important;color:#fffaf0!important}
.topbar h2{color:#fffaf0!important;letter-spacing:.5px}
.topbar .back{color:#fffaf0!important;background:rgba(255,255,255,.18)!important}
.btn,.primary{background:linear-gradient(135deg,#b8860b,#d4af37 60%,#c9a227)!important;color:#fffaf0!important;border:none!important;box-shadow:0 2px 8px rgba(184,134,11,.30)!important}
.btn:hover,.primary:hover{background:linear-gradient(135deg,#c9a227,#b8860b)!important}
.batch-bar .secondary{background:linear-gradient(135deg,#f2e4b8,#e8d294)!important;color:#5a4510!important;border:none!important}
.mode{border:1px solid var(--line)!important;box-shadow:var(--shadow)!important;background:var(--card)!important;transition:transform .15s,box-shadow .15s}
.mode:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(90,60,20,.15)!important}
.mode .ico{background:linear-gradient(135deg,rgba(201,162,39,.15),rgba(127,9,9,.08))!important}
.qcard{border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}
input,textarea,select{border:1px solid var(--line)!important;background:var(--card)!important}
input:focus,textarea:focus,select:focus{border-color:var(--sec)!important;box-shadow:0 0 0 3px rgba(201,162,39,.15)!important}
.tag{background:rgba(127,9,9,.08)!important;color:var(--pri)!important}
.sec-title{color:var(--pri)!important;border-bottom:2px solid var(--sec)!important}
.ans-red{color:var(--pri)!important}
.modal{background:var(--card)!important;border:2px solid var(--sec)!important;box-shadow:0 8px 30px rgba(90,60,20,.20)!important}
.modal-title{color:var(--pri)!important}
.exit-x{color:var(--sub)!important}
.exit-x:hover{color:var(--pri)!important}
.toast{background:rgba(61,41,20,.92)!important}
/* 日志中心弹窗：由 log_center.js 直接挂到 body（无 .modal-overlay 包裹），补偿居中定位。含 2K 竖屏 */
#logModal{position:fixed;inset:0;z-index:120;padding:16px;align-items:center;justify-content:center;max-height:none;background:rgba(17,24,31,.45)!important}
#logModal .modal-card{width:100%;margin:0}
@media (orientation:portrait) and (min-height:2000px){
  #logModal{padding:26px}
}
/* ===== /HP Style ===== */

/* 光荣榜 Hogwarts Honor Roll */
.honor-head{padding:6px 4px 10px;border-bottom:1px solid var(--line);margin-bottom:10px}
.honor-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.honor-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pri),var(--sec),transparent)}
.urow{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.uname{font-size:16px;font-weight:700;color:var(--txt);letter-spacing:.3px}
.ustats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.stat{background:rgba(127,9,9,.04);border:1px solid rgba(201,162,39,.25);border-radius:10px;padding:8px 10px}
.stat.gold{background:linear-gradient(135deg,rgba(201,162,39,.18),rgba(201,162,39,.06));border-color:rgba(201,162,39,.55)}
.stat .k{font-size:11px;color:var(--sub);margin-bottom:2px;letter-spacing:.2px}
.stat .v{font-size:20px;font-weight:800;color:var(--pri);font-family:Georgia,serif;line-height:1.2}
.tb-block{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.tb-title{font-size:13px;font-weight:700;color:var(--pri);margin-bottom:8px;letter-spacing:.3px}
.tb-table{width:100%;border-collapse:collapse;font-size:13px}
.tb-table th,.tb-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line)}
.tb-table th{color:var(--sub);font-weight:600}
.tb-table td.v-m{font-weight:700;color:var(--txt)}
.tb-table td.v-a{font-weight:700;color:var(--sec)}
.rm-btn{margin-top:4px;padding:8px 16px;border:1px solid rgba(201,162,39,.4);border-radius:9px;background:rgba(201,162,39,.08);color:var(--pri);cursor:pointer;font-size:13px;transition:background .15s}
.rm-btn:hover{background:rgba(201,162,39,.18)}

/* 📊 统计方法（折叠，用于核对数值来源） */
.honor-method{margin-top:10px;border:1px dashed var(--line);border-radius:10px;overflow:hidden;background:var(--card);text-align:left}
.honor-method details>summary{list-style:none;cursor:pointer;padding:8px 12px;font-size:12px;font-weight:700;color:var(--pri);background:rgba(127,9,9,.04)}
.honor-method details>summary::-webkit-details-marker{display:none}
.honor-method details>summary:hover{opacity:.85}
.honor-method .hm-body{padding:4px 14px 12px;font-size:12.5px;color:var(--sub);line-height:1.75}
.honor-method .hm-item{padding:6px 0;border-bottom:1px dashed rgba(0,0,0,.08);text-align:left}
.honor-method .hm-item:last-child{border-bottom:none}
.honor-method .hm-k{font-weight:700;color:var(--txt);margin-right:4px}
.honor-method .hm-src{display:block;color:var(--sec);opacity:.9;font-size:11px;margin-top:1px}
#honorBody .honor-method{grid-column:1 / -1;width:100%}

/* 🏰 霍格沃茨城堡图标按钮 hover */
#honorBtn:hover{background:rgba(201,162,39,.14);color:var(--pri)}

/* 「切换用户模块」按钮放大 2 倍（仅限本英语模块，不影响统一入口/其它模块）
 * ⚠️ 必须限定「非手机」断点：这条原本是无条件规则，且位于手机断点（≤600px）之后，
 *    同优先级下后者覆盖前者，导致 88px 高 / 64px 头像被强加给手机端 → 切换用户在手机上异常巨大。
 *    现收进 @media (min-width:601px)，手机端改由 ≤600px 断点里的 36px 版本生效。 */
@media (min-width:601px){
  #uniUserSwitch.uni-us{height:88px;gap:20px;padding:0 36px 0 12px;border-width:3px}
  #uniUserSwitch.uni-us .uav{width:64px;height:64px}
  #uniUserSwitch.uni-us .unm{font-size:32px}
  #uniUserSwitch.uni-us .arr{margin-left:4px;border-left:10px solid transparent;border-right:10px solid transparent;border-top:12px solid currentColor}
}

/* ===== 竖屏大屏适配（1440×2560 27寸 · 观看距离约70cm）：功能宫格 4→2 列（2×2）+ 整体放大 ===== */
@media (orientation:portrait) and (min-width:769px){
  body{zoom:1.18}
  .modes{grid-template-columns:repeat(2,1fr);gap:12px}
}

/* ===== 2K 竖屏大屏适配（1440×2560）：8 功能格 2 列×4 行铺满约 4/5，头部不溢出 ===== */
@media (orientation:portrait) and (min-height:2000px){
  /* —— 2K 竖屏：参考科学模块版面，首页功能宫格改为大卡片（1440×2560 整屏铺满、不出现浏览器滚动条）—— */
  body{padding:46px 18px 40px; zoom:1}
  .container, .header-inner{max-width:1380px}
  .container{min-height:0; padding:0 4px}
  .header{padding:14px 0 16px; margin-bottom:14px; flex-wrap:nowrap; gap:18px}
  .header h1{font-size:38px; max-width:100%}
  .header .logo{width:48px;height:48px;font-size:26px;border-radius:14px}
  .header-inner{flex-wrap:nowrap; gap:16px}
  /* 顶栏各元素与标题同大、统一 */
  .icon-btn{width:85px;height:85px}
  .icon-btn svg{width:50px;height:50px}
  .icon-btn .badge{top:-6px;right:-6px;min-width:24px;height:24px;line-height:24px;font-size:14px;border-radius:12px}
  .home-link{height:85px;padding:0 24px;border-radius:14px;font-size:26px;gap:10px}
  .home-link svg{width:42.5px;height:42.5px}
  .top-home-link{height:56px;padding:0 20px;border-radius:12px;font-size:22px}
  .qr-modal .modal-body img{width:360px!important;height:360px!important;max-width:78vw!important}
  #uniUserSwitch.uni-us{height:68px;padding:0 24px 0 10px;gap:14px}
  #uniUserSwitch.uni-us .uav{width:50px;height:50px;object-fit:cover}
  #uniUserSwitch.uni-us .unm{font-size:32px}
  #uniUserSwitch.uni-us .arr{border-top-width:12px;border-left-width:9px;border-right-width:9px}
  .seclevel{margin:6px 0 8px; gap:12px}
  .seclevel .lv, .lv{font-size:22px;padding:12px 24px;border-radius:16px}
  /* 首页：功能宫格 2 列×4 行，大卡片（对齐科学模块）——压缩以铺满 2K 竖屏不滚动 */
  .modes{grid-template-columns:repeat(2,1fr)!important; grid-auto-rows:auto; gap:20px 32px; margin-top:14px}
  .mode{padding:34px 40px; min-height:380px; border-radius:22px}
  .mode .ico{width:84px;height:84px;font-size:50px;border-radius:20px;margin-bottom:12px}
  .mode .t{font-size:32px;font-weight:800;margin:12px 0 8px}
  .mode .d{font-size:20px;line-height:1.45}
  /* 版本栏 */
  .version-bar{margin-top:16px;font-size:17px;padding:12px 20px}
  .v-tag{font-size:20px;padding:5px 12px}
  .v-log{font-size:17px;padding:7px 16px}
  /* —— 光荣榜在 2K 竖屏：版面更大更长、字体更大 —— */
  #honorRollModal .modal{max-width:1260px;padding:34px 40px;border-radius:26px}
  #honorRollModal .modal-title{font-size:38px}
  #honorRollModal .exit-x{width:52px;height:52px;font-size:32px}
  #honorRollModal .modal-body{padding:22px 8px;font-size:22px;line-height:1.8}
  .honor-head{padding:10px 6px 16px;margin-bottom:16px;font-size:24px}
  .honor-card{padding:34px 34px 26px;border-radius:24px;margin-bottom:22px}
  .urow{gap:22px;margin-bottom:18px}
  .urow>div:first-child{width:76px!important;height:76px!important}
  .uname{font-size:30px}
  .urow .uname span{font-size:20px!important;margin-left:12px!important}
  .urow>div>div{font-size:18px!important;margin-top:6px!important}
  .ustats{gap:14px}
  .stat{padding:16px 18px;border-radius:14px}
  .stat .k{font-size:18px;margin-bottom:6px}
  .stat .v{font-size:30px}
  .stat .v[style*="font-size:14px"]{font-size:16px!important}
  .stat .v[style*="font-size:12px"]{font-size:16px!important}
  .tb-block{margin-top:18px;padding-top:14px}
  .tb-title{font-size:22px;margin-bottom:14px}
  .tb-table{font-size:21px}
  .tb-table th,.tb-table td{padding:12px 16px}
  .honor-card .rm-btn,.rm-btn{font-size:22px;padding:14px 28px;border-radius:14px}
  /* 2K 竖屏：两位用户光荣榜卡片并排（左亮亮 · 右堂堂），避免纵向过长出现下拉条 */
  #honorBody{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
  #honorBody .honor-card{margin-bottom:0;display:flex;flex-direction:column}
  #honorBody .honor-card .tb-block{margin-top:auto}
  #honorBody>div:last-child{grid-column:1 / -1;justify-self:center}
  /* —— 设置弹窗在 2K 竖屏：整体更大、字体更大 —— */
  #settingsModal .modal{max-width:1180px;padding:38px 44px;border-radius:26px}
  #settingsModal .modal-head{padding:18px 6px 20px;border-bottom:2px solid var(--line)}
  #settingsModal .modal-title{font-size:38px}
  #settingsModal .exit-x{width:56px;height:56px;font-size:36px;border-radius:12px}
  #settingsModal .modal-body{padding:26px 6px;font-size:24px;line-height:1.85}
  #settingsModal .set-section-title{font-size:28px;margin:22px 0 14px}
  #settingsModal .set-row{grid-template-columns:1fr 320px 320px;gap:14px;margin:14px 0}
  #settingsModal .set-row .set-label{font-size:24px}
  #settingsModal .set-row .sl-box{gap:16px}
  #settingsModal .set-row .slider{height:12px;min-width:120px}
  #settingsModal .set-row .sl-val{font-size:28px;min-width:56px}
  #settingsModal .col-hdr{font-size:22px}
  #settingsModal .set-rules{border-radius:16px;padding:18px 22px}
  #settingsModal .set-rules .ri{font-size:23px;margin:10px 0;line-height:1.8}
  #settingsModal .tool-row{gap:18px}
  #settingsModal .toolbox-btn{padding:22px 34px;font-size:26px;border-radius:16px}
  #settingsModal .pwd-pop{margin-top:18px;padding:24px;border-radius:18px}
  #settingsModal .pwd-pop-title{font-size:23px}
  #settingsModal .pwd-input{padding:18px 16px;font-size:24px;border-radius:14px}
  #settingsModal .pwd-pop-actions{gap:16px}
  #settingsModal .pwd-pop-actions .toolbox-btn{padding:18px 30px;font-size:23px}
  #settingsModal .set-section-title .chev{font-size:20px}
  #settingsModal .bank-chips{gap:14px;margin:6px 0 2px}
  #settingsModal .bank-chips .lv{font-size:24px;padding:14px 26px;border-radius:14px}
  #settingsModal .set-save-sec{margin-top:6px}
  #settingsModal .save-settings-btn{font-size:28px;padding:20px 44px;border-radius:16px}
  #settingsModal .save-hint{font-size:22px}
  /* 悬停提示在 2K 下也放大保持可读 */
  #settingsModal .set-div{margin:18px 0}
  /* 悬停浮层在 2K 下放大保持可读（浮层挂载在 body，不受弹窗 overflow 裁切） */
  #floatTip{max-width:560px;font-size:21px;padding:14px 18px;border-radius:14px}
  #floatTip .ft-arrow{border-width:10px}
  /* —— 选择题选项：2K 竖屏 A/B/C/D 同行排版；文字长的选项自动降为 2×2（A B 一行、C D 一行） —— */
  .qopts{display:grid;gap:14px;margin:8px 0}
  .qopts.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .qopts.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qopts .opt{margin-bottom:0;width:100%;display:flex;align-items:center;gap:14px;font-size:calc(26px * var(--fz, 1));padding:20px 24px;border-radius:16px}
  .qopts .opt .lab{width:auto;min-width:40px;font-size:calc(24px * var(--fz, 1))}
  /* —— 2K 竖屏：所有模块的 题目 / 答案 / 解析 统一再加大一个字号 —— */
  .qnum{font-size:20px}
  .qtext{font-size:calc(22px * var(--fz, 1));line-height:1.85}
  .qtext.fill-inline{line-height:2.8}
  .passage{font-size:calc(19px * var(--fz, 1));line-height:2;padding:18px 20px}
  .opt-grid .opt,.qopts .opt{font-size:calc(26px * var(--fz, 1))}
  /* 答案 */
  .fb .res{font-size:calc(22px * var(--fz, 1))}
  .fb .ans{font-size:calc(21px * var(--fz, 1))}
  .ans-red{font-size:calc(18px * var(--fz, 1))}
  .ans-blue{font-size:calc(18px * var(--fz, 1))}
  .fillres{font-size:calc(20px * var(--fz, 1))}
  /* 解析 */
  .exp{font-size:calc(17px * var(--fz, 1));line-height:1.7;padding:12px 14px}
  .fb .exp{font-size:calc(18px * var(--fz, 1));line-height:1.75}
  /* 填空输入 / 候选词 / 空位 */
  .fillinp{font-size:calc(25px * var(--fz, 1));padding:18px 20px}
  .fillmini{width:150px;font-size:calc(23px * var(--fz, 1));padding:8px 12px}
  .pfword{font-size:calc(22px * var(--fz, 1));padding:10px 16px}
  .pfslot{min-width:170px;min-height:54px;font-size:calc(22px * var(--fz, 1));padding:8px 14px}
  .blank-slot,.bn-inline{font-size:calc(19px * var(--fz, 1));min-width:30px;min-height:30px}
  .dlg-line,.dlg-text{font-size:calc(22px * var(--fz, 1))}
  .dlg-cand,.dlg-line .bo span,.dlg-slot{font-size:calc(21px * var(--fz, 1))}
  /* 连词成句：候选词块 / 已选词芯片 2K 竖屏放大 */
  .tile{font-size:calc(22px * var(--fz, 1));padding:14px 18px;border-radius:12px}
  .cmb-chip{font-size:calc(21px * var(--fz, 1));padding:12px 16px;border-radius:12px}
  /* 翻译 */
  .trans,.trans-sent{font-size:calc(18px * var(--fz, 1));line-height:1.8;padding:12px 14px}
  /* —— 2K 竖屏：题库浏览 题型卡片 + 题目/答案/解析 同步加大 —— */
  .bank-type-nav{gap:16px}
  .btype{padding:18px 6px 14px;border-radius:20px}
  .btype .ico{width:52px;height:52px;border-radius:16px;font-size:30px}
  .btype .nm{font-size:22px}
  .btype .ct{font-size:21px}
  .btype .ct small{font-size:17px}
  .bank-sec-label{font-size:17px;letter-spacing:.5px}
  .bank-stat{padding:20px;border-radius:20px;gap:16px}
  .bank-stat .bs-ico{width:56px;height:56px;border-radius:16px;font-size:30px}
  .bank-stat .bs-name{font-size:18px}
  .bank-stat .bs-count{font-size:32px}
  .listitem{padding:16px 18px;border-radius:16px}
  .listitem .t{font-size:calc(20px * var(--fz, 1));line-height:1.5}
  .listitem .s{font-size:calc(18px * var(--fz, 1))}
  .optt{font-size:calc(18px * var(--fz, 1));padding:8px 15px;border-radius:11px}
  .ans-green{font-size:calc(18px * var(--fz, 1))}
  .inline-ans{font-size:calc(17px * var(--fz, 1))}
  .bank-passage{font-size:calc(18px * var(--fz, 1));line-height:2;padding:14px 16px}
  .zhtr{font-size:calc(17px * var(--fz, 1));padding:12px 16px;line-height:1.8}
  .bank-tools{font-size:17px}
  .bank-tools select,.bank-tools input{font-size:16px;padding:7px 11px}
  .bank-pager{font-size:17px}
  .bank-pager button{font-size:17px;padding:10px 18px}
  .pg-layout{gap:20px}
  .pg-side{flex:0 0 120px;border-radius:26px;font-size:52px;gap:10px}
  .pg-side span{font-size:28px}
  .pg-nums{gap:16px;margin:26px 0 12px}
  .pg-nums .bp{min-width:80px;height:80px;padding:0 18px;border-radius:18px;font-size:34px}
}

/* ===== 横屏适配（1K/2K 横屏：宽 ≥1280 且横屏）：利用横向宽度、收紧顶部与间距、消除巨大空挡与长滚动 ===== */
/* ===== 横屏（平板/笔记本，宽度≥768）模块贴近顶部，去除大留白 ===== */
@media (orientation:landscape) and (min-width:768px){
  .container{min-height:0;padding:10px 16px 14px}
  .header{padding:8px 4px 10px;margin-bottom:6px}
  .modes{grid-auto-rows:auto;margin-top:0}
  .mode{min-height:78px;padding:12px 10px}
  .mode .ico{width:40px;height:40px;font-size:24px;margin-bottom:6px}
  .mode .t{font-size:14px;margin:6px 0 3px}
  .mode .d{font-size:11px;line-height:1.4}
  .version-bar{margin-top:10px;padding:6px;font-size:12px}
}
@media (min-width:1280px) and (orientation:landscape){
  /* 放宽内容宽度，减少两侧空挡（横屏宽裕） */
  :root{--maxw:1080px}
  .header-inner, .container{max-width:var(--maxw)}
  /* 收紧顶部，避免元素过大 */
  .header{padding:8px 4px 10px; margin-bottom:6px}
  .header h1{font-size:17px}
  .header .logo{width:26px;height:26px;font-size:14px;border-radius:7px}
  .icon-btn{width:34px;height:34px}
  .icon-btn svg{width:20px;height:20px}
  .home-link{height:36px;padding:0 12px;font-size:14px;border-radius:9px;gap:5px}
  .home-link svg{width:20px;height:20px}
  .top-home-link{height:28px;padding:0 12px;font-size:13px;border-radius:7px}
  #uniUserSwitch.uni-us{height:40px;padding:0 14px 0 8px;gap:10px}
  #uniUserSwitch.uni-us .uav{width:28px;height:28px}
  #uniUserSwitch.uni-us .unm{font-size:14px}
  #uniUserSwitch.uni-us .arr{border-top-width:7px;border-left-width:6px;border-right-width:6px}
  /* 消除 container 强制最小高度（横屏短高时不应被拉伸出空挡） */
  .container{min-height:0; padding:10px 16px 14px}
  /* 去掉首页功能格行高 1fr 拉伸，改为自适应，消除卡片间巨大空挡 */
  .sec-title{font-size:13px;margin:10px 0 6px}
  .modes{grid-template-columns:repeat(4,1fr); grid-auto-rows:auto; gap:10px; margin-top:0}
  .mode{padding:12px 10px; min-height:78px; border-radius:12px}
  .mode .ico{width:40px;height:40px;font-size:24px;border-radius:11px;margin-bottom:6px}
  .mode .t{font-size:14px;margin:6px 0 3px}
  .mode .d{font-size:11px;line-height:1.4}
  /* 版本栏收紧，避免底部长留白 */
  .version-bar{margin-top:10px;padding:6px;font-size:12px}
  .v-tag{font-size:13px;padding:4px 10px}
  .v-log{font-size:12px;padding:5px 10px}
  /* 练习页题目区在横屏下也紧凑，减少纵向滚动 */
  .qcard{padding:16px;margin-bottom:10px}
  .qtext{font-size:calc(16px * var(--fz, 1))}
  .opt{padding:11px 14px;font-size:calc(15px * var(--fz, 1));margin-bottom:7px}
  .passage{font-size:calc(15px * var(--fz, 1));padding:12px;margin-bottom:10px}
  .fillinp{padding:15px 16px;font-size:calc(19px * var(--fz, 1));margin:4px 0}
  .act{margin-top:10px}
  .act button{padding:10px;font-size:14px}
  .bank-passage{font-size:calc(15px * var(--fz, 1));padding:10px 12px}
  .btn-main{padding:10px;font-size:14px}
  .btn-sub{padding:9px;font-size:13px}
  .listitem{padding:11px}
  /* 设置弹窗在横屏下不过度放大，避免弹出超出视口 */
  #settingsModal .modal{max-width:760px;padding:20px 24px;border-radius:16px}
  #settingsModal .modal-body{padding:14px 4px;font-size:14px;line-height:1.6}
  #settingsModal .set-section-title{font-size:15px;margin:12px 0 8px}
  #settingsModal .set-row{grid-template-columns:1fr 150px 150px;gap:8px;margin:8px 0}
  #settingsModal .set-row .set-label{font-size:13.5px}
  #settingsModal .set-row .sl-box{gap:8px}
  #settingsModal .set-row .slider{height:5px;min-width:56px}
  #settingsModal .set-row .sl-val{font-size:14px;min-width:36px}
  #settingsModal .col-hdr{font-size:12px}
  #settingsModal .toolbox-btn{padding:12px 20px;font-size:15px;border-radius:12px}
  #settingsModal .save-settings-btn{font-size:16px;padding:12px 28px;border-radius:12px}
  #settingsModal .save-hint{font-size:13px}
  #settingsModal .bank-chips .lv{font-size:14px;padding:9px 16px;border-radius:10px}
  .qr-modal .modal-body img{width:240px!important;height:240px!important;max-width:60vw!important}
  /* 侧边翻页按钮尺寸对齐语文平台「选择题页」.exam-side：1080P 横屏(1440~1920) 62px/26px/15px。
     语文基准见 apps/chinese/index.html L768/L981（min-1920 68px、landscape 1440~1920 62px）。 */
  .pg-side{flex:0 0 62px;font-size:26px}
  .pg-side span{font-size:15px}
  .pg-nums{margin:10px 0 4px}
  .pg-nums .bp{min-width:34px;height:34px;font-size:14px}
}

/* ===== 1K 横屏放大：首页 8 卡片 + 顶部功能图标占满屏幕（仅 1024–1919 横屏，不改动 2K/1920+ 规则） ===== */
@media (orientation:landscape) and (min-width:1024px) and (max-width:1919px){
  :root{--maxw:1280px}
  .header-inner,.container{max-width:var(--maxw);width:100%}
  .header{padding:14px 6px 14px;margin-bottom:12px}
  .header h1{font-size:21px}
  .header .logo{width:34px;height:34px;font-size:17px;border-radius:9px}
  .modes{grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:16px;margin-top:16px}
  .mode{min-height:128px;padding:24px 16px}
  .mode .ico{width:60px;height:60px;font-size:36px;margin-bottom:12px}
  .mode .t{font-size:20px;margin:8px 0 4px}
  .mode .d{font-size:15px;line-height:1.5}
  .icon-btn{width:58px;height:58px;border-radius:13px}
  .icon-btn svg{width:32px;height:32px}
  .home-link{height:46px;padding:0 18px;font-size:17px;border-radius:12px;gap:8px}
  .home-link svg{width:26px;height:26px}
  .top-home-link{height:38px;padding:0 16px;font-size:16px;border-radius:10px}
  #uniUserSwitch.uni-us{height:54px;padding:0 18px 0 6px;gap:9px;font-size:17px}
}
/* ===== 今日学习记录（首页，仅统计今天做过的题） ===== */
.today-stat{ margin:16px 0 4px; background:linear-gradient(135deg,#fbf1d6,#f7edd0); border:1px solid #e6d3a3; border-radius:14px; padding:14px 16px; }
.today-stat .ts-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.today-stat .ts-title{ font-size:15px; font-weight:800; color:var(--pri); }
.today-stat .ts-user{ font-size:13px; color:var(--sub); }
.today-stat .ts-user b{ color:var(--sec); }
.today-stat .ts-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.today-stat .ts-item{ background:#fff; border-radius:10px; padding:10px 6px; text-align:center; box-shadow:0 1px 3px rgba(90,60,20,.08); }
.today-stat .ts-k{ font-size:12px; color:var(--sub); margin-bottom:4px; }
.today-stat .ts-v{ font-size:20px; font-weight:800; color:var(--pri); line-height:1.1; font-family:Georgia,"Times New Roman",serif; }
.today-stat .ts-v.ok{ color:#16a34a; }
.today-stat .ts-v.bad{ color:#dc2626; }
/* 手机竖屏：今日学习记录压成单行紧凑条（标题 + 4 指标同行，尽量一行显示完） */
@media (max-width:600px){
  .today-stat{margin:10px 0 0;padding:7px 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .today-stat .ts-head{display:flex;align-items:center;gap:6px;margin:0;flex:0 0 auto}
  .today-stat .ts-title{font-size:13px}
  .today-stat .ts-user{display:none}
  .today-stat .ts-grid{display:flex;align-items:center;gap:10px;flex:1 1 auto;flex-wrap:nowrap;justify-content:flex-start}
  .today-stat .ts-item{background:transparent;box-shadow:none;padding:0;display:flex;align-items:baseline;gap:3px}
  .today-stat .ts-k{font-size:11px;margin:0;color:var(--sub);white-space:nowrap}
  .today-stat .ts-v{font-size:15px;line-height:1}
}


/* 1080p 横屏单屏适配（对齐社会首页基准：container 1380 / 4 列 / gap 12 / min-height 108 / ico 38）
   1080p 视口 1920×1080：header(~44px) + modes(~240px) + today(~90px) + version(~30px) ≈ 404px
   整屏塞下无滚动条，home 页总高 ≤ 480px，预留空间给题库浏览等页面 */
@media (orientation:landscape) and (min-width:1200px) and (max-height:1150px){
  /* === 首页整屏压缩 === */
  /* 注意：这里只能压缩 padding/min-height，绝不能再给 body 加 overflow:hidden !important ——
     该媒体查询全局命中（含练习/题库/错题本页），一旦锁死 body 滚动，长内容页（选择题/填空题）
     scrollHeight≈3500 但实际滚不动，且 .pg-side 被 stretch 拉长会把「上一页/下一页」文字
     挤到 y≈1800 之外导致首屏看不到。首页本身内容仅 ~480px，不锁也不会出现滚动条。 */
  body{padding:2px 8px !important;min-height:0 !important;overflow:visible !important}
  .container{max-width:1380px !important;padding:4px 8px !important;overflow:visible !important}

  /* Header */
  .header{padding:3px 10px !important;margin-bottom:2px !important}
  .header h1{font-size:14px !important}
  .header .logo{font-size:14px !important}
  .icon-btn{width:32px !important;height:32px !important}
  .icon-btn svg{width:16px !important;height:16px !important}

  /* 8 个卡片网格 */
  .modes{grid-template-columns:repeat(4,1fr) !important;grid-auto-rows:1fr !important;gap:12px !important;margin-top:6px !important}
  .mode{padding:12px 10px !important;min-height:108px !important;border-radius:12px !important;gap:6px !important}
  .mode .ico{font-size:24px !important;width:38px !important;height:38px !important;margin-bottom:6px !important;border-radius:12px !important}
  .mode .t{font-size:16px !important;font-weight:700 !important;margin:2px 0 1px !important}
  .mode .d{font-size:12px !important;line-height:1.3 !important}
  .mode .d b{font-size:13px !important}

  /* 今日学习记录（4 指标横排） */
  .today-stat{margin:6px 0 2px !important;padding:8px 10px !important;border-radius:10px !important}
  .today-stat .ts-head{margin-bottom:4px !important}
  .today-stat .ts-title{font-size:13px !important}
  .today-stat .ts-user{font-size:11px !important}
  .today-stat .ts-grid{gap:5px !important}
  .today-stat .ts-item{padding:5px 4px !important;border-radius:6px !important}
  .today-stat .ts-k{font-size:10px !important;margin-bottom:1px !important}
  .today-stat .ts-v{font-size:16px !important}

  /* 版本号 */
  .version-bar{margin-top:2px !important;padding:2px !important;font-size:11px !important}

  /* === 题库浏览/练习/考试页（允许滚动） === */
  .qtext{font-size:calc(15px * var(--fz,1)) !important;line-height:1.6 !important}
  .qcard{padding:14px !important;margin-bottom:8px !important}
  .qnum{font-size:14px !important}
  .q-meta,.qmeta{font-size:12px !important}
  .option{padding:8px 10px !important;font-size:14px !important}
  .ans-body,.answer-body{font-size:13px !important}
  .expl{font-size:11px !important}
  .dialog-line{padding:4px 8px !important;font-size:13px !important}
}

/* 错题本翻译行 */
.wi-trans{margin-top:6px;padding:6px 10px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;font-size:13px;color:#475569;line-height:1.6}
.wi-trans:empty{display:none}

/* 优先练习灰星 */
.en-pri-btn::before{content:"★ ";color:#9aa0a6}
.en-pri-btn.on::before{content:"✅ ";color:inherit}
.en-pri-btn.on{background:linear-gradient(135deg,#cdf6e6,#a9eed5)!important;border-color:#10b981!important}
