/* 班班悦读·校园阅读平台 H5 共享样式 —— 天蓝系（干净·舒适·字号偏大） */
:root{
  --primary:#1a73e8; --primary-light:#e8f0fe; --primary-deep:#1559b8;
  --teal:#0d9488; --teal-light:#ccfbf1;
  --green:#2e9e5b; --green-light:#e6f7ec;
  --amber:#e8761e; --amber-light:#fdeedd;
  --bg:#f4f7fb; --card:#ffffff; --border:#e3eaf3;
  --text:#1f2d3d; --text-sec:#4a5a6a; --text-mut:#7a8aa0;
  --shadow:0 2px 14px rgba(26,115,232,.09);
  --gold:#e6a23c; --danger:#c0392b;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
button,a,input,select,textarea,label,.ma-row,.ma-btn,.sc-act,.sc-del,.tab,.term-sel,.my-assess{touch-action:manipulation;}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.7;padding-bottom:28px;}
.wrap,.wraper{max-width:680px;margin:0 auto;padding:0 16px;}
/* 顶栏 */
.topbar{background:linear-gradient(135deg,var(--primary),var(--primary-deep));color:#fff;padding:20px 18px 18px;position:sticky;top:0;z-index:20;}
.topbar h1,.topbar .h1{font-size:21px;font-weight:800;letter-spacing:.5px;}
.topbar .sub{font-size:13px;opacity:.88;margin-top:4px;}
.topbar .back{position:absolute;left:16px;top:20px;font-size:15px;opacity:.92;}
.topbar.with-back .wraper{padding-left:60px;}
.topbar .back-btn{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.28);color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;line-height:1;text-decoration:none;z-index:2;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:background .12s,transform .12s;}
.topbar .back-btn:active{background:rgba(255,255,255,.5);transform:translateY(-50%) scale(.92);}
/* 卡片 */
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin:14px 0;box-shadow:var(--shadow);}
.card-title{font-size:17px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:7px;}
.card-title .icon{font-size:18px;}
.tag{font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600;}
.tag-blue{background:var(--primary-light);color:var(--primary);}
.tag-teal{background:var(--teal-light);color:var(--teal);}
.tag-green{background:var(--green-light);color:var(--green);}
.tag-amber{background:var(--amber-light);color:var(--amber);}
.tag-gray{background:#eef2f7;color:var(--text-mut);}
/* 区块标题 */
.sec-title{font-size:18px;font-weight:800;margin:22px 2px 6px;display:flex;align-items:center;gap:7px;}
.sec-desc,.sec-desc{font-size:13px;color:var(--text-mut);margin:0 2px 10px;}
/* 按钮 */
.btn{display:inline-block;border:none;border-radius:10px;padding:13px 18px;font-size:15px;font-weight:700;cursor:pointer;text-align:center;transition:.15s;white-space:nowrap;}
.btn-primary{background:var(--primary);color:#fff;width:100%;}
.btn-primary:active{background:var(--primary-deep);}
.btn:disabled,.btn-primary:disabled,.btn-ghost:disabled{background:#cdd5df !important;border-color:#cdd5df !important;color:#fff !important;cursor:not-allowed;opacity:.65;box-shadow:none;}
.btn-ghost{background:var(--primary-light);color:var(--primary);width:100%;}
/* 标签筛选 */
.tabs{display:flex;gap:9px;flex-wrap:wrap;margin:6px 0 14px;}
.tab{font-size:13px;padding:8px 14px;border-radius:20px;background:var(--card);border:1px solid var(--border);color:var(--text-sec);cursor:pointer;}
.tab.active{background:var(--primary);color:#fff;border-color:var(--primary);}
/* 书脊封面占位 */
.book-cover{width:88px;height:120px;border-radius:7px;position:relative;overflow:hidden;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600;text-align:center;padding:8px;line-height:1.35;box-shadow:0 4px 12px rgba(0,0,0,.16),inset 0 0 0 1px rgba(255,255,255,.18);background:linear-gradient(135deg,#1a73e8,#0d9488);}
.book-cover::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.28);}
.book-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* 书目卡片 */
.book-card{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;margin:12px 0;box-shadow:var(--shadow);}
.book-info{flex:1;min-width:0;}
.book-name{font-size:15px;font-weight:700;margin-bottom:3px;}
.book-author{font-size:13px;color:var(--text-mut);margin-bottom:7px;}
.book-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.review{background:var(--green-light);border-radius:9px;padding:8px 11px;font-size:12px;color:var(--green);margin-bottom:7px;}
.review b{color:var(--green);}
.theme{background:var(--primary-light);border-radius:9px;padding:8px 11px;font-size:13px;color:var(--primary-deep);margin-bottom:7px;line-height:1.55;}
.theme b{color:var(--primary);}
.bsec{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:9px;padding:9px 12px;font-size:13.5px;color:var(--text-sec);line-height:1.65;margin-bottom:7px;}
.bsec .lab{display:block;font-size:12.5px;font-weight:700;color:var(--primary);margin-bottom:3px;letter-spacing:.3px;}
.bsec.intro{background:#f7faff;}
.bsec.yw{border-left-color:var(--teal);}
.bsec.yw .lab{color:var(--teal);}
.bsec.rec{border-left-color:var(--amber);}
.bsec.rec .lab{color:var(--amber);}
.fold{font-size:13px;color:var(--text-sec);padding:7px 0 3px;cursor:pointer;font-weight:600;user-select:none;}
.fold i{font-style:normal;font-size:11px;color:var(--text-mut);}
.fold-body{display:none;font-size:13px;color:var(--text-sec);line-height:1.7;background:var(--bg);border-radius:9px;padding:10px 13px;margin:4px 0 3px;}
.book-cover.ph{font-size:12px;padding:8px;}
.book-cover.thumb{width:48px;height:66px;font-size:10px;border-radius:6px;flex:0 0 auto;}
.tag-rec{background:var(--amber-light);color:var(--amber);}
/* 统计 */
.stat-row{display:flex;gap:11px;margin:8px 0;}
.stat{flex:1;text-align:center;background:var(--bg);border-radius:12px;padding:16px 8px;}
.stat .num{font-size:27px;font-weight:800;color:var(--primary);}
.stat .lbl{font-size:12px;color:var(--text-mut);margin-top:3px;}
/* 进度条 */
.bar{height:9px;background:var(--bg);border-radius:6px;overflow:hidden;margin-top:5px;}
.bar > i{display:block;height:100%;background:var(--green);border-radius:6px;}
/* 报告 */
.hero{background:linear-gradient(135deg,var(--primary),var(--primary-deep));color:#fff;border-radius:16px;padding:22px;margin:14px 0;}
.hero .name{font-size:23px;font-weight:800;}
.hero .meta{font-size:13px;opacity:.9;margin-top:5px;}
.badge-star{display:inline-block;background:linear-gradient(135deg,#ffe082,#f5a623 60%,#e8920c);color:#7a4a00;font-weight:800;font-size:14px;padding:8px 15px;border-radius:20px;box-shadow:0 4px 12px rgba(245,166,35,.35),inset 0 1px 0 rgba(255,255,255,.5);}
.badge-star.pop{animation:badgePop .55s cubic-bezier(.2,.8,.2,1);}
@keyframes badgePop{0%{transform:scale(.5);opacity:0}55%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
.badge-go{display:inline-block;background:var(--amber-light);color:var(--amber);font-weight:700;font-size:14px;padding:7px 14px;border-radius:20px;}
.badge-info{display:inline-block;background:var(--primary-light);color:var(--primary);font-weight:600;font-size:12.5px;padding:5px 12px;border-radius:18px;}

/* ===== 阅读星 · 统一金色勋章视觉（天蓝系 + 金色成就，跨端一致） ===== */
.star-medal{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;flex:0 0 auto;background:radial-gradient(circle at 35% 30%,#fff3c4,#ffcf5e 55%,#f0a91e);box-shadow:0 6px 16px rgba(255,180,40,.45),inset 0 2px 4px rgba(255,255,255,.6);}
/* 报告页「我的阅读星」英雄区 */
.star-hero{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#f3f9ff,#e7f1ff);border:1px solid #dbe9ff;box-shadow:0 5px 16px rgba(78,157,255,.12);}
.star-hero .big{flex:0 0 auto;}
.star-hero .num{font-size:32px;font-weight:800;background:linear-gradient(135deg,#ffb43a,#f0900c);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.05;}
.star-hero .lbl{font-size:13px;color:#5a6b85;margin-top:3px;}
/* 进度条（到下一枚勋章） */
.star-prog{margin:10px 2px 2px;}
.star-prog .track{height:9px;border-radius:6px;background:#e4edf8;overflow:hidden;}
.star-prog .fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#7cc0ff,#2e7be0);box-shadow:0 1px 4px rgba(46,123,224,.4);transition:width .9s cubic-bezier(.2,.8,.2,1);}
.star-prog .cap{font-size:11px;color:#7a8aa0;margin-top:5px;display:flex;justify-content:space-between;}
/* 里程碑勋章 */
.ms-wrap{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px;}
.ms-badge{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 8px 8px;border-radius:14px;background:#eef3fb;border:1px solid #e0e8f3;min-width:70px;transition:transform .3s;}
.ms-badge .ic{font-size:26px;line-height:1;filter:grayscale(1);opacity:.4;}
.ms-badge .nm{font-size:11px;color:#7a8aa0;font-weight:600;white-space:nowrap;}
.ms-badge .th{font-size:10px;color:#aab6c6;}
.ms-badge.on{background:linear-gradient(135deg,#fff7e0,#ffe6a6);border-color:#ffd27a;box-shadow:0 4px 12px rgba(255,190,60,.35);}
.ms-badge.on .ic{filter:none;opacity:1;animation:badgeGlow 2.6s ease-in-out infinite;}
.ms-badge.on .nm{color:#a9760d;}
.ms-badge.on .th{color:#c79a3a;}
@keyframes badgeGlow{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
/* 方案 B：本学期阶梯 / 终身荣誉 / 上学期回顾 分区 */
.star-sec{margin-top:12px;}
.star-sec-t{font-size:13px;font-weight:700;color:#33475f;margin:2px 0;display:flex;align-items:center;gap:4px;}
.star-sec .ms-wrap{margin:6px 0 2px;}
.prev-term{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:#f7faff;border:1px solid #e9f0fa;font-size:13px;}
.prev-term .pt-term{font-weight:700;color:#33475f;}
.prev-term .pt-stars{color:#7a8aa0;}
.prev-term .pt-badge{margin-left:auto;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;background:#eef2f7;color:#9aa9bd;border:1px solid #e0e7f0;}
.prev-term .pt-badge.on{color:#a9760d;background:linear-gradient(135deg,#fff3cf,#ffe2a6);border-color:#ffd98a;}
.prev-empty{padding:10px 12px;border-radius:10px;background:#f7faff;border:1px dashed #dbe6f3;color:#7a8aa0;font-size:13px;}
/* 成长见证学期卡 */
.term-witness{margin-top:2px;display:flex;flex-direction:column;gap:6px;}
.term-witness .dim{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-radius:10px;background:#f7faff;border:1px solid #e9f0fa;}
.term-witness .dim .k{font-size:12px;color:#5a6b85;}
.term-witness .dim .v.ok{color:#a9760d;font-weight:700;background:linear-gradient(135deg,#fff3cf,#ffe2a6);border:1px solid #ffd98a;border-radius:999px;padding:2px 10px;font-size:12px;}
/* 我的测评星标 / 累计徽章 */
.sec-sub-star{margin-left:auto;font-size:12px;color:#a9760d;background:linear-gradient(135deg,#fff3cf,#ffe2a6);border:1px solid #ffd98a;border-radius:999px;padding:3px 11px;font-weight:800;white-space:nowrap;box-shadow:0 2px 6px rgba(255,190,60,.25);}
.ma-star{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;}
.ma-star.on{color:#a9760d;background:#fff7e0;border:1px solid #ffe2a8;box-shadow:0 1px 4px rgba(255,190,60,.25);}
.ma-star.zero{color:#9aa9bd;background:#eef2f7;border:1px solid #e0e7f0;}
/* 教师端班级阅读星 */
.award-score{font-size:16px;font-weight:800;color:#d9910a;}
.award-bar{height:7px;background:#e4edf8;border-radius:5px;overflow:hidden;margin-top:5px;}
.award-bar i{display:block;height:100%;background:linear-gradient(90deg,#7cc0ff,#2e7be0);box-shadow:0 1px 4px rgba(46,123,224,.4);border-radius:5px;}
/* 学校概览星数金标 */
.dim .v.star{color:#a9760d;font-weight:800;background:linear-gradient(135deg,#fff3cf,#ffe2a6);border:1px solid #ffd98a;border-radius:999px;padding:2px 11px;}
/* 入场动画 */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.star-hero,.ms-wrap,.term-witness{animation:fadeUp .5s ease both;}
.dim{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border);font-size:14px;align-items:flex-start;}
.dim:last-child{border-bottom:none;}
.dim .k{color:var(--text-sec);white-space:nowrap;flex-shrink:0;margin-right:12px;padding-top:1px;}
.dim .v{font-weight:700;text-align:right;flex:1;min-width:0;word-break:break-word;}
.dim .v.ok{color:var(--green);}
.dim .v.mid{color:var(--amber);}      /* 60–79%：橙 */
.dim .v.low{color:#d9362b;}           /* <60%：红 */
.dim .v.warn{color:var(--amber);}
/* 引导条 */
.cta{background:linear-gradient(135deg,var(--teal-light),var(--primary-light));border:1px solid #bfe9e4;border-radius:14px;padding:15px 16px;margin:14px 0;display:flex;align-items:center;gap:11px;cursor:pointer;text-decoration:none;color:var(--text);}
.cta .t{font-size:14px;font-weight:700;color:var(--text);flex:1;}
.cta .t small{display:block;font-weight:400;color:var(--text-sec);font-size:12px;margin-top:3px;}
.cta .arrow{color:var(--teal);font-weight:800;font-size:20px;}
/* 表单 */
.field{margin:12px 0;}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:var(--text-sec);}
.field select,.field input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:9px;font-size:15px;background:#fff;color:var(--text);}
.field .ro{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:9px;font-size:15px;background:var(--bg);color:var(--text-sec);display:flex;align-items:center;justify-content:space-between;}
.check{display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:11px;margin:9px 0;}
.check input{margin-top:3px;flex:0 0 auto;}
.check .bn{font-size:14px;font-weight:600;}
.check .ba{font-size:12px;color:var(--text-mut);}
/* 推荐书目网格（教师页 bookPick）：3 列 cell，封面+书名+作者+tag 紧凑；选中态浅蓝 */
.book-pick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 4px;}
@media(min-width:560px){.book-pick-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(min-width:760px){.book-pick-grid{grid-template-columns:repeat(5,minmax(0,1fr));}}
.book-pick-grid .check{flex-direction:column;align-items:stretch;text-align:center;margin:0;padding:32px 6px 8px;position:relative;cursor:pointer;transition:all .15s ease;}
.book-pick-grid .check input{position:absolute;top:7px;left:7px;margin:0;width:18px;height:18px;cursor:pointer;}
.book-pick-grid .check .bk-cover-btn{align-self:center;margin-bottom:6px;display:block;}
.book-pick-grid .book-cover.thumb{width:74px;height:100px;font-size:10.5px;}
.book-pick-grid .check .bn{font-size:12.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;}
.book-pick-grid .check .ba{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;}
.book-pick-grid .check:has(input:checked){background:#eaf2fe;border-color:#2d6cdf;box-shadow:0 0 0 1px #2d6cdf inset;}
.book-pick-grid .tag{font-size:10px;padding:1px 6px;}
/* 推荐书目「展开更多 / 收起」同行 toggle：虚线底 + ＋/⬆ 图标 */
.book-pick-grid .check.pick-toggle{background:#f5f7fa;border-style:dashed;border-color:#c5cfd9;cursor:pointer;padding:12px 6px;min-height:160px;}
.book-pick-grid .check.pick-toggle input{display:none;}
.book-pick-grid .check.pick-toggle .pm-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#5b6b7c;gap:6px;}
.book-pick-grid .check.pick-toggle .pm-icon{font-size:26px;color:#2d6cdf;font-weight:300;line-height:1;}
.book-pick-grid .check.pick-toggle .pm-text{font-size:12.5px;line-height:1.45;text-align:center;}
.book-pick-grid .check.pick-toggle .pm-text b{color:#2d6cdf;font-size:14px;font-weight:600;display:block;margin-top:2px;}
.book-pick-grid .check.pick-toggle:hover{background:#eaf2fe;border-color:#2d6cdf;color:#2d6cdf;}
/* 提示 */
.note{font-size:12px;color:var(--text-mut);padding:10px 13px;background:var(--bg);border-radius:9px;margin:9px 0;line-height:1.6;}
.compliance{font-size:12px;color:var(--text-mut);padding:13px 15px;line-height:1.7;background:var(--card);border:1px dashed var(--border);border-radius:11px;margin:14px 0;}
.empty{text-align:center;color:var(--text-mut);font-size:14px;padding:34px 0;}
/* 列表行（学校工作台） */
.list-row{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:13px 15px;margin:9px 0;box-shadow:var(--shadow);}
.list-row .lr-t{font-size:15px;font-weight:700;}
.list-row .lr-s{font-size:13px;color:var(--text-mut);margin-top:3px;}
.list-row .del{font-size:13px;color:var(--amber);cursor:pointer;padding:5px 9px;border-radius:7px;background:var(--amber-light);flex:0 0 auto;}
/* 教师行（教师列表：姓名 + 账号/手机号 标签 + 操作按钮） */
.tea-row{align-items:center;gap:8px;}
.tea-row .sr-t{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1;min-width:0;}
.tea-row .sr-t b{font-size:16px;color:var(--text);font-weight:700;}
.tea-actions{display:flex;gap:6px;flex:0 0 auto;}
.tag{display:inline-flex;align-items:center;font-size:12.5px;line-height:1;padding:5px 9px;border-radius:6px;font-weight:600;white-space:nowrap;}
.tag-acc{background:var(--primary-light);color:var(--primary-deep);}
.tag-phone{background:#f1f5f9;color:var(--text-sec);font-weight:500;}
.btn-sm{font-size:13px;padding:6px 10px;}
.btn-danger{color:#c0392b;}
.btn-danger:hover{background:#fbe9e7;}
textarea{color:var(--text);}
/* 首页身份入口 */
.entry{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px 15px;margin:12px 0;box-shadow:var(--shadow);text-decoration:none;color:var(--text);}
.entry:active{transform:scale(.99);}
.entry .ei{width:50px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:24px;flex:0 0 auto;}
.entry .et{flex:1;min-width:0;}
.entry .en{font-size:16px;font-weight:700;}
.entry .es{font-size:13px;color:var(--text-mut);margin-top:3px;}
.entry .ea{color:var(--text-mut);font-size:22px;font-weight:700;flex:0 0 auto;}
/* 班级共读书架：自适应多列紧凑书墙（小屏3列 / 平板5列 / 桌面7列），自然撑长不锁滚动
   关键：minmax(0,1fr) 而非 1fr —— 否则懒加载的图书封面（img 自然宽）会把所在列撑爆，导致中间/某本书特别宽 */
.shelf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0;}
@media(min-width:520px){.shelf-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(min-width:760px){.shelf-grid{grid-template-columns:repeat(5,minmax(0,1fr));}}
@media(min-width:980px){.shelf-grid{grid-template-columns:repeat(7,minmax(0,1fr));}}
.shelf-grid .sc{min-width:0;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:7px 7px 8px;box-shadow:0 2px 8px rgba(26,115,232,.06);cursor:pointer;transition:border-color .14s,transform .14s;text-align:center;overflow:hidden;}
.shelf-grid .sc:active{transform:translateY(1px);border-color:var(--primary-light);}
.shelf-grid .sc-cover{width:100%;max-width:100%;aspect-ratio:2/3;border-radius:7px;overflow:hidden;position:relative;background:linear-gradient(155deg,#2b8fe6,#0d9488);box-shadow:0 3px 8px rgba(13,90,184,.18);}
.shelf-grid .sc-cover img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:100%;object-fit:cover;display:block;}
.shelf-grid .sc-cover.ph{display:flex;align-items:center;justify-content:center;color:#fff;font-size:9px;font-weight:700;padding:3px;text-align:center;line-height:1.2;}
/* 测评状态徽章：贴封面左上角，与 .ma-kind（右上自主徽章）分占左右 */
.shelf-grid .sc-badge{position:absolute;top:3px;left:3px;z-index:2;font-size:9.5px;line-height:1;padding:2px 5px;border-radius:5px;font-weight:700;color:#fff;letter-spacing:.2px;box-shadow:0 1px 2px rgba(0,0,0,.18);pointer-events:none;}
.shelf-grid .sc-badge-ok{background:#10b981;}
.shelf-grid .sc-badge-warn{background:#f59e0b;}
/* 班级测评角标：封面右上角（与左上「我的状态」错开） */
.shelf-grid .sc-badge-class{position:absolute;top:3px;right:3px;z-index:2;background:rgba(255,255,255,.94);border-radius:6px;padding:2px 4px;font-size:8.5px;line-height:1.25;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.2);pointer-events:none;max-width:62%;}
.shelf-grid .sc-badge-class .bc-n{display:block;color:var(--primary-deep);font-weight:700;white-space:nowrap;}
.shelf-grid .sc-badge-class .bc-y{display:block;color:var(--green);font-weight:700;white-space:nowrap;}
.shelf-grid .sc-badge-class .muted{color:var(--text-mut);font-weight:400;}
/* 教师端测评看板数字样式 */
.ba-num{color:var(--primary);font-weight:700;}
.ba-num.muted{color:var(--text-mut);font-weight:400;}
.ba-you{color:var(--green);font-weight:600;}
.ba-you.muted{color:var(--text-mut);font-weight:400;}
/* 教师端测评看板：每本书一行卡片 + 手动「当前共读」标记 */
.ba-card{border-bottom:1px solid var(--border,#eee);padding:10px 0;}
.ba-row{display:flex;align-items:center;gap:10px;cursor:pointer;}
.ba-row.ba-row-cur{position:relative;}
.ba-row.ba-row-cur::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:4px;border-radius:3px;background:var(--primary);}
.ba-main{flex:1;min-width:0;}
.ba-title{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ba-curwrap{margin-top:5px;}
.ba-cur{display:inline-block;background:var(--primary-light);color:var(--primary-deep);font-weight:700;font-size:12px;padding:3px 10px;border-radius:14px;}
.ba-setcur{display:inline-block;color:var(--primary);font-size:12.5px;font-weight:600;padding:3px 10px;border:1px solid var(--primary);border-radius:14px;text-decoration:none;cursor:pointer;transition:background .12s;}
.ba-setcur:active{background:var(--primary-light);}
.ba-chev{color:var(--text-mut);font-size:20px;flex:none;}
.ba-detail{padding:4px 0 8px 58px;}
.ba-more{display:inline-block;padding:2px 0 6px 58px;color:#185FA5;cursor:pointer;font-size:13px;text-decoration:none;}
.ba-fold{margin-top:10px;border-top:1px dashed var(--border,#eee);padding-top:6px;}
.ba-fold-tg{display:inline-block;color:#185FA5;cursor:pointer;font-size:13px;font-weight:600;text-decoration:none;}
.ba-fold-box{padding-top:6px;}
.shelf-grid .sc-t{font-size:12.5px;font-weight:700;line-height:1.3;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:32px;}
.shelf-grid .sc-b{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;margin-top:5px;}
.shelf-grid .sc-b .tag{font-size:10px;padding:2px 6px;}
/* 班级共读书架：固定高度纵向滑动（overscroll-behavior:auto → 滑到边界时整页继续滑动） */
.shelf-scroll{max-height:340px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto;margin:8px 0;padding:2px;}
.shelf-scroll::-webkit-scrollbar{width:6px;}
.shelf-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.shelf-scroll::-webkit-scrollbar-track{background:transparent;}
.shelf-foot{text-align:center;font-size:12px;color:var(--text-mut);padding:8px 0 2px;}
.shelf-grid .sc-act{display:inline-flex;align-items:center;justify-content:center;margin:6px auto 0;font-size:12px;font-weight:700;text-decoration:none;border:1px solid transparent;border-radius:8px;padding:8px 12px;min-height:36px;width:fit-content;min-width:64px;max-width:100%;cursor:pointer;line-height:1.3;white-space:nowrap;box-shadow:0 2px 4px rgba(13,90,184,.10);transition:background .12s,transform .12s,border-color .12s;}
.shelf-grid .sc-act-go{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 6px rgba(13,90,184,.24);}
.shelf-grid .sc-act-go:active{background:var(--primary-deep);transform:translateY(1px);}
.shelf-grid .sc-act-done{background:#fff;color:var(--primary);border-color:var(--primary);}
.shelf-grid .sc-act-done:active{background:var(--primary-light);}
.shelf-grid .sc-act-wait{cursor:not-allowed;background:#f4f7fc;color:var(--text-mut);border-color:#e1e8f1;font-weight:500;font-size:11px;min-width:64px;padding:4px 8px;}
.shelf-grid .sc-act-disabled{pointer-events:none;opacity:.65;}
/* 班级共读书架：统计摘要行 */
.shelf-stat{display:flex;gap:8px;margin:6px 0 10px;flex-wrap:wrap;}
.shelf-stat .si{font-size:12px;color:var(--text-sec);background:var(--bg);border-radius:14px;padding:4px 11px;}
.shelf-stat .si b{color:var(--primary);font-weight:800;}
/* 我也有一本：选娃引导（班级视图无 sid 时） */
.stu-pick{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
.stu-pick .sp{padding:7px 13px;border-radius:18px;background:var(--card);border:1px solid var(--border);color:var(--text-sec);font-size:13.5px;cursor:pointer;}
.stu-pick .sp:active{background:var(--primary-light);color:var(--primary);border-color:var(--primary-light);}
.mini-del{font-size:13px;color:var(--amber);cursor:pointer;padding:5px 10px;border-radius:7px;background:var(--amber-light);flex:0 0 auto;border:none;}
.add-modes{display:flex;gap:9px;margin:7px 0 11px;}
.add-modes .m{flex:1;text-align:center;font-size:13px;padding:10px 6px;border-radius:9px;background:var(--bg);border:1px solid var(--border);color:var(--text-sec);cursor:pointer;}
.add-modes .m.active{background:var(--primary);color:#fff;border-color:var(--primary);}
/* 学校工作台：电脑宽屏（仅 body.page-school 生效，其余页面不受影响） */
@media (min-width:900px){
  body.page-school .wrap{max-width:1080px;}
  body.page-school .sch-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}
  body.page-school .sch-cols .sec-title:first-child{margin-top:6px;}
  body.page-school .stat .num{font-size:30px;}
}
/* 全局页脚（班班悦读公益，单行简洁） */
.footer{margin:22px 2px 4px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-mut);line-height:1.8;text-align:center;}
.footer b{color:var(--text-sec);}

/* ===== 单位标识：页脚荣誉带（主办 / 学术指导）—— 天蓝系 + 金色点缀，手机端两行居中、工整 ===== */
.org-credit{
  margin:18px 2px 8px;
  padding:15px 16px 14px;
  background:linear-gradient(180deg,#f7faff 0%,#eef5ff 100%);
  border:1px solid #dce9fb;
  border-radius:14px;
  text-align:center;
}
.org-credit .oc-orn{width:36px;height:3px;border-radius:2px;background:linear-gradient(90deg,#ffd27a,#e6a23c);margin:0 auto 10px;}
.org-credit .oc-line{font-size:13px;line-height:2.05;}
.org-credit .oc-line .lab{color:var(--primary);font-weight:700;margin-right:6px;letter-spacing:.5px;}
.org-credit .oc-line .org{color:#33475f;font-weight:600;}

/* ===== 推荐书目：精简列表卡片（可点开详情） ===== */
.bk-card{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:14px 15px;margin:12px 0;box-shadow:0 4px 16px rgba(26,115,232,.08);cursor:pointer;transition:transform .14s,box-shadow .14s,border-color .14s;}
.bk-card:active{transform:translateY(1px) scale(.995);box-shadow:0 2px 8px rgba(26,115,232,.14);border-color:var(--primary-light);}
.bk-cover{width:88px;height:132px;border-radius:10px;flex:0 0 auto;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;text-align:center;padding:8px;line-height:1.3;background:linear-gradient(155deg,#2b8fe6,#0d9488);box-shadow:0 6px 18px rgba(13,90,184,.26);}
.bk-cover::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.34);}
.bk-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.bk-cover.ph{font-size:12px;padding:10px;}
.bk-main{flex:1;min-width:0;}
.bk-title{font-size:15.5px;font-weight:700;color:var(--text);line-height:1.4;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.bk-author{font-size:12.5px;color:var(--text-mut);margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bk-tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px;}
.bk-digest{font-size:12.5px;color:var(--text-sec);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.bk-go{margin-left:4px;flex:0 0 auto;color:var(--primary);font-size:20px;font-weight:700;align-self:center;}

/* 图书详情（底部弹层 / 桌面居中） */
.dt-mask,.dt-mask{position:fixed;inset:0;background:rgba(18,32,52,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:50;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;}
.dt-mask.show{opacity:1;visibility:visible;}
.dt-sheet{position:fixed;left:0;right:0;bottom:0;z-index:51;background:var(--card);border-radius:22px 22px 0 0;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:0 -8px 34px rgba(18,32,52,.2);}
.dt-mask.show .dt-sheet{transform:translateY(0);}
.dt-head{position:sticky;top:0;background:linear-gradient(135deg,var(--primary),var(--primary-deep));color:#fff;padding:34px 18px 16px;border-radius:22px 22px 0 0;}
.dt-close{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.dt-h-row,.dt-hrow{display:flex;gap:16px;align-items:center;}
.dt-cover{width:168px;height:252px;border-radius:16px;flex:0 0 auto;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;text-align:center;padding:14px;line-height:1.4;background:linear-gradient(155deg,#0d9488,#1a73e8);box-shadow:0 20px 48px rgba(13,90,184,.46);}
.dt-cover::before{content:"";position:absolute;left:9px;top:0;bottom:0;width:2px;background:rgba(255,255,255,.34);}
.dt-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.dt-cover.ph{font-size:12px;padding:10px;}
.dt-title{font-size:21px;font-weight:800;line-height:1.35;}
.dt-author{font-size:13.5px;opacity:.92;margin-top:7px;}
.dt-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;}
.dt-tags .tag{background:rgba(255,255,255,.16);color:#fff;border:none;}
.dt-review{font-size:12px;opacity:.9;margin-top:11px;padding-top:11px;border-top:1px solid rgba(255,255,255,.2);}
.dt-body{padding:6px 20px 38px;}
.dt-sec{margin:22px 0 0;}
.dt-sec .lab{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:var(--text);margin-bottom:9px;}
.dt-sec .lab .bar{width:4px;height:16px;border-radius:3px;background:var(--primary);}
.dt-sec .txt{font-size:15.5px;line-height:1.9;color:var(--text-sec);}
.dt-sec.yw .lab .bar{background:var(--teal);}
.dt-sec.yw .lab{color:var(--teal);}
.dt-sec.rec .lab .bar{background:var(--amber);}
.dt-sec.rec .lab{color:var(--amber);}
.dt-sec.theme .lab .bar{background:var(--green);}
.dt-sec.theme .lab{color:var(--green);}

/* ===== 我的家庭书柜：与班级共读书架同款网格 + 纵向滑动；★删除/自主测评做轻区分 ===== */
.shelf-grid .sc{position:relative;}
.shelf-grid .sc-del{position:absolute;top:5px;right:5px;width:30px;height:30px;border-radius:50%;background:rgba(232,118,30,.12);color:var(--amber);border:none;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;}
.shelf-grid .sc-del:active{background:var(--amber);color:#fff;}
/* 我的家庭书柜（personal）vs 班级共读书架：极轻量青色区分，不占额外空间、保持工整 */
.shelf-grid.personal .sc{background:linear-gradient(180deg,#ffffff,#f2fbfa);border-color:#cdead8;box-shadow:0 2px 8px rgba(13,148,136,.10);}
.shelf-grid.personal .sc-t{color:var(--teal);}

/* 添加书目：底部弹层（搜索 + 封面卡片网格，体验友好） */
.add-mask,.add-mask{position:fixed;inset:0;background:rgba(18,32,52,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:60;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;}
.add-mask.show{opacity:1;visibility:visible;}
.add-sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--card);border-radius:22px 22px 0 0;max-height:calc(100vh - 12px);display:flex;flex-direction:column;overflow:hidden;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:0 -8px 34px rgba(18,32,52,.2);}
.add-mask.show .add-sheet{transform:translateY(0);}
.add-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 10px;flex:0 0 auto;}
.add-title{font-size:16px;font-weight:800;color:var(--text);}
.add-close{width:30px;height:30px;border-radius:50%;background:var(--bg);color:var(--text-sec);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.add-search{padding:0 16px;flex:0 0 auto;}
.add-search input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:11px;font-size:15px;background:#fff;color:var(--text);box-sizing:border-box;}
.add-chips{display:flex;gap:7px;flex-wrap:wrap;padding:11px 16px 4px;flex:0 0 auto;}
.add-chips .chip{font-size:13px;padding:6px 13px;border-radius:18px;background:var(--card);border:1px solid var(--border);color:var(--text-sec);cursor:pointer;}
.add-chips .chip.on{background:var(--primary);color:#fff;border-color:var(--primary);}
.add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto;flex:1 1 auto;min-height:0;}
@media(min-width:380px){.add-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(min-width:560px){.add-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
.add-grid::-webkit-scrollbar{width:6px;}
.add-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.add-grid::-webkit-scrollbar-track{background:transparent;}
.add-card{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:9px;cursor:pointer;transition:border-color .14s,transform .14s,box-shadow .14s;text-align:center;position:relative;box-shadow:0 1px 4px rgba(18,32,52,.05);}
.add-card:active{transform:translateY(1px);}
.add-card.on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light),0 4px 12px rgba(13,148,184,.25);background:#f0f8ff;}
.add-card.on::after{content:'✓';position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:var(--primary);color:#fff;border-radius:50%;font-size:14px;font-weight:700;line-height:24px;text-align:center;box-shadow:0 2px 6px rgba(13,148,184,.45);z-index:3;pointer-events:none;}
.add-card.dis{opacity:.58;cursor:default;background:#eef2f6;border-color:#dde4ec;}
.add-cover{width:100%;max-width:140px;aspect-ratio:3/4;max-height:190px;margin:0 auto;border-radius:10px;overflow:hidden;position:relative;background:linear-gradient(155deg,#2b8fe6,#0d9488);box-shadow:0 4px 10px rgba(13,90,184,.22);}
.add-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.add-cover.ph{display:flex;align-items:center;justify-content:center;color:#fff;font-size:9px;font-weight:700;padding:3px;text-align:center;line-height:1.2;}
.add-t{font-size:12.5px;font-weight:700;line-height:1.3;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:32px;}
.add-a{font-size:11px;color:var(--text-mut);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.add-tags{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;margin-top:5px;}
.add-tags .tag{font-size:10px;padding:2px 6px;}
.add-have{position:absolute;top:6px;left:6px;background:var(--green);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;box-shadow:0 1px 4px rgba(16,185,129,.4);}
.add-foot{display:flex;gap:9px;padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--border);box-shadow:0 -6px 18px rgba(18,32,52,.08);flex:0 0 auto;}
.add-foot .btn{flex:1;}

@media(min-width:760px){
  .dt-mask{display:flex;align-items:center;justify-content:center;padding:24px;}
  .dt-sheet{position:relative;left:auto;right:auto;bottom:auto;max-width:560px;width:100%;max-height:88vh;border-radius:20px;transform:none;}
  .dt-mask.show .dt-sheet{transform:none;}
  .dt-head{border-radius:20px 20px 0 0;}
}

/* 学校端弹层内的行（班级书目 / 学生足迹，只读） */
.shelf-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:11px 13px;margin:8px 0;box-shadow:var(--shadow);}
.shelf-row .sr-t{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1;min-width:0;font-size:14.5px;}

/* ===== 班级完成度小条（替代挤在卡片里的“X人完成测评”） ===== */
.shelf-stat{display:flex;flex-wrap:wrap;gap:7px;align-items:center;background:linear-gradient(180deg,#f3f9ff,#eef6ff);border:1px solid #dce9fb;border-radius:11px;padding:8px 10px;margin:8px 0;}
.shelf-stat .ss-item{font-size:12px;color:#3a5a82;line-height:1.4;white-space:nowrap;}
.shelf-stat .ss-item b{color:#1763c9;font-size:13.5px;font-weight:700;}
.shelf-stat .ss-me{background:#e3f0ff;border:1px solid #c4dffb;border-radius:8px;padding:2px 8px;color:#0d5fc4;}
.shelf-stat .ss-me b{color:#0a4fa8;}

/* ===== 学期选择：轻量下拉 select，不抢视觉焦点 ===== */
.term-sel{display:inline-block;width:auto;min-width:140px;max-width:100%;padding:8px 28px 8px 12px;font-size:13px;color:var(--text-sec);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237a8aa0' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 10px center;background-size:12px;border:1px solid var(--border);border-radius:9px;appearance:none;-webkit-appearance:none;}

/* 学期上下文标签：置顶，明确当前所查看学期（轻量、不抢焦点） */
.term-context{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#eaf3ff,#e6f7ff);border:1px solid #cfe4fb;border-radius:10px;padding:9px 12px;margin:0 0 10px;font-size:13px;color:#15539e;font-weight:600;}
.term-context .tc-dot{width:8px;height:8px;border-radius:50%;background:#2b8fe6;box-shadow:0 0 0 3px rgba(43,143,230,.18);flex:0 0 auto;}
.term-context .tc-txt{color:#3a5a82;font-weight:600;}
.term-context b{color:#0d4fa8;font-weight:800;}
.term-context .term-sel{background-color:rgba(255,255,255,.85);border-color:#bcd9f7;color:#0d4fa8;font-weight:600;min-width:150px;}
.term-context .term-sel:focus{outline:none;border-color:#2b8fe6;box-shadow:0 0 0 3px rgba(43,143,230,.18);}
.review-banner{background:#fff7e6;border:1px solid #ffd591;border-radius:10px;padding:9px 12px;margin:0 0 12px;font-size:13px;color:#ad6800;line-height:1.6;}
.review-banner b{color:#cf1322;}

/* ===== 我的测评：垂直紧凑列表（书多时不占横向空间，封面缩小） ===== */
.sec-sub{display:flex;align-items:baseline;gap:8px;margin:16px 0 6px;}
.sec-sub .sec-sub-t{font-size:15px;font-weight:700;color:var(--text);}
.sec-sub .sec-sub-d{font-size:12px;color:var(--text-mut);}
.my-assess{display:flex;flex-direction:column;gap:10px;}
.my-assess .ma-row{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);text-decoration:none;color:inherit;}
.my-assess .ma-cover{flex:0 0 auto;width:56px;height:78px;border-radius:6px;overflow:hidden;position:relative;background:linear-gradient(155deg,#2b8fe6,#0d9488);box-shadow:0 2px 6px rgba(13,90,184,.16);}
.my-assess .ma-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.my-assess .ma-cover.ph{display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;padding:4px;text-align:center;line-height:1.25;}
.my-assess .ma-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.my-assess .ma-top{display:flex;align-items:center;gap:8px;}
.my-assess .ma-t{font-size:14px;font-weight:700;color:var(--text);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* 封面角标：结果状态（左上） + 来源/星数（右上） */
.my-assess .ma-corner{font-size:10px;font-weight:800;padding:2px 7px;border-radius:999px;color:#fff;white-space:nowrap;}
.my-assess .ma-corner.ok{background:#2e9e5b;}
.my-assess .ma-corner.warn{background:#e8761e;}
.my-assess .ma-corner.gray{background:#7a8aa0;}
.my-assess .ma-kind{font-size:10px;font-weight:700;color:#0d5fc4;background:#eef5ff;border-radius:5px;padding:1px 5px;white-space:nowrap;}
.my-assess .ma-star-badge{font-size:10px;font-weight:800;color:#a9760d;background:linear-gradient(135deg,#fff7e0,#ffe6a6);border:1px solid #ffd98a;border-radius:999px;padding:1px 6px;white-space:nowrap;display:inline-flex;align-items:center;gap:2px;}
.my-assess .ma-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.my-assess .ma-term{font-size:10px;color:#6a7b91;background:#f0f4fa;border-radius:5px;padding:1px 5px;white-space:nowrap;}
.my-assess .ma-mm{display:flex;gap:3px;}
.my-assess .ma-mm .mc{width:18px;height:18px;border-radius:5px;font-size:10px;line-height:18px;text-align:center;color:#fff;font-weight:800;}
.my-assess .ma-mm .mc.ok{background:#3a8bdc;}
.my-assess .ma-mm .mc.weak{background:#e8543f;}
.my-assess .ma-mm .mc.miss{background:#e4ebf5;color:#9aa9bd;}
.my-assess .ma-btn{flex:0 0 auto;align-self:center;padding:8px 12px;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-deep));border-radius:8px;text-decoration:none;white-space:nowrap;box-shadow:0 2px 6px rgba(13,90,184,.2);}
.shelf-row .sr-t b{font-size:15.5px;font-weight:700;color:var(--text);}
