/* 英语听听站 - 样式（对齐参考图：深蓝头部 + 白卡片 + 简洁列表） */
:root{
  --navy:#1e3a5c; --navy-dark:#16304d; --gold:#f5a623;
  --bg:#f1f3f7; --card:#ffffff; --line:#e5e9f0;
  --text:#1f2937; --muted:#6b7280; --danger:#d64545;
  --radius:12px; --shadow:0 1px 3px rgba(16,24,40,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  padding-bottom:110px;-webkit-tap-highlight-color:transparent}

/* ===== 头部 ===== */
header.app{position:sticky;top:0;z-index:50;background:var(--navy);color:#fff}
.header-inner{max-width:860px;margin:0 auto;padding:16px 16px 8px;display:flex;align-items:baseline;justify-content:space-between}
.header-inner h1{margin:0;font-size:20px;font-weight:700;letter-spacing:.5px}
.header-date{font-size:13px;opacity:.85}
.header-right{display:flex;align-items:center;gap:10px}
.h-auth{flex:none;padding:4px 12px}
.auth-tabs{display:flex;gap:8px;margin-bottom:4px}
.auth-tab{padding:6px 14px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:14px}
.auth-tab.active{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}
.dev-row{padding:2px 0;font-size:13px}
.row.col{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.tabs{max-width:860px;margin:0 auto;display:flex;gap:2px;padding:0 8px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{appearance:none;border:0;background:transparent;color:rgba(255,255,255,.72);font-size:14px;
  padding:10px 12px;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;font-family:inherit}
.tabs button.active{color:#fff;font-weight:600;border-bottom-color:var(--gold)}

main{max-width:860px;margin:0 auto;padding:16px}
.tab{display:none}.tab.active{display:block}

/* ===== 卡片 ===== */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px;border:1px solid var(--line)}
.card h2{margin:0 0 12px;font-size:16px}
.card h2 .sub{font-size:12px;color:var(--muted);font-weight:400;margin-left:8px}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.grow{flex:1;min-width:0}
.hint{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.7}
/* 兜底：.row 内的说明文字给一个最小可读宽度，放不下就整段换行（永不被挤成 1 字/行的竖排） */
.row > .hint.grow{min-width:min(100%,150px)}
.empty{color:var(--muted);font-size:13px;text-align:center;padding:22px 0}

/* ===== 按钮 ===== */
.btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:8px;
  padding:8px 14px;font-size:14px;cursor:pointer;font-family:inherit;line-height:1.3;
  white-space:nowrap} /* 按钮文字一律不折行（窄屏放不下时整颗按钮换行，而不是字被拆成竖排） */
.btn:hover{border-color:#c9d2de;background:#fafbfd}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.primary:hover{background:var(--navy-dark)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#fff}
.btn.gold:hover{background:#d9940f;border-color:#d9940f}
.btn.danger{color:var(--danger);border-color:#f3caca;background:#fff}
.btn.danger:hover{background:#fdf3f3}
.btn.small{padding:4px 10px;font-size:13px;border-radius:6px}
.btn.icon{padding:6px 10px}
.btn.big{padding:10px 22px;font-size:16px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.link{background:none;border:none;color:var(--accent,#2f6fed);cursor:pointer;font-size:13px;padding:0;font-family:inherit}

/* ===== 列表 ===== */
.list{display:flex;flex-direction:column}
.item{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
/* 每日播放列表项：略微压缩上下空间至约 80%，让一屏能显示更多条 */
.item.trow{padding-top:8px;padding-bottom:8px}
/* 每日播放列表操作按钮：横向一行排列（宽屏在标题右侧，窄屏自动换到标题下方横排） */
.btn-row{display:flex;flex-wrap:wrap;gap:6px;flex:none;align-items:center}
.btn-row .btn{flex:none}
.item .t{font-weight:600;font-size:14px;word-break:break-all;overflow-wrap:anywhere}
.item .m{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}
.num{width:22px;color:#9aa5b1;font-size:12px;text-align:center;flex:none}
.chip{display:inline-block;font-size:11px;background:#eef2f7;color:#4b5a6b;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:1px;font-weight:400}
.chip.gold{background:#fdf3e0;color:#8a6116}
.chip.green{background:#e8f4ea;color:#2e7d3a}

/* 分组头像（首字母圆形） */
.avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:15px;flex:none;color:#fff}
.av0{background:#2f55a4}.av1{background:#2e7d3a}.av2{background:#b3730f}
.av3{background:#6b3fa0}.av4{background:#a43a3a}.av5{background:#22707e}

/* ===== 表单 ===== */
input[type=text],input[type=search],input[type=number],select,textarea{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px;
  font-family:inherit;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(47,111,237,.25);border-color:#9db9ec}
textarea{min-height:96px;resize:vertical;line-height:1.7}
label.f{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}
.divider{height:1px;background:var(--line);margin:14px 0}
/* 百度网盘文件选择器 */
.bp-item{cursor:pointer;border-radius:6px;padding:9px 6px;transition:background .15s;display:flex;align-items:center;gap:8px}
.bp-item:hover{background:#f5f8fb}
.bp-item.bp-sel{background:#e8f0fb;border-bottom-color:#d4e2f5}
.bp-item.bp-disabled{opacity:.45;cursor:default}
.bp-item.bp-disabled:hover{background:transparent}
.bp-check{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}
.bp-check input{width:16px;height:16px;accent-color:var(--navy);margin:0;cursor:pointer}
.bp-folderimport{flex-shrink:0;padding:4px 10px;font-size:12px;border-radius:6px;white-space:nowrap}
input[type=range]{width:100%;accent-color:var(--navy)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.seg button{border:0;background:#fff;padding:6px 13px;font-size:13px;cursor:pointer;color:var(--muted);font-family:inherit}
.seg button.active{background:var(--navy);color:#fff;font-weight:600}

/* ===== 热力图 ===== */
.hm{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,12px);gap:3px;width:max-content}
.hm i{width:12px;height:12px;border-radius:3px;background:#e9edf3;display:block}
.hm i.hm-g1{background:#c9e5c4}
.hm i.hm-g2{background:#93cd8d}
.hm i.hm-g3{background:#4e9e57}
.hm i.hm-g4{background:#2e7d3a}
.hm i.hm-f{opacity:.35}

/* 当月日历式热力图（每日播放·今日卡片） */
.cal-stats{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.6}
.cal-stats b{color:var(--text)}
.cal-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:8px}
.cal-label{font-weight:600;font-size:14px;min-width:92px;text-align:center}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px 4px}
.cal-dow{margin-bottom:4px}
.cal-dow span{font-size:10px;color:#9aa5b1;text-align:center}
.cal-cell{display:flex;flex-direction:column;align-items:center;gap:2px}
.cal-cell i{width:100%;max-width:34px;height:22px;border-radius:5px;background:#e9edf3;display:block}
.cal-cell i.hm-g1{background:#c9e5c4}
.cal-cell i.hm-g2{background:#93cd8d}
.cal-cell i.hm-g3{background:#4e9e57}
.cal-cell i.hm-g4{background:#2e7d3a}
.cal-cell span{font-size:9px;color:var(--muted);line-height:1}
.cal-cell.cal-future i{opacity:.35}
.cal-cell.cal-future span{color:#c3cad3}
.cal-cell.cal-today i{outline:2px solid var(--gold);outline-offset:1px}
.cal-pad{min-height:1px}

/* ===== 统计图 ===== */
.chart svg{width:100%;height:auto;display:block}
.stats-sum{font-size:13px;color:var(--muted);margin:0 0 10px;line-height:1.8}

/* ===== 播放条 ===== */
#playerBar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);
  box-shadow:0 -2px 10px rgba(16,24,40,.06);transform:translateY(110%);transition:transform .25s}
#playerBar.show{transform:none}
.pb-progress{height:3px;background:#e8edf3;cursor:pointer}
#pbFill{height:100%;width:0;background:var(--gold)}
.pb-row{max-width:860px;margin:0 auto;display:flex;align-items:center;gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom))}
.pb-info{flex:1;min-width:0;cursor:pointer}
.pb-info .t{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb-info .m{font-size:11px;color:var(--muted);margin-top:1px}

/* ===== 播放面板 ===== */
#playerSheet{position:fixed;inset:0;z-index:80;background:rgba(15,26,40,.55);display:none}
#playerSheet.show{display:flex;align-items:flex-end;justify-content:center}
.sheet{background:#fff;width:100%;max-width:860px;border-radius:16px 16px 0 0;padding:18px 18px 26px;max-height:88vh;overflow:auto}
.sheet-title{font-size:18px;font-weight:700}
.sheet-time{font-size:12px;color:var(--muted);margin-top:4px}
.sheet-seek{width:100%;margin:8px 0 4px}
.sheet-video{margin-top:10px;border-radius:10px;overflow:hidden;background:#000;max-height:46vh}
.sheet-video .video-el{display:block;width:100%;max-height:46vh;background:#000}
.sheet-tx{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:14px;line-height:1.9;margin-top:10px}
.tx-line{padding:2px 6px;border-radius:6px;color:#55606c}
.tx-line.cur{background:#fdf3e0;color:#1f2937;font-weight:600}
.sheet-ctrls{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:14px;flex-wrap:wrap}

/* ===== 弹窗 / 提示 ===== */
#modalRoot{position:fixed;inset:0;z-index:90;pointer-events:none}
.modal-overlay{position:absolute;inset:0;background:rgba(15,26,40,.5);display:flex;align-items:center;justify-content:center;padding:16px;pointer-events:auto}
.modal{background:#fff;border-radius:12px;max-width:560px;width:100%;max-height:84vh;display:flex;flex-direction:column}
.modal.wide{max-width:680px}
.m-head{padding:14px 16px 0;font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.m-body{padding:12px 16px;overflow:auto;min-width:0}
.m-foot{padding:10px 16px 14px;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.m-text{font-size:14px;line-height:1.8;color:#374151;white-space:pre-wrap}
/* 转写/识别状态行：独占一行、长文案自然折行（不再与按钮同排被挤压成竖排） */
.asr-status{display:block;margin-top:8px;font-size:12px;color:var(--muted);line-height:1.6;
  white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.asr-status:empty{display:none}
#toastRoot{position:fixed;left:50%;bottom:120px;transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:rgba(23,35,50,.92);color:#fff;font-size:13px;border-radius:8px;padding:8px 14px;animation:fadein .2s;max-width:80vw}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1}}

/* 最近记录：按分组折叠（每日播放） */
.rg-head{cursor:pointer}
.rg-head:hover{background:#fafbfd}
.rg-arrow{font-size:12px;color:#9aa5b1;flex:none}
.rg-body{margin:0 0 8px 48px;background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:2px 10px}
.rg-rec{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--line)}
.rg-rec:last-child{border-bottom:0}
.rg-rec .t{word-break:break-all;overflow-wrap:anywhere}
.rg-when{font-size:11px;color:#9aa5b1;flex:none;width:62px;padding-top:2px;text-align:center;line-height:1.4}
.prog{height:6px;background:#e8edf3;border-radius:3px;overflow:hidden;margin-top:5px}
.prog i{display:block;height:100%;background:var(--gold);border-radius:3px}

/* 长标题完整显示 + 折叠（分组详情音频列表）：无空格的长文件名也能任意断行，默认完整展开 */
.item .t.t-wrap{white-space:normal;word-break:break-all;overflow-wrap:anywhere}
.t-wrap.folded .ttext{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.fold-btn{font-size:11px;color:#2f6fed;font-weight:400;margin-left:6px;cursor:pointer;white-space:nowrap;vertical-align:1px;user-select:none}
.rowchk{width:18px;height:18px;accent-color:var(--navy);flex:none;cursor:pointer;margin:0}
.item.selrow{background:#f4f8fd}

/* 播放键 + 续播键纵向堆叠（播放在上、续播在下） */
.pb-col{display:flex;flex-direction:column;gap:4px;flex:none;align-items:stretch}
.pb-col .btn{white-space:nowrap}

/* ================= Think学习 · 分类展示 ================= */
/* 分类主题色（全部复用应用已有色板：深蓝/金/绿/红/灰，不引入新颜色） */
.thk-c-oral{--cat:#f5a623;--cat-bg:#fdf3e0;--cat-bd:#f0d9a6}
.thk-c-grammar{--cat:#1e3a5c;--cat-bg:#e9eef5;--cat-bd:#c6d2e2}
.thk-c-vocab{--cat:#2e7d3a;--cat-bg:#eaf5ec;--cat-bd:#c2dfc6}
.thk-c-homework{--cat:#d64545;--cat-bg:#fbecec;--cat-bd:#f0c9c9}
.thk-c-other{--cat:#6b7280;--cat-bg:#f3f5f8;--cat-bd:#dde2e9}

/* 新建记录入口卡片 */
.thk-hero{display:flex;align-items:center;gap:14px;padding:6px 0}
.thk-hero .thk-hero-ico{width:48px;height:48px;flex:none;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--gold),var(--navy));box-shadow:0 4px 10px rgba(245,166,35,.28)}
.thk-hero .thk-hero-txt{flex:1;min-width:0}
.thk-hero .thk-hero-txt .t{font-size:15px;font-weight:700;margin:0 0 3px}
.thk-hero .thk-hero-txt .m{font-size:12px;color:var(--muted);line-height:1.6}

/* 列表页：学习记录卡片 */
.thk-grid{display:flex;flex-direction:column;gap:12px}
.thk-card{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.thk-card-main{padding:14px 16px 12px;display:flex;gap:12px;align-items:flex-start}
.thk-card .thk-avatar{width:42px;height:42px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:16px;color:#fff;background:var(--navy);letter-spacing:0}
.thk-card .thk-info{flex:1;min-width:0}
.thk-card .thk-title{font-weight:700;font-size:15px;color:var(--text);line-height:1.4;word-break:break-all;overflow-wrap:anywhere}
.thk-card .thk-meta{margin-top:5px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.thk-card .thk-meta .dot{color:#c3cad4}
.thk-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.thk-badge{appearance:none;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;border-radius:20px;
  padding:3px 10px;color:var(--cat);background:var(--cat-bg);border:1px solid var(--cat-bd)}
.thk-badge:hover{border-color:var(--cat);box-shadow:0 1px 4px rgba(16,24,40,.12)}
.thk-badge .n{font-weight:700}
.thk-card-acts{display:flex;gap:8px;align-items:center;flex:none;padding-top:2px}
/* 卡片底部操作条：按钮文字不折行；窄屏排不下时整颗按钮换到下一行 */
.thk-card-foot{border-top:1px solid var(--line);padding:8px 14px;display:flex;gap:6px;justify-content:flex-end;
  align-items:center;flex-wrap:wrap;background:#fafbfd}
.thk-card-foot .btn{flex:none;white-space:nowrap}

/* 详情页：分类区块卡片 */
.thk-view .thk-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.thk-view .thk-head .thk-avatar{width:44px;height:44px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:17px;color:#fff;background:var(--navy)}
.thk-view .thk-head .thk-hd-txt{flex:1;min-width:0}
.thk-view .thk-head .thk-hd-title{font-weight:700;font-size:16px;line-height:1.4;word-break:break-all;overflow-wrap:anywhere}
.thk-view .thk-head .thk-hd-meta{font-size:12px;color:var(--muted);margin-top:3px}
.thk-sec{border:1px solid var(--cat-bd);border-left:4px solid var(--cat);border-radius:10px;background:#fff;
  margin-bottom:12px;overflow:hidden}
.thk-sec-h{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--cat-bg);font-weight:600;font-size:14px;color:var(--cat)}
.thk-sec-h .sub{font-size:12px;font-weight:400;opacity:.75;margin-left:auto}
.thk-sec-body{padding:12px 14px;font-size:13.5px;line-height:1.85;white-space:pre-wrap;color:#374151;word-break:break-word}
.thk-sec-empty{padding:12px 14px;font-size:13px;color:#9aa5b1}
.thk-para{border-bottom:1px solid var(--line);padding:10px 14px}
.thk-para:last-child{border-bottom:0}
.thk-para-txt{font-size:13.5px;line-height:1.8;white-space:pre-wrap;color:#374151;word-break:break-word}
.thk-move{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.thk-move .mv-hint{font-size:11px;color:#9aa5b1;margin-right:2px}
.thk-move .btn{font-size:12px;padding:3px 9px;border-radius:14px}

/* 单模块筛选标签栏 */
.thk-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.thk-ft{--cat:var(--navy);appearance:none;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:16px;
  padding:4px 14px;font-size:13px;cursor:pointer;font-family:inherit}
.thk-ft:hover{border-color:#c9d2de;color:var(--text)}
.thk-ft.active{border-color:var(--cat);background:var(--cat);color:#fff;font-weight:600}
.thk-ft:disabled{opacity:.35;cursor:not-allowed}
.thk-ft:disabled:hover{border-color:var(--line);color:var(--muted)}

/* 详情：段落列表 + 「移至」下拉 */
.thk-para-list{padding:0}
.thk-mv-sel{margin-left:6px;font-family:inherit;font-size:12px;color:var(--text);border:1px solid var(--line);border-radius:14px;
  padding:2px 8px;background:#fff;cursor:pointer}
.thk-mv-sel:focus{outline:none;border-color:var(--cat,var(--navy))}

/* 新建入口按钮组 */
.thk-hero-acts{display:flex;gap:8px;flex:none;flex-wrap:wrap;align-items:center}
/* Think 顶部操作条：只放「分类管理 / ＋ 新建笔记」两颗按钮 */
.thk-act-row{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.thk-act-row .btn{flex:none;white-space:nowrap}

/* 分类管理弹窗 */
.thk-cats-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.thk-cat-row{--cat:var(--navy);border:1px solid var(--cat-bd);border-left:4px solid var(--cat);border-radius:10px;
  padding:8px 10px;background:#fff}
.thk-cat-row.fixed{opacity:.92}
.thk-cat-line{display:flex;align-items:center;gap:6px}
.thk-cat-dot{width:10px;height:10px;border-radius:50%;background:var(--cat);flex:none}
.thk-cat-s{width:78px;flex:none}
.thk-cat-l{flex:1;min-width:0}
.thk-cat-kw{width:100%;margin-top:6px}
.thk-cat-ops{display:flex;gap:4px;flex:none;align-items:center}
.thk-cat-fix{font-size:11px;color:var(--muted);padding:0 4px}
.thk-cat-row input{font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;
  background:#fff;color:var(--text)}
.thk-cat-row input:focus{outline:none;border-color:var(--cat)}
.thk-cats-add{margin:2px 0 4px}

/* ================= 读书笔记 ================= */
.bkc-av{background:var(--cat,var(--navy))}
.bkc-author{margin-left:8px;font-size:12px;font-weight:400;color:var(--muted)}
.bkc-stats{margin-top:4px;font-size:12.5px;line-height:1.7;color:var(--muted);word-break:break-word}
.bkc-stats b{color:var(--cat,var(--navy));font-weight:600;padding:0 1px}
.bkc-statbox{--cat:var(--navy);border:1px solid var(--cat-bd);background:var(--cat-bg);color:#333;
  border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.7;margin:10px 0 12px}
.bkc-statbox b{color:var(--cat);font-weight:600}
.bkc-recs{display:flex;flex-direction:column;gap:10px}
.bkc-rec{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;
  display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.bkc-rec-main{flex:1;min-width:180px}
.bkc-rec-t{font-size:14px;font-weight:600;color:var(--text);line-height:1.5;word-break:break-word}
.bkc-rec-m{font-size:12px;color:var(--muted);margin-top:2px}
.bkc-rec-b{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.bkc-pill{font-size:11px;color:var(--muted);background:#f3f5f8;border:1px solid var(--line);
  border-radius:10px;padding:1px 8px}
.bkc-pill.bkc-p-q{color:#7c5cbf;background:#f1edfa;border-color:#d8cdf0}
.bkc-pill.bkc-p-w{color:#0d8a8a;background:#e3f5f5;border-color:#bfe4e4}
.bkc-rec-ops{display:flex;gap:6px;flex:none;flex-wrap:wrap}
.bkc-sec{--cat:var(--navy);border:1px solid var(--line);border-left:4px solid var(--cat);
  border-radius:10px;margin-bottom:12px;overflow:hidden;background:#fff}
.bkc-sec-h{background:var(--cat-bg);color:var(--cat);font-weight:600;font-size:13px;
  padding:6px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.bkc-sec-h .sub{font-weight:400;font-size:12px;opacity:.8}
.bkc-sec-b{padding:8px 12px;font-size:13px;line-height:1.8}
.bkc-sec-empty{padding:10px 12px;font-size:12.5px;color:var(--muted)}
.bkc-pre{white-space:pre-wrap;word-break:break-word}
.bkc-kv{display:flex;gap:8px;line-height:1.8}
.bkc-kv .k{color:var(--muted);min-width:52px;flex:none}
.bkc-kv .v{color:var(--text);word-break:break-word}
.bkc-q-list{margin:0;padding:8px 12px 10px 30px;font-size:13px;line-height:1.9}
.bkc-q-list li{margin:2px 0;word-break:break-word}
.bkc-w-list{padding:4px 0}
.bkc-w{padding:6px 12px;border-top:1px dashed var(--line)}
.bkc-w:first-child{border-top:0}
.bkc-w-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.bkc-w-h .w{font-size:14px;font-weight:600;color:var(--text)}
.bkc-w-h .py{font-size:12px;color:var(--cat,var(--navy));letter-spacing:.3px}
.bkc-w-m{font-size:12.5px;color:#374151;line-height:1.75;margin-top:2px;word-break:break-word}

/* ===== 读书笔记 · 阅读日历 / 中英文书架 / 手工调类 ===== */
/* 日历纵向空间压缩到约 2/3：卡片内边距、标题/切换行、日期格高度、底部提示一起收紧 */
.bkc-cal-card{padding:13px 14px}
.bkc-cal-card h2{margin-bottom:7px}
.bkc-cal-card .hint{margin-top:6px;line-height:1.6}
.bkc-sw{display:flex;gap:8px;margin:0 0 7px}
.bkc-sw-btn{appearance:none;font-family:inherit;font-size:13px;padding:5px 13px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;white-space:nowrap}
.bkc-sw-btn.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
/* 英文书架选中态用绿色（中文书架沿用深蓝，与两套配色呼应） */
.bkc-sw-btn.active[data-lang="en"]{background:#2e7d3a;border-color:#2e7d3a}
/* ===== 英文书架整组偏绿；中文书架一切保持现有配色不变 ===== */
.bkc-cal-en .bkc-day.has{background:#e6f4ea;border-color:#c2dfc6;color:#2e7d3a}
.bkc-cal-en .bkc-day.has:hover{background:#d9ebdd}
.bkc-cal-en .bkc-day .mk{background:#2e7d3a}
.bkc-cal-en + .bkc-cal-sum{color:#2e7d3a}
.bkc-cal-en .bkc-day.today{box-shadow:inset 0 0 0 2px #8fc79a}
.bkc-shelf--en{border-color:#cfe3d3;background:#fbfefb}
.bkc-shelf--en .bkc-shelf-t{color:#2e7d3a}
.bkc-shelf--en .bkc-shelf-add{background:#2e7d3a;border-color:#2e7d3a}
.bkc-shelf--en .bkc-shelf-add:hover{background:#26692f;border-color:#26692f}
.bkc-book-en{border-color:#d8e8db}
/* 英文书目「书名前的方块」也走绿色：.thk-card .thk-avatar 原先把背景写死成深蓝，
   这里对英文卡片（以及英文书籍详情弹窗，弹窗 body 上挂了 --cat）用更高优先级覆盖 */
.bkc-book-en .thk-avatar.bkc-av,
.bkc-view .thk-avatar.bkc-av{background:var(--cat,var(--navy))}
/* 英文书籍卡片内的主按钮（查看）也用绿，和书架形成一致的绿色标识 */
.bkc-book-en .btn.primary{background:#2e7d3a;border-color:#2e7d3a}
.bkc-book-en .btn.primary:hover{background:#26692f;border-color:#26692f}
/* 我的书架：中英文书架改为切换显示，卡片内的切换条与书箱 */
.bkc-shelf-card .bkc-sw{margin:0 0 10px}
.bkc-shelf-card .bkc-shelf{margin-bottom:0}
.bkc-cal-nav{display:flex;align-items:center;gap:6px;margin-bottom:5px}
.bkc-cal-nav .btn{padding:3px 9px;font-size:12.5px;line-height:1.2}
.bkc-cal-nav .btn.icon{padding:3px 9px}
.bkc-cal-ym{flex:1;text-align:center;font-size:13.5px;font-weight:600;color:var(--text)}
.bkc-cal-wk{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:3px}
.bkc-cal-wk span{text-align:center;font-size:11px;color:var(--muted)}
.bkc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.bkc-cal-sum{font-size:12px;color:var(--muted);margin-top:6px}
.bkc-day{position:relative;appearance:none;font-family:inherit;border:1px solid transparent;border-radius:7px;
  min-height:26px;background:#f6f8fb;color:var(--text);font-size:12.5px;cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center}
.bkc-day:hover{background:#eef2f8}
.bkc-day-out{background:transparent;cursor:default;pointer-events:none}
.bkc-day.has{background:#e6eefb;border-color:#c3d3ec;color:var(--navy);font-weight:600}
.bkc-day.has:hover{background:#dbe6f8}
.bkc-day.today{box-shadow:inset 0 0 0 2px var(--gold)}
.bkc-day .mk{position:absolute;top:1px;right:2px;min-width:12px;height:12px;line-height:12px;padding:0 3px;
  border-radius:6px;background:var(--navy);color:#fff;font-size:8.5px;font-weight:600;text-align:center}
.bkc-shelf{border:1px solid var(--line);border-radius:10px;padding:10px 12px 12px;margin-bottom:12px;background:#fcfdff}
.bkc-shelf:last-child{margin-bottom:0}
.bkc-shelf-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.bkc-shelf-t{font-size:14px;font-weight:700;color:var(--navy)}
.bkc-shelf-h .sub{font-size:12px;color:var(--muted)}
.bkc-shelf-add{margin-left:auto}
.bkc-mv{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:6px}
.bkc-mv .mv-hint{font-size:11px;color:var(--muted)}
.bkc-mv .btn.small{padding:3px 9px;font-size:11.5px}
.bkc-q-t{word-break:break-word}
.bkc-o-list{display:flex;flex-direction:column}
.bkc-o{padding:6px 12px;border-top:1px dashed var(--line)}
.bkc-o:first-child{border-top:0}
.bkc-o-t{font-size:13px;line-height:1.75;white-space:pre-wrap;word-break:break-word}
.bkc-daylist{display:flex;flex-direction:column;gap:10px}

/* ===== 音频切割工作台 ===== */
.cut-load{padding:26px 0;text-align:center;color:var(--muted);font-size:14px}
.cut-wave{width:100%;height:120px;display:block;border:1px solid var(--line);border-radius:8px;
  background:#fbfcfe;cursor:crosshair;touch-action:manipulation}
.cut-transport{display:flex;gap:8px;align-items:center;margin:9px 0 6px;flex-wrap:wrap}
.cut-time{font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted);white-space:nowrap}
.cut-keyhint{margin-left:auto}
.cut-modes{display:flex;gap:6px;margin:6px 0 10px;flex-wrap:wrap}
.cut-mode{appearance:none;font-family:inherit;font-size:13px;padding:6px 12px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;white-space:nowrap}
.cut-mode.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.cut-panel{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfcfe;margin-bottom:10px}
.cut-form-row{display:flex;gap:8px;align-items:center;margin:6px 0;flex-wrap:wrap;font-size:14px}
.cut-form-row input[type=number]{width:78px}
.cut-form-row input[type=text]{flex:1;min-width:110px}
.cut-form-row input[type=range]{flex:1;min-width:120px}
.cut-cut-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.cut-cut-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cut-cut-row input{width:88px}
.cut-num{flex:none;width:22px;height:22px;line-height:22px;text-align:center;border-radius:50%;
  background:#eef2f9;color:var(--navy);font-size:12px;font-weight:600}
.cut-segs-h{font-size:14px;font-weight:600;margin:4px 0 6px}
.cut-seg-row{display:flex;gap:8px;align-items:center;padding:6px 4px;border-top:1px solid var(--line)}
.cut-seg-row:first-of-type{border-top:0}
.cut-seg-row input.cut-seg-title{flex:1;min-width:0}
.cut-seg-m{flex:none;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.cut-seg-row.playing{background:#f0f5ff;border-radius:6px}
.cut-kw-stat{margin:6px 0;font-size:13px;line-height:1.6}
.cut-kw-warn{color:#b45309}

@media(max-width:560px){
  .thk-hero{flex-wrap:wrap}
  .thk-hero-acts{width:100%;justify-content:flex-end}
  .header-inner h1{font-size:17px}
  .card{padding:14px}
  .btn{padding:7px 12px}
  .item .btn{flex:none}
  /* 曲目/分组行：窄屏下标题区至少占一半宽，操作按钮放不下就整行换到下方，
     避免标题被 4~5 个按钮挤成一字一行（竖排） */
  .item.trow{flex-wrap:wrap;row-gap:8px}
  .item.trow .grow{min-width:56%}
  .item.trow .btn.small{padding:5px 11px}
  /* 每日播放列表：按钮行独占一整行横排，避免竖排堆叠拉长条目 */
  .item.trow .btn-row{flex:1 1 100%;row-gap:6px}
  /* 播放库子文件夹行：标题与「播放/管理/删除」保持同一行，尽量压缩纵向空间（不另起一行） */
  .item.trow.lib-folder{flex-wrap:nowrap;row-gap:0}
  .item.trow.lib-folder .grow{min-width:0}
  .item.trow .btn-row.folder-acts{flex:none;flex-wrap:nowrap;row-gap:0}
  .item.trow.lib-folder .folder-acts .btn{padding:4px 9px;font-size:12px}
  /* 读书笔记：记录条目操作按钮整行换到下方横排 */
  .bkc-rec-ops{flex:1 1 100%}
  .bkc-rec-main{min-width:0}
  /* 卡片底部操作条：缩小内边距与字号，让 4 颗按钮（查看/＋记一条/编辑书名/删除）排成一行不折行 */
  .thk-card-foot{padding:7px 10px;gap:5px}
  .thk-card-foot .btn.small{padding:5px 9px;font-size:12.5px}
  .bkc-cal-card{padding:11px 12px}
  /* 中英文书架切换：窄屏等宽平分整行，点击区域更大 */
  .bkc-sw .bkc-sw-btn{flex:1 1 0;text-align:center}
  /* 音频切割：窄屏分段信息独占一行，键盘提示隐藏 */
  .cut-seg-row{flex-wrap:wrap}
  .cut-seg-m{flex:1 1 100%;order:3}
  .cut-keyhint{display:none}
  /* 刷单词：窄屏卡片与按钮适配 */
  .grind-hero-row{flex-direction:column;align-items:stretch}
  .grind-hero-stat{justify-content:space-between;gap:10px}
  .grind-hero-row .btn.big{width:100%}
  .grind-word{font-size:33px}
  .grind-card{min-height:150px;padding:22px 14px 18px}
  .grind-opt{padding:12px 14px;font-size:15px}
  .grind-next .btn{min-width:100%;width:100%}
  .grind-sum-stats{gap:14px}
}

/* 百度网盘授权引导（v4.37：oob 免回调地址方式，复制授权码粘贴回来） */
.pan-steps{margin:10px 0 0;padding-left:20px;font-size:13px;color:#374151;line-height:1.85}
.pan-steps li{margin:2px 0}
.pan-steps b{color:var(--navy)}

/* 扫码授权弹窗（v4.38：百度设备码流程，手机百度App扫码，无需密码） */
.pan-qr-wrap{position:relative;width:200px;height:200px;margin:12px auto 0;border:1px solid #e5e7eb;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pan-qr-img{width:100%;height:100%;object-fit:contain;display:block}
.pan-qr-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;font-size:13px;color:#6b7280;background:rgba(255,255,255,.94)}
.pan-qr-code{margin-top:10px;padding:8px 10px;border-radius:10px;background:#f1f5f9;font-size:12.5px;color:#475569;text-align:center;line-height:1.7}
.pan-qr-code span{font-size:18px;font-weight:700;letter-spacing:3px;color:var(--navy,#1f2d5a);font-family:ui-monospace,Menlo,Consolas,monospace}

/* 播放库多级文件夹：层级面包屑 */
.crumb-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}
.crumb-row .btn{padding:4px 9px;font-size:12.5px}
.crumb-sep{color:#9ca3af;font-size:12px}
.crumb-cur{font-size:13px;font-weight:600;color:var(--navy,#1e3a5c);max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 转文稿：按播放库文件夹层级展示的音频选择列表 */
.pick-list{margin-top:6px;max-height:290px;overflow:auto;border:1px solid #e5e7eb;border-radius:10px;background:#fff}
.pick-dir{display:flex;align-items:center;gap:6px;padding:6px 8px;font-size:12.5px;font-weight:600;color:#374151;background:#f8fafc;border-top:1px solid #f1f5f9}
.pick-dir:first-child{border-top:0}
.pick-item{display:flex;align-items:center;gap:8px;padding:7px 8px;font-size:13.5px;color:#111827;cursor:pointer;border-top:1px solid #f8fafc}
.pick-item:hover{background:#f5f8fb}
.pick-item.on{background:#e8f0fb;color:var(--navy,#1e3a5c);font-weight:600}
.pick-item .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 转文稿选曲：文件夹手风琴（默认折叠，点击展开） */
.pick-folder{background:#fff}
.pick-dir{cursor:pointer;user-select:none}
.pick-dir:hover{background:#eef2f7}
.pick-caret{display:inline-block;width:14px;text-align:center;color:#6b7280;font-size:11px;transition:transform .12s}
.pick-children{padding:0 0 2px}
.pick-children .pick-item{background:#fff}
.pick-children .pick-item:hover{background:#f5f8fb}

/* 播放库文件夹内：子文件夹与音频并列，子文件夹可点击展开 */
.lib-folder{cursor:pointer;padding-top:6px;padding-bottom:6px}
.lib-folder:hover{background:#f8fafc}
.lib-folder.open{background:#f8fafc}
.lib-folder .m{margin-top:2px}
.fold-caret{display:inline-block;width:16px;text-align:center;color:#6b7280;font-size:11px;margin-right:2px;transition:transform .12s}
/* 子文件夹操作：播放/管理/删除 三个按钮同一行，按钮更紧凑以压缩横向与纵向空间 */
.folder-acts{flex:none;flex-wrap:nowrap;gap:6px;margin-left:auto}
.folder-acts .btn{padding:3px 9px;font-size:12.5px;white-space:nowrap}
.folder-kids{padding:2px 0 4px}
.folder-kids .item{border-left:3px solid #eef2f7;margin-left:6px}

/* ===== 刷单词（百词斩模式） ===== */
/* 入口卡片：淡金渐变突出新功能，但保持白卡片体系 */
.grind-hero{background:linear-gradient(135deg,#fff7e8 0%,#ffffff 62%);border-color:#f3e2b8}
.grind-hero-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.grind-hero-stat{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.ghs-item{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text)}
.ghs-item b{font-size:17px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}
.d-known{background:#2e7d3a}
.d-learning{background:#f5a623}
.d-fresh{background:#c4ccd6}

/* 会话：顶部进度条 */
.grind-top{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.grind-prog{flex:1;height:8px;background:#eef2f7;border-radius:99px;overflow:hidden}
.grind-prog-fill{height:100%;background:linear-gradient(90deg,var(--gold),#f7b84a);border-radius:99px;transition:width .25s}
.grind-step{font-size:12.5px;color:var(--muted);flex:none;white-space:nowrap}

/* 会话：卡片 */
.grind-card{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:30px 18px 24px;text-align:center;margin:8px 0 14px;min-height:190px;display:flex;flex-direction:column;justify-content:center}
.grind-card.on{background:#fff;border-color:#f3e2b8}
.grind-word{font-size:40px;font-weight:800;letter-spacing:.5px;color:var(--navy);line-height:1.15;word-break:break-word;overflow-wrap:anywhere}
.grind-phon{margin-top:6px;font-size:16px;color:var(--muted)}
.grind-reveal{margin-top:16px;min-height:52px;display:flex;flex-direction:column;justify-content:center}
.grind-mean{font-size:19px;font-weight:600;color:var(--text);line-height:1.5;word-break:break-word}
.grind-note{margin-top:6px;font-size:13.5px;color:var(--muted)}
.grind-src{margin-top:6px;font-size:12px;color:#9aa5b1}
.grind-hidetip{font-size:13px;color:#b3bcc7}

/* 会话：发音 / 看释义 / 自动发音 控制行 */
.grind-ctl{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:14px;flex-wrap:wrap}
.grind-auto{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted);cursor:pointer}
.grind-auto input{width:auto;margin:0}

/* 会话：题干提示 */
.grind-q{margin-top:14px;font-size:13.5px;color:#9aa5b1}

/* 会话：三选一选项按钮 */
.grind-opts{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.grind-opt{width:100%;text-align:left;padding:13px 16px;font-size:16px;line-height:1.45;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s,transform .06s;word-break:break-word}
.grind-opt:hover{border-color:var(--gold);background:#fffaf0}
.grind-opt:active{transform:scale(.99)}
.grind-opt.right{border-color:#2e7d3a;background:#e9f6ec;color:#1f5c2b;font-weight:600}
.grind-opt.wrong{border-color:#d9534f;background:#fdecea;color:#b0201c;font-weight:600}
.grind-opt.dim{opacity:.45}
.grind-opt:disabled,.grind-opt.right,.grind-opt.wrong,.grind-opt.dim{cursor:default}

/* 会话：对错反馈 + 下一题 */
.grind-fb{text-align:center;margin-top:14px;font-size:16px;font-weight:700}
.grind-fb.good{color:#2e7d3a}
.grind-fb.bad{color:#d9534f}
.grind-next{display:flex;justify-content:center;margin-top:14px}
.grind-next .btn{min-width:180px;padding:13px 10px;font-size:16px;font-weight:700}

/* 会话：结束统计 */
.grind-sum{text-align:center;padding:16px 8px 8px}
.grind-sum-emoji{font-size:52px;line-height:1}
.grind-sum-title{font-size:22px;font-weight:800;color:var(--navy);margin:10px 0 14px}
.grind-sum-stats{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.grind-sum-tip{font-size:13px;color:var(--muted);line-height:1.6}

