:root{
  --ink:#27332f; --muted:#7d8a83; --line:#e6eae4;
  --accent:#2f8f83; --accent-soft:#e3f1ee; --gold:#bd8a36;
  --card:#ffffff; --bad:#c4715a; --side:#fbfaf6;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;min-height:100%;overflow-x:hidden;}
body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);min-height:100vh;}
.app{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh;}
.hidden{display:none!important;}
.nav-search{width:100%;padding:9px 12px;margin:0 0 8px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:13.5px;background:#fff;color:var(--ink);outline:none;}
.nav-search:focus{border-color:var(--accent);}
.s-count{font-size:12px;color:var(--muted);padding:4px 12px 6px;}
.s-none{font-size:13px;color:var(--muted);padding:14px 12px;line-height:1.7;}
.s-src{display:block;font-style:normal;font-size:11.5px;color:var(--muted);margin-top:2px;}
.s-mn{display:block;font-style:normal;font-size:12px;color:var(--gold);font-weight:700;margin-top:3px;letter-spacing:.5px;}
.ch-menu .nav-search{margin:10px 10px 4px;width:calc(100% - 20px);}
.icp-footer{text-align:center;padding:10px 0 14px;font-size:12px;background:var(--side);border-top:1px solid var(--line);}
.icp-footer a{color:var(--muted);text-decoration:none;}
.icp-footer a:hover{color:var(--accent);}

.side{background:var(--side);border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;gap:18px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:46px;height:46px;border-radius:15px;background:linear-gradient(145deg,#43a899 0%,#2a7d72 100%);color:#fff;font-size:23px;font-weight:700;font-family:"Songti SC","STSong","SimSun",serif;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 15px rgba(47,143,131,.38), inset 0 1px 0 rgba(255,255,255,.3), inset 0 0 0 1px rgba(255,255,255,.08);}
.brand h1{font-size:16px;margin:0;}.brand p{font-size:12px;color:var(--muted);margin:2px 0 0;}
.nav-label{font-size:12px;color:var(--muted);letter-spacing:1px;margin-bottom:6px;}
.nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;}
.cat-head{display:flex;justify-content:space-between;align-items:center;border:none;background:none;font-family:inherit;font-size:14.5px;color:var(--ink);padding:11px 12px;border-radius:11px;cursor:pointer;width:100%;text-align:left;}
.cat-head:hover{background:#f0ede4;}.cat-head.cur{color:var(--accent);font-weight:700;}
.cat-head .n{font-size:12px;color:var(--muted);}
.part-sub{display:flex;flex-direction:column;gap:1px;margin:1px 0 6px 8px;padding-left:8px;border-left:2px solid var(--line);}
.sub-head{display:flex;justify-content:space-between;align-items:center;border:none;background:none;font-family:inherit;font-size:13.5px;color:var(--ink);padding:9px 10px;border-radius:10px;cursor:pointer;width:100%;text-align:left;}
.sub-head:hover{background:#f0ede4;}.sub-head.cur{color:var(--accent);font-weight:700;}
.sub-head .n{font-size:11.5px;color:var(--muted);}
.cat-sub{display:flex;flex-direction:column;gap:1px;margin:1px 0 6px 10px;padding-left:9px;border-left:2px solid var(--line);}
.pt{display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;background:none;font-family:inherit;font-size:13.5px;color:var(--muted);padding:9px 10px;border-radius:9px;cursor:pointer;text-align:left;width:100%;}
.pt:hover{background:#f0ede4;color:var(--ink);}.pt.on{background:var(--accent-soft);color:var(--accent);font-weight:700;}
.pt .ck{color:var(--accent);font-size:12px;flex:none;}
.pt-add{color:var(--accent)!important;font-weight:700;opacity:.85;}
.pt-add:hover{opacity:1;}
.pt .lk{color:var(--gold);font-size:12px;flex:none;}

.panel{margin-top:auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;}
.panel .pl{font-size:12px;color:var(--muted);}
.goal-num{font-size:14px;color:var(--muted);margin:4px 0 9px;}.goal-num b{font-size:23px;color:var(--accent);}
.barwrap{height:8px;background:#eef0ea;border-radius:99px;overflow:hidden;}
.barfill{height:100%;background:linear-gradient(90deg,var(--accent),#5cb6a8);border-radius:99px;transition:.4s;}
.goal-set{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:12px 0 12px;}
.goal-set button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--ink);font-family:inherit;}
.goal-set button.on{background:var(--accent);color:#fff;border-color:var(--accent);}
.goal-input{width:58px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 7px;font-size:12px;font-family:inherit;color:var(--ink);text-align:center;outline:none;}
.goal-input:focus{border-color:var(--accent);}
.goal-input.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700;}
.goal-input.on::placeholder{color:#fff;}
.goal-input::-webkit-outer-spin-button,.goal-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.goal-msg{font-size:12.5px;color:var(--accent);background:var(--accent-soft);border-radius:9px;padding:8px 11px;margin-bottom:12px;font-weight:600;}
.chprog{font-size:12.5px;color:var(--muted);line-height:1.6;}.chprog b{color:var(--accent);}

.main{display:flex;flex-direction:column;padding:22px 28px 28px;background:radial-gradient(1100px 520px at 60% -10%, #eaf4f1 0%, transparent 60%),linear-gradient(180deg,#f7f5ef 0%, #f1efe7 100%);}
.topline{display:flex;align-items:center;gap:10px;max-width:720px;width:100%;margin:0 auto 12px;}
.ch-mobile{display:none;position:relative;flex:1;}
.ch-btn{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px 15px;font-family:inherit;font-size:14.5px;color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:6px;}
.ch-btn .caret{margin-left:auto;color:var(--muted);}
.ch-menu{position:absolute;top:54px;left:0;right:0;z-index:20;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 34px rgba(40,60,50,.16);padding:8px;max-height:64vh;overflow-y:auto;}
.topline{flex-wrap:wrap;}
.tutor-btn{margin-left:auto;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;}
.tutor-btn:hover{background:#d3ece6;}
.fb-btn{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;}
.fb-btn:hover{color:var(--accent);border-color:#cfe8e2;}
.act-pill{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;}
.act-pill.locked{color:var(--gold);background:#fff6e6;border-color:#f0e2c4;}
.act-pill.ok{color:var(--accent);background:var(--accent-soft);border-color:#cfe8e2;cursor:default;}

.review-banner{display:block;width:100%;max-width:720px;margin:0 auto 14px;border:none;cursor:pointer;font-family:inherit;background:linear-gradient(90deg,var(--accent),#3aa093);color:#fff;border-radius:15px;padding:15px 18px;font-size:15px;font-weight:650;box-shadow:0 8px 22px rgba(47,143,131,.25);transition:transform .08s;}
.review-banner:active{transform:scale(.99);}
.review-banner.done{background:#eef0ea;color:var(--muted);box-shadow:none;cursor:default;}
.review-banner b{font-size:18px;}

.main-top{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:720px;width:100%;margin:0 auto;}
.modes{display:flex;gap:4px;background:#e9e6dd;border-radius:12px;padding:4px;}
.modes button{border:none;background:none;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--muted);padding:9px 22px;border-radius:9px;cursor:pointer;transition:.2s;}
.modes button.on{background:#fff;color:var(--ink);box-shadow:0 2px 6px rgba(0,0,0,.06);}
.m-streak{display:none;font-size:12.5px;color:var(--gold);font-weight:700;background:#fff6e6;padding:7px 11px;border-radius:99px;}
.dots{display:flex;gap:7px;flex-wrap:wrap;}
.dot{width:8px;height:8px;border-radius:99px;background:#d3d9d0;transition:.3s;}
.dot.done{background:var(--accent);}.dot.cur{transform:scale(1.5);background:var(--ink);}

.card-wrap{display:block;position:relative;padding:16px 0 6px;max-width:720px;width:100%;margin:0 auto;}
.side-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:27px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(40,60,50,.12);display:none;align-items:center;justify-content:center;font-family:inherit;transition:.15s;padding-bottom:4px;}
.side-nav:hover{background:var(--accent-soft);color:var(--accent);border-color:#cfe8e2;}
.side-nav:disabled{opacity:.25;cursor:default;background:#fff;color:var(--ink);}
.side-prev{left:-72px;}.side-next{right:-72px;}
@media (min-width:1150px){
  .side-nav:not(.hidden){display:flex;}
  #learnNav{display:none!important;}
}
#learnNav{margin-top:12px;}
/* 思维导图视图（独立大画布，不受口诀列宽限制） */
.map-view{background:var(--card);border:1px solid var(--line);border-radius:26px;box-shadow:0 18px 50px rgba(40,60,50,.10);padding:24px 26px 20px;animation:rise .35s ease;width:100%;max-width:1180px;margin:4px auto 0;}
/* 导图页更宽画布 */
.in-map .card-wrap{max-width:1200px;}
/* 导图节点分层配色：一级绿 → 二级金 → 三级白 → 四级蓝灰 */
.mt-lv1{background:var(--accent-soft);color:var(--accent);border-color:#bfe0d8;font-weight:750;font-size:13.5px;}
.mt-lv2{background:#fdf3dd;color:#96762e;border-color:#ead8ac;font-weight:700;font-size:13px;}
.mt-lv3{background:#fff;color:var(--ink);}
.mt-lv4{background:#f1f4f9;color:#49597a;border-color:#d7dfeb;font-size:12px;}
.map-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;}
.map-chips .mchip{border:1px solid #ead8ac;background:#fdf3dd;color:#96762e;font-family:inherit;font-size:12px;font-weight:600;padding:6px 11px;border-radius:99px;cursor:pointer;}
.map-chips .mchip.on{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:700;}
.mchip-part{flex-basis:100%;display:flex;align-items:center;gap:6px;background:none;border:none;border-bottom:1px solid var(--line);text-align:left;font-family:inherit;font-size:13.5px;font-weight:800;color:var(--accent);margin:8px 0 2px;padding:4px 2px 6px;cursor:pointer;}
.mchip-part .ar{color:var(--muted);font-size:10px;}
.mchip-sec{flex-basis:100%;display:flex;align-items:center;gap:6px;background:none;border:none;text-align:left;font-family:inherit;font-size:12px;font-weight:700;color:var(--ink);margin:6px 0 0;padding:3px 2px 3px 8px;cursor:pointer;}
.mchip-sec .ar{color:var(--muted);font-size:10px;}
@media (min-width:1280px){
  .map-chips{display:none;}   /* 桌面用右侧任务栏切换章节，导图页内不重复显示目录 */
}
.map-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;}
.map-back{border:1px solid var(--line);background:none;color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:99px;cursor:pointer;white-space:nowrap;}
.map-back:hover{color:var(--accent);border-color:#cfe8e2;}
.map-root{font-size:19px;font-weight:800;}
.map-root .map-n{margin-left:10px;}
.map-n{color:var(--muted);font-weight:600;font-size:12px;margin-left:8px;}
.map-modes{display:flex;gap:6px;margin:0 0 14px;}
.map-modes button{border:1px solid var(--line);background:none;color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:99px;cursor:pointer;}
.map-modes button.on{background:var(--accent-soft);color:var(--accent);border-color:#cfe8e2;font-weight:700;}
/* 横向脑图（连接线树） */
.mt-canvas{overflow-x:auto;padding:10px 4px 16px;-webkit-overflow-scrolling:touch;}
.mt{display:flex;align-items:center;}
.mtn{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:7px 12px;font-size:12.5px;line-height:1.55;max-width:250px;transition:opacity .3s;}
.mt-root{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:800;font-size:14.5px;border-radius:13px;padding:10px 15px;}
.mt-sec{background:var(--accent-soft);color:var(--accent);border-color:#cfe8e2;font-weight:750;font-size:13px;}
.mt-point{font-weight:650;}
.mt-point[onclick]{cursor:pointer;}
.mt-point[onclick]:hover{border-color:var(--accent);}
.mt-point.ok{border-color:var(--accent);color:var(--accent);}
.mt-mn{background:#fff7e4;border-color:#efe0bf;color:#8a6d2f;font-weight:800;letter-spacing:1.2px;}
.mt-pt{color:var(--ink);font-size:12px;max-width:300px;}
.mt-pt b{color:var(--gold);margin-right:6px;font-weight:800;}
.mt-lock{color:var(--gold);border-style:dashed;cursor:pointer;font-size:12px;}
.mt-kids{display:flex;flex-direction:column;justify-content:center;margin-left:26px;position:relative;transition:opacity .3s;}
.mt-kids::before{content:'';position:absolute;left:-26px;top:50%;width:26px;height:2px;background:var(--line);}
.mt-kid{display:flex;align-items:center;position:relative;padding:3px 0 3px 26px;transition:opacity .3s;}
.mt-kid::before{content:'';position:absolute;left:0;top:50%;width:26px;height:2px;background:var(--line);}
.mt-kid::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--line);}
.mt-kid:first-child::after{top:50%;}
.mt-kid:last-child::after{bottom:50%;}
.mt-kid:only-child::after{display:none;}
.mv-hide{opacity:0;pointer-events:none;}
.mtm{margin-top:4px;padding-top:3px;border-top:1px dashed #ead8ac;font-size:11.5px;font-weight:750;letter-spacing:.5px;color:#96762e;}

/* ===== 侧栏收起/展开 ===== */
.panel-hide{float:right;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;font-size:10.5px;padding:2px 8px;cursor:pointer;font-family:inherit;line-height:1.4;}
.panel-hide:hover{color:var(--accent);border-color:#cfe8e2;background:var(--accent-soft);}
.edge-tab{display:none;position:fixed;top:96px;z-index:6;flex-direction:column;align-items:center;gap:4px;padding:10px 5px;border:1px solid var(--line);background:var(--side);color:var(--muted);cursor:pointer;font-size:14px;font-family:inherit;box-shadow:0 4px 14px rgba(40,60,50,.08);}
.edge-tab:hover{color:var(--accent);background:var(--accent-soft);}
.edge-tab span{writing-mode:vertical-rl;font-size:11px;letter-spacing:3px;}
.edge-left{left:0;border-left:none;border-radius:0 10px 10px 0;}
.edge-right{right:0;border-right:none;border-radius:10px 0 0 10px;}
@media (min-width:861px){
  body.side-off .side{display:none;}
  body.side-off .app{grid-template-columns:minmax(0,1fr);}
  body.side-off .edge-left{display:flex;}
}
@media (min-width:1280px){
  body.mapside-off .map-side{display:none;}
  body.mapside-off .app{margin-right:0;}
  body.mapside-off .edge-right{display:flex;}
}
.map-tip{margin-top:14px;font-size:12px;color:var(--muted);text-align:center;background:#f8f6f0;border-radius:10px;padding:9px;line-height:1.7;}
/* 右侧思维导图任务栏（桌面常驻） */
.map-side{display:none;position:fixed;right:0;top:0;bottom:0;width:216px;background:var(--side);border-left:1px solid var(--line);padding:22px 13px;overflow-y:auto;z-index:5;}
@media (min-width:1280px){
  .map-side{display:block;}
  .app{margin-right:216px;}
}
.ms-title{font-size:13.5px;font-weight:800;margin-bottom:8px;}
.ms-part{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;background:none;border:none;border-bottom:1px solid var(--line);text-align:left;font-family:inherit;font-size:14.5px;font-weight:800;color:var(--accent);letter-spacing:.5px;margin:14px 0 4px;padding:5px 4px 7px 2px;cursor:pointer;}
.ms-part:hover{color:#22756b;}
.ms-part .ar{color:var(--muted);font-size:10px;flex:none;}
.ms-sec{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;background:none;border:none;text-align:left;font-family:inherit;font-size:12.5px;font-weight:700;line-height:1.5;color:var(--ink);margin:10px 0 2px;padding:3px 4px 3px 2px;border-radius:8px;cursor:pointer;}
.ms-sec:hover{background:#f0ede4;}
.ms-sec .ar{color:var(--muted);font-size:10px;flex:none;}
.ms-item{display:block;width:100%;text-align:left;border:none;background:none;font-family:inherit;font-size:12.5px;line-height:1.5;color:var(--ink);padding:8px 10px 8px 18px;border-radius:9px;cursor:pointer;}
.ms-item:hover{background:#f0ede4;}
.ms-item.on{background:var(--accent-soft);color:var(--accent);font-weight:700;}
.ms-more{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.6;}

.card{width:100%;background:var(--card);border-radius:26px;border:1px solid var(--line);box-shadow:0 18px 50px rgba(40,60,50,.10);padding:30px 30px 26px;display:flex;flex-direction:column;animation:rise .35s ease;}
@keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.chip{align-self:flex-start;font-size:12px;color:var(--accent);background:var(--accent-soft);padding:6px 13px;border-radius:99px;font-weight:600;}
.point{font-size:24px;font-weight:750;line-height:1.5;margin:18px 0 16px;}
.hint{font-size:15px;color:var(--muted);background:#f8f6f0;border:1px dashed var(--line);border-radius:13px;padding:13px 15px;line-height:1.65;}
.hint:empty{display:none;}
.recall{margin-top:auto;text-align:center;font-size:13px;color:var(--muted);padding-top:22px;}.recall b{color:var(--ink);}

.study{display:flex;flex-direction:column;flex:1;}
.mlabel{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:1.5px;margin:2px 0 9px;}
.mnemonic{font-size:29px;font-weight:850;letter-spacing:4px;text-align:center;line-height:1.4;background:linear-gradient(180deg,#fff7e4,#fffdf8);border:1px solid #efe0bf;border-radius:18px;padding:20px 16px;color:#5a4a25;}
.assoc{font-size:12.5px;color:var(--muted);text-align:center;margin-top:9px;font-style:italic;line-height:1.5;}
.bdlabel{font-size:13px;color:var(--muted);margin:20px 0 11px;}
.bd{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;}
.bd li{display:flex;align-items:flex-start;gap:12px;font-size:15.5px;line-height:1.5;}
.bd li .k{flex:none;min-width:32px;height:32px;padding:0 7px;border-radius:10px;background:#fbf2dd;color:var(--gold);font-size:16px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.teach{font-size:12.5px;color:var(--accent);background:var(--accent-soft);border-radius:11px;padding:10px 13px;margin-top:16px;line-height:1.6;}
.ans-toggle{margin-top:16px;align-self:flex-start;border:1px solid var(--line);background:#f8f6f0;color:var(--accent);font-family:inherit;font-size:13.5px;font-weight:600;border-radius:11px;padding:10px 15px;cursor:pointer;}
.ans-toggle:hover{background:var(--accent-soft);}
.ans-body{margin-top:15px;}
.ans-label{font-size:12.5px;color:var(--accent);font-weight:700;margin-bottom:10px;}
.ans-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;}
.ans-list li{font-size:14.5px;line-height:1.85;padding:2px 0 2px 13px;border-left:2px solid var(--accent-soft);}
mark.hl{background:#fbe8c6;color:#9a6b1a;font-weight:700;border-radius:5px;padding:1px 5px;}
  .note{font-size:13px;color:#8a6d2f;background:#fdf6e7;border:1px solid #f0e2c4;border-radius:11px;padding:11px 14px;margin-top:14px;line-height:1.65;}
.note-mine{font-size:13px;color:var(--accent);background:var(--accent-soft);border-radius:11px;padding:11px 14px;margin-top:10px;line-height:1.65;white-space:pre-wrap;}
/* 标注笔：浮动笔 + 选字气泡 + 标色 + ⭐批注 */
.pen-fab{position:fixed;right:16px;bottom:80px;z-index:40;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:20px;cursor:pointer;box-shadow:0 6px 18px rgba(40,60,50,.18);transition:transform .15s;}
.pen-fab:hover{transform:scale(1.08);}
.pen-fab.on{background:var(--accent);border-color:var(--accent);box-shadow:0 6px 18px rgba(47,143,131,.4);}
.um-bubble{position:fixed;z-index:70;display:flex;gap:7px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:99px;padding:7px 10px;box-shadow:0 10px 30px rgba(0,0,0,.2);}
.um-c{width:23px;height:23px;border-radius:50%;border:1.5px solid rgba(0,0,0,.12);cursor:pointer;flex:none;padding:0;}
.um-c-y{background:#ffd666;} .um-c-g{background:#95de64;} .um-c-r{background:#ff9c9c;}
.um-b{border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;padding:2px 4px;white-space:nowrap;}
mark.um{background:transparent;color:inherit;border-radius:3px;padding:0 1px;cursor:pointer;}
mark.um-y{background:rgba(255,214,102,.45);}
mark.um-g{background:rgba(149,222,100,.4);}
mark.um-r{background:rgba(255,120,117,.32);}
.um-star{cursor:pointer;font-size:11px;margin:0 2px;user-select:none;}
.um-star::after{content:'⭐';}
.pen-tip{position:fixed;z-index:70;left:50%;transform:translateX(-50%);bottom:140px;background:rgba(30,40,36,.88);color:#fff;font-size:12.5px;padding:9px 16px;border-radius:99px;max-width:86vw;text-align:center;}
.um-hover{position:fixed;z-index:65;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 13px;font-size:12.5px;line-height:1.65;color:var(--ink);box-shadow:0 10px 28px rgba(0,0,0,.18);max-width:280px;white-space:pre-wrap;pointer-events:none;}
.um-quote{color:var(--muted);font-size:13px;background:var(--accent-soft);border-radius:9px;padding:8px 11px;}
/* 🎧 听背播放条 */
.aud-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:50;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px 16px;box-shadow:0 12px 34px rgba(40,60,50,.22);max-width:min(560px,94vw);width:max-content;}
.aud-info{min-width:0;flex:1;}
.aud-title{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;}
.aud-sub{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;}
.aud-ctrls{display:flex;align-items:center;gap:4px;flex:none;}
.aud-ctrls button{border:none;background:none;font-family:inherit;font-size:15px;color:var(--ink);cursor:pointer;padding:5px 6px;border-radius:9px;line-height:1;}
.aud-ctrls button:hover{background:var(--accent-soft);}
.aud-ctrls .aud-play{font-size:19px;color:var(--accent);}
.aud-ctrls #audLoopBtn{opacity:.4;}
.aud-ctrls #audLoopBtn.on{opacity:1;}
.aud-ctrls #audRateBtn{font-size:12px;font-weight:700;color:var(--muted);}
body.aud-on .pen-fab{bottom:150px;}
@media (max-width:520px){ .aud-bar{bottom:8px;padding:9px 12px;gap:8px;} .aud-title{max-width:120px;} }
.edit-btn{margin-top:14px;align-self:flex-start;border:1px dashed var(--line);background:none;color:var(--muted);font-family:inherit;font-size:12.5px;border-radius:10px;padding:8px 12px;cursor:pointer;}
.edit-btn:hover{color:var(--accent);border-color:var(--accent);}
.hide-btn{margin-top:8px;}
.hide-btn:hover{color:var(--bad);border-color:var(--bad);}
.pt-hid{color:var(--muted)!important;font-size:12px;opacity:.75;}
.pt-hid:hover{opacity:1;}
.hid-list{max-height:260px;overflow-y:auto;text-align:left;margin-bottom:4px;}
.hid-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px;border-bottom:1px dashed var(--line);font-size:13.5px;color:var(--ink);}
.hid-row button{flex:none;border:1px solid var(--accent);background:none;color:var(--accent);font-family:inherit;font-size:12.5px;border-radius:9px;padding:5px 12px;cursor:pointer;}
.hid-row button:hover{background:var(--accent);color:#fff;}
.hid-none{color:var(--muted);font-size:13.5px;}
/* 顶栏「⋯」更多菜单 */
.more-wrap{position:relative;flex:none;}
.more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:55;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:6px;min-width:150px;}
.more-menu button{display:block;width:100%;text-align:left;border:none;background:none;font-family:inherit;font-size:13px;color:var(--ink);padding:9px 12px;border-radius:9px;cursor:pointer;white-space:nowrap;}
.more-menu button:hover{background:var(--accent-soft);}
/* 错题本入口 */
.wrong-btn{flex:none;border:1px solid #f3c1c1;background:#fdf0f0;color:#b95454;font-family:inherit;font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:99px;cursor:pointer;}
.wrong-btn:hover{background:#fae3e3;}
.wrong-row{cursor:pointer;}
.wrong-row:hover span{color:var(--accent);}
.wrong-row i{font-style:normal;color:var(--muted);font-size:11px;flex:none;}
.edit-label{display:block;font-size:12px;color:var(--muted);margin:12px 0 5px;text-align:left;}
.modal .edit-field{text-align:left;letter-spacing:0;font-size:14.5px;}
textarea.edit-field{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;font-family:inherit;resize:vertical;min-height:64px;}
select.edit-field{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;font-family:inherit;font-size:14.5px;background:#fff;color:var(--ink);}

/* 付费墙锁定区 */
.lock{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;}
.lock .ic{font-size:46px;}
.lock h3{font-size:19px;margin:14px 0 6px;}
.lock p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 22px;max-width:340px;}
.lock .lock-btns{display:flex;gap:11px;flex-wrap:wrap;justify-content:center;}

.actions{display:flex;flex-direction:column;gap:11px;max-width:720px;width:100%;margin:0 auto;}
.btn{border:none;border-radius:16px;padding:16px;font-size:16px;font-weight:650;font-family:inherit;cursor:pointer;transition:transform .08s;}
.btn:active{transform:scale(.985);}
.btn-flip{background:var(--ink);color:#fff;}
.row{display:flex;gap:11px;}.row .btn{flex:1;}
.btn-bad{background:#fbeae4;color:var(--bad);}.btn-good{background:var(--accent);color:#fff;}
.btn-ghost{background:#ebe8df;color:var(--ink);}.btn-ghost:disabled{opacity:.4;cursor:default;}
.btn-line{background:#fff;border:1px solid var(--accent);color:var(--accent);padding:13px 18px;border-radius:14px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;}
.btn-fill{background:var(--accent);color:#fff;padding:13px 18px;border-radius:14px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;border:none;}

.done{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;min-height:440px;}
.done .emoji{font-size:58px;}.done h2{font-size:24px;margin:16px 0 6px;}
.done p{color:var(--muted);font-size:15px;line-height:1.7;margin:0 0 8px;}
.done .done-sub{font-size:13px;color:var(--accent);margin-bottom:22px;}
.done .stat{display:flex;gap:30px;margin-bottom:26px;}
.done .stat b{font-size:30px;color:var(--accent);display:block;}.done .stat span{font-size:12px;color:var(--muted);}

/* 激活弹窗 */
.modal-bg{position:fixed;inset:0;background:rgba(30,40,36,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;}
.modal{background:#fff;border-radius:22px;padding:28px 26px;width:100%;max-width:380px;box-shadow:0 24px 60px rgba(0,0,0,.25);}
.modal h3{margin:0 0 8px;font-size:20px;}
.modal p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 16px;}
.modal input{width:100%;border:1px solid var(--line);border-radius:13px;padding:14px;font-size:16px;font-family:inherit;text-align:center;letter-spacing:1px;}
.modal .err{color:var(--bad);font-size:13px;margin:10px 0 0;min-height:18px;}
.modal .mrow{display:flex;gap:10px;margin-top:16px;}
.modal .mrow button{flex:1;}
.buy-tip{background:#f8f6f0;border:1px dashed var(--line);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--muted);line-height:1.7;margin-top:6px;}
.buy-link{font-size:13px;color:var(--muted);margin:12px 0 0;text-align:center;}
.buy-link a{color:var(--accent);cursor:pointer;font-weight:600;}

@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr);}
  .side{display:none;}.ch-mobile{display:block;}.main-top{flex-wrap:wrap;}
  .main{padding:14px 14px 20px;}.m-streak{display:block;}
  .point{font-size:21px;margin:14px 0 12px;}.mnemonic{font-size:24px;letter-spacing:2.5px;}
  .card{padding:22px 18px 20px;border-radius:20px;}
  .card-wrap{padding:12px 0 4px;}
  .bd li{font-size:15px;}.ans-list li{font-size:14px;line-height:1.8;}
  .btn{padding:14px;font-size:15px;}
}

/* ===== 深色模式（跟随系统） ===== */
@media (prefers-color-scheme: dark){
  :root{
    --ink:#e6ebe8; --muted:#8fa39b; --line:#39433f; --accent:#4cb5a6; --accent-soft:#1b3833;
    --gold:#d6ab5c; --card:#232b28; --bad:#e09a84; --side:#1a201d;
  }
  body{background:#161b19;}
  .main{background:radial-gradient(1100px 520px at 60% -10%, #1d2a27 0%, transparent 60%),linear-gradient(180deg,#181e1b 0%, #141917 100%);}
  .nav-search,.goal-set button,.goal-input,.ch-btn,.fb-btn,.act-pill,.btn-line{background:#232b28;}
  .ch-menu,.modal{background:#242c29;}
  .cat-head:hover,.sub-head:hover,.pt:hover{background:#2a332f;}
  .panel{background:#202623;}
  .modes{background:#242a27;}
  .modes button.on{background:#39433f;color:var(--ink);box-shadow:none;}
  .m-streak,.act-pill.locked{background:#332e1d;border-color:#4a4430;}
  .barwrap{background:#2a332f;}
  .dot{background:#39433f;}.dot.cur{background:#e6ebe8;}
  .side-nav{background:#232b28;color:var(--ink);box-shadow:0 8px 20px rgba(0,0,0,.35);}
  .side-nav:disabled{background:#232b28;color:var(--ink);}
  .hint,.ans-toggle,.buy-tip{background:#202723;}
  .mnemonic{background:linear-gradient(180deg,#2e2a1c,#26241f);border-color:#4a4430;color:#e9d9ad;}
  .bd li .k{background:#332e1d;}
  .review-banner.done{background:#242a27;color:var(--muted);}
  .btn-ghost{background:#2c342f;color:var(--ink);}
  .btn-flip{background:#e6ebe8;color:#161b19;}
  .btn-bad{background:#3a2721;color:#e09a84;}
  mark.hl{background:#4a3b1c;color:#eec36d;}
  .note{background:#2b2617;border-color:#4a4430;color:#d2b273;}
  .icp-footer{background:#141917;}
  .modal-bg{background:rgba(0,0,0,.62);}
  .card{box-shadow:0 18px 50px rgba(0,0,0,.35);}
  .modal input,.modal textarea,.modal select{background:#1c2320;color:var(--ink);border-color:var(--line);}
  .mtn{background:#232b28;}
  .mt-root{background:var(--accent);color:#10201c;}
  .mt-sec{background:var(--accent-soft);}
  .mt-mn{background:#2e2a1c;border-color:#4a4430;color:#e9d9ad;}
  .map-tip{background:#202723;}
  .map-view{box-shadow:0 18px 50px rgba(0,0,0,.35);}
  .ms-item:hover{background:#2a332f;}
  .ms-sec:hover{background:#2a332f;}
  .pen-fab{background:#232b28;color:var(--ink);border-color:#39433f;}
  .pen-fab.on{background:var(--accent);border-color:var(--accent);}
  .um-bubble{background:#232b28;border-color:#39433f;}
  .um-hover{background:#232b28;border-color:#39433f;}
  .aud-bar{background:#232b28;border-color:#39433f;box-shadow:0 12px 34px rgba(0,0,0,.45);}
  .aud-ctrls button:hover{background:#2a332f;}
  .more-menu{background:#232b28;border-color:#39433f;}
  .more-menu button:hover{background:#2a332f;}
  .wrong-btn{background:#3a2626;border-color:#5a3838;color:#e08f8f;}
  .wrong-btn:hover{background:#452c2c;}
  mark.um-y{background:rgba(214,171,92,.38);}
  mark.um-g{background:rgba(115,180,90,.35);}
  mark.um-r{background:rgba(220,100,95,.35);}
  .um-quote{background:#1b3833;}
  .map-chips .mchip{background:#2e2a1c;border-color:#4a4430;color:#d6ab5c;}
  .map-chips .mchip.on{background:var(--gold);color:#161b19;}
  .mt-lv1{background:#1b3833;color:#4cb5a6;border-color:#2a4a44;}
  .mt-lv2{background:#2e2a1c;color:#d6ab5c;border-color:#4a4430;}
  .mt-lv3{background:#232b28;color:var(--ink);}
  .mt-lv4{background:#222833;color:#93a7c9;border-color:#39435a;}
  .mtm{color:#d6ab5c;border-top-color:#4a4430;}
  .edge-tab{box-shadow:0 4px 14px rgba(0,0,0,.35);}
}
