/* ===== B08 merged from assets/css/style.css ===== */
:root{
  --bg:#0f1117;--bg2:#161a24;--card:#1d2330;--card2:#252c3d;--line:#2d3548;
  --t:#e8ebf2;--t2:#a0a8bd;--t3:#8c95a8;
  --gold:#f0c876;--jade:#4ec9a8;--red:#ef6b6b;--blue:#5ba8f5;--purple:#b58cf0;--orange:#f0a050;
  --ok:#4ec9a8;--warn:#f0c876;--bad:#ef6b6b;
  --grad-jx:linear-gradient(135deg,#4ec9a8,#5ba8f5);
  --grad-gold:linear-gradient(135deg,#f0c876,#f0a050);
  --grad-red:linear-gradient(135deg,#ef6b6b,#f0a050);
  --shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 8px 40px rgba(0,0,0,.5);
  --r:14px;--r-s:8px;--r-l:22px;
  --ease:cubic-bezier(.22,1,.36,1);--ease-b:cubic-bezier(.34,1.56,.64,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;background:var(--bg);color:var(--t);font-family:var(--font-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif);font-size:clamp(14px,2.2vw + 9px,16px);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
html{scrollbar-gutter:stable}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:0;color:inherit}
::selection{background:var(--gold);color:var(--bg)}
/* === 旧顶部导航(保留备用,默认隐藏) === */
.topbar{display:none}

/* === 左侧边栏(新布局) === */
.sidebar{
  position:fixed;left:0;top:0;bottom:0;width:180px;
  background:rgba(13,15,21,.96);backdrop-filter:blur(20px);
  border-right:1px solid var(--line);z-index:100;
  display:flex;flex-direction:column;
  transition:width .3s var(--ease);
  overflow:hidden;
}
/* 移动端隐藏 */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%);width:240px}
  .sidebar.mobile-open{transform:translateX(0)}
}

.sb-brand{display:flex;align-items:center;gap:10px;padding:14px 14px;height:60px;flex-shrink:0;cursor:pointer;border-bottom:1px solid var(--line)}
.sb-brand-mark{width:32px;height:32px;border-radius:9px;background:var(--grad-gold);display:grid;place-items:center;font-size:18px;color:#1a1a1a;font-weight:800;box-shadow:0 2px 10px rgba(240,200,118,.3);flex-shrink:0}
.sb-brand-name{font-size:15px;font-weight:700;letter-spacing:.5px;white-space:nowrap;opacity:1;transition:opacity .2s .1s var(--ease)}
.sidebar.expanded .sb-brand-name,.sidebar:hover .sb-brand-name{opacity:1}
.sb-brand-name b{color:var(--gold)}

.sb-progress{margin:12px 8px;padding:8px;border-radius:var(--r-s);background:var(--card);cursor:pointer;flex-shrink:0;opacity:1;transition:opacity .2s .1s var(--ease);border:1px solid var(--line)}
.sidebar.expanded .sb-progress,.sidebar:hover .sb-progress{opacity:1}
.sb-progress-num{text-align:center;margin-bottom:4px}
.sb-progress-num b{font-size:18px;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.sb-progress-bar{height:4px;background:var(--bg);border-radius:2px;overflow:hidden}
.sb-progress-bar i{display:block;height:100%;background:var(--grad-gold);border-radius:2px;transition:width .5s var(--ease)}
.sb-progress-label{text-align:center;font-size:11px;color:var(--t3);margin-top:4px}
.rank-command{display:grid;grid-template-columns:92px 1fr 230px;gap:24px;align-items:center;margin-bottom:22px;padding:28px;border:1px solid rgba(158,61,47,.22);border-radius:24px;background:linear-gradient(120deg,#292722 0,#34302a 63%,#762f29 100%);color:#f7f0e3;box-shadow:0 22px 50px rgba(42,31,24,.15)}
.rank-seal{display:grid;place-items:center;width:82px;height:82px;border:1px solid #d6aa65;border-radius:50%;font-family:"Songti SC","STSong",serif;font-size:38px;color:#e8c27a;box-shadow:inset 0 0 0 7px #292722,inset 0 0 0 8px rgba(214,170,101,.5)}
.rank-copy>span{color:#d6aa65;font-size:10px;letter-spacing:.2em}.rank-copy h2{margin:5px 0 7px;font:700 30px "Songti SC","STSong",serif}.rank-copy p{color:#d2cbc0;font-size:12px}.rank-track{height:5px;margin:17px 0 8px;border-radius:9px;background:rgba(255,255,255,.12);overflow:hidden}.rank-track i{display:block;height:100%;background:#d6aa65}.rank-copy small{color:#aaa39a;font-size:11px}
.rank-rule{display:grid;gap:7px;padding-left:22px;border-left:1px solid rgba(255,255,255,.14);font-size:11px;color:#c4bcb1}.rank-rule b{color:#fff;font-size:13px}.rank-rule strong{color:#e8c27a;margin-top:3px}
@media(max-width:760px){.rank-command{grid-template-columns:70px 1fr;padding:20px;gap:16px}.rank-seal{width:64px;height:64px;font-size:30px}.rank-rule{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:14px 0 0}}
.me-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.me-primary-action{padding:11px 17px;border-radius:7px;background:var(--red);color:#fff;font-size:12px;font-weight:700}
.progress-kpis{display:grid;grid-template-columns:1.7fr repeat(4,1fr);gap:10px;margin-bottom:12px}.progress-kpis article{min-height:116px;padding:19px;border:1px solid var(--line);border-radius:13px;background:var(--card);display:flex;flex-direction:column;justify-content:space-between}.progress-kpis article>span{color:var(--t3);font-size:10px;letter-spacing:.08em}.progress-kpis article>strong{font:700 29px Georgia,serif;color:var(--t)}.progress-kpis article>small{color:var(--t3);font-size:9px}.progress-kpis article.has-debt{border-color:rgba(158,61,47,.35);background:rgba(158,61,47,.05)}.progress-kpis article.has-debt>strong{color:var(--red)}
.progress-kpis .kpi-main{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:15px;background:#253b3a;color:#fff}.kpi-main>div:last-child{display:grid;gap:5px}.kpi-main>div:last-child b{font:18px "Songti SC","STSong",serif}.kpi-main>div:last-child p{color:rgba(255,255,255,.55);font-size:9px;line-height:1.6}.progress-ring{--pct:calc(var(--value)*3.6deg);width:78px;height:78px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at center,#253b3a 55%,transparent 57%),conic-gradient(#e8c27a var(--pct),rgba(255,255,255,.12) 0)}.progress-ring strong{font:700 20px Georgia,serif}.progress-ring span{font-size:8px;color:rgba(255,255,255,.55)}
.me-dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.management-panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.management-panel>header{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:20px}.management-panel>header span{display:block;color:var(--red);font:8px Georgia,serif;letter-spacing:.17em}.management-panel>header h2{margin-top:4px;font:700 20px "Songti SC","STSong",serif}.management-panel>header small{color:var(--t3);font-size:9px}
.subject-progress-list{display:grid;gap:5px}.subject-progress-list button{display:grid;grid-template-columns:36px 1fr 42px;align-items:center;gap:12px;width:100%;padding:11px;border-radius:8px;text-align:left;transition:.2s}.subject-progress-list button:hover{background:var(--card2);transform:translateX(3px)}.subject-progress-list button>i{display:grid;place-items:center;width:34px;height:34px;border-radius:6px;background:#253b3a;color:#e8c27a;font-size:9px;font-style:normal}.subject-progress-list button>div{display:grid;gap:2px}.subject-progress-list b{font-size:11px}.subject-progress-list span{color:var(--t3);font-size:8px}.subject-progress-list em{height:3px;margin-top:5px;border-radius:4px;background:var(--line);overflow:hidden}.subject-progress-list u{display:block;height:100%;background:var(--red);text-decoration:none}.subject-progress-list button>strong{text-align:right;font:14px Georgia,serif;color:var(--t2)}
.week-chart{height:156px;display:flex;align-items:end;justify-content:space-around;gap:8px;padding:18px 8px 0;border-bottom:1px solid var(--line)}.week-chart>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:8px}.week-chart i{position:relative;width:min(22px,80%);min-height:4px;border-radius:4px 4px 0 0;background:#9e3d2f;font-style:normal}.week-chart i b{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--t3)}.week-chart span{font-size:8px;color:var(--t3)}.activity-panel>p{margin-top:12px;color:var(--t3);font-size:9px;line-height:1.6}
.debt-list{display:grid}.debt-list>div{display:grid;grid-template-columns:1fr 34px 90px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.debt-list span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.debt-list b{color:var(--red);font:12px Georgia,serif}.debt-list small{color:var(--t3);font-size:8px;text-align:right}.debt-empty{display:grid;place-content:center;min-height:116px;text-align:center;gap:4px;color:var(--t2)}.debt-empty b{font:16px "Songti SC","STSong",serif}.debt-empty span{font-size:9px;color:var(--t3)}.panel-action{width:100%;margin-top:15px;padding:10px;border-top:1px solid var(--line);color:var(--red);font-size:10px;text-align:right}
.rank-ladder{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.rank-ladder>div{position:relative;display:grid;justify-items:center;gap:5px;padding:9px 3px;border-radius:7px;color:var(--t3)}.rank-ladder>div:not(:last-child):after{content:"";position:absolute;top:21px;left:65%;width:70%;height:1px;background:var(--line)}.rank-ladder i{position:relative;z-index:1;display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;background:var(--card);font-size:9px;font-style:normal}.rank-ladder b{font-size:8px;white-space:nowrap}.rank-ladder span{font-size:7px;white-space:nowrap}.rank-ladder .done i{background:#253b3a;color:#e8c27a;border-color:#506460}.rank-ladder .active{background:rgba(158,61,47,.07);color:var(--red)}.rank-ladder .active i{border-color:var(--red);box-shadow:0 0 0 3px rgba(158,61,47,.1)}
.data-heading{margin-bottom:12px}.data-control-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.data-control-panel>div:first-child{display:grid}.data-control-panel b{font-size:12px}.data-control-panel span{color:var(--t3);font-size:9px}.data-control-panel .danger{color:var(--bad)}
@media(max-width:960px){.progress-kpis{grid-template-columns:repeat(2,1fr)}.progress-kpis .kpi-main{grid-column:1/-1}.me-dashboard-grid{grid-template-columns:1fr}.rank-ladder{overflow-x:auto;grid-template-columns:repeat(7,90px)}}@media(max-width:600px){.me-head{align-items:flex-start;flex-direction:column}.progress-kpis{grid-template-columns:1fr 1fr}.progress-kpis article{min-height:100px;padding:15px}.progress-kpis .kpi-main{grid-column:1/-1}.data-control-panel{align-items:flex-start;flex-direction:column}.data-control-panel .flex{width:100%}.data-control-panel .btn{flex:1}.management-panel{padding:17px}.debt-list>div{grid-template-columns:1fr 32px}.debt-list small{grid-column:1/-1;text-align:left}}

.sb-nav{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin}
.sb-nav::-webkit-scrollbar{width:4px}
.sb-nav::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}
.sb-nav-item{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--r-s);
  color:var(--t2);cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap;
  transition:.2s var(--ease);position:relative;
}
.sb-nav-item:hover{color:var(--t);background:var(--card)}
.sb-nav-item.on{color:var(--gold);background:var(--card)}
.sb-nav-item.on::before{content:'';position:absolute;left:-8px;top:8px;bottom:8px;width:3px;background:var(--gold);border-radius:0 2px 2px 0}
.sb-nav-item .sb-nav-ic{font-size:18px;width:24px;text-align:center;flex-shrink:0}
.sb-nav-item .sb-nav-name{opacity:1;transition:opacity .2s .1s var(--ease)}
.sidebar.expanded .sb-nav-item .sb-nav-name,.sidebar:hover .sb-nav-item .sb-nav-name{opacity:1}

.sb-footer{padding:10px 8px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.sb-streak{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--orange);font-weight:600;padding:6px 12px;white-space:nowrap}
.sb-streak span{opacity:1;transition:opacity .2s .1s var(--ease)}
.sidebar.expanded .sb-streak span,.sidebar:hover .sb-streak span{opacity:1}
.sb-toggle{padding:8px 12px;border-radius:var(--r-s);background:var(--card);color:var(--t2);font-size:14px;white-space:nowrap;display:flex;align-items:center;gap:8px;justify-content:center}
.sb-toggle:hover{background:var(--card2);color:var(--t)}
.sidebar.expanded .sb-toggle::after{content:'收起';opacity:1}

/* === 主内容区:左边给边栏留 60px === */
main{
  padding:20px;max-width:none;margin-left:180px;
  min-height:100vh;animation:fadeUp .4s var(--ease);
  transition:margin-left .3s var(--ease);
}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}}

/* 首页地图视图:不要 padding 和 max-width,让地图占满 */
main.map-full{padding:0;margin-left:180px}
/* 导游实战拥有自己的全屏操作层，侧栏不能遮挡场景按钮。 */
body[data-view="guiderpg"] main.map-full{margin-left:0}
body[data-view="guiderpg"] .sidebar{display:none}

/* === 今日学习 · 旅行者手账 === */
body:not(.on-home){background:#ffffff;color:#26231e}
body:not(.on-home) main{background:
  linear-gradient(rgba(23,52,58,.03) 1px,transparent 1px),
  #ffffff;background-size:100% 32px}
.learn-home{max-width:1240px;margin:0 auto;padding:36px 34px 64px;color:#28241e}
.learn-masthead{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;padding:18px 0 34px;border-bottom:1px solid rgba(41,66,77,.16)}
.eyebrow,.route-kicker{font-size:12px;font-weight:800;letter-spacing:.16em;color:#9e3d2f;text-transform:uppercase}
.learn-masthead h1{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:clamp(38px,5vw,68px);line-height:1.08;letter-spacing:-.055em;margin:12px 0 14px;font-weight:900}
.learn-masthead h1 em{color:#a43d2f;font-style:normal}
.learn-masthead p{max-width:640px;color:#655e53;font-size:16px}
.map-ticket{min-width:292px;padding:17px 20px;background:#263b36;color:#f7f1e6;border:1px solid #172a26;border-radius:3px;display:flex;align-items:center;gap:16px;text-align:left;box-shadow:7px 7px 0 #ccd6d9;transition:.25s var(--ease)}
.map-ticket:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 #ccd6d9}
.ticket-stamp{width:52px;height:52px;border:1px dashed #d7b769;border-radius:50%;display:grid;place-items:center;color:#e7ca83;font-family:"Songti SC",serif}
.map-ticket b,.map-ticket small{display:block}.map-ticket b{font-size:16px}.map-ticket small{color:#b9cbc6;margin-top:3px}
.today-route{display:grid;grid-template-columns:minmax(240px,.72fr) 1.45fr;gap:54px;padding:44px 0;border-bottom:1px solid rgba(41,66,77,.14)}
.route-copy h2,.section-heading h2{font-family:"Songti SC","STSong",serif;font-size:30px;line-height:1.25;margin:8px 0 10px}
.route-copy p{color:#71695e;font-size:14px;max-width:380px}
.route-progress{height:7px;background:#e3e8ea;margin-top:25px;overflow:hidden}.route-progress i{display:block;height:100%;background:#a43d2f}
.route-copy>small{display:block;margin-top:8px;color:#7a7266}
.route-steps{position:relative}.route-steps::before{content:"";position:absolute;left:41px;top:35px;bottom:35px;border-left:1px dashed #b9c6ca}
.route-step{width:100%;position:relative;display:grid;grid-template-columns:30px 48px 1fr auto;gap:14px;align-items:center;padding:13px 14px;text-align:left;border-bottom:1px solid rgba(41,66,77,.12);color:#28241e;transition:.2s}
.route-step:hover{background:#f6f9fa;padding-left:20px}
.step-no{font-family:Georgia,serif;font-size:11px;color:#9e3d2f}.step-icon{width:46px;height:46px;display:grid;place-items:center;background:#ffffff;border:1px solid #a43d2f;border-radius:50%;font-family:"Songti SC",serif;font-size:18px;color:#9e3d2f;z-index:1}
.step-text b,.step-text small{display:block}.step-text b{font-size:16px}.step-text small{color:#786f63;margin-top:2px}.step-time{font-size:12px;color:#8b8173}
.learn-section{padding:44px 0 34px}.section-heading span{color:#9e3d2f;font-size:12px;font-weight:800;letter-spacing:.15em}
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.method-card{min-height:230px;padding:22px;border:1px solid #cabfab;background:#f8f3e9;color:#28241e;text-align:left;display:flex;flex-direction:column;transition:.25s var(--ease);position:relative;overflow:hidden}
.method-card::after{content:"";position:absolute;width:100px;height:100px;border:1px solid currentColor;border-radius:50%;opacity:.08;right:-30px;top:-35px}
.method-card:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(74,58,34,.12)}
.method-card b{font-family:"Songti SC",serif;font-size:21px;margin:22px 0 8px}.method-card p{color:#6f675c;font-size:13px}.method-mark{align-self:flex-start;padding:3px 8px;border:1px solid currentColor;font-size:11px;letter-spacing:.12em}
.method-link{margin-top:auto;font-size:12px;font-weight:800}.map-method{color:#27544b}.visual-method{color:#9e3d2f}.story-method{color:#755a2b}.recall-method{color:#334d72}
.learning-proof{margin-top:12px;padding:25px 28px;background:#282d2b;color:#f5efe4;display:grid;grid-template-columns:repeat(3,120px) 1fr;align-items:center;gap:20px}
.learning-proof>div{border-right:1px solid #4a504d}.proof-num{display:block;font-family:Georgia,serif;font-size:30px;color:#dfbd70}.learning-proof small{color:#aeb5b0}.learning-proof blockquote{text-align:right;font-family:"Songti SC",serif;font-size:18px;color:#ded7ca}
.subject-section{padding:44px 0 36px}.subject-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.subject-card{min-height:285px;padding:24px 22px;border:1px solid #c9beaa;background:#f8f3e9;color:#28241e;text-align:left;position:relative;display:flex;flex-direction:column;transition:.25s var(--ease);overflow:hidden}
.subject-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--subject)}
.subject-card:hover{transform:translateY(-5px);border-color:var(--subject);box-shadow:0 14px 30px rgba(74,58,34,.12)}
.subject-focus{background:#f3eee2;border-color:var(--subject)}
.subject-no{position:absolute;right:17px;top:11px;font:italic 42px Georgia,serif;color:var(--subject);opacity:.13}
.subject-id{align-self:flex-start;padding:3px 9px;color:var(--subject);border:1px solid currentColor;font-size:11px;font-weight:800;letter-spacing:.12em}
.subject-card h3{font-family:"Songti SC",serif;font-size:23px;line-height:1.25;margin:27px 0 10px;max-width:200px}.subject-card p{color:#6f675c;font-size:13px}
.subject-meta{display:flex;gap:14px;margin-top:18px;color:#7a7165;font-size:12px}.subject-enter{margin-top:auto;color:var(--subject);font-size:12px;font-weight:800}
.map-chapter-section{padding:34px 0}.section-heading.between{display:flex;align-items:end;justify-content:space-between;gap:20px}.text-action{color:#9e3d2f;border-bottom:1px solid currentColor;padding-bottom:3px;font-weight:700}
.chapter-strips{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #cfc5b3}
.chapter-strip{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:13px 10px;text-align:left;color:#2d2923;border-bottom:1px solid #d7cdbd;transition:.18s}.chapter-strip:nth-child(odd){border-right:1px solid #d7cdbd}
.chapter-strip:hover{background:#fffaf0;padding-left:16px}.chapter-strip>span{color:#9e3d2f;font-size:11px;font-weight:800}.chapter-strip b{font-size:13px}.chapter-strip small{color:#8a8174}
.content-rule{margin-top:26px;padding:18px 20px;background:#282d2b;color:#eee6d8;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.content-rule b{margin-right:8px}.content-rule span{padding:4px 8px;border:1px solid #6a706c}.content-rule i{color:#d9b96f;font-style:normal}
/* === 题库驱动章节讲解 === */
.exam-lesson{color:var(--t);padding-bottom:35px}.el-hero{padding:25px;background:linear-gradient(135deg,#222d31,#283731);border:1px solid #40504c;border-radius:16px;margin-bottom:18px}.el-kicker{color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.14em}.el-hero h2{font-family:"Songti SC",serif;font-size:28px;line-height:1.25;margin:10px 0 8px}.el-hero>p{color:var(--t2)}
.el-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:22px}.el-stats div{padding:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}.el-stats b,.el-stats span{display:block}.el-stats b{font:24px Georgia,serif;color:var(--gold)}.el-stats span{font-size:11px;color:var(--t2)}
.el-visual{position:relative;background:#f5efe2;border:1px solid #cfc1a9;border-radius:14px;overflow:hidden;margin-bottom:18px}.el-visual img{display:block;width:100%;height:auto}.el-visual-caption{padding:10px 14px;color:#665d50;background:rgba(255,250,239,.9);font-size:12px}
.el-map-links{padding:23px 0;border-bottom:1px solid var(--line)}.el-map-region-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.el-map-region-list button{padding:13px;background:var(--card);border:1px solid var(--line);text-align:left;color:var(--t);transition:.2s}.el-map-region-list button:hover{border-color:var(--gold);transform:translateY(-2px)}.el-map-region-list b,.el-map-region-list span,.el-map-region-list em{display:block}.el-map-region-list b{font-size:14px}.el-map-region-list span{font-size:11px;color:var(--t3);margin:4px 0}.el-map-region-list em{font-size:11px;color:var(--gold);font-style:normal}
.el-country-cards .el-map-region-list>div{padding:13px;background:var(--card);border:1px solid var(--line)}.el-country-cards .el-map-region-list em{color:var(--t2)}
.el-section{padding:23px 0;border-bottom:1px solid var(--line)}.el-section-head{display:flex;gap:12px;margin-bottom:17px}.el-section-head>span{font:italic 28px Georgia,serif;color:var(--gold);opacity:.7}.el-section-head h3{font-size:19px}.el-section-head p{font-size:12px;color:var(--t3);margin-top:2px}
.el-clusters{display:grid;gap:9px}.el-cluster{display:grid;grid-template-columns:145px 1fr;gap:7px 12px;align-items:center;padding:11px 12px;background:var(--card)}.el-cluster>div:first-child{display:flex;justify-content:space-between;gap:7px}.el-cluster span{font-size:11px;color:var(--gold)}.el-cluster-bar{height:7px;background:var(--bg);overflow:hidden}.el-cluster-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--jade))}.el-cluster p{grid-column:1/-1;color:var(--t3);font-size:11px}
.el-timeline{position:relative;padding-left:8px}.el-timeline::before{content:"";position:absolute;left:54px;top:14px;bottom:14px;border-left:1px dashed var(--t3)}.el-time{display:grid;grid-template-columns:47px 1fr;gap:18px;position:relative;padding:8px 0}.el-time time{font:15px Georgia,serif;color:var(--gold)}.el-time>div{background:var(--card);padding:11px 13px;border-left:2px solid var(--gold)}.el-time p{font-size:12px;color:var(--t2);margin:3px 0}.el-time em{font-size:11px;color:var(--red);font-style:normal}
.el-confusions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.el-compare{padding:14px;background:var(--card);border:1px solid var(--line)}.el-compare>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.el-compare i{color:var(--red);font:italic 11px Georgia}.el-compare strong{display:block;color:var(--gold);font-size:12px;margin:7px 0}.el-compare p{font-size:11px;color:var(--t2)}
.el-achievements{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.el-achievements>div{padding:12px;background:var(--card);border-left:3px solid var(--jade)}.el-achievements p{font-size:11px;color:var(--t2);margin-top:3px}
.el-practice{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px;background:var(--card2);margin-top:20px}.el-practice b,.el-practice span{display:block}.el-practice span{font-size:11px;color:var(--t3);margin-top:3px}
.el-flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.el-flow-steps>div{position:relative;display:grid;gap:7px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.el-flow-steps>div:not(:last-child):after{content:'→';position:absolute;right:-14px;top:50%;z-index:2;color:var(--red);font-weight:800}.el-flow-steps i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--red);color:#fff;font-style:normal;font-weight:800}.el-flow-steps b{font-size:16px}.el-flow-steps span{color:var(--muted);font-size:13px;line-height:1.6}
@media(max-width:1050px){.subject-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.learn-masthead{display:block}.map-ticket{min-width:0;width:100%;max-width:420px;margin-top:28px}.method-grid{grid-template-columns:repeat(2,1fr)}.today-route{grid-template-columns:1fr;gap:28px}.learning-proof{grid-template-columns:repeat(3,1fr)}.learning-proof blockquote{display:none}}
@media(max-width:620px){.learn-home{padding:76px 16px 40px}.learn-masthead h1{font-size:40px}.method-grid,.subject-grid,.chapter-strips{grid-template-columns:1fr}.subject-card{min-height:230px}.chapter-strip:nth-child(odd){border-right:0}.section-heading.between{display:block}.text-action{margin-bottom:20px}.method-card{min-height:190px;padding:18px}.method-card b{font-size:18px}.route-step{grid-template-columns:24px 42px 1fr}.step-time{display:none}.learning-proof{padding:20px 15px;gap:8px}.proof-num{font-size:25px}.el-stats,.el-confusions,.el-achievements,.el-map-region-list{grid-template-columns:1fr 1fr}.el-cluster{grid-template-columns:1fr}.el-cluster p{grid-column:auto}.el-practice{align-items:stretch;flex-direction:column}.el-flow-steps{grid-template-columns:1fr 1fr}.el-flow-steps>div:not(:last-child):after{display:none}}

/* === 移动端:边栏隐藏,汉堡按钮显示 === */
.mobile-menu-btn{display:none;position:fixed;top:14px;left:14px;z-index:200;width:46px;height:46px;border-radius:12px;background:var(--card);color:var(--t);font-size:20px;box-shadow:var(--shadow)}
.mobile-sidebar-backdrop{display:none}
@media(max-width:768px){
  .mobile-menu-btn{display:block}
  .mobile-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:90;background:rgba(8,14,15,.48);opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
  body.mobile-nav-open .mobile-sidebar-backdrop{opacity:1;pointer-events:auto}
  body.mobile-nav-open{overflow:hidden}
  main{margin-left:0!important;padding:14px;transition:none}
  main.map-full{margin-left:0!important}
}

.view-head{margin-bottom:22px}
.view-head h1{font-size:26px;font-weight:800;letter-spacing:-.3px;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.view-head p{color:var(--t2);font-size:14px;margin-top:4px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:720px){.g2,.g3{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;transition:.3s var(--ease);position:relative;overflow:hidden}
.card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow)}
.card-h{display:flex;align-items:flex-start;gap:12px}
.card-ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:22px;flex-shrink:0}
.card-t{font-size:16px;font-weight:700;margin-bottom:3px}
.card-d{color:var(--t2);font-size:13px;line-height:1.55}
.tag{display:inline-block;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:600;background:var(--card2);color:var(--t2)}
.tag.g{background:rgba(78,201,168,.15);color:var(--jade)}
.tag.r{background:rgba(239,107,107,.15);color:var(--red)}
.tag.o{background:rgba(240,160,80,.15);color:var(--orange)}
.tag.b{background:rgba(91,168,245,.15);color:var(--blue)}
.must{margin-top:9px;padding:7px 10px;background:rgba(240,200,118,.08);border-left:3px solid var(--gold);border-radius:6px;font-size:12.5px;color:var(--warn);line-height:1.5}
.hero{position:relative;border-radius:var(--r-l);padding:30px 24px;margin-bottom:22px;overflow:hidden;background:linear-gradient(135deg,#1a2235,#1d2a2a)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(240,200,118,.12),transparent 50%);pointer-events:none}
.hero h2{font-size:22px;font-weight:800;margin-bottom:6px;position:relative}
.hero p{color:var(--t2);font-size:14px;position:relative}
.hero-stats{display:flex;gap:18px;margin-top:16px;position:relative}
.hero-stat{text-align:center}
.hero-stat b{display:block;font-size:24px;font-weight:800;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stat span{font-size:12px;color:var(--t3)}
.onion{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.layer{padding:13px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:.3s var(--ease);position:relative;overflow:hidden}
.layer:hover{border-color:var(--gold);transform:translateX(4px)}
.layer-bar{position:absolute;left:0;top:0;bottom:0;width:4px}
.layer-h{display:flex;align-items:center;justify-content:space-between}
.layer-t{font-weight:700;font-size:15px}
.layer-sub{font-size:12px;color:var(--t3);margin-top:3px}
.layer-pct{font-weight:700;font-size:18px}
.ring{width:64px;height:64px;position:relative;display:inline-block}
.ring svg{transform:rotate(-90deg)}
.ring .bg{stroke:var(--line)}
.ring .fg{stroke:var(--gold);stroke-linecap:round;transition:stroke-dasharray .8s var(--ease)}
.ring .num{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:700}
.flip{perspective:1200px;height:200px;cursor:pointer}
.flip-in{position:relative;width:100%;height:100%;transition:transform .6s var(--ease-b);transform-style:preserve-3d}
.flip.on .flip-in{transform:rotateY(180deg)}
.flip-f{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r);padding:18px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line)}
.flip-b{transform:rotateY(180deg);background:var(--card2)}
.flip-q{font-size:17px;font-weight:700;margin-bottom:8px}
.flip-hint{font-size:12px;color:var(--t3);margin-top:auto}
.btn{padding:10px 20px;border-radius:var(--r-s);font-weight:600;font-size:14px;transition:.2s var(--ease);display:inline-flex;align-items:center;gap:7px}
.btn-p{background:var(--gold);color:var(--bg)}
.btn-p:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-g{background:var(--card2);color:var(--t)}
.btn-g:hover{background:var(--line)}
.guide-list-item{padding:13px 15px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:.3s var(--ease);display:flex;gap:12px;align-items:center}
.guide-list-item:hover{border-color:var(--gold);transform:translateY(-1px)}
.guide-list-item.on{border-color:var(--gold);background:var(--card2)}
body[data-view="guide"] main{height:100vh;overflow:hidden;padding:0!important}
.guide-page{height:100vh;display:grid;grid-template-columns:310px minmax(0,1fr);background:var(--bg);overflow:hidden}
.guide-library{padding:26px 18px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.guide-library-head span{font-size:10px;letter-spacing:.16em;color:var(--gold);font-weight:800}
.guide-library-head h1{font-size:28px;margin:6px 0}.guide-library-head p{font-size:12px;color:var(--t3);line-height:1.5}
.guide-library .pillrow{margin:20px 0 12px}.guide-library #guideList{display:flex;flex-direction:column;gap:7px;overflow-y:auto;padding-right:4px}
.guide-workspace{overflow-y:auto;padding:28px clamp(24px,4vw,64px)}
.guide-workspace>.card,.guide-workspace>.guide-studio{max-width:1040px;margin:0 auto}
.reader{display:grid;grid-template-columns:240px 1fr;gap:16px}
@media(max-width:720px){.reader{grid-template-columns:1fr}}
/* split 模式下:导游词 reader 改单列 + 隐藏右侧阅读器(用面板代替) */
.split-list .reader{grid-template-columns:1fr}
.split-list #guideReader{display:none}
.guide-body{white-space:pre-wrap;font-size:15px;line-height:1.85;color:var(--t);padding:22px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);min-height:300px}
.guide-meta{font-size:12px;color:var(--t3);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.guide-studio{color:var(--t)}
.gs-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.gs-title span{font-size:10px;letter-spacing:.16em;color:var(--gold);font-weight:800}.gs-title h2{font-size:34px;margin:6px 0}.gs-title p{color:var(--t3);font-size:13px}
.gs-title button{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--t);cursor:pointer}
.gs-context{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:12px;margin-bottom:14px}
.gs-photo,.gs-map-card{height:250px;border-radius:16px;overflow:hidden;border:1px solid var(--line);position:relative}
.gs-photo{background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;padding:20px}
.gs-photo span{font-size:10px;letter-spacing:.13em;color:#f5bd55}.gs-photo b{font-size:24px;color:#fff;margin-top:4px}
.gs-map-card{background:radial-gradient(circle at 75% 22%,rgba(70,111,103,.24),transparent 32%),linear-gradient(145deg,#101b20,#18272a)}
.gs-map-card #guideMiniMap{position:absolute;inset:0}.gs-map-card>span{position:absolute;left:12px;bottom:10px;font-size:10px;color:#b6c1bd;background:rgba(11,17,20,.78);padding:5px 8px;border-radius:20px}
.gs-route-map-title{position:absolute;left:16px;top:14px;z-index:2;display:grid}.gs-route-map-title span{font-size:8px;letter-spacing:.16em;color:var(--gold)}.gs-route-map-title b{font-size:14px;margin-top:3px}
#guideMiniMap svg{position:absolute;inset:42px 10px 25px;width:calc(100% - 20px);height:calc(100% - 67px);overflow:visible}
#guideMiniMap polyline{fill:none;stroke:#dca545;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
#guideMiniMap>button{position:absolute;z-index:3;width:24px;height:24px;transform:translate(-50%,-50%);border:2px solid #10191d;border-radius:50%;background:#dbe2df;color:#10191d;font-size:10px;font-weight:900;cursor:pointer}
#guideMiniMap>button.on{z-index:5;width:31px;height:31px;background:var(--gold);box-shadow:0 0 0 6px rgba(240,200,118,.15)}
#guideMiniMap>strong{position:absolute;right:14px;top:16px;font-size:12px;color:#dce5e1}
.gs-hero{min-height:170px;padding:28px;border-radius:18px;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end}
.gs-hero span,.gs-stop-head span,.gs-cue span,.gs-checklist>span{font-size:10px;letter-spacing:.14em;color:var(--gold);font-weight:800}
.gs-hero h2{font-size:28px;margin:8px 0 4px}.gs-hero p{color:#dce2df;font-size:12px}
.gs-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}
.gs-modes button,.gs-route button,.gs-actions button{border:1px solid var(--line);background:var(--card2);color:var(--t);border-radius:10px;padding:10px;cursor:pointer}
.gs-modes button.on,.gs-route button.on{border-color:var(--gold);background:rgba(240,200,118,.12);color:var(--gold)}
.gs-route{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:7px;padding:2px 0 12px}
.gs-route button{min-width:0;text-align:left;display:flex;gap:8px;align-items:center}.gs-route i{font-style:normal;font-size:10px;color:var(--t3)}
.gs-stop{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px}
.gs-stop-head{display:flex;justify-content:space-between;gap:16px}.gs-stop-head h3{font-size:22px;margin:4px 0}.gs-stop-head em{font-style:normal;font-size:11px;color:var(--t3);max-width:180px;text-align:right}
.gs-cue{background:rgba(240,200,118,.08);border-left:3px solid var(--gold);padding:12px;margin:14px 0}.gs-cue p{margin-top:5px;line-height:1.6}
.gs-script p{font-size:15px;line-height:1.9;padding:10px;border-radius:10px;cursor:pointer}.gs-script p:hover{background:var(--card2)}
.gs-checklist{display:grid;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.gs-checklist label{font-size:13px;color:var(--t2);display:flex;gap:8px;align-items:center}.gs-checklist input{accent-color:var(--gold)}
.gs-checklist.exam label{padding:9px;background:var(--card2);border-radius:8px}
.gs-actions{display:flex;gap:8px;margin-top:18px}.gs-actions button{flex:1}.gs-actions button.primary{background:var(--gold);color:var(--bg)}.gs-actions button:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:850px){.guide-page{grid-template-columns:1fr;height:auto;overflow:visible}.guide-library{border-right:0;border-bottom:1px solid var(--line)}.guide-library #guideList{max-height:270px}.guide-workspace{padding:20px}.gs-context{grid-template-columns:1fr}.gs-photo,.gs-map-card{height:220px}}
@media(max-width:600px){.gs-modes{grid-template-columns:1fr}.gs-stop-head{display:block}.gs-stop-head em{display:block;text-align:left;margin-top:5px}.gs-title{align-items:flex-start}.gs-title h2{font-size:28px}}
.quiz-q{font-size:17px;font-weight:700;margin-bottom:16px;line-height:1.5}
.opt{padding:13px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);margin-bottom:9px;cursor:pointer;transition:.2s var(--ease);display:flex;gap:10px;align-items:center}
.opt:hover{border-color:var(--blue)}
.opt .k{width:26px;height:26px;border-radius:7px;background:var(--card2);display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}
.opt.ok{border-color:var(--ok);background:rgba(78,201,168,.1)}
.opt.ok .k{background:var(--ok);color:var(--bg)}
.opt.no{border-color:var(--bad);background:rgba(239,107,107,.1)}
.opt.no .k{background:var(--bad);color:var(--bg)}
.exp{margin-top:12px;padding:12px 15px;background:rgba(91,168,245,.08);border-left:3px solid var(--blue);border-radius:6px;font-size:13px;color:var(--t2);line-height:1.6}
.map-wrap{position:relative;border-radius:var(--r-l);overflow:hidden;background:var(--card);border:1px solid var(--line);padding:20px}
.map-pins{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:16px}
.map-pin{padding:11px 13px;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer;transition:.25s var(--ease);display:flex;gap:9px;align-items:center}
.map-pin:hover{border-color:var(--gold);transform:scale(1.02)}
.map-pin.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(240,200,118,.2)}
.empty{text-align:center;padding:50px 20px;color:var(--t3)}
.pillrow{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.pill{padding:6px 13px;border-radius:20px;font-size:13px;background:var(--card2);border:1px solid var(--line);cursor:pointer;transition:.2s;font-weight:500}
.pill.on{background:var(--gold);color:var(--bg);border-color:var(--gold);font-weight:600}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.bar>i{display:block;height:100%;background:var(--grad-gold);border-radius:3px;transition:width .6s var(--ease)}
.flex{display:flex}.between{justify-content:space-between}.center{align-items:center}.gap{gap:10px}.wrap{flex-wrap:wrap}
.mt{margin-top:14px}.mt2{margin-top:24px}.mb{margin-bottom:14px}.hide{display:none}
.speak-on{color:var(--gold)!important}
.big-num{font-size:32px;font-weight:800;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.divider{height:1px;background:var(--line);margin:20px 0}
.fab{position:fixed;right:18px;bottom:24px;width:52px;height:52px;border-radius:50%;background:var(--grad-gold);display:grid;place-items:center;font-size:22px;box-shadow:var(--shadow-lg);z-index:40;transition:.3s var(--ease-b)}
.fab:hover{transform:scale(1.08) rotate(8deg)}
.fab.playing{background:var(--grad-red);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,107,107,.4)}50%{box-shadow:0 0 0 12px rgba(239,107,107,0)}}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--t3)}
/* === Animations & Polish === */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.card{animation:slideUp .4s var(--ease) backwards}
.card:nth-child(1){animation-delay:.05s}
.card:nth-child(2){animation-delay:.1s}
.card:nth-child(3){animation-delay:.15s}
.card:nth-child(4){animation-delay:.2s}
.card:nth-child(5){animation-delay:.25s}
.card:nth-child(6){animation-delay:.3s}
.guide-list-item{animation:slideUp .3s var(--ease) backwards}
.guide-list-item:nth-child(n){animation-delay:calc(var(--n,0)*0.04s)}
.layer{animation:slideUp .35s var(--ease) backwards}
.layer:nth-child(1){animation-delay:.05s}
.layer:nth-child(2){animation-delay:.1s}
.layer:nth-child(3){animation-delay:.15s}
.layer:nth-child(4){animation-delay:.2s}
.flip{animation:scaleIn .4s var(--ease)}
.quiz-q{animation:fadeIn .3s var(--ease)}
.opt{animation:slideUp .25s var(--ease) backwards}
.opt:nth-child(1){animation-delay:.05s}
.opt:nth-child(2){animation-delay:.1s}
.opt:nth-child(3){animation-delay:.15s}
.opt:nth-child(4){animation-delay:.2s}
.hero-stats .hero-stat{animation:scaleIn .5s var(--ease) backwards}
.hero-stats .hero-stat:nth-child(1){animation-delay:.1s}
.hero-stats .hero-stat:nth-child(2){animation-delay:.2s}
.hero-stats .hero-stat:nth-child(3){animation-delay:.3s}
.hero-stats .hero-stat:nth-child(4){animation-delay:.4s}
.hero h2{animation:fadeIn .6s var(--ease)}
.flow-node{animation:slideUp .35s var(--ease) backwards}
.brand-mark{transition:transform .3s var(--ease-b)}
.brand:hover .brand-mark{transform:rotate(360deg) scale(1.1)}
.big-num{transition:transform .3s var(--ease)}
.big-num:hover{transform:scale(1.05)}
.ring .fg{filter:drop-shadow(0 0 4px rgba(240,200,118,.4))}
/* ===== 地理导览图 ===== */
.map-wrap{overflow-x:auto;padding:2px}
.jxmap{display:block;width:100%;min-width:480px;max-width:760px;margin:0 auto}
.jxmap .mk{cursor:pointer}
.jxmap .mk:hover circle,.jxmap .mk:focus circle{filter:drop-shadow(0 0 4px rgba(240,200,118,.7))}
.jxmap .mk:hover path[fill-opacity]{filter:brightness(1.25) drop-shadow(0 0 5px rgba(240,200,118,.5))}
.jxmap .mk-lbl{fill:#e8ebf2;font-size:13px;font-weight:700;pointer-events:none;paint-order:stroke;stroke:#0d1018;stroke-width:3px}
.jxmap .mk-lbl.lk{fill:#bfe0f5}
.jxmap .mk-sub{fill:#a0a8bd;font-size:10px;pointer-events:none;paint-order:stroke;stroke:#0d1018;stroke-width:2.5px}
.jxmap .city-lbl{fill:#7c8699;font-size:10px;pointer-events:none}
.legend-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;padding:10px 6px 4px}
.legend-row .lg{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--t2)}
.legend-row .lg i{width:11px;height:11px;border-radius:3px;display:inline-block}
@media(max-width:560px){.jxmap{min-width:420px}.jxmap .mk-lbl{font-size:12px}}
@media(max-width:480px){.jxmap{min-width:0}.skyline-svg{min-width:0}}
/* ===== 山水图鉴（具像化卡片） ===== */
.geotab{display:flex;gap:8px;margin-bottom:6px}
.geotab-item{flex:1;text-align:center;padding:11px 10px;border-radius:var(--r-s);background:var(--card);border:1px solid var(--line);font-weight:600;font-size:15px;color:var(--t2);cursor:pointer;transition:.2s var(--ease)}
.geotab-item.on{color:var(--bg);background:var(--grad-gold);border-color:transparent}
.geocard{display:flex;gap:12px;align-items:stretch;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;cursor:pointer;transition:.28s var(--ease);position:relative;overflow:hidden}
.geocard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ac)}
.geocard:hover{border-color:var(--ac);transform:translateY(-2px);box-shadow:var(--shadow)}
.geocard-hero{flex-shrink:0;width:96px;height:96px;border-radius:var(--r-s);background:linear-gradient(160deg,color-mix(in srgb,var(--ac) 16%,transparent),transparent);border:1px solid color-mix(in srgb,var(--ac) 28%,transparent);display:grid;place-items:center}
.geohero-svg{width:82px;height:82px}
.geocard-body{flex:1;min-width:0}
.geocard-name{font-size:18px;font-weight:800;color:var(--t)}
.geocard-sub{font-size:12.5px;color:var(--t3);margin-top:2px}
.geocard-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.geocard-stats span{font-size:12px;color:var(--t2);background:var(--card2);padding:3px 8px;border-radius:6px}
.geocard-stats b{color:var(--ac)}
.geocard-hook{font-size:13px;color:var(--t2);line-height:1.5;margin-top:8px}
.geocard-cta{font-size:12.5px;color:var(--ac);font-weight:600;margin-top:8px}
@media(max-width:560px){.geocard-hero{width:78px;height:78px}.geohero-svg{width:66px;height:66px}.geocard-name{font-size:16px}}
/* ===== 知识脉络 · 剥洋葱 ===== */
.onion-node{animation:slideUp .28s var(--ease) backwards}
.onion-focus{box-shadow:0 0 0 2px rgba(240,200,118,.5)}
.onion-arrow{display:inline-block}
.onion-node .onion-node{margin-left:2px}
.onion-node > div:first-child:hover{filter:brightness(1.15)}
@media(max-width:560px){.onion-node > div:first-child > span:nth-child(3){display:none}}
/* ===== 天际线海拔对比 ===== */
.skyline-card{overflow-x:auto}
.skyline-svg{display:block;width:100%;min-width:640px;max-width:760px;margin:0 auto}
.skyline-svg .sky-bar path{transform-origin:center bottom;animation:skyGrow .6s var(--ease-b) backwards;animation-delay:var(--d,0s)}
.skyline-svg .sky-bar text{animation:fadeIn .4s var(--ease) backwards;animation-delay:calc(var(--d,0s) + .3s)}
.skyline-svg .sky-bar:hover path{filter:brightness(1.2) drop-shadow(0 0 6px currentColor)}
@keyframes skyGrow{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}
/* ===== 湖泊面积对比 ===== */
.lake-ranks{display:flex;align-items:flex-end;gap:20px;justify-content:center;flex-wrap:wrap;padding:10px 0}
.lake-rank{cursor:pointer;animation:scaleIn .5s var(--ease-b) backwards;animation-delay:var(--d,0s);transition:transform .2s var(--ease)}
.lake-rank:hover{transform:translateY(-4px)}
.lake-circle{border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(90,166,214,.7),rgba(42,111,165,.5));border:2px solid rgba(90,166,214,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.25s var(--ease)}
.lake-rank:hover .lake-circle{border-color:var(--gold);box-shadow:0 0 16px rgba(240,200,118,.3)}
.lake-r-n{font-size:14px;font-weight:700;color:var(--t)}
.lake-r-s{font-size:13px;color:var(--t2);margin-top:2px}
.lake-r-s small{font-size:10px;color:var(--t3)}
@media(max-width:560px){.skyline-svg{min-width:580px}.lake-ranks{gap:12px}}

/* ===== 山水图鉴 · 模式切换 + 记忆卡 ===== */
.gmoderow{display:flex;gap:8px;margin-bottom:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);padding:5px}
.gmode{flex:1;padding:10px 12px;border-radius:7px;font-weight:600;font-size:14px;color:var(--t2);background:transparent;transition:.22s var(--ease)}
.gmode:hover{color:var(--t)}
.gmode.on{background:var(--grad-gold);color:var(--bg)}
.gsubtab{display:flex;gap:8px;margin-bottom:14px}
.gsubst{flex:1;padding:12px;border-radius:var(--r-s);background:var(--card);border:1px solid var(--line);font-weight:600;font-size:15px;color:var(--t2);cursor:pointer;transition:.2s var(--ease)}
.gsubst.on{color:var(--bg);background:var(--grad-gold);border-color:transparent}
.gmem-list{display:flex;flex-direction:column;gap:14px}
.gmem{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;cursor:pointer;transition:.28s var(--ease);position:relative;overflow:hidden;animation:slideUp .4s var(--ease) backwards}
.gmem::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--ac)}
.gmem:hover{border-color:var(--ac);transform:translateY(-3px);box-shadow:var(--shadow)}
.gmem-hero{flex-shrink:0;width:104px;height:104px;border-radius:var(--r-s);background:linear-gradient(160deg,color-mix(in srgb,var(--ac) 18%,transparent),transparent);border:1px solid color-mix(in srgb,var(--ac) 30%,transparent);display:grid;place-items:center}
.gmem-hero svg{width:88px;height:88px}
.gmem-body{flex:1;min-width:0}
.gmem-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.gmem-name{font-size:19px;font-weight:800;color:var(--t)}
.gmem-peak{font-size:12.5px;color:var(--t3);margin-top:2px}
.gmem-rank{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.gtag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:5px;background:var(--card2);color:var(--t2);white-space:nowrap}
.gtag-hi{background:rgba(239,107,107,.16);color:var(--bad)}
.gtag-mid{background:rgba(240,200,118,.16);color:var(--warn)}
.gmem-hook{font-size:15px;font-weight:600;color:var(--t);margin-top:10px;line-height:1.5}
.gmem-spots{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.gmem-spots span{font-size:12px;color:var(--t2);background:var(--card2);padding:4px 9px;border-radius:7px;line-height:1.4}
.gmem-quote{margin-top:10px;padding:8px 12px;border-left:3px solid var(--gold);background:rgba(240,200,118,.07);border-radius:6px;font-size:13.5px;color:var(--warn);line-height:1.6;font-style:italic}
.gmem-era{font-size:12px;color:var(--t3);margin-top:8px;line-height:1.5}
.gmem-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.gact{padding:8px 14px;border-radius:7px;font-size:13px;font-weight:600;background:var(--card2);color:var(--t);border:1px solid var(--line);transition:.2s var(--ease)}
.gact:hover{border-color:var(--ac);color:var(--ac)}
.gact-p{background:var(--ac);color:#fff;border-color:transparent}
.gact-p:hover{filter:brightness(1.1);color:#fff}
@media(max-width:560px){.gmem{flex-direction:column;gap:10px}.gmem-hero{width:100%;height:96px}.gmem-hero svg{width:80px;height:80px}.gmem-rank{align-items:flex-start}.gmem-top{flex-direction:column}}

/* ===== 展开记忆面板 ===== */
.gd{padding:4px}
.gd-head{display:flex;gap:16px;align-items:center;background:linear-gradient(160deg,color-mix(in srgb,var(--ac) 14%,transparent),transparent);border:1px solid color-mix(in srgb,var(--ac) 30%,transparent);border-radius:var(--r);padding:16px}
.gd-hero{flex-shrink:0}
.gd-title{flex:1;min-width:0}
.gd-title h2{font-size:22px;font-weight:800;margin:0}
.gd-sub{font-size:13px;color:var(--t3);margin-top:3px}
.gd-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.gd-hook{font-size:16px;font-weight:700;color:var(--t);margin-top:16px;line-height:1.6;text-align:center}
.gd-sec{margin-top:16px}
.gd-sec-h{font-size:13px;font-weight:700;color:var(--warn);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.gd-spot{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;background:var(--card2);border-radius:var(--r-s);margin-bottom:6px;font-size:14px;line-height:1.5}
.gd-no{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--ac);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}
.gd-quote{margin-top:16px;padding:12px 16px;border-left:4px solid var(--gold);background:rgba(240,200,118,.08);border-radius:8px;font-size:15px;color:var(--warn);line-height:1.7;font-style:italic}
.gd-era{font-size:13px;color:var(--t3);margin-top:12px;line-height:1.6}
.gd-desc{font-size:14px;color:var(--t2);line-height:1.8;margin-top:14px}
.gd-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
@media(max-width:560px){.gd-head{flex-direction:column;text-align:center}.gd-hero{margin:0 auto}}
/* ===== 首页地图：真实地理 · 中国→江西 ===== */
.hero-map{padding:14px 18px;margin-bottom:14px}
.hero-line{font-size:14px;color:var(--t2);position:relative;margin-bottom:10px}
.hero-line b{color:var(--gold)}
.hero-stats-inline{display:flex;gap:10px;flex-wrap:wrap}
.hero-stat.sm{text-align:center;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:6px 12px;min-width:74px}
.hero-stat.sm b{font-size:18px}
.hero-stat.sm span{font-size:11px}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.hm-info{font-size:14px;color:var(--t)}
.hm-info b{color:var(--gold)}
.hm-btns{display:flex;gap:8px}
.homemap-wrap{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#0d1018}
#homemap{width:100%;height:min(70vh,680px);min-height:440px}
.homemap-hint{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--t3);pointer-events:none}
.map-fallback{display:grid;place-items:center;height:440px;color:var(--t2);font-size:15px}
.homemap-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--t2)}
.homemap-legend span{display:inline-flex;align-items:center;gap:5px}
.homemap-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.homemap-legend .dim{color:var(--t3);margin-left:auto}
@media(max-width:720px){#homemap{height:62vh;min-height:380px}.hero-stats-inline{gap:6px}.hero-stat.sm{min-width:60px;padding:5px 8px}}
/* ===== 主题脉络：按主题+时间线串同类考点 ===== */
.vein-modrow{display:flex;gap:8px;margin-bottom:14px}
.vein-modrow .gmode{padding:8px 16px;border-radius:10px;background:var(--card2);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--t2);cursor:pointer;transition:.2s}
.vein-modrow .gmode.on{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.vein-themes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.vtheme{position:relative;padding:9px 14px 9px 12px;border-radius:10px;background:var(--card2);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--t2);cursor:pointer;transition:.25s;display:inline-flex;align-items:center;gap:6px}
.vtheme::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tc);display:inline-block;flex-shrink:0}
.vtheme:hover{border-color:var(--gold);transform:translateY(-1px)}
.vtheme.on{background:var(--tc);color:#fff;border-color:var(--tc)}
.vtheme.on::before{background:#fff}
.vtheme-n{font-size:11px;opacity:.7;background:rgba(0,0,0,.18);padding:1px 6px;border-radius:8px}
.vtheme.on .vtheme-n{background:rgba(255,255,255,.25)}
.vtheme-coming{opacity:.4;cursor:not-allowed;font-style:italic}
.vtheme-coming::before{background:var(--t3)}
.vein-meta{display:flex;align-items:center;gap:14px;padding:16px 20px;border-left:4px solid var(--tc);background:linear-gradient(135deg,var(--card),var(--card2))}
.vein-meta-ic{font-size:34px;line-height:1}
.vein-meta-name{font-size:18px;font-weight:800;color:var(--tc)}
.vein-meta-sub{font-size:13px;color:var(--t2);margin-top:2px;line-height:1.5}
.vein-meta-n{margin-left:auto;font-size:13px;color:var(--t3);background:var(--card);padding:4px 10px;border-radius:8px;border:1px solid var(--line);white-space:nowrap}
.timeline{position:relative;margin-top:8px;padding-left:0}
.timeline::before{content:"";position:absolute;left:74px;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,var(--tc,#888),transparent);opacity:.5}
.tl-item{position:relative;display:grid;grid-template-columns:64px 20px 1fr;gap:0;align-items:start;cursor:pointer;margin-bottom:6px}
.tl-era{font-size:11px;font-weight:700;color:var(--tc);text-align:right;padding:14px 8px 0 0;line-height:1.4;white-space:normal;word-break:keep-all}
.tl-dot{position:relative;width:14px;height:14px;border-radius:50%;background:var(--bg);border:3px solid var(--tc);margin:18px 0 0 3px;z-index:1;box-shadow:0 0 0 4px var(--bg),0 0 12px var(--tc)}
.tl-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;transition:.25s;margin:8px 0}
.tl-item:hover .tl-card{border-color:var(--tc);transform:translateX(3px);box-shadow:0 4px 16px rgba(0,0,0,.25)}
.tl-branch{font-size:11px;font-weight:700;color:var(--tc);background:color-mix(in srgb,var(--tc) 15%,transparent);display:inline-block;padding:2px 8px;border-radius:6px;margin-bottom:6px}
.tl-name{font-size:16px;font-weight:700;color:var(--t);line-height:1.4}
.tl-hook{font-size:13px;color:var(--t2);margin-top:4px;line-height:1.5}
.tl-cta{font-size:12px;color:var(--tc);margin-top:8px;font-weight:600}
.tl-item:hover .tl-cta{text-decoration:underline}
/* 主题脉络三级：分支条 / 子流派条 / 分支说明 */
.vein-branches,.vein-subs{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 12px}
.vbranch{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:9px;background:var(--card2);border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--t2);cursor:pointer;transition:.2s}
.vbranch:hover{border-color:var(--tc);color:var(--t);transform:translateY(-1px)}
.vbranch.on{background:var(--tc);color:#fff;border-color:var(--tc);box-shadow:0 3px 12px -4px var(--tc)}
.vb-n{font-size:10px;opacity:.7;background:rgba(0,0,0,.18);padding:0 6px;border-radius:7px;line-height:1.7}
.vbranch.on .vb-n{background:rgba(255,255,255,.25)}
.vsub{padding:5px 11px;border-radius:7px;background:var(--card);border:1px solid var(--line);font-size:12px;color:var(--t3);cursor:pointer;transition:.2s}
.vsub:hover{border-color:var(--tc);color:var(--t2)}
.vsub.on{background:var(--tc);color:#fff;border-color:var(--tc)}
.vein-branchdesc{font-size:13px;color:var(--t2);line-height:1.65;background:linear-gradient(135deg,var(--card),var(--card2));border:1px solid var(--line);border-left:3px solid var(--tc,#888);border-radius:9px;padding:11px 15px;margin-bottom:14px}
.vein-branchdesc .dim{color:var(--t3)}
.tl-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tl-sub{font-size:10px;font-weight:700;color:#fff;background:var(--tc,#888);padding:1px 7px;border-radius:5px;letter-spacing:.5px}
.vein-hint{padding:14px 18px;font-size:13px;color:var(--t3);line-height:1.75}
.vein-hint b{color:var(--t2)}
/* 排序挑战小游戏 */
.og-cta{font-size:15px;padding:14px 22px;box-shadow:0 6px 20px -6px var(--gold,#f0c876)}
/* 红色地图 */
.redmap-wrap{display:grid;grid-template-columns:1fr 320px;gap:14px;margin-bottom:12px}
@media(max-width:840px){.redmap-wrap{grid-template-columns:1fr}}
#redmap{width:100%;height:min(68vh,640px);min-height:420px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#0d1018}
.redmap-side{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px}
.redmap-ctrl{display:flex;flex-wrap:wrap;gap:6px}
.redmap-ctrl .btn{font-size:13px;padding:8px 12px;flex:1;min-width:70px}
.redmap-progress{height:6px;background:var(--card2);border-radius:3px;overflow:hidden}
#rmBar{height:100%;background:linear-gradient(90deg,#d94343,#f0c876);width:0;transition:width .5s var(--ease)}
.redmap-current{flex:1;overflow-y:auto}
.rm-idx{font-size:11px;color:var(--t3);letter-spacing:.5px}
.rm-era{font-size:13px;color:#f0c876;font-weight:700;margin:4px 0 2px}
.rm-name{font-size:18px;font-weight:800;color:var(--t);line-height:1.3}
.rm-place{font-size:12px;color:#c89898;margin:4px 0 8px}
.rm-desc{font-size:13px;line-height:1.75;color:var(--t2)}
.rm-must{margin-top:8px;font-size:12px;color:#d94343;background:rgba(217,67,67,.12);border-left:3px solid #d94343;padding:6px 10px;border-radius:0 6px 6px 0}
.rm-acts{display:flex;gap:6px;margin-top:10px}
.rm-acts .btn{flex:1;font-size:12px;padding:8px}
.rm-done{text-align:center;padding:20px 10px;color:#f0c876;font-size:14px;font-weight:700;line-height:1.7}
.redmap-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--t2);margin-bottom:8px}
.redmap-legend span{display:inline-flex;align-items:center;gap:5px}
.redmap-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.redmap-legend .dim{color:var(--t3);margin-left:auto}
@keyframes ogPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
.og-head{margin-bottom:16px}
.og-head b{font-size:19px;color:var(--t)}
.og-sub{font-size:13px;color:var(--t3);margin-top:4px;line-height:1.6}
.og-slots{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;min-height:60px}
.og-slot{padding:12px 14px;border-radius:10px;border:1px solid var(--line);font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;background:var(--card2)}
.og-slot.done{background:rgba(78,201,168,.14);border-color:#4ec9a8;color:var(--t)}
.og-slot.reveal{background:var(--card)}
.og-slot .og-era{margin-left:auto;font-size:11px;font-weight:400;color:var(--t3)}
.og-idx{width:22px;height:22px;border-radius:50%;background:var(--gold,#f0c876);color:var(--bg);font-size:12px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.og-pool{display:flex;flex-wrap:wrap;gap:8px;padding:14px;background:var(--card);border:1px dashed var(--line);border-radius:10px;min-height:60px}
.og-chip{padding:10px 14px;border-radius:9px;background:var(--card2);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--t);cursor:pointer;transition:.18s;user-select:none}
.og-chip:hover{border-color:var(--gold,#f0c876);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.18)}
.og-chip:active{transform:translateY(0)}
.og-chip.og-wrong{background:#d94343;color:#fff;border-color:#d94343;animation:ogShake .4s}
@keyframes ogShake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.og-empty{color:var(--t3);font-size:13px;width:100%;text-align:center}
.og-win{text-align:center;padding:24px 16px;background:linear-gradient(135deg,rgba(78,201,168,.18),rgba(240,200,118,.12));border-radius:14px;margin-bottom:14px;font-size:24px;font-weight:800;color:#4ec9a8}
.og-win.perfect{color:var(--gold,#f0c876)}
.og-score{font-size:13px;font-weight:400;color:var(--t2);margin-top:6px}
.og-tl{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
@media(max-width:640px){.timeline::before{left:54px}.tl-item{grid-template-columns:46px 18px 1fr}.tl-era{font-size:10px;padding-right:4px}.tl-card{padding:10px 12px}}

/* === 景点详情:图文版(照片 hero + 图集) === */
.gd-head-photo{padding:0;overflow:hidden;flex-direction:column;align-items:stretch;border:none}
.gd-hero-photo{width:100%;height:200px;background-size:cover;background-position:center;border-radius:var(--r) var(--r) 0 0;flex-shrink:0;position:relative}
.gd-hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.55));border-radius:var(--r) var(--r) 0 0}
.gd-head-photo .gd-title{padding:14px 16px;background:linear-gradient(160deg,color-mix(in srgb,var(--ac) 14%,transparent),transparent)}
.gd-head-photo .gd-title h2{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.gd-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.gd-gal-img{width:100%;height:80px;object-fit:cover;border-radius:6px;cursor:zoom-in;background:var(--card2);transition:transform .2s,box-shadow .2s}
.gd-gal-img:hover{transform:scale(1.04);box-shadow:0 4px 14px rgba(0,0,0,.3)}

/* === 全屏地图首页(新布局) === */
.home-fullscreen{position:relative;width:100%;height:calc(100vh - 0px);overflow:hidden}
.homemap-canvas{width:100%;height:100%;background:#0a1018;min-height:560px}
.home-toolbar{
  position:absolute;top:14px;left:14px;z-index:10;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:rgba(15,17,23,.85);backdrop-filter:blur(12px);
  padding:8px 12px;border-radius:12px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(0,0,0,.3);max-width:calc(100% - 28px)
}
.hm-info{font-size:13px;color:#e8ebf2;font-weight:500;white-space:nowrap}
.hm-info b{color:var(--gold)}
.hm-btns{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.home-toolbar select{
  padding:6px 10px;border-radius:8px;border:1px solid var(--line);
  background:var(--card);color:var(--t);font-size:13px;outline:none;
  cursor:pointer;font-family:inherit
}
.home-toolbar select:hover{border-color:var(--gold)}
.home-toolbar .btn{padding:6px 12px;font-size:13px}
.home-legend{
  position:absolute;bottom:14px;left:14px;z-index:10;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:rgba(15,17,23,.85);backdrop-filter:blur(12px);
  padding:8px 14px;border-radius:12px;border:1px solid var(--line);
  font-size:12px;color:var(--t2);max-width:calc(100% - 28px)
}
.home-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}
.home-legend .dim{color:#aeb7c8}
.map-layer-switcher{
  position:absolute;top:16px;right:max(18px,env(safe-area-inset-right));z-index:12;width:214px;
  padding:12px;background:rgba(10,17,24,.9);backdrop-filter:blur(18px) saturate(.85);
  border:1px solid rgba(126,166,181,.26);border-radius:16px;color:#eaf2f1;
  box-shadow:0 18px 48px rgba(0,0,0,.36)
}
.map-layer-switcher header{display:flex;align-items:baseline;justify-content:space-between;margin:0 2px 10px}
.map-layer-switcher header span{color:#78949b;font:700 9px var(--font-metric);letter-spacing:.15em}
.map-layer-switcher header b{font-size:12px;color:#c9d8d7}
.map-base-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:rgba(255,255,255,.045);border-radius:11px}
.map-base-options button{
  display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:7px 9px;
  color:#9fb2b5;background:transparent;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:700
}
.map-base-options button:hover{color:#fff;background:rgba(255,255,255,.06)}
.map-base-options button.active{color:#102429;background:#e8b95e;border-color:#f3cf83;box-shadow:0 5px 14px rgba(232,185,94,.22)}
.map-base-options button i{position:relative;width:17px;height:17px;display:block}
.map-grid-icon{border:1.5px solid currentColor;border-radius:3px;background:linear-gradient(90deg,transparent 45%,currentColor 46% 54%,transparent 55%),linear-gradient(transparent 45%,currentColor 46% 54%,transparent 55%)}
.map-orbit-icon{border:1.5px solid currentColor;border-radius:50%}
.map-orbit-icon::after{content:"";position:absolute;inset:4px;border-radius:50%;background:currentColor}
.map-traffic-toggle{
  display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:9px;width:100%;margin-top:8px;padding:10px;
  color:#afc1c2;text-align:left;background:rgba(255,255,255,.035);border:1px solid rgba(126,166,181,.16);border-radius:10px
}
.map-traffic-toggle>i{width:8px;height:8px;border-radius:50%;background:#60757a;box-shadow:0 0 0 4px rgba(96,117,122,.12)}
.map-traffic-toggle span{display:grid;gap:2px}.map-traffic-toggle span b{font-size:12px}.map-traffic-toggle span small{color:#789095;font-size:9px}
.map-traffic-toggle em{padding:3px 7px;color:#81969a;font-size:9px;font-style:normal;background:rgba(255,255,255,.05);border-radius:8px}
.map-traffic-toggle.active{color:#dff7e9;border-color:rgba(72,194,126,.42);background:rgba(39,145,91,.14)}
.map-traffic-toggle.active>i{background:#48c27e;box-shadow:0 0 0 4px rgba(72,194,126,.16),0 0 12px rgba(72,194,126,.45)}
.map-traffic-toggle.active em{color:#b9f1d1;background:rgba(72,194,126,.14)}
#homemap .amap-toolbar{top:204px!important;right:max(18px,env(safe-area-inset-right))!important}

/* 旧的 hero/工具栏样式保留但首页不用了 */
.hero-map,.homemap-wrap,.map-toolbar,.homemap-hint,.homemap-legend{display:none}

@media(max-width:768px){
  .home-fullscreen{height:calc(100vh - 0px)}
  .home-toolbar{top:60px;left:8px;right:8px;max-width:none}
  .hm-info{font-size:12px}
  .home-legend{bottom:8px;left:8px;right:8px;max-width:none;font-size:11px;padding:6px 10px}
  .map-layer-switcher{top:8px;right:8px;width:auto;padding:6px;border-radius:12px}
  .map-layer-switcher header{display:none}
  .map-base-options{display:flex}.map-base-options button{min-height:36px;padding:6px 10px}
  .map-traffic-toggle{display:flex;width:auto;margin-top:5px;padding:7px 9px}
  .map-traffic-toggle span small,.map-traffic-toggle em{display:none}
  #homemap .amap-toolbar{top:132px!important;right:8px!important}
}

/* === 景点详情卡片(清爽大气) === */
.gd-detail-card{background:var(--card);border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.gd-detail-body{padding:18px}
.gd-detail-body h2{font-size:24px;font-weight:800;margin-bottom:10px;letter-spacing:.5px}
.gd-detail-body .gd-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.gd-detail-body .gd-tags .tag{padding:3px 10px;border-radius:14px;font-size:12px;background:var(--card2);border:1px solid var(--line)}
.gd-detail-body .gd-tagline{margin-top:8px;font-size:14px;color:var(--t2);line-height:1.6}
.gd-detail-body .gd-addr{margin-top:8px;font-size:13px;color:var(--t3);padding:8px 12px;background:var(--card2);border-radius:8px;border-left:3px solid var(--gold)}
.gd-detail-body .gd-actions{display:flex;gap:8px;margin-top:18px}
.gd-detail-body .gd-actions .btn{flex:1}

/* === 红色历程 · 动态时间线视图 === */
.redmap-stage{position:relative;height:100vh;padding:0;overflow:hidden;background:#0a1018}
.redmap-title{position:absolute;top:14px;left:14px;z-index:10;background:rgba(15,17,23,.85);backdrop-filter:blur(12px);padding:12px 16px;border-radius:12px;border:1px solid var(--line);max-width:calc(100% - 28px)}
.redmap-title h1{font-size:18px;font-weight:800;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:4px}
.redmap-title p{font-size:12px;color:var(--t2);line-height:1.5}
.redmap-canvas{position:absolute;inset:0}
.redmap-timeline{position:absolute;bottom:80px;left:14px;right:14px;height:60px;display:flex;align-items:flex-start;justify-content:space-between;padding:0 14px;z-index:10;background:linear-gradient(transparent,rgba(15,17,23,.95) 50%);padding-top:8px}
.tl-track{position:absolute;top:14px;left:30px;right:30px;height:2px;background:var(--line);z-index:0}
.tl-dot{position:relative;cursor:pointer;flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;z-index:1;transition:transform .2s}
.tl-dot:hover{transform:translateY(-2px)}
.tl-dot-circle{width:24px;height:24px;border-radius:50%;background:#5a6478;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.5);transition:.3s var(--ease)}
.tl-dot.passed .tl-dot-circle{background:#d94343}
.tl-dot.current .tl-dot-circle{background:#f0c876;color:#1a1a1a;transform:scale(1.4);box-shadow:0 0 0 4px rgba(240,200,118,.3),0 4px 12px rgba(240,200,118,.5)}
.tl-dot-label{font-size:10px;color:var(--t3);margin-top:4px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}
.tl-dot.current .tl-dot-label{color:var(--gold);font-weight:700}

.redmap-info-card{position:absolute;top:14px;right:14px;width:min(380px,calc(100% - 28px));max-height:calc(100% - 160px);overflow-y:auto;background:rgba(15,17,23,.94);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:14px;padding:18px 20px;z-index:10;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.rm-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.rm-card-era{display:inline-block;background:var(--grad-red);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:13px;font-weight:700}
.rm-card-close{font-size:24px;color:var(--t3);cursor:pointer;line-height:1}
.rm-card-title{font-size:22px;font-weight:800;margin:6px 0 4px;color:var(--gold)}
.rm-card-place{font-size:13px;color:var(--t3);margin-bottom:14px;padding:6px 10px;background:var(--card2);border-radius:6px;border-left:3px solid var(--red)}
.rm-section{margin-top:14px}
.rm-section-h{font-size:12px;font-weight:700;color:var(--red);margin-bottom:6px;letter-spacing:.5px}
.rm-section-b{font-size:14px;line-height:1.75;color:var(--t)}
.rm-section-meaning{background:rgba(240,200,118,.08);padding:12px;border-radius:8px;border:1px solid rgba(240,200,118,.2)}
.rm-section-meaning .rm-section-h{color:var(--gold)}
.rm-must{margin-top:14px;padding:10px 12px;background:rgba(217,67,67,.1);border-radius:8px;font-size:13px;color:var(--t);border-left:3px solid var(--red)}
.rm-card-actions{margin-top:16px;display:flex;gap:8px}
.rm-card-actions .btn{flex:1}

.redmap-controls{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:rgba(15,17,23,.92);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:30px;padding:8px 14px;z-index:11;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.redmap-controls .btn{padding:8px 14px}

@media(max-width:768px){
  .redmap-stage{height:100vh;display:flex;flex-direction:column}
  .redmap-title{position:relative;top:auto;left:auto;max-width:none;margin:8px;border-radius:10px;padding:10px 12px}
  .redmap-title h1{font-size:15px}
  .redmap-title p{font-size:11px}
  #redmap{position:relative;inset:auto;flex:1;min-height:300px}
  .redmap-info-card{position:relative;top:auto;right:auto;left:auto;width:auto;max-height:45vh;margin:0;flex-shrink:0;border-radius:14px 14px 0 0}
  .redmap-timeline{display:none}
  .redmap-controls{bottom:8px;padding:6px 10px;font-size:11px}
  .redmap-controls .btn{padding:6px 10px;font-size:12px}
}

/* === 景点考点整理面板(右侧滑出) === */
.sd-card{background:var(--card);border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.sd-hero{height:200px;background-size:cover;background-position:center;border-radius:14px 14px 0 0;position:relative;transition:opacity .3s}
.sd-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(15,17,23,.6));border-radius:14px 14px 0 0}
.sd-hero-fallback{display:grid;place-items:center}
.sd-hero-fallback:empty::before{content:"暂无实景图";display:grid;place-items:center;width:132px;height:132px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:rgba(255,255,255,.78);font-size:13px;letter-spacing:.12em;background:rgba(8,18,25,.3)}
.sd-body{padding:18px 20px}
.sd-title{font-size:24px;font-weight:800;margin-bottom:10px;letter-spacing:.5px}
.sd-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.sd-tags .tag{padding:3px 10px;border-radius:14px;font-size:12px;background:var(--card2);border:1px solid var(--line)}
.sd-tagline{margin-top:6px;font-size:14px;color:var(--t2);font-style:italic;line-height:1.6}
.sd-addr{margin-top:10px;font-size:13px;color:var(--t3);padding:8px 12px;background:var(--card2);border-radius:8px;border-left:3px solid var(--gold);line-height:1.5}
.sd-section{margin-top:18px;padding-top:18px;border-top:1px dashed var(--line)}
.sd-section:first-child{border-top:none;padding-top:0;margin-top:0}
.sd-section-h{font-size:13px;font-weight:700;color:var(--jade);margin-bottom:10px;letter-spacing:.5px;display:flex;align-items:center;gap:6px}
.sd-overview{font-size:14px;line-height:1.8;color:var(--t)}
.sd-ptags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.sd-ptags .tag{padding:2px 8px;border-radius:10px;font-size:11px;background:var(--card2);color:var(--t2)}
.sd-must-section{background:rgba(240,200,118,.06);margin-left:-10px;margin-right:-10px;padding:14px 20px;border-radius:10px;border:1px solid rgba(240,200,118,.2);border-top:none}
.sd-must-h{color:var(--gold)}
.sd-must{font-size:14px;line-height:1.8;color:var(--t);font-weight:500}
.sd-guide-meta{font-size:12px;color:var(--t3);margin-bottom:8px}
.sd-guide-body{font-size:14px;line-height:1.85;color:var(--t);max-height:280px;overflow-y:auto;padding:12px;background:var(--card2);border-radius:8px;border-left:3px solid var(--jade)}
.sd-guide-body .seg{padding:6px 0;cursor:pointer;border-radius:4px;transition:background .2s}
.sd-guide-body .seg:hover{background:rgba(78,201,168,.1)}
.sd-quiz-list{display:flex;flex-direction:column;gap:10px}
.sd-quiz-item{background:var(--card2);padding:12px 14px;border-radius:8px;cursor:pointer;border:1px solid var(--line);transition:.2s}
.sd-quiz-item:hover{border-color:var(--jade);transform:translateX(2px)}
.sd-quiz-q{font-size:14px;font-weight:600;color:var(--t);margin-bottom:6px;line-height:1.5}
.sd-quiz-a{font-size:12px;color:var(--jade);margin-bottom:4px}
.sd-quiz-exp{font-size:12px;color:var(--t3);line-height:1.5}
.sd-empty{padding:24px;text-align:center;color:var(--t3);background:var(--card2);border-radius:10px;margin-top:14px}
.sd-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.sd-actions .btn{flex:1;min-width:120px}

/* === 侧栏模式: 左列表 + 右地图 === */
.split-stage{display:grid;grid-template-columns:minmax(380px,40%) 1fr;height:100vh;gap:0;overflow:hidden}
.split-list{background:var(--bg2);padding:18px 20px;overflow-y:auto;border-right:1px solid var(--line);height:100vh}
.split-map{background:#0a1018;position:relative;height:100vh}
.split-map #homemap{background:#0a1018}
@media(max-width:900px){
  .split-stage{grid-template-columns:1fr;grid-template-rows:50vh 50vh}
  .split-list,.split-map{height:50vh}
}

/* === 脉络视图主题筛选(浮动左侧) === */
.theme-filter{position:absolute;top:80px;left:14px;z-index:10;background:rgba(15,17,23,.92);backdrop-filter:blur(14px);padding:12px;border-radius:12px;border:1px solid var(--line);box-shadow:0 4px 18px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:6px;width:120px}
.tf-h{font-size:11px;color:var(--t3);margin-bottom:4px;font-weight:700;letter-spacing:.5px}
.tf-btn{padding:6px 10px;border-radius:6px;background:var(--card);color:var(--t2);font-size:13px;text-align:left;border-left:3px solid var(--c,#5a6478);transition:.2s var(--ease);cursor:pointer;font-weight:500}
.tf-btn:hover{color:var(--t);background:var(--card2)}
.tf-btn.on{color:#fff;background:var(--c,#5a6478);font-weight:700}
@media(max-width:768px){
  .theme-filter{display:none}  /* 移动端隐藏,用图例代替 */
}

/* === split 列表内元素适配窄宽度 === */
.split-list .view-head{margin-bottom:14px}
.split-list .view-head h1{font-size:20px}
.split-list .view-head p{font-size:12px}
.split-list .pillrow{gap:5px;margin-bottom:12px}
.split-list .pill{padding:5px 10px;font-size:12px}
.split-list .quiz-q{font-size:15px;margin-bottom:10px}
.split-list .opt{padding:10px 12px;font-size:13px;margin-bottom:7px}
.split-list .opt .k{flex-shrink:0;width:22px;height:22px;font-size:11px}
.split-list .card{padding:14px}
.split-list .btn{padding:9px 14px;font-size:13px}
.split-list .big-num{font-size:32px}

/* === 地图加载动画 === */
.map-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a1018;z-index:5;color:var(--t2)}
.ml-spin{width:48px;height:48px;border:3px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:14px}
.ml-text{font-size:14px;color:var(--t3);letter-spacing:.5px}
@keyframes spin{to{transform:rotate(360deg)}}

/* === split 模式下考点卡片紧凑化 === */
.split-list .card{padding:10px 12px;margin-bottom:8px}
.split-list .card-h{gap:8px}
.split-list .card-ic{width:32px;height:32px;font-size:18px}
.split-list .card-t{font-size:14px;font-weight:600}
.split-list .card-d{font-size:12px;color:var(--t3);margin-top:6px;line-height:1.5}
.split-list .tag{font-size:10px;padding:1px 6px}

/* === 兵棋推演专用样式 === */
.war-info-card{position:absolute;top:14px;right:14px;width:min(380px,calc(100% - 28px));max-height:calc(100% - 160px);overflow-y:auto;background:rgba(15,17,23,.94);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:14px;padding:18px 20px;z-index:10;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.wc-era{display:inline-block;background:var(--grad-red);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:13px;font-weight:700;margin-bottom:6px}
.wc-title{font-size:22px;font-weight:800;color:var(--gold);margin-bottom:10px}
.wc-desc{font-size:14px;line-height:1.75;color:var(--t);padding:10px 12px;background:var(--card2);border-radius:8px;border-left:3px solid var(--red)}
.wc-events-h{font-size:12px;color:var(--red);font-weight:700;margin:14px 0 8px;letter-spacing:.5px}
.wc-event{background:var(--card2);padding:10px 12px;border-radius:8px;margin-bottom:8px;border-left:3px solid var(--gold);transition:background .3s}
.wc-event-era{font-size:11px;color:var(--gold);font-weight:700;margin-bottom:2px}
.wc-event-name{font-size:14px;font-weight:700;color:var(--t);margin-bottom:4px}
.wc-event-desc{font-size:12px;color:var(--t2);line-height:1.5}

.war-timeline{position:absolute;bottom:80px;left:14px;right:14px;height:60px;display:flex;align-items:flex-start;justify-content:space-between;padding:0 30px;z-index:10;background:linear-gradient(transparent,rgba(15,17,23,.95) 60%);padding-top:8px}
.wt-track{position:absolute;top:14px;left:60px;right:60px;height:2px;background:var(--line);z-index:0}
.wt-dot{position:relative;cursor:pointer;flex:1;display:flex;flex-direction:column;align-items:center;z-index:1;transition:transform .2s}
.wt-dot:hover{transform:translateY(-2px)}
.wt-dot-circle{width:24px;height:24px;border-radius:50%;background:#5a6478;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.5);transition:.3s var(--ease)}
.wt-dot.passed .wt-dot-circle{background:#d94343}
.wt-dot.current .wt-dot-circle{background:#f0c876;color:#1a1a1a;transform:scale(1.4);box-shadow:0 0 0 4px rgba(240,200,118,.3),0 4px 12px rgba(240,200,118,.5)}
.wt-dot-label{font-size:10px;color:var(--t3);margin-top:4px}
.wt-dot.current .wt-dot-label{color:var(--gold);font-weight:700}

.war-controls{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:rgba(15,17,23,.92);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:30px;padding:8px 14px;z-index:11;box-shadow:0 4px 20px rgba(0,0,0,.4)}

.war-legend{position:absolute;top:90px;left:14px;background:rgba(15,17,23,.85);backdrop-filter:blur(12px);padding:8px 12px;border-radius:10px;border:1px solid var(--line);z-index:10;font-size:11px;color:var(--t2);display:flex;flex-direction:column;gap:5px}
.war-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}

@media(max-width:768px){
  .redmap-stage{height:100vh;display:flex;flex-direction:column}
  .redmap-title{position:relative;top:auto;left:auto;max-width:none;margin:8px;padding:10px 12px}
  .redmap-title h1{font-size:15px}
  .redmap-title p{font-size:11px}
  #redmap{position:relative;inset:auto;flex:1;min-height:300px}
  .war-info-card{position:relative;top:auto;right:auto;left:auto;width:auto;max-height:40vh;margin:0;flex-shrink:0;border-radius:14px 14px 0 0}
  .war-timeline{display:none}
  .war-legend{display:none}
  .war-controls{bottom:8px;font-size:11px;padding:6px 10px}
}

/* === 党史动漫推演专用 === */
.show-narration{position:absolute;bottom:80px;left:14px;right:14px;z-index:10;background:rgba(15,17,23,.94);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:14px;padding:16px 20px;box-shadow:0 -4px 24px rgba(0,0,0,.5);max-width:680px;margin:0 auto}
.sn-era{display:inline-block;background:var(--grad-red);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:13px;font-weight:700;margin-bottom:4px}
.sn-title{font-size:20px;font-weight:800;color:var(--gold);margin-bottom:8px}
.sn-text{font-size:14px;line-height:1.8;color:var(--t);min-height:60px}
.sn-controls{display:flex;align-items:center;gap:8px;margin-top:12px;justify-content:center}
.sn-counter{font-size:12px;color:var(--t3);min-width:80px;text-align:center}
.show-play-bar{position:absolute;bottom:14px;left:14px;right:14px;z-index:11;display:flex;align-items:center;gap:10px;justify-content:center}
.show-progress{flex:1;max-width:400px;height:4px;background:var(--card2);border-radius:2px;overflow:hidden}
.show-progress-bar{height:100%;background:var(--grad-gold);border-radius:2px;transition:width .5s var(--ease);width:0}

@media(max-width:768px){
  .redmap-stage{height:100vh;display:flex;flex-direction:column}
  .redmap-title{position:relative;top:auto;left:auto;margin:8px;padding:10px 12px}
  .redmap-title h1{font-size:15px}
  #redmap{position:relative;inset:auto;flex:1;min-height:280px}
  .show-narration{position:relative;bottom:auto;left:auto;right:auto;max-width:none;margin:0;border-radius:14px 14px 0 0;max-height:45vh;overflow-y:auto}
  .show-play-bar{position:relative;bottom:auto;left:auto;right:auto;padding:8px}
}

/* === 首次访问欢迎弹窗 === */
.welcome-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.welcome-card{background:var(--bg2);border:1px solid var(--line);border-radius:24px;padding:36px;max-width:520px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:welcomeIn .5s var(--ease-b)}
@keyframes welcomeIn{from{opacity:0;transform:scale(.9) translateY(20px)}}
.wc-icon{font-size:56px;text-align:center;margin-bottom:14px}
.welcome-card h1{font-size:28px;font-weight:800;text-align:center;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:6px}
.wc-sub{text-align:center;color:var(--t2);font-size:14px;margin-bottom:24px}
.wc-features{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.wc-feat{display:flex;gap:14px;align-items:flex-start;padding:14px;background:var(--card);border-radius:12px;border:1px solid var(--line)}
.wc-feat-ic{font-size:32px;flex-shrink:0}
.wc-feat b{font-size:15px;color:var(--t)}
.wc-feat-desc{font-size:12px;color:var(--t3);line-height:1.5}
.wc-start{width:100%;padding:14px;font-size:16px;font-weight:700;border-radius:12px;margin-bottom:14px}
.wc-tip{font-size:12px;color:var(--t3);text-align:center;line-height:1.6;padding:10px;background:var(--card);border-radius:8px}

/* === 红色历程:开始观看按钮 === */
.show-start-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:20;cursor:pointer;text-align:center;background:rgba(15,17,23,.94);backdrop-filter:blur(20px);border:2px solid var(--gold);border-radius:20px;padding:32px 48px;box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 8px rgba(240,200,118,.1);transition:.3s var(--ease-b);animation:pulseGlow 2.5s ease-in-out infinite}
@keyframes pulseGlow{0%,100%{box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 8px rgba(240,200,118,.1)}50%{box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 16px rgba(240,200,118,.18)}}
.show-start-btn:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#fff}
.ssb-icon{font-size:56px;color:var(--gold);margin-bottom:10px;text-shadow:0 4px 16px rgba(240,200,118,.5)}
.ssb-text{font-size:22px;font-weight:800;color:var(--gold);margin-bottom:8px}
.ssb-sub{font-size:13px;color:var(--t2);line-height:1.5}

/* === split 视图的操作提示 === */
.split-tip{background:linear-gradient(135deg,rgba(240,200,118,.12),rgba(78,201,168,.08));border:1px solid rgba(240,200,118,.25);border-radius:10px;padding:10px 14px;font-size:12px;color:var(--t2);line-height:1.6;margin-bottom:14px}
.split-tip b{color:var(--gold)}

/* === 全国图例(右下角固定浮窗) === */
.china-legend{position:fixed;right:20px;bottom:80px;z-index:50;background:rgba(15,17,23,.94);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:12px;color:var(--t2);box-shadow:0 4px 18px rgba(0,0,0,.4);max-width:220px}
.cl-title{font-size:13px;font-weight:700;color:var(--gold);margin-bottom:8px}
.cl-item{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cl-line{display:inline-block;width:24px;height:3px;flex-shrink:0}
.cl-dot{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid #fff}
.cl-area{display:inline-block;width:14px;height:12px;border-radius:2px;flex-shrink:0}
.cl-hint{margin-top:8px;padding:6px 8px;background:var(--card2);border-radius:6px;font-size:11px;color:var(--t3);text-align:center}
.china-legend .spot-dot{width:7px;height:7px;background:#75b8ff;border-color:rgba(255,255,255,.8);box-shadow:0 0 0 2px rgba(61,146,255,.18)}
.geo-spot-dot{display:block;width:9px;height:9px;border:1px solid rgba(255,255,255,.88);border-radius:50%;background:var(--spot-color);box-shadow:0 1px 4px rgba(0,0,0,.8),0 0 0 3px color-mix(in srgb,var(--spot-color) 24%,transparent);cursor:pointer;transition:scale .16s}
.geo-spot-dot:hover{scale:1.7;z-index:2}
.geo-spot-pin{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:2px 5px;border:2px solid var(--spot-ring);border-radius:14px;background:var(--spot-color);box-shadow:0 2px 7px rgba(0,0,0,.58);cursor:pointer;white-space:nowrap}
.geo-spot-pin:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--spot-color)}
.geo-spot-pin i{font-size:14px;font-style:normal;line-height:1}.geo-spot-pin b{margin:0 4px;color:#fff;font-size:11px;line-height:1;font-weight:700}
.geo-spot-pin.with-name{padding-right:7px}
.geo-spot-pin.is-completed{box-shadow:0 0 0 2px rgba(93,222,155,.34),0 3px 10px rgba(0,0,0,.62)}
.geo-spot-check,.geo-spot-review{position:absolute;right:-7px;top:-8px;display:grid;place-items:center;width:17px;height:17px;border:2px solid #fff;border-radius:50%;color:#fff;background:#22a969;font:900 10px/1 sans-serif;font-style:normal;box-shadow:0 2px 5px rgba(0,0,0,.45)}
.geo-spot-review{color:#152833;background:#f0c876;font-size:8px}
.geo-spot-dot.is-completed{width:13px;height:13px;background:#22a969;border-color:#d9ffeb}
.geo-spot-dot.is-completed i{display:grid;place-items:center;color:#fff;font:900 8px/1 sans-serif;font-style:normal}
.geo-spot-dot.is-reviewing{box-shadow:0 0 0 3px rgba(240,200,118,.45)}
.spot-progress-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px;padding:10px 12px;border:1px solid rgba(116,215,240,.25);background:rgba(23,60,85,.12);color:var(--t2);font-size:12px}
.spot-progress-status b{color:#74d7f0}.spot-progress-status.completed{border-color:rgba(65,190,129,.35);background:rgba(65,190,129,.1)}.spot-progress-status.completed b{color:#35ad78}
.spot-progress-status.reviewing b{color:#b48635}
.spot-complete-dot,.spot-review-dot{display:grid!important;place-items:center!important;width:16px!important;height:16px!important;color:#fff;background:#22a969!important;font:900 9px/1 sans-serif}
.spot-review-dot{color:#152833!important;background:#f0c876!important}
.map-progress-toast{position:fixed;left:50%;top:78px;z-index:10000;display:grid;gap:3px;min-width:280px;padding:13px 18px;border:1px solid rgba(120,201,232,.7);background:rgba(15,36,47,.96);color:#dff8ff;box-shadow:0 12px 36px rgba(0,0,0,.35);transform:translate(-50%,-16px);opacity:0;pointer-events:none;transition:.22s ease}
.map-progress-toast.show{transform:translate(-50%,0);opacity:1}.map-progress-toast b{font-size:14px}.map-progress-toast span{color:#a9cbd5;font-size:12px}
.spot-profile{border-color:rgba(69,199,190,.28);background:linear-gradient(145deg,rgba(34,118,116,.12),rgba(12,23,30,.28))}
.spot-profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:13px;border-bottom:1px solid rgba(112,190,184,.16)}
.spot-profile-head span{display:block;color:#62c9c0;font-size:9px;letter-spacing:.16em}.spot-profile-head h3{margin:5px 0 0;color:var(--t);font-size:17px}
.spot-profile-head strong{color:#e9c268;font-size:30px;line-height:1;text-align:right}.spot-profile-head strong small{display:block;margin-top:5px;color:var(--t3);font-size:9px;font-weight:500}
.spot-profile-summary{padding:11px 0;color:var(--t2);font-size:11px}
.spot-profile-groups{display:grid;gap:9px}.spot-profile-groups article{padding:11px 12px;border:1px solid rgba(104,153,164,.16);border-radius:9px;background:rgba(255,255,255,.025)}
.spot-profile-groups header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.spot-profile-groups header span{padding:2px 6px;border-radius:5px;background:rgba(87,194,183,.12);color:#70cfc5;font-size:9px}.spot-profile-groups header b{overflow:hidden;color:var(--t);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.spot-profile-groups header em{color:#e7be63;font-size:9px;font-style:normal}
.spot-profile-groups ul{margin:9px 0 0;padding-left:17px;color:var(--t2);font-size:11px;line-height:1.7}.spot-profile-groups li+li{margin-top:4px}
.spot-profile-empty p{color:var(--t2);font-size:12px;line-height:1.7}
.spot-modal-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:clamp(14px,3vw,36px);background:rgba(7,12,20,.78);backdrop-filter:blur(10px);animation:spotFade .18s ease-out}
.spot-modal{position:relative;width:min(920px,100%);max-height:min(86vh,820px);overflow:hidden;border:1px solid rgba(160,184,220,.28);border-radius:22px;background:#111a27;color:#eef4ff;box-shadow:0 28px 90px rgba(0,0,0,.65);animation:spotRise .24s cubic-bezier(.22,1,.36,1)}
.spot-modal-close{position:absolute;z-index:4;top:14px;right:14px;width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(10,16,25,.78);color:#fff;font-size:24px;line-height:1}
.spot-modal-close:hover{background:#9e3d2f}
.spot-modal-scroll{max-height:min(86vh,820px);overflow:auto}
.spot-modal .sd-card{display:grid;grid-template-columns:minmax(270px,38%) 1fr;min-height:520px}
.spot-modal .sd-hero{position:sticky;top:0;align-self:start;height:min(86vh,820px);min-height:520px;background-position:center;background-size:cover;overflow:hidden}
.spot-modal .sd-hero>img{position:absolute;inset:0;width:100%;height:100%!important;display:block;object-fit:cover}
.spot-modal .sd-hero.hero-is-portrait>img,.spot-modal .sd-hero.hero-is-ultrawide>img{object-fit:contain}
.sd-hero.hero-is-generated>img{object-fit:contain!important;background:#e7e0d2}
.spot-modal .sd-hero.hero-is-portrait,.spot-modal .sd-hero.hero-is-ultrawide{background:linear-gradient(145deg,#0b171e,#20323a)!important}
.spot-modal .sd-hero-fallback{display:grid;place-items:center}
.sd-hero-nav{position:absolute;z-index:3;left:12px;right:12px;bottom:42px;display:flex;gap:6px;overflow-x:auto;padding:4px;scrollbar-width:none}
.sd-hero-nav::-webkit-scrollbar{display:none}.sd-hero-nav button{display:flex;align-items:center;gap:6px;min-width:max-content;padding:6px 9px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(5,15,24,.68);color:#d9e9f3;font-size:10px;backdrop-filter:blur(8px)}
.sd-hero-nav button.on{border-color:#e7c56e;background:rgba(33,39,36,.9);color:#ffe4a0}.sd-hero-nav span{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.14)}.sd-hero-nav em{font-style:normal}
.sd-gallery button{display:grid;gap:5px;padding:0;border:0;background:transparent;color:var(--t2);font-size:10px;text-align:left}.sd-gallery button img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.sd-gallery button span{padding:0 2px}
.spot-modal .sd-body{padding:38px 38px 30px;min-width:0}
.spot-modal .sd-title{padding-right:36px;font:700 clamp(25px,3vw,34px) "Songti SC","STSong",serif}
.spot-modal .sd-section{padding:18px 0;border-top:1px solid rgba(255,255,255,.1)}
.spot-modal .sd-overview{white-space:pre-line;line-height:1.8;color:#cbd6e4}
.spot-modal .sd-quiz-item{cursor:default}
.spot-modal .sd-quiz-item .sd-quiz-exp{display:none}
.spot-modal .sd-actions{position:sticky;bottom:0;display:flex;gap:10px;flex-wrap:wrap;padding:16px 0 0;background:linear-gradient(transparent,#111a27 18%)}
.spot-practice-cta{background:#e0b766!important;color:#15202d!important;font-weight:800}
.exam-map-poster-deck{display:grid;gap:16px;min-width:0;padding:22px;color:#eef4ff;background:#0e1722}.exam-map-poster-deck>header span{color:#68c8d2;font-size:10px;letter-spacing:.14em}.exam-map-poster-deck>header h2{margin:7px 0 4px;font-size:25px}.exam-map-poster-deck>header p,.exam-map-poster-deck>footer{margin:0;color:#9db1c5;font-size:12px}.exam-map-poster-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 1px 12px}.exam-map-poster-card{flex:0 0 min(760px,88vw);margin:0;scroll-snap-align:start;border:1px solid rgba(130,181,203,.24);border-radius:14px;overflow:hidden;background:#09111a}.exam-map-poster-card.is-portrait{flex-basis:min(520px,82vw)}.exam-map-poster-card img{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;background:#071018}.exam-map-poster-card figcaption{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;color:#bdd0dc;font-size:11px}.exam-map-poster-card figcaption b{color:#e4c472}.exam-map-poster-card.poster-image-missing{min-height:260px}.exam-map-poster-card.poster-image-missing:before{content:"考点图加载失败，不使用无关图片兜底";display:grid;place-items:center;min-height:220px;color:#d38c7d}.exam-map-poster-deck>footer{display:flex;justify-content:space-between;gap:18px}.exam-map-poster-deck>footer b{color:#e4c472}
@keyframes spotFade{from{opacity:0}}@keyframes spotRise{from{opacity:0;transform:translateY(18px) scale(.985)}}
@media(max-width:720px){.spot-modal-backdrop{padding:0}.spot-modal{width:100%;height:100%;max-height:none;border:0;border-radius:0}.spot-modal-scroll{max-height:100vh}.spot-modal .sd-card{display:block}.spot-modal .sd-hero{position:relative;height:230px;min-height:0}.spot-modal .sd-body{padding:24px 18px 30px}.spot-modal .sd-actions{padding-bottom:max(8px,env(safe-area-inset-bottom))}.exam-map-poster-deck{padding:18px 14px}.exam-map-poster-card{flex-basis:94vw}.exam-map-poster-card.is-portrait{flex-basis:82vw}.exam-map-poster-deck>footer{display:grid}.sd-hero-nav{bottom:34px}}
@media(max-width:768px){.china-legend{display:none}}

/* === 章节化认知系统 & 认知小游戏 样式 === */
.cv-container { max-width: 1200px; margin: 0 auto; padding: 24px 20px; }
.cv-header { margin-bottom: 28px; text-align: center; }
.cv-header h1 { font-size: 28px; font-weight: 800; background: var(--grad-gold); -webkit-background-clip: text; background-clip: text; color: transparent; margin-bottom: 8px; }
.cv-header p { font-size: 14px; color: var(--t2); }

.cv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 20px; }
.cv-chapter-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 22px; cursor: pointer; transition: all .3s var(--ease-b); position: relative; overflow: hidden; }
.cv-chapter-card:hover { transform: translateY(-4px); border-color: var(--gold); box-shadow: 0 12px 32px rgba(240,200,118,.15); }
.cv-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.cv-chapter-icon { font-size: 36px; }
.cv-badge { font-size: 11px; background: rgba(240,200,118,.15); color: var(--gold); border: 1px solid rgba(240,200,118,.3); padding: 4px 10px; border-radius: 20px; font-weight: 600; }
.cv-chapter-title { font-size: 18px; font-weight: 700; color: var(--t); margin-bottom: 6px; }
.cv-chapter-sub { font-size: 13px; color: var(--t3); margin-bottom: 16px; line-height: 1.5; }
.cv-card-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 18px; }
.cv-tag { font-size: 11px; background: var(--card2); color: var(--t2); padding: 3px 8px; border-radius: 6px; border: 1px solid var(--line); }
.cv-start-btn { width: 100%; padding: 10px; background: linear-gradient(135deg, rgba(240,200,118,.2), rgba(78,201,168,.15)); border: 1px solid var(--gold); border-radius: 10px; color: var(--gold); font-size: 13px; font-weight: 700; cursor: pointer; transition: all .2s; }
.cv-chapter-card:hover .cv-start-btn { background: var(--gold); color: #000; }

/* === Modal 弹窗样式 === */
.cv-modal-overlay { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,.8); backdrop-filter: blur(12px); display: none; justify-content: center; align-items: center; padding: 20px; }
.cv-modal-box { background: var(--bg); border: 1px solid var(--line); border-radius: 20px; width: 100%; max-width: 900px; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 24px 64px rgba(0,0,0,.8); }
.cv-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--card); }
.cv-m-title { font-size: 18px; font-weight: 700; color: var(--gold); }
.cv-modal-close { background: none; border: none; font-size: 20px; color: var(--t3); cursor: pointer; }
.cv-modal-close:hover { color: #ff5252; }

.cv-tabs { display: flex; background: var(--card2); border-bottom: 1px solid var(--line); padding: 0 16px; overflow-x: auto; }
.cv-tab { padding: 14px 20px; background: none; border: none; border-bottom: 3px solid transparent; color: var(--t3); font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: all .2s; }
.cv-tab.active { color: var(--gold); border-bottom-color: var(--gold); }

.cv-modal-body { padding: 24px; overflow-y: auto; flex: 1; }
.cv-strategy-card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 24px; }
.cv-strategy-card h3 { font-size: 18px; font-weight: 700; color: var(--gold); margin-bottom: 16px; }
.cv-strategy-list { list-style: none; padding: 0; margin-bottom: 24px; }
.cv-strategy-list li { display: flex; gap: 12px; margin-bottom: 12px; font-size: 14px; color: var(--t2); line-height: 1.6; background: var(--bg); padding: 12px 14px; border-radius: 8px; border: 1px solid var(--line); }
.cv-list-ic { font-size: 16px; flex-shrink: 0; }
.cv-strategy-action { text-align: right; }

.cv-card-slider { display: flex; flex-direction: column; align-items: center; }
.cv-visual-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; width: 100%; max-width: 680px; box-shadow: 0 12px 32px rgba(0,0,0,.4); }
.cv-card-img-wrap { position: relative; height: 260px; overflow: hidden; }
.cv-card-img { width: 100%; height: 100%; object-fit: cover; }
.cv-card-img-tag { position: absolute; bottom: 12px; left: 12px; background: rgba(0,0,0,.7); backdrop-filter: blur(8px); color: #fff; padding: 4px 12px; border-radius: 6px; font-size: 12px; font-weight: 600; border: 1px solid rgba(255,255,255,.2); }
.cv-card-content { padding: 20px; }
.cv-card-content h3 { font-size: 20px; font-weight: 700; color: var(--t); margin-bottom: 10px; }
.cv-card-desc { font-size: 14px; color: var(--t2); line-height: 1.7; margin-bottom: 16px; }
.cv-card-highlights { font-size: 13px; color: var(--t3); margin-bottom: 16px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cv-hl-pill { background: rgba(240,200,118,.15); color: var(--gold); border: 1px solid rgba(240,200,118,.3); padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; }
.cv-card-actions { text-align: right; }

.cv-slider-controls { display: flex; align-items: center; gap: 16px; margin-top: 18px; font-size: 14px; color: var(--t3); }

.cv-anim-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 24px; text-align: center; }
.cv-anim-card h3 { font-size: 20px; font-weight: 700; color: var(--gold); margin-bottom: 6px; }
.cv-anim-sub { font-size: 13px; color: var(--t3); margin-bottom: 20px; }
.cv-anim-visual-stage { background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: 40px 20px; margin-bottom: 20px; }
.cv-anim-icon-large { font-size: 48px; margin-bottom: 12px; }
.cv-anim-text-large { font-size: 18px; font-weight: 700; color: var(--t); }
.cv-anim-modes { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-bottom: 16px; }
.cv-mode-btn { padding: 8px 16px; background: var(--card2); border: 1px solid var(--line); color: var(--t2); border-radius: 8px; cursor: pointer; font-size: 13px; transition: all .2s; }
.cv-mode-btn.active { background: var(--gold); color: #000; font-weight: 700; border-color: var(--gold); }
.cv-anim-desc-box { background: rgba(78,201,168,.1); border: 1px solid rgba(78,201,168,.3); padding: 12px 16px; border-radius: 8px; font-size: 13px; color: #4ec9a8; text-align: left; line-height: 1.6; }

/* === 认知小游戏样式 === */
.cg-game-box { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 20px; }
.cg-game-header { text-align: center; margin-bottom: 20px; }
.cg-game-title { font-size: 18px; font-weight: 700; color: var(--gold); margin-bottom: 4px; }
.cg-game-sub { font-size: 13px; color: var(--t3); margin-bottom: 10px; }
.cg-score-badge { display: inline-block; background: rgba(240,200,118,.15); color: var(--gold); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700; border: 1px solid rgba(240,200,118,.3); }

.cg-match-container { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.cg-col-title { font-size: 12px; font-weight: 700; color: var(--t3); margin-bottom: 10px; }
.cg-card { background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 12px; margin-bottom: 10px; cursor: pointer; transition: all .2s; display: flex; align-items: center; gap: 10px; }
.cg-card:hover { border-color: var(--gold); }
.cg-card.selected { border-color: var(--gold); background: rgba(240,200,118,.15); box-shadow: 0 0 12px rgba(240,200,118,.3); }
.cg-card.matched { border-color: #4ec9a8; background: rgba(78,201,168,.15); opacity: .7; cursor: default; }
.cg-card-icon { font-size: 18px; }
.cg-card-text { font-size: 13px; color: var(--t2); font-weight: 600; }
.cg-matched-slot { font-size: 11px; color: var(--t3); margin-top: 4px; }

.cg-puzzle-card { text-align: center; }
.cg-puzzle-text { font-size: 16px; font-weight: 700; color: var(--t); margin-bottom: 20px; line-height: 1.6; }
.cg-options-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.cg-opt-btn { padding: 14px; background: var(--bg); border: 1px solid var(--line); color: var(--t2); border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all .2s; }
.cg-opt-btn:hover { border-color: var(--gold); color: var(--gold); }
.cg-opt-btn.correct { background: rgba(78,201,168,.2); border-color: #4ec9a8; color: #4ec9a8; }
.cg-opt-btn.wrong { background: rgba(255,82,82,.2); border-color: #ff5252; color: #ff5252; }

.cg-feedback-msg { font-size: 13px; color: var(--t3); text-align: center; margin-top: 12px; padding: 8px; background: var(--bg); border-radius: 6px; }

.cg-victory-box { text-align: center; padding: 40px 20px; }
.cg-victory-icon { font-size: 64px; margin-bottom: 16px; }
.cg-victory-box h2 { font-size: 24px; font-weight: 800; color: var(--gold); margin-bottom: 8px; }
.cg-victory-box p { font-size: 14px; color: var(--t2); margin-bottom: 24px; line-height: 1.6; }

/* === 高端 PPT 演示讲义样式 (Keynote Slide Presentation Deck) === */
.ppt-container { max-width: 1240px; margin: 0 auto; padding: 24px 20px; }
.ppt-header { margin-bottom: 24px; display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.ppt-title-group h1 { font-size: 26px; font-weight: 800; background: var(--grad-gold); -webkit-background-clip: text; background-clip: text; color: transparent; margin-bottom: 6px; }
.ppt-title-group p { font-size: 13px; color: var(--t3); }

.ppt-deck-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.ppt-deck-pill { padding: 8px 16px; background: var(--card2); border: 1px solid var(--line); border-radius: 20px; color: var(--t2); font-size: 13px; font-weight: 600; cursor: pointer; transition: all .25s var(--ease-b); }
.ppt-deck-pill:hover { border-color: var(--gold); color: var(--gold); }
.ppt-deck-pill.active { background: var(--gold); color: #000; font-weight: 700; border-color: var(--gold); box-shadow: 0 4px 16px rgba(240,200,118,.3); }

.ppt-slide-card { background: rgba(15,17,23,.95); backdrop-filter: blur(20px); border: 1px solid rgba(240,200,118,.3); border-radius: 24px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.05); display: flex; flex-direction: column; min-height: 560px; transition: all .3s; }
.ppt-slide-topbar { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; background: rgba(255,255,255,.03); border-bottom: 1px solid var(--line); }
.ppt-cat-tag { font-size: 12px; font-weight: 700; background: rgba(240,200,118,.15); color: var(--gold); border: 1px solid rgba(240,200,118,.3); padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: .5px; }

.ppt-slide-counter { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--t3); }
.ppt-slide-counter b { color: var(--gold); font-size: 16px; }
.ppt-nav-btn { width: 32px; height: 32px; border-radius: 50%; background: var(--card2); border: 1px solid var(--line); color: var(--t2); font-size: 18px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .2s; }
.ppt-nav-btn:hover:not(:disabled) { background: var(--gold); color: #000; border-color: var(--gold); }
.ppt-nav-btn:disabled { opacity: .3; cursor: not-allowed; }

.ppt-slide-body { display: grid; grid-template-columns: 44% 56%; flex: 1; min-height: 440px; }
@media(max-width: 900px) { .ppt-slide-body { grid-template-columns: 1fr; } }

.ppt-slide-media { position: relative; overflow: hidden; background: #000; border-right: 1px solid var(--line); display: flex; align-items: center; justify-content: center; }
.ppt-slide-img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease-b); }
.ppt-slide-media:hover .ppt-slide-img { transform: scale(1.04); }
.ppt-media-overlay { position: absolute; bottom: 0; inset-x: 0; padding: 20px; background: linear-gradient(to top, rgba(0,0,0,.95), transparent); }
.ppt-media-title { font-size: 13px; font-weight: 700; color: #fff; background: rgba(0,0,0,.6); backdrop-filter: blur(8px); padding: 6px 14px; border-radius: 8px; border: 1px solid rgba(255,255,255,.2); }

.ppt-slide-content { padding: 28px 32px; display: flex; flex-direction: column; justify-content: center; }
.ppt-slide-title { font-size: 24px; font-weight: 800; color: #fff; margin-bottom: 6px; letter-spacing: -.3px; }
.ppt-slide-sub { font-size: 14px; color: var(--gold); margin-bottom: 20px; font-weight: 600; line-height: 1.5; }

.ppt-section { margin-bottom: 20px; }
.ppt-section-label { font-size: 12px; font-weight: 700; color: var(--t3); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 10px; }
.ppt-facts-list { list-style: none; padding: 0; margin: 0; }
.ppt-facts-list li { position: relative; padding-left: 20px; font-size: 14px; color: var(--t2); line-height: 1.7; margin-bottom: 10px; }
.ppt-facts-list li::before { content: "•"; position: absolute; left: 0; color: var(--gold); font-size: 18px; line-height: 1.4; }
.ppt-facts-list b { color: #fff; font-weight: 700; }

.ppt-mnemonic-box { background: linear-gradient(135deg, rgba(240,200,118,.15), rgba(240,200,118,.05)); border: 1px solid rgba(240,200,118,.4); border-radius: 12px; padding: 14px 18px; font-size: 14px; font-weight: 700; color: var(--gold); margin-bottom: 16px; line-height: 1.6; box-shadow: 0 4px 16px rgba(240,200,118,.08); }
.ppt-skill-box { background: rgba(78,201,168,.08); border-left: 4px solid #4ec9a8; border-radius: 0 12px 12px 0; padding: 12px 16px; font-size: 13px; color: #6ee7b7; line-height: 1.6; }

.ppt-slide-footer { display: flex; justify-content: space-between; align-items: center; padding: 14px 24px; background: rgba(0,0,0,.4); border-top: 1px solid var(--line); }
.ppt-dots { display: flex; gap: 8px; align-items: center; }
.ppt-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--t3); cursor: pointer; transition: all .2s; }
.ppt-dot:hover { background: var(--t2); }
.ppt-dot.active { width: 28px; border-radius: 6px; background: var(--gold); }
.ppt-kbd-tip { font-size: 12px; color: var(--t3); }
.ppt-kbd-tip b { color: var(--t2); background: var(--card2); border: 1px solid var(--line); padding: 1px 6px; border-radius: 4px; }

/* === 空间地图控制条与人文沉浸卡 (Spatial Map Bar & Popup Card) === */
.sm-bar-container { position: fixed; top: 16px; left: 50%; transform: translateX(-50%); z-index: 100; background: rgba(15,17,23,.92); backdrop-filter: blur(20px); border: 1px solid rgba(240,200,118,.3); border-radius: 30px; padding: 8px 20px; display: flex; align-items: center; gap: 18px; box-shadow: 0 12px 36px rgba(0,0,0,.6); flex-wrap: wrap; justify-content: center; }
.sm-group { display: flex; align-items: center; gap: 6px; }
.sm-group-label { font-size: 11px; font-weight: 700; color: var(--t3); text-transform: uppercase; white-space: nowrap; }

.sm-pill { padding: 6px 14px; background: var(--card2); border: 1px solid var(--line); border-radius: 20px; color: var(--t2); font-size: 12px; font-weight: 600; cursor: pointer; transition: all .2s; white-space: nowrap; }
.sm-pill:hover { border-color: var(--gold); color: var(--gold); }
.sm-pill.active { background: var(--gold); color: #000; font-weight: 700; border-color: var(--gold); }

.sm-pill-sm { padding: 4px 10px; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 14px; color: var(--t2); font-size: 11px; cursor: pointer; transition: all .2s; white-space: nowrap; }
.sm-pill-sm:hover { background: rgba(78,201,168,.2); color: #4ec9a8; border-color: #4ec9a8; }

.sm-pill-red { padding: 4px 12px; background: rgba(255,82,82,.15); border: 1px solid rgba(255,82,82,.4); border-radius: 14px; color: #ff5252; font-size: 11px; font-weight: 700; cursor: pointer; transition: all .2s; white-space: nowrap; }
.sm-pill-red:hover { background: #ff5252; color: #fff; }

/* 浮动空间人文沉浸卡 */
.sm-card-popup { position: fixed; right: 24px; bottom: 24px; z-index: 999; display: none; max-width: 380px; width: 100%; animation: slideInUp .3s var(--ease-b); }
@keyframes slideInUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.sm-popup-box { background: rgba(15,17,23,.95); backdrop-filter: blur(24px); border: 1px solid rgba(240,200,118,.35); border-radius: 20px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.8); position: relative; }
.sm-popup-close { position: absolute; top: 12px; right: 12px; z-index: 10; width: 28px; height: 28px; border-radius: 50%; background: rgba(0,0,0,.6); border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: 14px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.sm-popup-close:hover { background: #ff5252; }

.sm-popup-top { padding: 16px 20px 10px; }
.sm-popup-tag { font-size: 11px; font-weight: 700; color: var(--gold); background: rgba(240,200,118,.15); border: 1px solid rgba(240,200,118,.3); padding: 2px 8px; border-radius: 12px; }
.sm-popup-title { font-size: 18px; font-weight: 800; color: #fff; margin-top: 6px; }

.sm-popup-img-wrap { height: 160px; overflow: hidden; position: relative; }
.sm-popup-img { width: 100%; height: 100%; object-fit: cover; }

.sm-popup-content { padding: 16px 20px; max-height: 320px; overflow-y: auto; }
.sm-popup-section { margin-bottom: 12px; }
.sm-section-label { font-size: 11px; font-weight: 700; color: var(--t3); text-transform: uppercase; margin-bottom: 6px; }
.sm-facts-list { list-style: none; padding: 0; margin: 0; }
.sm-facts-list li { font-size: 13px; color: var(--t2); line-height: 1.6; margin-bottom: 6px; }
.sm-facts-list b { color: #fff; }

.sm-mnemonic-box { background: rgba(240,200,118,.12); border: 1px solid rgba(240,200,118,.3); padding: 10px 12px; border-radius: 8px; font-size: 12px; font-weight: 700; color: var(--gold); line-height: 1.5; margin-bottom: 10px; }
.sm-skill-box { background: rgba(78,201,168,.1); border-left: 3px solid #4ec9a8; padding: 8px 12px; border-radius: 0 8px 8px 0; font-size: 12px; color: #6ee7b7; line-height: 1.5; }




/* === 笔试章节导航 === */
.quiz-subjects{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.qs-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:.2s var(--ease)}
.qs-item:hover{border-color:var(--gold);transform:translateX(4px);background:var(--card2)}
.qs-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-size:24px;flex-shrink:0}
.qs-info{flex:1}
.qs-info b{font-size:15px;color:var(--t)}
.qs-sub{font-size:12px;color:var(--t3);margin-top:2px}
.qs-count{font-size:18px;font-weight:800;color:var(--gold);background:var(--card2);padding:4px 12px;border-radius:var(--r-s)}

.quiz-chapters{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.qc-back{color:var(--gold);cursor:pointer;font-size:14px;font-weight:600;padding:8px 0;transition:.2s}
.qc-back:hover{transform:translateX(-3px)}
.qc-title{font-size:18px;font-weight:800;color:var(--t);margin-bottom:8px;padding-bottom:8px;border-bottom:2px solid var(--gold)}
.qc-item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer;transition:.2s var(--ease);font:inherit;text-align:left;color:inherit}
.qc-item:hover{border-color:var(--gold);background:var(--card2);transform:translateX(3px)}
.qc-name{font-size:14px;color:var(--t);font-weight:500}
.qc-count{font-size:12px;color:var(--t3);background:var(--card2);padding:3px 10px;border-radius:12px}
.qc-all{border:1px dashed var(--gold);background:rgba(240,200,118,.06)}
.qc-all .qc-name{color:var(--gold);font-weight:700}
/* 科二子题库分组卡片：整组可刷（qc-group-head）+ 组内章节可展开（qc-group-chapters）。
   双类选择器特异性高于 modern-ui.css 里 .quiz-chapters 的 2 列网格，让分组列表回到单列。 */
.quiz-chapters.qc-grouped{display:flex;flex-direction:column;gap:9px}
.qc-group{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;background:var(--card)}
.qc-group-head{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px 16px;background:linear-gradient(90deg,rgba(240,200,118,.18) 0 var(--chapter-progress,0%),var(--card) var(--chapter-progress,0%) 100%);border:none;cursor:pointer;transition:.2s var(--ease);font:inherit;text-align:left;color:inherit}
.qc-group-head:hover{filter:brightness(.98)}
.qc-group-name{grid-column:1;font-size:15px;font-weight:700;color:var(--t)}
.qc-group-sub{grid-column:1;font-size:11px;color:var(--t3)}
.qc-group-count{grid-column:2;grid-row:1/3;align-self:center;font-size:12px;color:var(--gold);background:rgba(240,200,118,.12);padding:4px 11px;border-radius:12px;white-space:nowrap}
.qc-group-toggle{border:none;border-top:1px solid var(--line);background:var(--card2);color:var(--t3);font-size:12px;padding:7px;text-align:center;cursor:pointer}
.qc-group-toggle:hover{color:var(--gold)}
.qc-group-toggle::before{content:'展开章节 ▾'}
.qc-group.expanded .qc-group-toggle::before{content:'收起章节 ▴'}
.qc-group-chapters{display:none;flex-direction:column;gap:5px;padding:8px;border-top:1px solid var(--line);background:var(--card2)}
.qc-group.expanded .qc-group-chapters{display:flex}
.qc-group-chapters .qc-item{padding:9px 13px;font-size:13px}
.learning-step{display:grid;grid-template-columns:1fr auto;gap:3px 12px;margin-bottom:8px;padding:14px 16px;border-radius:14px;background:rgba(158,61,47,.08);border-left:4px solid var(--red)}
.learning-step span{grid-column:1/-1;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.08em}.learning-step b{font-size:19px}.learning-step small{align-self:center;color:var(--t2)}
.quiz-loading,.quiz-load-error{min-height:300px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;padding:32px;color:var(--t2)}
.quiz-loading b,.quiz-load-error b{color:var(--t);font-size:20px}.quiz-loading span,.quiz-load-error span{font-size:13px}
.quiz-loading i{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:quizSpin .8s linear infinite}
.quiz-load-error{border:1px solid var(--line);border-radius:18px;background:var(--card)}.quiz-load-error .btn{margin-top:8px}
@keyframes quizSpin{to{transform:rotate(360deg)}}
.quiz-page{max-width:1060px;margin:0 auto;padding:52px 28px 70px}
.el-method{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:17px 0;padding:12px 14px;border:1px solid rgba(240,200,118,.28);border-radius:12px;background:rgba(240,200,118,.07)}.el-method span{grid-row:1/3;align-self:center;padding:5px 8px;border-radius:7px;background:rgba(240,200,118,.14);color:var(--gold);font-size:10px;font-weight:800}.el-method b{font-size:14px}.el-method small{color:var(--t2);line-height:1.5}
.el-meeting-grid,.el-war-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.el-meeting-grid article,.el-war-grid article{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card2);display:grid;gap:7px}.el-meeting-grid time,.el-war-grid article>span{color:var(--red);font-size:11px;font-weight:800}.el-meeting-grid b,.el-war-grid b{font-size:16px}.el-meeting-grid p,.el-war-grid p{margin:0;color:var(--t2);font-size:13px;line-height:1.65}.el-meeting-grid em{font-style:normal;color:#b56d42;font-size:12px;line-height:1.55}.el-congress-table{border:1px solid var(--line);border-radius:14px;overflow:hidden}.el-congress-table>div{display:grid;grid-template-columns:72px 120px 1fr;gap:12px;align-items:start;padding:13px 15px;background:var(--card);border-bottom:1px solid var(--line)}.el-congress-table>div:last-child{border-bottom:0}.el-congress-table b{color:var(--red)}.el-congress-table strong{font-size:13px}.el-congress-table span{color:var(--t2);font-size:13px;line-height:1.6}
.chapter-map-task{position:fixed;z-index:1200;left:110px;top:22px;width:min(430px,calc(100vw - 140px));padding:18px 20px;border-radius:18px;background:rgba(28,24,21,.96);border:1px solid rgba(240,200,118,.45);box-shadow:0 18px 50px rgba(0,0,0,.35);color:#fff;backdrop-filter:blur(16px);display:grid;gap:7px}
.chapter-map-task>span{color:#e7b78b;font-size:11px;font-weight:800}.chapter-map-task>b{font:20px "Songti SC","STSong",serif}.chapter-map-task p{margin:0;color:#eee7df;font-size:13px;line-height:1.65}.chapter-map-task small{color:#bfb4aa;line-height:1.55}.chapter-map-task button{margin-top:5px;padding:11px 14px;border:0;border-radius:10px;background:var(--red);color:#fff;font-weight:800}

@media(max-width:768px){
  .qs-item{padding:10px 12px}
  .qs-icon{width:40px;height:40px;font-size:20px}
  .learning-step{grid-template-columns:1fr}.learning-step small{margin-top:2px}
  .quiz-page{padding:76px 15px 42px}.chapter-map-task{left:12px;right:12px;top:12px;width:auto}
  .el-method{grid-template-columns:1fr}.el-method span{grid-row:auto;justify-self:start}
  .el-meeting-grid,.el-war-grid{grid-template-columns:1fr}.el-congress-table>div{grid-template-columns:60px 1fr}.el-congress-table span{grid-column:1/-1}
}

/* === 边栏分组标题 === */
.sb-nav-group{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:1px;padding:14px 12px 4px;margin-top:4px}
.sb-nav-divider{height:1px;background:var(--line);margin:10px 12px}

/* === 答题结果 === */
.quiz-result{margin-top:16px;padding:16px;border-radius:var(--r-s);animation:fadeIn .3s var(--ease)}
.quiz-result.correct{background:rgba(78,201,168,.1);border:1px solid rgba(78,201,168,.3)}
.quiz-result.wrong{background:rgba(239,107,107,.1);border:1px solid rgba(239,107,107,.3)}
.quiz-exp{margin-top:10px;padding:12px 14px;background:var(--card2);border-radius:var(--r-s);font-size:13px;line-height:1.7;color:var(--t2);border-left:3px solid var(--gold)}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}}

/* === 记忆题流 === */
.practice-stage{max-width:980px;margin:0 auto;padding:8px 0 40px}.practice-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 4px 18px}.practice-top h2{margin:7px 0 0;font-family:"Songti SC","STSong",serif;font-size:28px}.practice-mode{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--red)}.practice-score{display:flex;gap:18px;color:var(--t3);font-size:11px}.practice-score b{display:block;color:var(--t1);font-size:20px;margin-top:3px}.practice-progress{height:4px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:18px}.practice-progress i{display:block;height:100%;background:var(--red);transition:width .35s ease}.practice-card{padding:30px;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:0 20px 55px rgba(41,31,24,.07)}.practice-meta,.practice-nav{display:flex;justify-content:space-between;align-items:center;gap:12px}.practice-meta{color:var(--t3);font-size:12px;margin-bottom:22px}.practice-nav{margin-top:22px}.practice-stage .quiz-q{font-family:"Songti SC","STSong",serif;font-size:23px;line-height:1.65;margin-bottom:22px}.practice-stage .opt{width:100%;text-align:left;font:inherit;border:1px solid var(--line);background:var(--card);display:flex;align-items:flex-start;gap:13px}.practice-stage .opt.selected{border-color:var(--red);background:rgba(158,61,47,.07);box-shadow:0 0 0 2px rgba(158,61,47,.08)}.multi-submit{width:100%;margin-top:12px;padding:14px;border:0;border-radius:12px;background:var(--red);color:#fff;font-weight:800}.multi-submit:disabled{opacity:.35}.question-context{padding:18px 22px;margin-bottom:16px;border-radius:18px;background:#302c28;color:#fff}
/* 做题提示卡:位于选项之后;提交答案后整体收起,判分与解析直接可见(全端一致) */
body[data-view="quiz"].quiz-answering .practice-card.is-answered .question-context{display:none}

/* 网页端答题导航吸底:解析再长,"上一题/下一题"始终贴在屏幕底部可达
   (手机端隐藏本导航,用固定底栏 quiz-mobile-actionbar) */
body[data-view="quiz"].quiz-answering .practice-card .practice-nav{
  position:sticky;bottom:14px;z-index:6;
  margin:26px -6px -4px;padding:10px 16px;
  border:1px solid var(--line);border-radius:14px;
  background:var(--card,#fff);
  box-shadow:0 14px 34px rgba(10,20,30,.16);
}
/* 作答后让操作栏回到内容流末尾，长解析可连续阅读且不被覆盖。 */
body[data-view="quiz"].quiz-answering .practice-card.is-answered .practice-nav{position:static}
.question-context>span{font-size:11px;letter-spacing:.14em;color:#e7b78b}.question-context p{font-size:12px;color:#c9c1bb;margin:10px 0 0}.mini-timeline{display:flex;justify-content:space-between;position:relative;margin-top:17px}.mini-timeline:before{content:"";position:absolute;left:0;right:0;top:6px;height:1px;background:#615951}.mini-timeline i{position:relative;font-style:normal;padding-top:15px}.mini-timeline i:before{content:"";position:absolute;top:2px;left:50%;width:8px;height:8px;border-radius:50%;background:#756c64;transform:translateX(-50%)}.mini-timeline i.on:before{background:#e6523f;box-shadow:0 0 0 5px rgba(230,82,63,.2)}.mini-timeline b{font-size:10px;color:#bdb4ac}.mini-timeline i.on b{color:#fff}.result-title{display:block;font-size:18px;font-weight:900}.result-title.good{color:var(--ok)}.result-title.retry{color:var(--red)}.answer-reveal{display:grid;gap:8px;margin-top:10px;padding:12px;border-radius:12px;background:rgba(239,107,107,.08);font-size:13px}.answer-reveal>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.answer-reveal span{color:var(--t3);font-size:11px}.answer-reveal .answer-letters{font:800 16px/1 var(--font-metric);letter-spacing:.12em;color:var(--red)}.answer-reveal em{font-style:normal;color:var(--t2);font-size:12px}.quiz-exp>b{display:block;margin-bottom:8px;color:var(--red);font-size:12px;letter-spacing:.12em}.practice-stage.is-review .practice-card{border-color:#d89256}.memory-intro{cursor:default!important}
@media(max-width:620px){.practice-top{align-items:flex-start;flex-direction:column}.practice-score{width:100%;justify-content:space-between}.practice-card{padding:20px 16px;border-radius:18px}.practice-stage .quiz-q{font-size:19px}.mini-timeline i:nth-child(even){display:none}.practice-nav .btn{padding:10px 12px}.question-context{padding:16px}}

/* === AI Progress Command Center v2 === */
.profile-page{max-width:1320px;padding-top:2px}.profile-page .view-head{padding:8px 0 12px;margin-bottom:10px}.me-head h1{font:700 25px "Songti SC","STSong",serif}.me-live{display:flex;align-items:center;gap:7px;color:var(--t3);font-size:9px}.me-live i{width:6px;height:6px;border-radius:50%;background:#42d9bc;box-shadow:0 0 0 4px rgba(66,217,188,.1)}
.me-identity-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:0 0 12px;padding:13px 14px;border:1px solid rgba(22,127,136,.16);border-radius:12px;background:linear-gradient(105deg,#f7fbf8,#eef7f4);box-shadow:0 8px 24px rgba(21,70,74,.06)}.me-identity-avatar .profile-avatar{width:54px;height:54px}.me-identity-avatar .profile-avatar svg{width:31px;height:31px}.me-identity-copy{min-width:0}.me-identity-copy>span{color:#167f88;font-size:7px;font-weight:800;letter-spacing:.16em}.me-identity-copy h2{overflow:hidden;margin:3px 0 2px;color:#183b40;font:700 19px "Songti SC","STSong",serif;text-overflow:ellipsis;white-space:nowrap}.me-identity-copy p{overflow:hidden;color:#6d8588;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.me-identity-card>button{display:grid;grid-template-columns:1fr auto;gap:2px 16px;min-width:152px;padding:10px 12px;border:1px solid rgba(22,127,136,.2);border-radius:9px;background:#fff;color:#176f78;text-align:left}.me-identity-card>button span{font-size:10px;font-weight:800}.me-identity-card>button small{grid-column:1;color:#7a9193;font-size:8px}.me-identity-card>button b{grid-column:2;grid-row:1/3;align-self:center;font-size:16px}
.rank-command{grid-template-columns:58px 300px 1fr;gap:16px;min-height:112px;margin-bottom:10px;padding:15px 18px;border-radius:9px;border-color:#273645;background:linear-gradient(110deg,#101923,#111d27 58%,#17231f);box-shadow:0 12px 35px rgba(0,0,0,.16)}.rank-seal{width:54px;height:54px;border-color:#d5a955;font-size:24px;box-shadow:inset 0 0 0 4px #101923,inset 0 0 0 5px rgba(213,169,85,.45)}.rank-copy h2{font-size:19px;margin:1px 0}.rank-copy p{font-size:9px}.rank-copy>span{font-size:8px}.rank-track{height:3px;margin:8px 0 5px}.rank-copy small{font-size:8px}.rank-kpis{align-self:stretch;display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid rgba(255,255,255,.1)}.rank-kpis>div{display:flex;flex-direction:column;justify-content:center;padding:2px 17px;border-right:1px solid rgba(255,255,255,.08)}.rank-kpis span{color:#82919e;font-size:8px;letter-spacing:.08em}.rank-kpis b{margin:3px 0 1px;color:#ecf4f3;font:700 23px Georgia,serif}.rank-kpis small{color:#687784;font-size:8px}.rank-kpis .alert b{color:#ed7667}
.progress-kpis{display:none}.me-dashboard-grid{grid-template-columns:1fr 1.3fr 1fr;gap:9px}.management-panel{padding:15px;border-radius:8px;border-color:#283746;background:linear-gradient(145deg,#121b25,#101923);box-shadow:inset 0 1px rgba(255,255,255,.02)}.management-panel>header{margin-bottom:11px}.management-panel>header h2{font-size:15px;color:#e8efef}.management-panel>header span{font-size:7px;color:#42d9bc}.management-panel>header small{font-size:8px}.management-panel>header>i{padding:2px 6px;border:1px solid rgba(66,217,188,.25);border-radius:3px;color:#42d9bc;font-size:7px;font-style:normal}
.ai-diagnosis-panel{grid-column:1}.subject-panel{grid-column:2}.activity-panel{grid-column:3}.debt-panel{grid-column:1/3}.rank-ladder-panel{grid-column:3}.ai-diagnosis-body{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:12px;min-height:90px;padding:11px;border:1px solid #263846;border-radius:6px;background:#0d1720}.ai-orbit{position:relative;display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(66,217,188,.65);border-radius:50%;color:#42d9bc}.ai-orbit:before,.ai-orbit:after{content:"";position:absolute;border:1px solid rgba(66,217,188,.18);transform:rotate(45deg)}.ai-orbit:before{inset:7px}.ai-orbit:after{inset:-5px;border-radius:50%}.ai-orbit b{font:12px Georgia,serif}.ai-diagnosis-body span{color:#84929f;font-size:8px}.ai-diagnosis-body h3{margin:3px 0;color:#42d9bc;font-size:13px}.ai-diagnosis-body p{color:#82909c;font-size:8px;line-height:1.55}.diagnosis-evidence{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin:9px 0;padding:8px 0;border-top:1px solid #24313d;border-bottom:1px solid #24313d;font-size:8px}.diagnosis-evidence span{color:#687783}.diagnosis-evidence b{color:#b8c3c8;font-weight:500}.ai-action{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 11px;border-radius:4px;background:#42d9bc;color:#07100f;font-size:9px;font-weight:800}
.subject-progress-list{gap:0}.subject-progress-list button{grid-template-columns:27px 1fr 36px;gap:8px;padding:7px 4px;border-bottom:1px solid #23313d;border-radius:0}.subject-progress-list button:last-child{border-bottom:0}.subject-progress-list button:hover{transform:none;background:#17232e}.subject-progress-list button>i{width:25px;height:25px;border-radius:4px;background:#172b32;color:#42d9bc;font-size:7px}.subject-progress-list b{color:#d9e2e2;font-size:9px}.subject-progress-list span{font-size:7px}.subject-progress-list em{height:2px}.subject-progress-list u{background:linear-gradient(90deg,#d9aa56,#42d9bc)}.subject-progress-list button>strong{font-size:11px;color:#42d9bc}
.week-chart{height:135px;padding-top:16px}.week-chart i{width:min(19px,75%);background:linear-gradient(#42d9bc,#1f7e78)}.activity-panel>p{font-size:7px}.debt-list>div{grid-template-columns:1fr 110px 70px;padding:8px 5px}.debt-list .debt-head{padding:5px;background:#17232e;border:0}.debt-list .debt-head>*{color:#687783;font-size:7px;font-weight:500;text-align:left}.debt-list span{font-size:8px}.debt-list b{display:flex;align-items:center;gap:4px;color:#82909c;font:8px inherit}.debt-list b i{display:block;width:7px;height:7px;border:1px solid #40515e;border-radius:50%}.debt-list b i.on{border-color:#42d9bc;background:#42d9bc}.debt-list small{font-size:7px}.panel-action{margin-top:8px;padding:7px;color:#42d9bc}
.rank-ladder{grid-template-columns:repeat(7,minmax(46px,1fr));gap:1px;padding-top:8px}.rank-ladder>div{gap:3px;padding:7px 1px}.rank-ladder i{width:22px;height:22px;background:#101923}.rank-ladder b{font-size:7px}.rank-ladder span{font-size:6px}.rank-ladder .active{background:rgba(213,169,85,.09);color:#d5a955}.rank-ladder .active i{border-color:#d5a955;box-shadow:0 0 0 3px rgba(213,169,85,.08)}.rank-ladder .done i{background:#1d2d2d;color:#42d9bc;border-color:#34504d}
.data-heading{padding-top:14px!important;margin-top:8px!important}.data-heading h1{font-size:18px}.data-heading p{font-size:9px}.data-control-panel{padding:12px 15px;border-radius:7px;border-color:#283746;background:#111b24}.data-control-panel .btn{padding:7px 11px;font-size:8px}.data-control-panel b{font-size:9px}.data-control-panel span{font-size:7px}
@media(max-width:1050px){.rank-command{grid-template-columns:58px 1fr}.rank-kpis{grid-column:1/-1;border-left:0;border-top:1px solid rgba(255,255,255,.08);padding-top:9px}.me-dashboard-grid{grid-template-columns:1fr 1fr}.ai-diagnosis-panel,.subject-panel,.activity-panel,.debt-panel,.rank-ladder-panel{grid-column:auto}.debt-panel{grid-column:1/-1}}@media(max-width:700px){.rank-command,.me-dashboard-grid{grid-template-columns:1fr}.rank-seal{display:none}.rank-kpis{grid-template-columns:1fr 1fr}.rank-kpis>div{padding:9px}.ai-diagnosis-panel,.subject-panel,.activity-panel,.debt-panel,.rank-ladder-panel{grid-column:1}.debt-list>div{grid-template-columns:1fr 90px}.debt-list small{display:none}}
@media(max-width:700px){.me-identity-card{grid-template-columns:auto 1fr;gap:10px;padding:12px}.me-identity-avatar .profile-avatar{width:48px;height:48px}.me-identity-copy h2{font-size:17px}.me-identity-card>button{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;padding:10px 12px}.me-identity-card>button small{margin-left:auto}.me-identity-card>button b{margin-left:8px}}

/* Cheerful growth badges: soft, friendly, still product-grade */
.rank-command{grid-template-columns:68px 290px 1fr;background:linear-gradient(110deg,#101923 0%,#122129 68%,#182821 100%)}
.rank-seal{position:relative;width:62px;height:58px;border:0;border-radius:22px 22px 25px 25px;background:linear-gradient(145deg,#fff2a9,#ffc96d);color:#5c4826;font:800 23px "PingFang SC",sans-serif;box-shadow:0 7px 0 #bd8f43,0 11px 20px rgba(0,0,0,.24),inset 0 2px 1px rgba(255,255,255,.7);transform:rotate(-2deg);animation:badgeHello .65s cubic-bezier(.34,1.56,.64,1)}
.rank-seal:before,.rank-seal:after{content:"";position:absolute;top:-5px;width:19px;height:21px;background:#ffe79a;z-index:-1}.rank-seal:before{left:4px;border-radius:14px 3px 5px 3px;transform:rotate(-22deg)}.rank-seal:after{right:4px;border-radius:3px 14px 3px 5px;transform:rotate(22deg)}.rank-seal>span{transform:translateY(-4px)}.rank-seal>i{position:absolute;left:50%;bottom:10px;width:12px;height:6px;border-bottom:2px solid #76592d;border-radius:0 0 12px 12px;transform:translateX(-50%)}.rank-seal>i:before,.rank-seal>i:after{content:"";position:absolute;bottom:7px;width:3px;height:4px;border-radius:50%;background:#76592d}.rank-seal>i:before{left:-7px}.rank-seal>i:after{right:-7px}.rank-seal>em{position:absolute;right:-7px;top:-10px;color:#72e1c8;font-size:15px;font-style:normal;text-shadow:0 2px 6px rgba(66,217,188,.35);animation:badgeSpark 1.8s ease-in-out infinite}
@keyframes badgeHello{from{opacity:0;transform:translateY(8px) rotate(-8deg) scale(.82)}to{opacity:1;transform:translateY(0) rotate(-2deg) scale(1)}}@keyframes badgeSpark{50%{transform:rotate(20deg) scale(1.25);opacity:.65}}
.rank-ladder>div{transition:transform .2s ease,background .2s ease}.rank-ladder>div:hover{transform:translateY(-2px)}.rank-ladder i{width:26px;height:25px;border:0;border-radius:10px 10px 12px 12px;background:#1d2b34;box-shadow:0 3px 0 #0a1118,inset 0 1px rgba(255,255,255,.06)}.rank-ladder i>span{font-size:8px;transform:translateY(-2px)}.rank-ladder i>em{position:absolute;bottom:5px;width:6px;height:3px;border-bottom:1px solid #73828c;border-radius:0 0 7px 7px}.rank-ladder i>em:before,.rank-ladder i>em:after{content:"";position:absolute;bottom:4px;width:2px;height:2px;border-radius:50%;background:#73828c}.rank-ladder i>em:before{left:-4px}.rank-ladder i>em:after{right:-4px}.rank-ladder .active i{background:linear-gradient(145deg,#fff2a9,#ffc96d);color:#5c4826;border:0;box-shadow:0 3px 0 #bd8f43,0 0 0 3px rgba(255,218,123,.1)}.rank-ladder .active i>em{border-color:#76592d}.rank-ladder .active i>em:before,.rank-ladder .active i>em:after{background:#76592d}.rank-ladder .done i{background:linear-gradient(145deg,#aaf5df,#53d6b9);color:#153e37;border:0;box-shadow:0 3px 0 #278b76}.rank-ladder .done i>em{border-color:#225f54}.rank-ladder .done i>em:before,.rank-ladder .done i>em:after{background:#225f54}
@media(max-width:1050px){.rank-command{grid-template-columns:68px 1fr}}@media(max-width:700px){.rank-command{grid-template-columns:56px 1fr}.rank-seal{display:grid;width:52px;height:49px;border-radius:18px;font-size:19px}.rank-copy{min-width:0}.rank-kpis{grid-column:1/-1}}
.history-panorama{position:relative;height:190px;margin:-18px -22px 18px;overflow:hidden;border-radius:18px 18px 10px 10px}.history-panorama:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,18,16,.06),rgba(20,18,16,.04) 50%,rgba(20,18,16,.45)),linear-gradient(0deg,rgba(20,18,16,.7),transparent 65%)}.history-panorama img{width:100%;height:100%;object-fit:cover;object-position:center 38%}.history-panorama>div{position:absolute;z-index:2;left:18px;bottom:15px;display:grid;gap:2px}.history-panorama span{color:#f3c79d;font-size:11px;letter-spacing:.12em}.history-panorama b{color:#fff;font-size:20px}
@media(max-width:620px){.history-panorama{height:142px;margin:-16px -16px 16px}.history-panorama b{font-size:17px}}
.architecture-visual{position:relative;height:180px;margin:-18px -22px 14px;overflow:hidden;border-radius:18px 18px 10px 10px;background:#ede5d9}.architecture-visual img{width:100%;height:100%;object-fit:cover;object-position:center}.architecture-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(35,27,20,.7),transparent 65%)}.architecture-visual>div{position:absolute;z-index:2;left:18px;bottom:14px;display:grid;gap:2px}.architecture-visual span{font-size:11px;color:#e7b78b;letter-spacing:.12em}.architecture-visual b{font-size:19px;color:#fff}.context-chips,.garden-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.context-chips i,.garden-methods i{padding:10px;border-radius:10px;background:rgba(255,255,255,.06);font-style:normal;color:var(--t2)}.context-chips i.on,.garden-methods i.on{background:rgba(230,82,63,.18);color:var(--t);outline:1px solid rgba(230,82,63,.65)}.garden-methods{grid-template-columns:repeat(5,1fr);margin-top:14px}.garden-methods i{display:grid;gap:4px}.garden-methods b{font-size:14px;color:var(--t)}.garden-methods small{font-size:10px;line-height:1.45}.garden-context>span{font-size:11px;color:#e7b78b;letter-spacing:.12em}.garden-context p{margin-top:14px}@media(max-width:620px){.architecture-visual{height:138px;margin:-16px -16px 14px}.context-chips{grid-template-columns:repeat(3,1fr)}.garden-methods{grid-template-columns:repeat(3,1fr)}.garden-methods i:nth-child(4),.garden-methods i:nth-child(5){display:none}}
/* === 地方与宗教题上下文 === */
.faith-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.faith-cards i{display:grid;gap:6px;padding:13px 10px;border:1px solid rgba(255,255,255,.13);border-radius:12px;font-style:normal;color:var(--t2)}.faith-cards i.on{border-color:#e6523f;background:rgba(230,82,63,.16);color:var(--t)}.faith-cards b{font-size:14px}.faith-cards small{font-size:10px;line-height:1.5}.region-context{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.region-context>div{display:grid;gap:4px}.region-context span{font-size:11px;color:#e7b78b;letter-spacing:.12em}.region-context b{font-size:23px;color:var(--t)}.region-context small{font-size:12px;color:var(--t2)}.region-context button{border:1px solid var(--t3);background:transparent;color:var(--t);border-radius:99px;padding:9px 13px}.region-context p{grid-column:1/-1;margin:5px 0 0;color:var(--t2);font-size:12px}@media(max-width:620px){.faith-cards{grid-template-columns:repeat(2,1fr)}.region-context b{font-size:20px}}
/* === 百年征程 · 党史电影 === */
.party-cinema{position:relative;height:100vh;min-height:650px;overflow:hidden;background:#17120f;color:#fff;isolation:isolate}.party-film-bg{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;object-position:var(--scene-x) 38%;transition:object-position 1.8s cubic-bezier(.2,.75,.2,1),transform 7s linear;transform:scale(1.035)}.party-cinema.scene-enter .party-film-bg{animation:partyKen 7s ease-out both}.party-film-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,11,9,.86) 0%,rgba(14,11,9,.36) 50%,rgba(14,11,9,.76) 100%),linear-gradient(0deg,rgba(12,10,8,.98) 0%,transparent 48%,rgba(12,10,8,.36) 100%);z-index:1}.party-grain{position:absolute;inset:0;z-index:2;opacity:.11;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.party-brand{position:absolute;z-index:4;top:28px;left:34px}.party-brand span{font-size:9px;letter-spacing:.24em;color:#d4af82}.party-brand h1{font-family:"Songti SC","STSong",serif;font-size:24px;margin:4px 0 2px}.party-brand p{font-size:11px;color:#c5bbb2}.party-scene{position:absolute;z-index:4;left:7vw;top:50%;transform:translateY(-53%);display:grid;grid-template-columns:160px minmax(360px,600px);gap:34px;align-items:start}.party-year{font:italic 700 clamp(48px,7vw,96px)/.9 Georgia,serif;color:var(--scene-color);text-shadow:0 4px 28px rgba(0,0,0,.4);transition:color .5s}.party-copy>span{display:inline-block;padding:5px 9px;border:1px solid color-mix(in srgb,var(--scene-color) 65%,transparent);color:#f1d7bc;border-radius:99px;font-size:10px;letter-spacing:.16em}.party-copy h2{font-family:"Songti SC","STSong",serif;font-size:clamp(34px,4vw,62px);line-height:1.05;margin:13px 0 8px;letter-spacing:-.04em}.party-place{font-size:12px;color:#d1b799;margin-bottom:18px}.party-narration{max-width:590px;font-size:15px;line-height:1.85;color:#eee7df;text-shadow:0 2px 12px rgba(0,0,0,.7)}.party-points{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.party-points>div{display:flex;align-items:center;gap:7px;padding:8px 10px;background:rgba(18,14,11,.62);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px);border-radius:9px;font-size:11px}.party-points i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--scene-color);font-style:normal;font-size:9px}.party-quiz-link{margin-top:18px;padding:10px 0;border:0;background:transparent;color:#f5d4b3;font-weight:800;border-bottom:1px solid rgba(245,212,179,.5)}.party-rail{position:absolute;z-index:5;left:4vw;right:4vw;bottom:92px}.party-rail-line{position:absolute;left:2%;right:2%;top:11px;height:2px;background:rgba(255,255,255,.18)}.party-rail-line i{display:block;width:0;height:100%;background:var(--scene-color);transition:width .8s,color .5s}.party-scenes{display:grid;grid-template-columns:repeat(10,1fr);position:relative}.party-scenes button{border:0;background:none;color:#948a81;display:grid;justify-items:center;gap:5px;font-size:9px;padding:0 3px}.party-scenes button i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#211b17;border:1px solid #73665a;font-style:normal;transition:.35s}.party-scenes button b{font:11px Georgia,serif}.party-scenes button span{max-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-scenes button.on{color:#fff}.party-scenes button.on i{background:var(--scene-color);border-color:#f2d0ac;transform:scale(1.18);box-shadow:0 0 0 5px rgba(255,255,255,.09)}.party-controls{position:absolute;z-index:6;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.16);border-radius:99px;background:rgba(20,16,13,.82);backdrop-filter:blur(14px)}.party-controls button,.party-controls select{height:34px;min-width:34px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff}.party-controls select{border-radius:9px;padding:0 6px}.party-controls button.on{background:var(--scene-color)}.party-play{background:var(--scene-color)!important}.party-controls>span{min-width:42px;text-align:center;font:11px Georgia,serif}.party-timer{width:90px;height:3px;border-radius:4px;background:rgba(255,255,255,.15);overflow:hidden}.party-timer i{display:block;width:0;height:100%;background:#f4c891}.party-start{position:absolute;z-index:10;inset:0;margin:auto;width:280px;height:156px;border:1px solid rgba(255,255,255,.22);border-radius:24px;background:rgba(19,15,12,.84);backdrop-filter:blur(18px);color:#fff;display:grid;place-items:center;align-content:center;gap:8px;box-shadow:0 25px 80px rgba(0,0,0,.48);transition:.5s}.party-start i{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#b63f32;font-style:normal}.party-start b{font:21px "Songti SC","STSong",serif}.party-start span{font-size:10px;color:#bfb4aa}.party-start.gone{opacity:0;transform:scale(1.1);pointer-events:none}.scene-enter .party-year,.scene-enter .party-copy{animation:partyReveal .8s both}.scene-enter .party-copy{animation-delay:.08s}@keyframes partyReveal{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@keyframes partyKen{from{transform:scale(1.02)}to{transform:scale(1.08)}}
@media(max-width:760px){.party-cinema{min-height:100svh;height:100svh}.party-brand{top:14px;left:16px}.party-brand p{display:none}.party-scene{left:16px;right:16px;top:42%;grid-template-columns:1fr;gap:8px}.party-year{font-size:44px}.party-copy h2{font-size:34px;margin:8px 0 4px}.party-place{margin-bottom:10px}.party-narration{font-size:13px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.party-points{margin-top:10px}.party-points>div{font-size:10px;padding:6px 8px}.party-quiz-link{margin-top:8px}.party-rail{bottom:78px;left:8px;right:8px;overflow-x:auto;padding-bottom:4px}.party-scenes{width:720px}.party-scenes button span{display:none}.party-controls{bottom:12px;width:calc(100% - 24px);justify-content:center}.party-timer{flex:1;max-width:90px}.party-film-bg{object-position:var(--scene-x) 38%}}
/* === 简单易用外壳 === */
.home-status{min-width:210px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card);display:grid;grid-template-columns:auto 1fr;align-items:end;gap:2px 10px}.home-status>b{font:36px Georgia,serif;color:var(--red)}.home-status>span{font-size:13px;color:var(--t2);padding-bottom:5px}.home-status button{grid-column:1/-1;margin-top:10px;padding:10px 12px;border:0;border-radius:10px;background:var(--red);color:#fff;font-weight:800}.continue-card{width:100%;display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:center;text-align:left;padding:20px 22px;margin:4px 0 28px;border:1px solid rgba(158,61,47,.3);border-radius:18px;background:linear-gradient(110deg,rgba(158,61,47,.12),var(--card));color:var(--t)}.continue-card span{font-size:12px;color:var(--red);font-weight:800}.continue-card b{grid-column:1;font-size:18px}.continue-card em{grid-column:2;grid-row:1/3;font-style:normal;color:var(--red);font-weight:800}.simple-page{max-width:980px;margin:0 auto;padding:72px 28px}.simple-head span{font-size:12px;color:var(--red);font-weight:800}.simple-head h1{font-family:"Songti SC","STSong",serif;font-size:42px;margin:8px 0}.simple-head p{color:var(--t2);font-size:16px}.visual-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:34px}.visual-tool-grid button{min-height:120px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--t);display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;text-align:left}.visual-tool-grid i{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:rgba(158,61,47,.12);color:var(--red);font-style:normal;font-size:20px}.visual-tool-grid div{display:grid;gap:6px}.visual-tool-grid b{font-size:18px}.visual-tool-grid span{font-size:13px;color:var(--t2)}.visual-tool-grid em{font-style:normal;color:var(--red);font-size:12px}@media(max-width:620px){.home-status{width:100%;margin-top:18px}.continue-card{margin-top:0}.simple-page{padding:80px 16px 32px}.simple-head h1{font-size:34px}.visual-tool-grid{grid-template-columns:1fr}.visual-tool-grid button{min-height:104px;padding:17px}.welcome-card{max-height:calc(100svh - 32px);overflow:auto}}
/* 党史动画场景数量随题库主线变化 */
.party-scenes{grid-template-columns:repeat(var(--party-scenes,10),minmax(68px,1fr))}
@media(max-width:760px){.party-scenes{width:calc(var(--party-scenes,10) * 76px)}}

/* === 图层分类导航 === */
.layer-nav{position:absolute;top:60px;left:14px;z-index:10;background:rgba(15,17,23,.94);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:12px;padding:0;box-shadow:0 4px 18px rgba(0,0,0,.4);width:200px;max-height:calc(100% - 140px);overflow-y:auto}
.ln-tabs{display:flex;gap:2px;padding:8px 8px 0}
.ln-tab{flex:1;padding:8px 6px;border-radius:8px 8px 0 0;font-size:11px;font-weight:600;color:var(--t3);background:transparent;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;text-align:center}
.ln-tab.on{color:var(--gold);border-bottom-color:var(--gold);background:var(--card)}
.ln-content{padding:10px}
.ln-index-note{display:grid;gap:4px;margin:0 0 10px;padding:9px 10px;border:1px solid rgba(116,215,240,.17);border-radius:9px;background:rgba(37,83,105,.12)}
.ln-index-note b{font-size:10px;letter-spacing:.08em;color:#8adced}
.ln-index-note span{font-size:9px;line-height:1.45;color:var(--t3)}
.ln-provs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.ln-prov-item{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 29px;gap:3px}
.ln-prov{
  position:relative;min-width:0;min-height:52px;padding:8px 5px 7px;border-radius:8px;
  color:#aebdc1;background:#151e27;border:1px solid rgba(137,160,168,.17);cursor:pointer;
  transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;text-align:center;
  font-size:11px;font-weight:650;display:grid;gap:4px;justify-items:center;overflow:hidden
}
.ln-prov-quiz{min-width:0;padding:0;border:1px solid rgba(240,200,118,.28);border-radius:7px;background:rgba(240,200,118,.08);color:var(--gold);font-size:8px;font-weight:800;letter-spacing:.04em;cursor:pointer;writing-mode:vertical-rl}
.ln-prov-quiz:hover{border-color:var(--gold);background:rgba(240,200,118,.16);color:#fff2c8}
.ln-prov:hover{color:#e9f2f3;background:#1b2a35;border-color:#5e8290;transform:translateY(-1px)}
.ln-prov .ln-qcount{padding:0;color:#c7d2d4;background:transparent;font:750 12px var(--font-metric)}
.ln-prov .ln-qcount small{margin-left:2px;color:#6f858b;font-size:8px;font-weight:650}
.ln-prov.on{
  color:#e9fbff;background:#17384a;border-color:#70d4ec;font-weight:750;
  box-shadow:inset 3px 0 #70d4ec,0 0 0 1px rgba(112,212,236,.18)
}
.ln-prov.on::after{content:'当前';position:absolute;top:3px;right:4px;color:#8fe4f6;font-size:7px;font-weight:800;letter-spacing:.06em}
.ln-prov.on .ln-qcount{color:#fff}.ln-prov.on .ln-qcount small{color:#94c7d1}
.ln-prov.completed{color:#d8f5ff;background:#173d50;border-color:#69c7e9}
.ln-prov.completed span::before{content:'✓';display:inline-grid;place-items:center;width:13px;height:13px;margin-right:3px;border-radius:50%;color:#12313d;background:#9de1f5;font-size:8px;font-weight:900}
.ln-prov.completed .ln-qcount{color:#e2f8ff}.ln-prov.completed .ln-qcount small{color:#8fcde0}
.ln-prov.completed.on{
  color:#e8fff2;background:#174532;border-color:#9be8ff;
  box-shadow:inset 3px 0 #9be8ff,0 0 0 1px rgba(101,214,155,.3)
}
.ln-cats{display:flex;flex-direction:column;gap:6px}
.ln-cat{padding:10px 12px;border-radius:8px;font-size:13px;color:var(--t);background:var(--card);border:1px solid var(--line);cursor:pointer;transition:.2s;text-align:left;font-weight:500;display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:center}
.ln-cat small{grid-column:1/-1;color:var(--t3);font-size:9px;font-weight:500}
.ln-qcount{display:inline-flex;align-items:baseline;gap:2px;padding:2px 5px;border-radius:99px;background:rgba(240,200,118,.11);color:var(--gold);font-size:10px;font-style:normal;font-weight:800}
.ln-qcount small{font-size:8px;color:inherit}
.ln-qcount.loading{opacity:.5}
.ln-chapters{display:grid;gap:6px}
.ln-ch-group{position:sticky;top:0;z-index:1;padding:7px 4px 4px;background:rgba(15,17,23,.96);color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.04em}
.ln-cat:hover{border-color:var(--gold);background:var(--card2)}
.ln-cat.on{color:var(--gold);border-color:var(--gold);background:rgba(240,200,118,.08);font-weight:700}
.layer-question-summary{display:grid;grid-template-columns:1fr auto;gap:2px 14px;align-items:end;margin-bottom:7px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.layer-question-summary .lqs-kicker{grid-column:1/-1;color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.1em}
.layer-question-summary strong{font-size:12px;color:var(--t)}
.layer-question-summary div{display:flex;align-items:baseline;gap:4px;color:var(--t3);font-size:10px}
.layer-question-summary div span{line-height:1.45}
.layer-question-summary div small{color:var(--t3);font-size:8px;font-weight:500}
.layer-question-summary b{font:800 18px Georgia,serif;color:var(--gold)}
.province-practice-shell{display:grid;gap:12px;padding:6px 0 24px}
.province-practice-loading,.province-practice-empty{padding:72px 18px;text-align:center;color:var(--t2)}
.province-practice-header{display:flex;align-items:end;justify-content:space-between;padding-right:38px}
.province-practice-header span{display:block;margin-bottom:4px;color:#58c990;font-size:11px;font-weight:800;letter-spacing:.08em}
.province-practice-header h2{font-size:25px;color:var(--t)}
.province-practice-header strong{display:grid;text-align:right;font:800 30px Georgia,serif;color:#58c990}
.province-practice-header small{font:600 10px sans-serif;color:var(--t3)}
.province-practice-progress{height:5px;border-radius:9px;background:var(--card);overflow:hidden}
.province-practice-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f8f68,#7ce0ad);transition:.3s}
.province-knowledge-card{display:grid;gap:14px;padding:16px;border:1px solid rgba(88,201,144,.38);border-radius:16px;background:radial-gradient(circle at 8% 0,rgba(124,224,173,.15),transparent 35%),linear-gradient(145deg,rgba(47,143,104,.13),rgba(19,34,29,.03));box-shadow:inset 0 1px rgba(255,255,255,.05)}
.province-knowledge-identity{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch}
.province-knowledge-card.has-image .province-knowledge-identity{grid-template-columns:132px 1fr}
.province-knowledge-card img{width:132px;height:132px;border-radius:12px;object-fit:cover;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.province-knowledge-title{align-self:center}
.province-knowledge-title>span{font-size:9px;font-weight:900;letter-spacing:.11em;color:#58c990}
.province-knowledge-title h3{margin:7px 0 8px;font:800 22px/1.2 "Songti SC","STSong",serif;color:var(--t)}
.province-knowledge-title>p{margin-top:9px;color:var(--t3);font-size:10px;line-height:1.5}
.spot-poster-teaser{position:relative;display:block;width:100%;min-height:188px;margin-bottom:12px;overflow:hidden;border:1px solid rgba(181,139,72,.32);border-radius:18px;background:#18201d;text-align:left;box-shadow:0 16px 35px rgba(22,27,25,.12);isolation:isolate}
.spot-poster-teaser img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.spot-poster-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,18,16,.92),rgba(11,18,16,.58) 48%,rgba(11,18,16,.06)),linear-gradient(0deg,rgba(11,18,16,.45),transparent 65%)}
.spot-poster-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;min-height:188px;width:min(64%,590px);padding:26px 30px;color:#fff}
.spot-poster-copy small{color:#dfbb73;font-size:9px;font-weight:850;letter-spacing:.17em}.spot-poster-copy b{margin:8px 0 5px;font:800 clamp(23px,3vw,34px)/1.15 "Songti SC","STSong",serif}.spot-poster-copy em{color:rgba(255,255,255,.68);font-size:10px;font-style:normal}
.spot-poster-teaser>i{position:absolute;z-index:3;right:17px;bottom:15px;padding:6px 10px;border:1px solid rgba(255,255,255,.3);border-radius:99px;background:rgba(10,16,14,.5);color:#fff;font-size:9px;font-style:normal;backdrop-filter:blur(8px)}
.spot-poster-teaser:hover img{transform:scale(1.035)}.spot-poster-teaser:focus-visible{outline:3px solid #58c990;outline-offset:3px}
.spot-knowledge-entry{display:grid;width:100%;grid-template-columns:112px minmax(0,1fr) 34px;align-items:center;gap:16px;margin-bottom:14px;padding:10px;color:inherit;text-align:left;border:1px solid rgba(88,201,144,.26);border-radius:16px;background:linear-gradient(135deg,rgba(88,201,144,.11),rgba(255,255,255,.025));box-shadow:0 10px 28px rgba(12,33,27,.08);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.spot-knowledge-entry:hover{transform:translateY(-2px);border-color:rgba(88,201,144,.62);box-shadow:0 16px 34px rgba(12,33,27,.14)}
.spot-knowledge-entry:focus-visible{outline:3px solid #58c990;outline-offset:3px}
.spot-knowledge-entry-preview{position:relative;display:block;overflow:hidden;aspect-ratio:16/10;border-radius:11px;background:#17211e}
.spot-knowledge-entry-preview img{display:block;width:100%;height:100%;object-fit:cover}
.spot-knowledge-entry-preview i{position:absolute;right:7px;bottom:7px;display:grid;min-width:25px;height:25px;place-items:center;padding:0 7px;border-radius:99px;background:rgba(8,18,15,.82);color:#fff;font-size:10px;font-style:normal;backdrop-filter:blur(8px)}
.spot-knowledge-entry-preview.is-missing::before{content:"图册";display:grid;height:100%;place-items:center;color:#76d5aa;font:800 14px "Songti SC","STSong",serif}
.spot-knowledge-entry-copy{display:grid;min-width:0;gap:4px}.spot-knowledge-entry-copy small{color:#4bb783;font-size:8px;font-weight:900;letter-spacing:.12em}.spot-knowledge-entry-copy b{color:var(--t);font:800 20px/1.15 "Songti SC","STSong",serif}.spot-knowledge-entry-copy em{color:var(--t3);font-size:9px;font-style:normal;line-height:1.5}
.spot-knowledge-entry>strong{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#286f59;color:#fff;font-size:16px}
.spot-profile-essentials{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0 16px;list-style:none}
.spot-profile-essentials li{display:grid;grid-template-columns:27px 1fr;gap:8px;padding:10px;border:1px solid rgba(88,201,144,.16);border-radius:9px;background:rgba(88,201,144,.045)}
.spot-profile-essentials i{color:#58c990;font:800 10px Georgia,serif;font-style:normal}.spot-profile-essentials p{color:var(--t2);font-size:10px;line-height:1.55}
.knowledge-poster{min-height:100%;padding:30px;background:#e9e3d7;color:#182522}
.knowledge-poster>header{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:18px;padding:0 4px}.knowledge-poster>header span{grid-column:1/-1;color:#9a6b35;font-size:9px;font-weight:900;letter-spacing:.2em}.knowledge-poster>header h2{margin-top:5px;font:800 clamp(26px,4vw,43px) "Songti SC","STSong",serif}.knowledge-poster>header p{color:#65736f;font-size:10px}
.knowledge-poster-stage{position:relative;min-height:min(68vh,760px);overflow:hidden;border-radius:22px;background:linear-gradient(135deg,#c9d3d4,#e5dfd2);box-shadow:0 24px 60px rgba(45,37,27,.2)}
.knowledge-poster-stage>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:rgba(226,224,214,.42)}
.knowledge-poster-stage.poster-is-portrait>img{object-position:38% center}
.knowledge-poster-stage.poster-is-landscape>img{object-position:center}
.knowledge-poster-stage.poster-image-missing::before,.knowledge-poster-image.poster-image-missing::before{content:"该景点暂缺可用大图，考点图谱仍完整保留";display:grid;place-items:center;min-height:320px;padding:40px;color:#60716d;font-size:14px;letter-spacing:.06em;text-align:center;background:linear-gradient(135deg,#d9e1df,#eee6d7)}
.knowledge-poster-title{position:absolute;left:4%;top:5%;display:grid;padding:16px 18px;border-left:3px solid #9f3f30;background:rgba(244,238,224,.88);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(42,35,26,.12)}
.knowledge-poster-title small{color:#9f3f30;font-size:8px;font-weight:900;letter-spacing:.17em}.knowledge-poster-title b{font:900 clamp(29px,5vw,58px) "Songti SC","STSong",serif}.knowledge-poster-title em{color:#5f6964;font-size:9px;font-style:normal}
.knowledge-poster-stage ol{position:absolute;right:3.5%;top:6%;bottom:5%;display:flex;width:39%;flex-direction:column;justify-content:center;gap:9px;list-style:none}
.knowledge-poster-stage li{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:11px 13px;border:1px solid rgba(151,112,57,.24);border-radius:12px;background:rgba(247,241,227,.9);box-shadow:0 8px 22px rgba(46,38,28,.09);backdrop-filter:blur(7px)}
.knowledge-poster-stage li i{color:#a13f31;font:900 11px Georgia,serif;font-style:normal}.knowledge-poster-stage li p{font-size:clamp(9px,1.15vw,13px);line-height:1.5}
.knowledge-poster>footer{display:flex;justify-content:space-between;gap:20px;padding:13px 5px 0;color:#68736e;font-size:8px;letter-spacing:.04em}.knowledge-poster>footer b{color:#9a6b35}
.knowledge-poster-image{display:grid;min-height:100%;place-items:center;padding:24px;background:#161b19}
.knowledge-poster-image img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 150px);border-radius:14px;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.knowledge-poster-image.poster-is-portrait img{max-height:none;width:min(100%,900px)}
.poster-modal-context{padding:0;background:#f1eee6;backdrop-filter:none}
.poster-modal-context .spot-modal-scroll{height:100%;max-height:none;overflow:auto;overscroll-behavior:contain;background:#f1eee6}
.poster-modal-context .spot-modal{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;background:#f1eee6;box-shadow:none}
.poster-modal-context>.spot-modal>.spot-modal-close{display:none}
.spot-inline-result p{white-space:pre-line;overflow-wrap:anywhere}
.knowledge-poster-image figcaption{display:flex;width:100%;justify-content:space-between;padding:10px 4px 0;color:#aeb9b4;font-size:9px}.knowledge-poster-image figcaption b{color:#dfbb73}
.knowledge-poster-image.is-long{position:relative;align-content:start;cursor:zoom-in;overflow:auto}
.knowledge-poster-image.is-long img{width:min(100%,864px);max-height:none}
.knowledge-poster-image.is-long.is-zoomed{display:block;cursor:zoom-out}
.knowledge-poster-image.is-long.is-zoomed img{width:1728px;max-width:none;margin:0 auto}
.poster-zoom-hint{position:sticky;z-index:2;right:14px;bottom:14px;justify-self:end;margin-top:-48px;padding:8px 13px;border:1px solid rgba(255,255,255,.3);border-radius:99px;background:rgba(12,18,16,.78);color:#fff;font-size:10px;backdrop-filter:blur(10px)}
.knowledge-poster-image.is-long figcaption{max-width:864px}
.knowledge-poster-bundle{min-height:100%;background:#161b19}
.poster-modal-loading,.poster-modal-empty{display:grid;min-height:360px;place-content:center;justify-items:center;gap:14px;padding:36px;text-align:center;background:#f1ecdf;color:#1c302c}.poster-modal-loading i{width:34px;height:34px;border:3px solid rgba(31,107,88,.18);border-top-color:#1f6b58;border-radius:50%;animation:spin .8s linear infinite}.poster-modal-loading b,.poster-modal-empty b{font:800 20px "Songti SC","STSong",serif}.poster-modal-empty p{max-width:480px;color:#687772;font-size:11px;line-height:1.8}
@media(max-width:720px){.poster-modal-context .spot-modal{height:100dvh;max-height:100dvh}.poster-modal-context .exam-map-poster-deck{min-height:100%}}
.exam-map-gallery{min-height:100%;padding:clamp(18px,3vw,44px);background:radial-gradient(circle at 86% -8%,rgba(157,119,64,.13),transparent 28%),#f1eee6;color:#17231f}
.exam-map-gallery-head{position:sticky;z-index:3;top:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:clamp(14px,3vw,34px);margin:calc(clamp(18px,3vw,44px)*-1) calc(clamp(18px,3vw,44px)*-1) 28px;padding:clamp(18px,3vw,34px) clamp(18px,3vw,44px) 22px;border-bottom:1px solid rgba(42,62,54,.12);background:rgba(241,238,230,.92);backdrop-filter:blur(18px)}
.exam-map-gallery-head>div span{color:#8b6230;font-size:9px;font-weight:900;letter-spacing:.18em}.exam-map-gallery-head h2{margin:6px 0 4px;font:900 clamp(25px,3.8vw,42px)/1.1 "Songti SC","STSong",serif}.exam-map-gallery-head p{color:#68736e;font-size:10px}
.exam-map-gallery-back,.exam-map-gallery-close{min-height:40px;padding:0 15px;border:1px solid rgba(42,62,54,.18);border-radius:99px;background:rgba(255,255,255,.64);color:#263b34;font-size:10px;font-weight:800}.exam-map-gallery-back:hover,.exam-map-gallery-close:hover{border-color:#2f7e63;background:#fff}
.exam-map-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr));gap:18px;max-width:1500px;margin:0 auto}
.exam-map-gallery-item{display:grid;min-width:0;overflow:hidden;padding:0;border:0;border-radius:16px;background:#fff;color:#17231f;text-align:left;box-shadow:0 12px 36px rgba(46,51,44,.1);transition:transform .22s ease,box-shadow .22s ease}.exam-map-gallery-item:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(46,51,44,.16)}.exam-map-gallery-item:focus-visible{outline:3px solid #2f8b6a;outline-offset:4px}
.exam-map-gallery-item>span{display:grid;aspect-ratio:16/10;place-items:center;overflow:hidden;background:#ddd8ce}.exam-map-gallery-item>span img{display:block;width:100%;height:100%;object-fit:contain}.exam-map-gallery-item>span.poster-image-missing::before{content:"考点图加载失败";color:#94594f;font-size:11px}
.exam-map-gallery-item>em{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 14px;font-style:normal}.exam-map-gallery-item>em b{color:#9a6b35;font-size:10px}.exam-map-gallery-item>em i{overflow:hidden;color:#66736e;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.exam-map-gallery-item>em strong{color:#28745a;font-size:9px}
.spot-image-lightbox{position:fixed;z-index:1600;inset:0;display:grid;place-items:center;overflow:hidden;background:#000;animation:spotFade .16s ease-out;touch-action:pan-y}
.spot-image-lightbox>img{display:block;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border:0!important;border-radius:0!important;object-fit:contain;background:transparent;box-shadow:none!important}
.spot-image-lightbox.is-zoomed{display:block;overflow:auto;touch-action:pan-x pan-y;place-items:start;text-align:left}.spot-image-lightbox.is-zoomed>img{height:auto;max-width:none;max-height:none;object-fit:initial}.spot-image-lightbox .spot-image-lightbox-zoom{top:max(14px,env(safe-area-inset-top));left:16px;min-height:44px;padding:10px 16px;border-radius:22px}
.spot-image-lightbox .spot-image-lightbox-questions{bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:14px 20px;min-height:48px;border-radius:24px;white-space:nowrap;background:#145cc5;font-size:15px}.spot-image-lightbox button[hidden]{display:none}.spot-card-question-group li{margin:12px 0;line-height:1.6}
.spot-image-lightbox.is-zoomed .spot-image-lightbox-questions{display:none}
.spot-image-lightbox button{position:fixed;z-index:2;display:grid;place-items:center;border:0;background:rgba(0,0,0,.38);color:rgba(255,255,255,.9);backdrop-filter:blur(8px);transition:background .18s ease,color .18s ease}.spot-image-lightbox button:hover{background:rgba(0,0,0,.72);color:#fff}.spot-image-lightbox button:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:2px}
.spot-image-lightbox-close{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));width:46px;height:46px;border-radius:50%!important;font-size:30px;font-weight:300}.spot-image-lightbox-prev,.spot-image-lightbox-next{top:50%;width:48px;height:74px;transform:translateY(-50%);font-size:44px;font-weight:200}.spot-image-lightbox-prev{left:max(8px,env(safe-area-inset-left));border-radius:0 10px 10px 0!important}.spot-image-lightbox-next{right:max(8px,env(safe-area-inset-right));border-radius:10px 0 0 10px!important}
@media(max-width:700px){.spot-knowledge-entry{grid-template-columns:88px minmax(0,1fr) 28px;gap:11px;padding:8px}.spot-knowledge-entry-copy small{display:none}.spot-knowledge-entry-copy b{font-size:17px}.spot-knowledge-entry>strong{width:27px;height:27px}.exam-map-gallery{padding:14px}.exam-map-gallery-head{grid-template-columns:1fr auto;margin:-14px -14px 18px;padding:16px 14px 14px}.exam-map-gallery-head>div{grid-column:1/-1;grid-row:2}.exam-map-gallery-back{justify-self:start}.exam-map-gallery-close{justify-self:end}.exam-map-gallery-grid{gap:12px}.spot-image-lightbox-prev,.spot-image-lightbox-next{width:38px;height:60px;font-size:34px;background:rgba(0,0,0,.24)}}
.poster-coverage-supplement{margin:0 auto;padding:28px;width:min(100%,864px);background:#f3efe4;color:#1c302c}
.poster-coverage-supplement header{padding-bottom:18px;border-bottom:1px solid rgba(24,79,66,.18)}
.poster-coverage-supplement header small{color:#a86d32;font-size:9px;letter-spacing:.18em}.poster-coverage-supplement h3{margin:5px 0 4px;font-size:24px}.poster-coverage-supplement header p{color:#657773;font-size:11px;line-height:1.7}
.poster-coverage-supplement ol{display:grid;gap:9px;margin-top:18px;counter-reset:none}.poster-coverage-supplement li{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:12px;border:1px solid rgba(24,79,66,.16);border-radius:12px;background:rgba(255,255,255,.6)}
.poster-coverage-supplement li>i{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#1f6b58;color:#fff;font-size:9px;font-style:normal}.poster-coverage-supplement li p{font-size:12px;line-height:1.65}.poster-coverage-supplement li small{display:block;margin-top:4px;color:#a86d32;font-size:9px}
@media(max-width:700px){.spot-poster-copy{width:82%;padding:20px}.spot-profile-essentials{grid-template-columns:1fr}.knowledge-poster{padding:16px}.knowledge-poster>header{display:block}.knowledge-poster-stage{min-height:760px}.knowledge-poster-stage>img{object-position:35% center}.knowledge-poster-title{left:5%;right:5%;top:3%}.knowledge-poster-stage ol{left:5%;right:5%;top:31%;bottom:4%;width:auto}.knowledge-poster-stage li{padding:9px 10px}.knowledge-poster>footer{display:grid}}
.province-knowledge-tags{display:flex;flex-wrap:wrap;gap:5px}
.province-knowledge-tags em{max-width:100%;padding:3px 7px;border:1px solid rgba(88,201,144,.22);border-radius:99px;background:rgba(88,201,144,.08);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t2);font-size:9px;font-style:normal}
.province-essentials{padding-top:13px;border-top:1px solid rgba(88,201,144,.2)}
.province-essentials header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.province-essentials header span{color:#58c990;font-size:10px;font-weight:900;letter-spacing:.08em}
.province-essentials header b{color:var(--t3);font-size:9px;font-weight:600}
.province-essentials ol{display:grid;gap:4px;list-style:none}
.province-essentials li{display:grid;grid-template-columns:27px 1fr;gap:9px;align-items:start;padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.035)}
.province-essentials li i{padding-top:2px;color:#58c990;font:700 10px Georgia,serif}
.province-essentials li p{color:var(--t2);font-size:11px;line-height:1.55}
.province-question-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.province-question-meta{display:flex;gap:8px;align-items:center;margin-bottom:12px;color:var(--t3);font-size:11px}
.province-question-meta em,.province-question-meta b{padding:2px 7px;border-radius:99px;background:var(--card2);font-style:normal;color:var(--gold)}
.province-question-meta b{margin-left:auto;color:#58c990}
.province-question-card>h3{font-size:15px;line-height:1.55}
.province-question-options{display:grid;gap:6px;margin-top:11px}
.province-question-options button{display:grid;grid-template-columns:27px 1fr;gap:8px;align-items:center;padding:8px 9px;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--bg2);color:var(--t2)}
.province-question-options button i{display:grid;place-items:center;width:27px;height:27px;border-radius:7px;background:var(--card2);font-style:normal;font-weight:800}
.province-question-options button:hover,.province-question-options button.selected{border-color:var(--gold);color:var(--t)}
.province-question-options button.ok{border-color:#58c990;background:rgba(47,143,104,.12)}
.province-question-options button.no{border-color:var(--red);background:rgba(217,67,67,.1)}
.province-question-submit{width:100%;margin-top:12px}
.province-question-result>div{display:grid;gap:7px;margin-top:12px;padding:12px;border-radius:9px;font-size:12px;line-height:1.6}
.province-question-result .correct{background:rgba(47,143,104,.13);color:#8be1b2}
.province-question-result .wrong{background:rgba(217,67,67,.11);color:#f09a9a}
.province-question-result p{color:var(--t2)}
.province-question-result button{justify-self:end;color:var(--gold);font-weight:800}
.province-practice-complete{display:grid;justify-items:center;gap:10px;padding:70px 10px;text-align:center}
.province-complete-mark{display:grid;place-items:center;width:76px;height:76px;border:1px solid #7ce0ad;border-radius:50%;background:rgba(47,143,104,.18);box-shadow:0 0 40px rgba(88,201,144,.22);font-size:38px;color:#7ce0ad}
.province-practice-complete>span{margin-top:8px;color:#58c990;font-size:12px;font-weight:900;letter-spacing:.1em}
.province-practice-complete p{max-width:340px;color:var(--t2);font-size:13px;line-height:1.7}
@media(max-width:560px){.province-knowledge-card.has-image .province-knowledge-identity{grid-template-columns:96px 1fr}.province-knowledge-card img{width:96px;height:112px}.province-knowledge-title h3{font-size:19px}}
/* 手机端:layer-nav 改成可切换的底部 sheet,fab 按钮触发 */
.layer-nav-fab{display:none}
@media(max-width:768px){
  .layer-nav{display:block;position:fixed;left:8px;right:8px;top:auto;bottom:0;width:auto;max-height:62vh;border-radius:16px 16px 0 0;transform:translateY(110%);transition:transform .3s var(--ease);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
  .layer-nav.mobile-show{transform:translateY(0)}
  .layer-nav-fab{display:flex;position:fixed;right:14px;bottom:max(18px,env(safe-area-inset-bottom));align-items:center;gap:6px;padding:11px 16px;border-radius:24px;background:rgba(15,17,23,.92);backdrop-filter:blur(10px);border:1px solid var(--line);color:var(--t);font-size:13px;font-weight:600;box-shadow:var(--shadow);z-index:31}
}

/* === 兵棋推演 === */
.wg-info-panel{position:absolute;top:14px;right:14px;width:min(360px,calc(100% - 28px));max-height:calc(100% - 160px);overflow-y:auto;background:rgba(15,17,23,.94);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:14px;padding:16px 18px;z-index:10}
.wg-era{font-size:13px;font-weight:700;color:var(--gold);margin-bottom:4px}
.wg-info-panel h2{font-size:20px;font-weight:800;color:#fff;margin-bottom:8px}
.wg-desc{font-size:13px;line-height:1.7;color:var(--t2);padding:10px;background:var(--card2);border-radius:8px;border-left:3px solid var(--red)}
.wg-events-h{font-size:12px;color:var(--red);font-weight:700;margin:12px 0 6px}
.wg-event{padding:8px 10px;background:var(--card2);border-radius:8px;margin-bottom:6px;border-left:3px solid var(--gold)}
.wg-ev-year{font-size:11px;color:var(--gold);font-weight:700;margin-right:6px}
.wg-ev-name{font-size:13px;font-weight:700;color:var(--t)}
.wg-ev-desc{font-size:12px;color:var(--t3);line-height:1.5;margin-top:3px}
.wg-timeline{position:absolute;bottom:70px;left:14px;right:14px;display:flex;justify-content:space-between;z-index:10}
.wg-dot{cursor:pointer;flex:1;display:flex;flex-direction:column;align-items:center;transition:transform .2s}
.wg-dot:hover{transform:translateY(-3px)}
.wg-dot-circle{width:28px;height:28px;border-radius:50%;background:#5a6478;border:2px solid #fff;color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.wg-dot.passed .wg-dot-circle{background:#d94343}
.wg-dot.current .wg-dot-circle{background:#f0c876;color:#1a1a1a;transform:scale(1.3);box-shadow:0 0 0 4px rgba(240,200,118,.3)}
.wg-dot-label{font-size:10px;color:var(--t3);margin-top:3px}
.wg-dot.current .wg-dot-label{color:var(--gold);font-weight:700}
.wg-controls{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:rgba(15,17,23,.92);border:1px solid var(--line);border-radius:30px;padding:8px 14px;z-index:11}
.wg-legend{position:absolute;top:14px;left:14px;background:rgba(15,17,23,.85);backdrop-filter:blur(12px);padding:8px 12px;border-radius:10px;border:1px solid var(--line);z-index:10;font-size:11px;color:var(--t2);display:flex;flex-direction:column;gap:4px}
.wg-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
@media(max-width:768px){
  .wg-info-panel{position:relative;top:auto;right:auto;width:auto;max-height:40vh;margin:0;border-radius:14px 14px 0 0}
  .wg-timeline{display:none}.wg-legend{display:none}
}

/* overflow-x:clip 与 hidden 同样裁掉横向溢出,但不产生滚动容器,
   否则 html/body 双 hidden 会破坏 position:sticky(答题导航吸底) */
html,body{overflow-x:clip}

/* 吸底导航终局修复:brand-protection 给题卡压 overflow:hidden 裁水印,
   但水印 ::before 是 inset:0 本就不溢出;双类提权放开裁剪,sticky 才有活动空间 */
body[data-view="quiz"].quiz-answering .practice-card.practice-card{overflow:visible}

/* GEO FAQ：桌面保留内容索引，手机将低频信息降为页尾的渐进展开入口。 */
.geo-faq{width:min(100%,800px);margin:0 auto;padding:34px 20px 30px;color:#1f3d49;font-size:14px;line-height:1.8}
.geo-faq-panel,.geo-faq-item{border:0}
.geo-faq-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(15,92,108,.14);border-radius:14px;background:#f8fbfa;cursor:pointer;list-style:none}
.geo-faq-entry::-webkit-details-marker,.geo-faq-item>summary::-webkit-details-marker{display:none}
.geo-faq-entry span{font-size:14px;font-weight:760;letter-spacing:-.01em}
.geo-faq-entry small{color:#718891;font-size:11px;font-weight:650}
.geo-faq-entry::after{content:"＋";color:#237f88;font-size:17px;line-height:1}
.geo-faq-panel[open]>.geo-faq-entry::after{content:"−"}
.geo-faq-content>h2{margin:0 0 14px;font-size:20px;line-height:1.35}
.geo-faq-list{display:grid;gap:2px}
.geo-faq-item{border-top:1px solid rgba(15,92,108,.12)}
.geo-faq-item:last-child{border-bottom:1px solid rgba(15,92,108,.12)}
.geo-faq-item>summary{position:relative;padding:13px 30px 13px 0;cursor:pointer;list-style:none;font-weight:700;line-height:1.55}
.geo-faq-item>summary::after{content:"＋";position:absolute;right:2px;top:15px;color:#56808a;font-size:15px;line-height:1}
.geo-faq-item[open]>summary::after{content:"−"}
.geo-faq-item>p{margin:0 0 16px;color:#5c727b;font-size:13px;line-height:1.85}
@media(min-width:769px){.geo-faq-panel[open]>.geo-faq-entry{display:none}}
@media(max-width:768px){
  .geo-faq{padding:12px 16px calc(92px + env(safe-area-inset-bottom));font-size:13px}
  .geo-faq-entry{min-height:52px;padding:12px 14px;background:rgba(255,255,255,.72);box-shadow:0 8px 22px rgba(13,71,82,.04)}
  .geo-faq-entry span{font-size:13px}
  .geo-faq-entry small{margin-left:auto}
  .geo-faq-content{padding:4px 14px 12px;border:1px solid rgba(15,92,108,.12);border-top:0;border-radius:0 0 14px 14px;background:rgba(255,255,255,.72)}
  .geo-faq-content>h2{display:none}
  .geo-faq-item>summary{padding:12px 28px 12px 0;font-size:12px}
  .geo-faq-item>summary::after{top:14px}
  .geo-faq-item>p{font-size:12px;line-height:1.75}
}

/* ===== 会员 M3 付费墙：锁层与解锁面板（状态由服务端 API 决定，视觉沿用现有体系） ===== */
.quiz-knowledge-map.mwall-locked .kmp-frame{position:relative}
.quiz-knowledge-map.mwall-locked .kmp-frame img{display:block}
.mwall-lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px;text-align:center;background:rgba(6,24,32,.55);color:#f3fbfa;border-radius:inherit;pointer-events:none}
.mwall-lock svg{width:30px;height:30px;fill:#8dded2}
.mwall-lock b{font-size:13px;letter-spacing:.02em}
.mwall-lock em{font-size:11px;color:rgba(223,247,242,.85);font-style:normal;line-height:1.5;max-width:240px}
.quiz-knowledge-map.mwall-member .kmp-frame i{color:#1d7d72}
.mwall-sheet-backdrop{position:fixed;inset:0;z-index:100100;display:flex;align-items:flex-end;justify-content:center;background:rgba(3,10,16,.55);backdrop-filter:blur(6px)}
.mwall-sheet{width:100%;max-width:560px;max-height:86dvh;overflow:auto;background:#f8fbfa;color:#1f3d49;border-radius:18px 18px 0 0;box-shadow:0 -12px 48px rgba(3,24,32,.28);padding:18px 18px calc(16px + env(safe-area-inset-bottom));animation:mwallSheetIn .22s ease-out}
@keyframes mwallSheetIn{from{transform:translateY(18px);opacity:.4}to{transform:none;opacity:1}}
@media(min-width:769px){
  .mwall-sheet-backdrop{align-items:center}
  .mwall-sheet{border-radius:16px;max-width:420px;padding:22px 22px 20px}
}
.mwall-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.mwall-sheet-head b{font-size:16px;letter-spacing:-.01em}
.mwall-sheet-close{flex:none;width:36px;height:36px;border:1px solid rgba(15,92,108,.16);border-radius:99px;background:#fff;color:#31555f;font-size:18px;line-height:1;cursor:pointer}
.mwall-sheet-sub{margin:0 0 14px;font-size:12.5px;line-height:1.7;color:#5c727b}
.mwall-sheet-body{display:grid;gap:10px}
.mwall-state-note{padding:12px 14px;border:1px solid rgba(15,92,108,.14);border-radius:12px;background:#fff;font-size:13px;line-height:1.7;color:#31555f}
.mwall-state-note.ok{border-color:rgba(29,125,114,.35);color:#1d7d72}
.mwall-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;border:0;border-radius:12px;background:#237f88;color:#fff;font-size:15px;font-weight:700;cursor:pointer}
.mwall-cta:focus-visible,.mwall-plan-cta:focus-visible,.mwall-sheet-close:focus-visible{outline:2px solid #17545a;outline-offset:2px}
.mwall-plans{display:grid;gap:10px}
.mwall-plan{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(15,92,108,.14);border-radius:14px;background:#fff}
.mwall-plan-price b{font-size:20px;color:#17545a}
.mwall-plan-price span{margin-left:4px;font-size:12px;color:#718891}
.mwall-plan-name{font-size:12px;color:#5c727b}
.mwall-plan-cta{min-height:44px;padding:0 14px;border:0;border-radius:99px;background:#237f88;color:#fff;font-size:13px;font-weight:700;cursor:pointer}
.mwall-plan-cta.is-disabled,.mwall-plan-cta:disabled{background:#c9d8da;color:#6c8388;cursor:not-allowed}
.mwall-plan-note{margin:10px 2px 0;font-size:11px;color:#718891}
.mwall-consent{display:flex;align-items:flex-start;gap:8px;margin:2px 2px 0;font-size:12px;line-height:1.6;color:#5c727b;cursor:pointer}
.mwall-consent input{flex:none;width:16px;height:16px;margin:1px 0 0;accent-color:#237f88}
.mwall-consent a{color:#17545a;text-decoration:underline;text-underline-offset:2px}
.mwall-sheet-error{margin-top:10px;font-size:12px;line-height:1.6;color:#a33d3d}
.mwall-note{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:100120;padding:10px 16px;border-radius:99px;background:rgba(7,24,33,.92);color:#f3fbfa;font-size:12.5px}
@media(max-width:400px){
  .mwall-sheet{padding:14px 14px calc(12px + env(safe-area-inset-bottom))}
  .mwall-plan{grid-template-columns:1fr;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  .mwall-sheet,.mwall-sheet-backdrop,.mwall-note{transition:none!important;animation:none!important}
}

.mwall-payment-channel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;font-size:13px}.mwall-payment-channel select{font:inherit;border:1px solid #d8e3e0;border-radius:8px;background:#fff;padding:8px 12px}.mwall-payment-result{margin-top:18px;text-align:center}.mwall-payment-result svg{width:min(230px,100%);height:auto;background:white;padding:10px;border-radius:12px}.mwall-payment-result p{font-size:12px;line-height:1.6;color:#526968}.mwall-payment-result a,.mwall-payment-result button{display:inline-block;padding:12px 20px;border:0;border-radius:10px;background:#17545a;color:white;font:inherit;text-decoration:none}

.quiz-chapter-duration{display:block;margin-top:4px;color:var(--t3,#68758a);font:400 12px/1.6 var(--font-ui);}
.quiz-chapter-duration b{font-weight:500;font-variant-numeric:tabular-nums;}

/* 手机答题时给题目操作让位；退出题流后恢复同步提示与导航。 */
@media(max-width:768px){
  body[data-view="quiz"].quiz-answering #jx-sync-indicator,
  body[data-view="quiz"].quiz-answering #jxTabbar{display:none!important;}
  body[data-view="quiz"].quiz-answering{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;}
  body[data-view="quiz"].quiz-answering .quiz-mobile-actionbar{bottom:0!important;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;}
}

/* Session checks report progress without covering the quiz action bar. */
.route-gate-status{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;transform:translateX(-50%);z-index:10020;display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100vw - 24px);padding:12px 16px;border:1px solid var(--line,#ccd9e5);border-radius:12px;background:var(--card,#fff);color:var(--t,#17354f);box-shadow:0 8px 24px #17354f1f;font-size:14px}.route-gate-status span{min-width:0}.route-gate-status button{flex:none;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;padding:8px;cursor:pointer}.mwall-unavailable-preview{display:block;width:100%;max-height:300px;object-fit:contain;margin:16px 0}

/* === 省份索引列表:省头像 + A-Z 侧栏(考点地图·按省) === */
/* 抽屉改为纵向 flex:tabs 固定,ln-content 自己滚动,A-Z 栏随列表常驻。 */
.layer-nav{width:252px;display:flex;flex-direction:column}
.ln-content{flex:1;min-height:0;display:flex;flex-direction:column}
.lnpv{flex:1;min-height:230px;display:grid;grid-template-columns:17px minmax(0,1fr);gap:8px}
.lnpv-rail{display:flex;flex-direction:column;justify-content:space-between;padding:3px 0;user-select:none}
.lnpv-rail button{padding:0;border:0;background:transparent;color:var(--t3);font:700 8px/13px Georgia,serif;cursor:pointer;text-align:center;border-radius:4px;transition:color .15s,background .15s}
.lnpv-rail button:hover:not(:disabled){color:var(--gold)}
.lnpv-rail button.on{color:#0d1117;background:var(--gold)}
.lnpv-rail button:disabled{opacity:.15;cursor:default}
.lnpv-list{position:relative;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:2px}
.lnpv-group+.lnpv-group{margin-top:5px}
.lnpv-letter{position:sticky;top:0;z-index:2;display:flex;align-items:baseline;gap:6px;padding:3px 4px 4px;background:rgba(15,17,23,.97);backdrop-filter:blur(8px)}
.lnpv-letter b{color:var(--gold);font:800 11px Georgia,serif}
.lnpv-letter span{color:var(--t3);font-size:8px;letter-spacing:.06em}
.lnpv-item{display:grid;grid-template-columns:minmax(0,1fr) 30px 30px;gap:4px;margin:3px 0}
.lnpv-item .ln-prov-quiz{writing-mode:horizontal-tb;font-size:9px}
.ln-world-directory{justify-self:start;padding:4px 9px;writing-mode:horizontal-tb;font-size:10px}
.lnpv-row{position:relative;min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:46px;padding:5px 8px 5px 6px;border-radius:10px;color:#aebdc1;background:#151e27;border:1px solid rgba(137,160,168,.17);cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;font-size:12px;font-weight:650;text-align:left;overflow:hidden}
.lnpv-row:hover{color:#e9f2f3;background:#1b2a35;border-color:#5e8290;transform:translateY(-1px)}
.lnpv-row .ln-qcount{justify-self:end;padding:1px 5px}
.lnpv-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lnpv-avatar{position:relative;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;overflow:hidden;background:radial-gradient(circle at 30% 20%,#26333d,#131a21);border:1px solid rgba(137,160,168,.22);flex:none}
.lnpv-avatar i{font:800 13px/1 "Songti SC","STSong",serif;font-style:normal;color:#cfe3ea;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.lnpv-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease,ease)}
.lnpv-row:hover .lnpv-avatar img{transform:scale(1.1)}
.lnpv-avatar.is-fallback{background:linear-gradient(135deg,rgba(240,200,118,.16),rgba(112,212,236,.10))}
.lnpv-row.on{color:#e9fbff;background:#17384a;border-color:#70d4ec;font-weight:750;box-shadow:inset 3px 0 #70d4ec,0 0 0 1px rgba(112,212,236,.18)}
.lnpv-row.on::after{content:'当前';position:absolute;top:2px;right:5px;color:#8fe4f6;font-size:7px;font-weight:800;letter-spacing:.06em}
.lnpv-row.on .lnpv-avatar{border-color:rgba(112,212,236,.55);box-shadow:0 0 0 2px rgba(112,212,236,.16)}
.lnpv-row.completed{color:#d8f5ff;background:#173d50;border-color:#69c7e9}
.lnpv-row.completed .lnpv-name::before{content:'✓';display:inline-grid;place-items:center;width:13px;height:13px;margin-right:4px;border-radius:50%;color:#12313d;background:#9de1f5;font-size:8px;font-weight:900;vertical-align:1px}
.lnpv-row.completed .ln-qcount{color:#e2f8ff}
/* 省题库抽屉头部头像 */
.province-practice-header>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px}
.province-practice-header>div>span{grid-column:2}
.province-practice-header>div>h2{grid-column:2;margin:2px 0 0}
.province-practice-avatar{grid-column:1;grid-row:1/3;position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 30% 20%,#26333d,#131a21);border:1px solid rgba(137,160,168,.25);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.province-practice-avatar i{font:800 18px/1 "Songti SC","STSong",serif;font-style:normal;color:#cfe3ea}
.province-practice-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.province-practice-avatar.is-fallback{background:linear-gradient(135deg,rgba(240,200,118,.16),rgba(112,212,236,.10))}
@media(max-width:768px){
  .lnpv-rail button:disabled{display:none}
  .lnpv-rail{gap:2px;justify-content:flex-start}
  .lnpv{min-height:320px}
  .lnpv-item{grid-template-columns:minmax(0,1fr) 40px 40px}
  .lnpv-row{min-height:52px;grid-template-columns:40px minmax(0,1fr) auto;font-size:13px}
  .lnpv-avatar{width:40px;height:40px}
  .lnpv-avatar i{font-size:16px}
}

/* ---------- 错题重现次数（review-repeat-v1）：局部新样式，不触碰全局布局 ---------- */
.pm-round-pill{padding:8px 14px;border:1px solid var(--line,#d5dfe9);border-radius:18px;background:#edf2f7;color:inherit;font-size:12px}
.pm-round-pill.on{background:var(--accent,#087bff);color:#fff;border-color:transparent}
.pm-count.is-off{opacity:.55}
.rr-count-toggle{margin-left:6px}
.rr-menu{position:fixed;z-index:60;min-width:240px;max-width:300px;padding:14px;border:1px solid #d5dfe9;border-radius:14px;background:#fff;box-shadow:0 10px 32px rgba(10,35,72,.18);display:flex;flex-direction:column;gap:10px}
.rr-menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}
.rr-menu-mini{padding:4px 12px;border-radius:12px;border:1px solid #d5dfe9;background:#eaf3ff;color:#087bff;font-size:12px}
.rr-menu-mini.is-off{background:#f1f4f8;color:#8293a8}
.rr-menu-pills{flex-wrap:wrap;justify-content:flex-start}
.rr-menu-pill{margin:2px;padding:6px 10px;border:1px solid #d5dfe9;border-radius:14px;background:#f4f8fc;font-size:12px}
.rr-menu-pill.on{background:#087bff;color:#fff;border-color:transparent}
.rr-menu-note{color:#71849c;font-size:11px;line-height:1.6}
.rr-menu-actions{display:flex;gap:8px}
.rr-menu-actions .btn{padding:6px 14px;font-size:12px}

/* ===== B08 merged from assets/css/modern-ui.css ===== */
/* =========================================================
   导游学霸 · Modern editorial learning system
   Direction: archive-tech / paper atlas / exam command center
   ========================================================= */
:root{
  --bg:#ffffff;
  --bg2:#ebe7dd;
  --card:#fffdf8;
  --card2:#f0ece3;
  --line:#d8d1c4;
  --t:#1e2428;
  --t2:#5f6668;
  --t3:#8b918e;
  --gold:#b7812e;
  --jade:#276d67;
  --red:#b43c32;
  --blue:#315b78;
  --purple:#725d88;
  --orange:#c66b35;
  --ok:#276d67;
  --warn:#b7812e;
  --bad:#b43c32;
  --shadow:0 14px 35px rgba(52,44,34,.08);
  --shadow-lg:0 26px 70px rgba(52,44,34,.14);
  --r:10px;
  --r-s:6px;
  --r-l:18px;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* 兵棋推演总入口：现有历史推演只是其中一个方向。 */
.campaign-hub{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:42px 0 80px}
.campaign-hero{padding:42px 0 34px;border-bottom:1px solid var(--line)}
.campaign-hero>button{border:0;background:transparent;color:var(--t2);font:inherit;cursor:pointer;padding:0 0 32px}
.campaign-hero>span{display:block;color:var(--accent);font-size:11px;letter-spacing:.18em}
.campaign-hero h1{margin:10px 0 12px;font-size:clamp(42px,7vw,82px);line-height:.95;letter-spacing:-.055em}
.campaign-hero p{max-width:650px;margin:0;color:var(--t2);font-size:16px;line-height:1.8}
.campaign-directions{display:grid;gap:12px;padding-top:20px}
.campaign-direction{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:22px;min-height:150px;padding:24px 26px;border:1px solid var(--line);border-radius:22px;background:var(--card);transition:transform .2s,border-color .2s}
.campaign-direction.ready:hover{transform:translateY(-2px);border-color:var(--accent)}
.campaign-direction.ready{cursor:pointer}
.campaign-direction.ready:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:3px}
.campaign-direction-no{align-self:start;color:var(--t3);font-size:13px}
.campaign-direction-copy>span{display:block;margin-bottom:8px;color:var(--accent);font-size:11px;letter-spacing:.12em}
.campaign-direction-copy h2{margin:0 0 8px;font-size:clamp(20px,2.4vw,30px);letter-spacing:-.025em}
.campaign-direction-copy p{max-width:690px;margin:0;color:var(--t2);line-height:1.65}
.campaign-direction-copy em{display:block;margin-top:13px;color:var(--t3);font-size:12px;font-style:normal}
.campaign-enter{min-width:126px;padding:13px 16px;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#fff;font-weight:700;text-align:center}
.campaign-enter b{margin-left:10px}
.campaign-planned-label{min-width:110px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;color:var(--t3);font-size:12px;text-align:center}
.campaign-direction.planned{opacity:.72}
@media(max-width:720px){
  .campaign-hub{width:min(100% - 24px,1120px);padding-top:10px}
  .campaign-hero{padding:24px 4px}.campaign-hero>button{padding-bottom:24px}
  .campaign-direction{grid-template-columns:34px 1fr;padding:20px 16px;gap:12px;min-height:0;border-radius:17px}
  .campaign-enter,.campaign-planned-label{grid-column:2;width:max-content;margin-top:2px}
  .campaign-direction-copy p{font-size:14px}
}
html,body{background:var(--bg);color:var(--t);font-family:var(--font-ui)}
body:not(.on-home){background:var(--bg);color:var(--t)}
::selection{background:#d7a451;color:#fff}

/* shell */
.sidebar{width:214px;background:#202a2b;border-right:0;color:#f4f1e9;box-shadow:12px 0 30px rgba(35,42,39,.1)}
.sb-brand{height:76px;padding:18px 18px;border-bottom:1px solid rgba(255,255,255,.12)}
.sb-brand-mark{width:38px;height:38px;border-radius:8px;background:var(--red);color:#fff;box-shadow:none;font-family:"Songti SC",serif}
.sb-brand-name b{color:#f8f2e7;font-weight:700;letter-spacing:.08em}
.sb-progress{margin:18px 14px;padding:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:10px}
.sb-progress-num b{background:none;color:#e8c27a;-webkit-text-fill-color:initial}
.sb-progress-bar{background:rgba(255,255,255,.13)}.sb-progress-bar i{background:#d79a3f}
.sb-progress-label{color:rgba(244,241,233,.58)}
.sb-nav{padding:8px 12px}.sb-nav-divider{background:rgba(255,255,255,.12);margin:14px 4px}
.sb-nav-item{padding:12px 12px;color:rgba(244,241,233,.62);border-radius:7px}
.sb-nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.sb-nav-item.on{background:#f4f1e9;color:#1f2c2b}
.sb-nav-item.on::before{left:0;width:3px;background:var(--red)}
.sb-footer{border-top:1px solid rgba(255,255,255,.12);padding:12px}.sb-streak{color:rgba(244,241,233,.58);font-size:11px;letter-spacing:.08em}.sb-streak b{color:#e4ba6a;font:18px Georgia,serif}.sb-toggle{background:rgba(255,255,255,.08);color:rgba(244,241,233,.68)}
main{margin-left:214px;padding:28px 38px;background:var(--bg)}
main.map-full{margin-left:214px;padding:0}
.mobile-menu-btn{background:#202a2b;color:#fff;box-shadow:0 8px 20px rgba(32,42,43,.22)}
.workspace-bar{position:fixed;z-index:80;left:214px;right:0;top:0;height:58px;padding:0 38px;background:rgba(244,241,233,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between}
.workspace-bar>div{display:flex;align-items:baseline;gap:14px}.workspace-bar span{font:10px Georgia,serif;letter-spacing:.18em;color:var(--red)}.workspace-bar b{font-size:14px;color:#243130}.workspace-bar p{font-size:11px;color:var(--t3)}
body[data-view="map"] .workspace-bar,body[data-view="redmap"] .workspace-bar,body[data-view="classicwar"] .workspace-bar,body[data-view="guide"] .workspace-bar,body[data-view="interview"] .workspace-bar{display:none}
body:not([data-view="map"]):not([data-view="redmap"]):not([data-view="classicwar"]):not([data-view="guide"]):not([data-view="interview"]) main{padding-top:86px}
body[data-view="classicwar"] main{height:100vh;overflow:hidden;padding-top:0}

/* home */
.learn-home{max-width:1320px;margin:0 auto;padding:0 0 72px}
.home-workspace-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.58fr);gap:16px;align-items:stretch}
.learn-masthead{display:block;min-height:430px;padding:54px 47% 46px 42px;border:1px solid #d8d1c4;border-radius:14px;background:
  linear-gradient(90deg,rgba(255,253,248,.98) 0%,rgba(255,253,248,.88) 44%,rgba(255,253,248,.12) 100%),
  url("../img/ui/learning-atlas-hero.png") center/cover no-repeat;box-shadow:var(--shadow);position:relative;overflow:hidden}
.learn-masthead:before{content:"学习档案 / 2026";position:absolute;right:28px;top:24px;color:rgba(30,36,40,.55);font:11px Georgia,serif;letter-spacing:.18em}
.eyebrow,.route-kicker{color:var(--red);font-size:11px;letter-spacing:.16em;font-weight:800}
.learn-masthead h1{font-family:"Songti SC","STSong",serif;font-size:clamp(42px,5vw,72px);color:#1e2929;letter-spacing:-.06em;margin:14px 0 16px}
.learn-masthead h1 em{color:var(--red)}
.learn-masthead p{max-width:520px;color:#596360;font-size:16px;line-height:1.8}
.home-command-panel{padding:25px;background:#202d2d;color:#f6f1e8;border-radius:14px;display:flex;flex-direction:column;gap:18px;box-shadow:var(--shadow)}
.command-label{font:10px Georgia,serif;letter-spacing:.18em;color:#e2b66c;border-bottom:1px solid rgba(255,255,255,.13);padding-bottom:14px}
.home-command-panel .home-status{margin:0;padding:3px 0 16px;display:grid;grid-template-columns:auto 1fr;align-items:end;gap:12px;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.13);box-shadow:none}
.home-status>b{font:36px Georgia,serif;color:var(--red)}.home-status>span{color:var(--t2)}.home-status button{grid-column:1/-1;background:var(--red);border-radius:6px;padding:10px 12px}
.home-command-panel .home-status>b{font-size:56px;color:#e8c27a}.home-command-panel .home-status>span{color:rgba(246,241,232,.7);font-size:13px;padding-bottom:7px}
.continue-card{margin:0;background:#ffffff;color:#243130;border:1px solid rgba(41,66,77,.14);border-radius:8px;box-shadow:none;padding:17px}
.continue-card span{color:#e5bd6e}.continue-card em{color:#fff}
.home-command-panel .continue-card span,.home-command-panel .continue-card em{color:var(--red)}.home-command-panel .continue-card b{font-size:14px}
.empty-command{padding:18px;background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.18);display:grid;gap:3px}.empty-command span{font-size:11px;color:rgba(246,241,232,.55)}.empty-command b{font-size:14px}
.command-actions{display:grid;gap:8px;margin-top:auto}.command-actions button{padding:13px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);border-radius:7px;display:grid;grid-template-columns:30px 1fr;gap:2px 9px;text-align:left}.command-actions button:hover{background:rgba(255,255,255,.11)}.command-actions span{grid-row:1/3;font:13px Georgia,serif;color:#e8c27a}.command-actions b{font-size:13px}.command-actions em{font-style:normal;font-size:10px;color:rgba(246,241,232,.55)}
.subject-section{padding:52px 0 20px}.section-heading span{color:var(--red)}.section-heading h2{color:#202c2b}.course-heading{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:15px}.course-heading p{font-size:12px;color:var(--t3)}
.subject-grid{grid-template-columns:repeat(2,1fr);gap:12px}.subject-card{min-height:205px;background:var(--card);border:1px solid var(--line);border-radius:9px;box-shadow:none}
.subject-card:before{height:4px}.subject-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}
.subject-id{border-color:var(--subject);color:var(--subject);border-radius:4px}.subject-card h3{color:#253232}.subject-card p{color:var(--t2)}.subject-meta{color:var(--t3)}.subject-enter{color:var(--subject)}

/* unified subject / chapter learning architecture */
.course-workspace{max-width:1320px;margin:0 auto;padding-bottom:70px}
.course-topline{min-height:62px;margin-bottom:14px;padding:0 16px;display:grid;grid-template-columns:auto minmax(240px,1fr) minmax(260px,.8fr);align-items:center;gap:18px;background:#202d2d;color:#f4f1e9;border-radius:10px;border-top:3px solid var(--course)}
.course-topline>button{padding:9px 12px;border:1px solid rgba(255,255,255,.16);border-radius:6px;color:#f1c67d;font-size:11px}.course-topline>div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:9px}.course-topline span{color:#e5b96e;font:10px Georgia,serif;letter-spacing:.12em}.course-topline b{font-size:14px}.course-topline p{font-size:11px;color:rgba(244,241,233,.58);text-align:right}
.course-shell{display:grid;grid-template-columns:210px minmax(0,1fr) 230px;gap:12px;align-items:start}
.chapter-rail,.course-stage,.course-inspector{background:var(--card);border:1px solid var(--line);border-radius:10px}
.chapter-rail{position:sticky;top:72px;max-height:calc(100vh - 96px);overflow:hidden}.chapter-rail-head{padding:16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.chapter-rail-head span,.inspector-kicker{color:var(--red);font:9px Georgia,serif;letter-spacing:.16em}.chapter-rail-head b{font-size:10px;color:var(--t3)}
.chapter-rail-list{padding:7px;max-height:calc(100vh - 148px);overflow:auto}.chapter-rail-list button{width:100%;min-height:52px;padding:8px 9px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;text-align:left;border-left:2px solid transparent;border-radius:5px;color:var(--t2)}.chapter-rail-list button:hover{background:#f4efe6}.chapter-rail-list button.on{background:#f1e7dc;border-left-color:var(--course);color:var(--t)}.chapter-rail-list i{font:10px Georgia,serif;color:var(--t3)}.chapter-rail-list span{font-size:11px;line-height:1.35}.chapter-rail-list em{font-size:9px;font-style:normal;color:var(--t3)}
.course-stage{min-width:0;min-height:620px;overflow:hidden}.course-inspector{position:sticky;top:72px;padding:18px;background:#f0ece3}.course-inspector h3{margin:9px 0 16px;font:22px/1.25 "Songti SC","STSong",serif;color:#263332}.course-inspector ol{display:grid;gap:10px}.course-inspector li{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}.course-inspector li i{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;font:10px Georgia,serif;color:var(--t3)}.course-inspector li.on i{background:var(--red);border-color:var(--red);color:#fff}.course-inspector li div{display:grid;gap:2px}.course-inspector li b{font-size:11px}.course-inspector li span{font-size:9px;color:var(--t3)}
.inspector-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.inspector-stats div{padding:11px;background:var(--card);border:1px solid var(--line);display:grid;gap:2px}.inspector-stats b{font:23px Georgia,serif;color:var(--course)}.inspector-stats span{font-size:9px;color:var(--t3)}.inspector-map{padding:12px;background:#243333;color:#fff}.inspector-map span{font-size:9px;color:#e5b96e}.inspector-map b{display:block;margin:5px 0;font-size:12px}.inspector-map p{font-size:9px;line-height:1.6;color:rgba(255,255,255,.56)}
.course-welcome{padding:42px}.course-welcome h1{margin:9px 0 8px;font:40px/1.15 "Songti SC","STSong",serif}.course-welcome>p{max-width:620px;color:var(--t2);line-height:1.75}.framework-route{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.framework-route article{min-height:126px;padding:20px;display:grid;grid-template-columns:34px 1fr;align-content:center;gap:4px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.framework-route article:nth-child(2n){border-right:0}.framework-route article:nth-last-child(-n+2){border-bottom:0}.framework-route i{grid-row:1/3;font:22px Georgia,serif;color:var(--red)}.framework-route b{font-size:14px}.framework-route span{font-size:10px;color:var(--t3)}.course-welcome-list{margin-top:20px;padding:16px;border-left:3px solid var(--course);background:#f1ece3;display:grid;gap:3px}.course-welcome-list b{font-size:12px}.course-welcome-list span{font-size:10px;color:var(--t3)}
.chapter-stage-head{padding:26px 28px 20px}.chapter-stage-head>span{font-size:10px;color:var(--course);font-weight:800}.chapter-stage-head h1{margin:7px 0 8px;font:32px/1.2 "Songti SC","STSong",serif}.chapter-stage-head p{font-size:12px;line-height:1.7;color:var(--t2)}
.chapter-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f4f0e8}.chapter-tabs button{height:48px;border-right:1px solid var(--line);color:var(--t2);font-size:11px}.chapter-tabs button:last-child{border-right:0}.chapter-tabs i{margin-right:6px;font:9px Georgia,serif;color:var(--t3)}.chapter-tabs button.on{background:var(--card);box-shadow:inset 0 -3px var(--course);color:var(--t);font-weight:800}.chapter-tabs button.on i{color:var(--course)}
.chapter-tab-panel{min-height:430px;padding:24px 28px 30px}.route-intro span,.chapter-check-panel header span{color:var(--red);font-size:9px;font-weight:800;letter-spacing:.12em}.route-intro h2,.chapter-check-panel h2,.relation-panel h2{margin:7px 0 6px;font:25px/1.25 "Songti SC","STSong",serif}.route-intro p,.chapter-check-panel header p{font-size:11px;color:var(--t2);line-height:1.7}.route-cards{display:grid;gap:9px;margin-top:22px}.route-cards button{min-height:112px;padding:16px;display:grid;grid-template-columns:38px 1fr auto;grid-template-rows:auto auto 1fr;text-align:left;border:1px solid var(--line);border-radius:7px;background:#fffefa}.route-cards button:hover{border-color:var(--course);transform:translateX(3px)}.route-cards i{grid-row:1/4;font:24px Georgia,serif;color:var(--course)}.route-cards span{font:8px Georgia,serif;letter-spacing:.14em;color:var(--t3)}.route-cards b{font-size:14px}.route-cards p{font-size:10px;color:var(--t3);margin-top:3px}.route-cards em{grid-column:3;grid-row:1/4;align-self:center;font-size:10px;font-style:normal;color:var(--course)}
.knowledge-panel{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px}.knowledge-index{display:grid;align-content:start;gap:5px}.knowledge-index button{min-height:48px;padding:9px;display:grid;grid-template-columns:23px 1fr;gap:2px 6px;text-align:left;border:1px solid var(--line);border-radius:5px}.knowledge-index button.on{background:#263636;color:#fff;border-color:#263636}.knowledge-index i{grid-row:1/3;font:9px Georgia,serif;color:var(--red)}.knowledge-index span{font-size:10px}.knowledge-index em{font-size:8px;font-style:normal;color:var(--t3)}.knowledge-reader{min-height:390px;padding:24px;background:#263636;color:#f5f0e8;position:relative;overflow:hidden}.knowledge-reader:after{content:"";position:absolute;width:220px;height:220px;right:-80px;top:-90px;border:1px solid rgba(255,255,255,.09);border-radius:50%}.reader-kicker{font:9px Georgia,serif;letter-spacing:.16em;color:#e4b86f}.knowledge-reader h2{margin:12px 0 8px;font:29px "Songti SC","STSong",serif}.reader-lead{font-size:11px;line-height:1.75;color:rgba(255,255,255,.62)}.reader-block{margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.13);display:grid;gap:6px}.reader-block span{font-size:9px;color:#e4b86f}.reader-block b{font-size:12px;line-height:1.65;font-weight:500}.reader-links{display:flex;gap:7px;margin-top:20px}.reader-links button{padding:9px 11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);border-radius:5px;color:#fff;font-size:9px}
.relation-panel header{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:22px}.relation-panel header>div>span{font:9px Georgia,serif;color:var(--red);letter-spacing:.16em}.relation-panel header p{font-size:10px;color:var(--t3);line-height:1.6}.relation-canvas{position:relative;height:330px;margin-top:18px;background:#243332;overflow:hidden;border-radius:8px}.relation-canvas:before,.relation-canvas:after{content:"";position:absolute;inset:14%;border:1px solid rgba(255,255,255,.08);border-radius:50%}.relation-canvas:after{inset:30%}.relation-center{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:150px;min-height:82px;padding:14px;display:grid;place-items:center;text-align:center;background:#f4f1e9;color:var(--t);border-radius:50%;box-shadow:0 10px 30px rgba(0,0,0,.25)}.relation-center span{font:9px Georgia,serif;color:var(--red)}.relation-center b{font:13px/1.35 "Songti SC",serif}.relation-node{position:absolute;z-index:3;width:125px;min-height:56px;padding:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;text-align:left;display:grid;grid-template-columns:20px 1fr;gap:2px 5px}.relation-node:hover,.relation-node.on{background:var(--red);border-color:#e5b96e}.relation-node i{grid-row:1/3;color:#e5b96e;font:9px Georgia,serif}.relation-node b{font-size:9px}.relation-node span{font-size:8px;color:rgba(255,255,255,.55)}.relation-node.n1{left:4%;top:12%}.relation-node.n2{right:4%;top:12%}.relation-node.n3{left:3%;bottom:14%}.relation-node.n4{right:3%;bottom:14%}.relation-node.n5{left:38%;top:5%}.relation-node.n6{left:39%;bottom:5%}.map-rule{margin-top:10px;padding:12px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:#ffffff}.map-rule b{font-size:10px}.map-rule span{font-size:9px;color:var(--t3)}.map-rule button{font-size:9px;color:var(--red)}
.chapter-check-panel header{padding-bottom:18px;border-bottom:1px solid var(--line)}.check-modes{display:grid;gap:9px;margin-top:16px}.check-modes article{min-height:82px;padding:13px;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:#fffefa}.check-modes i{font:18px Georgia,serif;color:var(--red)}.check-modes div{display:grid;gap:4px}.check-modes b{font-size:12px}.check-modes span{font-size:9px;color:var(--t3)}.check-modes button{padding:8px 12px;background:var(--red);color:#fff;border-radius:5px;font-size:10px}.check-modes article.disabled{opacity:.55}.check-modes em{font-size:9px;font-style:normal;color:var(--t3)}

/* common page hierarchy */
.view-head{padding:18px 0 20px;border-bottom:1px solid var(--line);margin-bottom:22px}.view-head h1{color:#202c2b;background:none;-webkit-text-fill-color:initial;font-family:"Songti SC","STSong",serif;font-size:34px}.view-head p{color:var(--t2)}.page-kicker{display:block;margin-bottom:7px;color:var(--red);font:10px Georgia,serif;letter-spacing:.18em}
.simple-page{max-width:1120px;padding:38px 0 70px}.simple-head h1{color:#202c2b;font-family:"Songti SC","STSong",serif}.simple-head p{color:var(--t2)}
.visual-tool-grid{gap:14px}.visual-tool-grid button{background:var(--card);border:1px solid var(--line);border-radius:11px;color:var(--t);box-shadow:none}.visual-tool-grid button:hover{border-color:var(--red);transform:translateY(-3px);box-shadow:var(--shadow)}
.visual-tool-grid i{background:#f1ddd4;color:var(--red)}.visual-tool-grid b{color:#202c2b}.visual-tool-grid span{color:var(--t2)}.visual-tool-grid em{color:var(--red)}

/* quiz navigation + chapter lesson */
.quiz-page{max-width:1120px;padding:28px 0 72px}
.qs-item{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:none}.qs-item:hover{background:#fffaf1;border-color:var(--red);transform:translateX(3px)}
.memory-intro{background:#253b3a;color:#f4f1e9;border-color:#253b3a}.memory-intro .qs-info b{color:#fff}.memory-intro .qs-sub{color:rgba(244,241,233,.68)}
.qs-icon{font:11px Georgia,serif;letter-spacing:.08em}.qs-sub{color:var(--t2)}.qs-count{color:var(--red);background:#f3e0d9}
.quiz-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quiz-chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.qc-back,.learning-step{grid-column:1/-1}.qc-back{color:var(--red)}.learning-step{background:#f1e4da;border-left-color:var(--red)}.learning-step span{color:var(--red)}.learning-step small{color:var(--t2)}.quiz-context-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:14px 16px;margin-bottom:14px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:8px}.quiz-context-bar button{color:var(--red);font-size:12px}.quiz-context-bar div{display:grid;gap:2px}.quiz-context-bar span{color:var(--t3);font-size:10px}.quiz-context-bar b{font-size:14px;color:var(--t)}.quiz-context-bar em{color:var(--t3);font-size:11px;font-style:normal}
.qc-item{background:var(--card);border:1px solid var(--line);color:var(--t)}.qc-item:hover{border-color:var(--red);background:#fffaf1}.qc-count{background:#f1ece3;color:var(--t2)}.qc-all{border-color:var(--red);background:#fbf1ea}.qc-all .qc-name{color:var(--red)}
.exam-lesson{color:var(--t)}.el-hero{padding:30px;background:#253b3a;border:0;border-radius:14px;box-shadow:var(--shadow)}
.el-kicker{color:#e8c27a}.el-hero h2{color:#fff;font-size:32px}.el-hero>p{color:rgba(244,241,233,.74)}
.el-method{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}.el-method b{color:#fff}.el-method small{color:rgba(244,241,233,.72)}
.el-stats div{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13)}.el-stats b{color:#e8c27a}.el-stats span{color:rgba(244,241,233,.62)}
.el-section{border-color:var(--line)}.el-section-head>span{color:var(--red)}.el-section-head h3{color:#253232}.el-section-head p{color:var(--t2)}
.el-meeting-grid article,.el-war-grid article,.el-cluster,.el-compare,.el-achievements>div,.el-flow-steps>div{background:var(--card);border-color:var(--line)}
.el-meeting-grid time,.el-war-grid article>span,.el-meeting-grid em{color:var(--red)}.el-meeting-grid p,.el-war-grid p,.el-compare p,.el-achievements p{color:var(--t2)}
.el-congress-table{border-color:var(--line)}.el-congress-table>div{background:var(--card);border-color:var(--line)}.el-congress-table b{color:var(--red)}.el-congress-table span{color:var(--t2)}
.el-time>div{background:var(--card);border-left-color:var(--red)}.el-time time{color:var(--red)}.el-time p{color:var(--t2)}.el-time em{color:var(--red)}
.el-cluster-bar{background:#e8e2d7}.el-cluster-bar i{background:var(--red)}.el-cluster span{color:var(--red)}
.el-map-region-list button,.el-country-cards .el-map-region-list>div{background:var(--card);border-color:var(--line);color:var(--t)}.el-map-region-list button:hover{border-color:var(--red)}.el-map-region-list em{color:var(--red)}
.el-practice{background:#253b3a;color:#fff;border-radius:9px}.el-practice span{color:rgba(244,241,233,.68)}

/* practice */
.practice-stage{max-width:920px}.practice-top h2{color:#202c2b}.practice-mode{color:var(--red)}.practice-score{color:var(--t2)}.practice-score b{color:#202c2b}.practice-progress{background:#ded8cc}.practice-progress i{background:var(--red)}
.practice-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px}.practice-stage .quiz-q{color:#202c2b}.practice-stage .opt{background:#fffefa;border-color:var(--line);color:#202c2b}.practice-stage .opt:hover{border-color:var(--red);background:#fff7f1}.practice-stage .opt.selected{border-color:var(--red);background:#f7e5dd}.question-context{background:#253b3a}.quiz-exp{background:#f1ece3;color:var(--t2);border-left-color:var(--red)}
.btn-p{background:var(--red);color:#fff;border-radius:6px}.btn-p:hover{background:#913128}.btn-g{border-color:var(--line);color:var(--t)}

/* question community */
.question-talk{margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;color:var(--t)}
.talk-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);background:#f1ece3}.talk-head>div{display:grid;gap:3px}.talk-head span{font:9px Georgia,serif;letter-spacing:.16em;color:var(--red)}.talk-head b{font-size:13px}.talk-question-like{padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--t2);font-size:10px}.talk-question-like i{font-style:normal;color:#b9afa2}.talk-question-like.on{border-color:#d7a29a;color:var(--red);background:#fff6f2}.talk-question-like.on i{color:var(--red)}
.talk-compose{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:18px 20px}.talk-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#253b3a;color:#e8c27a;font:13px "Songti SC","STSong",serif}.talk-compose textarea,.talk-reply-box textarea{width:100%;min-height:74px;padding:11px 12px;resize:vertical;border:1px solid var(--line);border-radius:7px;background:#fffefa;color:var(--t);font:12px/1.65 inherit;outline:none}.talk-compose textarea:focus,.talk-reply-box textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(172,57,46,.08)}.talk-compose-foot{display:flex;align-items:center;gap:10px;margin-top:7px}.talk-compose-foot span{margin-left:auto;color:var(--t3);font-size:9px}.talk-name{font-size:9px;color:var(--t3)}.talk-send{padding:8px 15px;border-radius:5px;background:var(--red);color:#fff;font-size:10px}
.talk-list-head{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.talk-list-head b{font-size:11px}.talk-list-head button{color:var(--red);font-size:9px}.talk-list{padding:0 20px}.talk-empty{padding:28px 0;text-align:center;color:var(--t3);font-size:11px}
.talk-comment{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:17px 0;border-bottom:1px solid var(--line)}.talk-comment:last-child{border-bottom:0}.talk-comment-body{min-width:0}.talk-author{display:flex;align-items:center;gap:7px}.talk-author b{font-size:11px}.talk-author em{padding:1px 4px;background:#f1ddd4;color:var(--red);font-size:8px;font-style:normal;border-radius:3px}.talk-author time{color:var(--t3);font-size:9px}.talk-comment p{margin-top:6px;color:var(--t2);font-size:11px;line-height:1.7;overflow-wrap:anywhere}.talk-actions{display:flex;gap:12px;margin-top:7px}.talk-actions button{color:var(--t3);font-size:9px}.talk-actions button:hover,.talk-actions button.on{color:var(--red)}
.talk-replies{margin-top:10px;padding:0 12px;background:#f3eee6;border-left:2px solid #d8cfc1}.talk-comment.is-reply{grid-template-columns:26px 1fr;padding:11px 0}.talk-comment.is-reply .talk-avatar{width:24px;height:24px;font-size:9px}.talk-reply-box{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:end;margin:0 20px 14px;padding:12px;background:#f3eee6;border-radius:7px}.talk-reply-box textarea{min-height:54px}.talk-reply-box>button:not(.talk-send){padding:8px;color:var(--t3);font-size:10px}

/* split views keep the map dark but make the learning panel editorial */
.split-list{background:var(--bg);border-right:1px solid var(--line)}.split-tip{background:#253b3a;color:rgba(244,241,233,.78);border:0;border-radius:7px}.split-map{background:#172525}.split-map #homemap{background:#172525}
.profile-page{max-width:1080px;margin:0 auto;padding:0 0 70px}.profile-page .card{background:var(--card);border:1px solid var(--line);box-shadow:none}.profile-page .grid{gap:12px}

/* first-run introduction: editorial, compact, and consistent with the product shell */
.welcome-overlay{background:rgba(24,31,30,.72);backdrop-filter:blur(10px)}
.welcome-card{max-width:560px;padding:34px;background:#ffffff;border:1px solid rgba(41,66,77,.14);border-radius:14px;box-shadow:var(--shadow-lg)}
.wc-icon{width:max-content;margin:0 auto 18px;padding:7px 11px;border:1px solid var(--red);border-radius:999px;color:var(--red);font:10px Georgia,serif;letter-spacing:.16em}
.welcome-card h1{background:none;-webkit-text-fill-color:initial;color:#202c2b;font-family:"Songti SC","STSong",serif;font-size:32px}
.wc-feat{background:#fffdf8;border-color:var(--line);border-radius:8px}.wc-feat-ic{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;color:var(--red);font:14px Georgia,serif}
.fab{width:auto;height:36px;padding:0 14px;border-radius:999px;background:var(--red);color:#fff;font-size:12px}.fab.hide{display:none}

@media(max-width:900px){
  .workspace-bar{left:0;padding:0 18px 0 72px}.workspace-bar p{display:none}
  main{padding:20px 16px}.home-workspace-grid{grid-template-columns:1fr}.learn-masthead{padding:34px 42% 30px 28px;background-position:58% center}.quiz-page{padding:20px 0 54px}
  .course-topline{grid-template-columns:auto 1fr}.course-topline p{display:none}.course-shell{grid-template-columns:190px minmax(0,1fr)}.course-inspector{position:static;grid-column:1/-1;display:grid;grid-template-columns:160px 1fr 1fr;gap:12px}.course-inspector h3{grid-column:1}.course-inspector .inspector-stats{grid-column:1}.course-inspector .inspector-map{grid-column:2}.course-inspector ol{grid-column:3}
}
/* 侧栏在 768 隐藏,main margin 同步归零(自洽,不依赖 style.css 的 !important) */
@media(max-width:768px){
  main{margin-left:0;padding:14px}.workspace-bar{padding:0 14px 0 64px}
}
@media(max-width:480px){
  .workspace-bar>div:first-child>span{display:none}
  .workspace-bar>div:first-child>b{white-space:nowrap;font-size:13px}
  .workspace-bar{gap:8px}
}
@media(max-width:620px){
  .learn-masthead{min-height:520px;padding:30px 22px;background-position:64% bottom;background-size:auto 68%;background-repeat:no-repeat;background-color:#fffdf8;background-image:linear-gradient(180deg,rgba(255,253,248,1) 0%,rgba(255,253,248,.92) 47%,rgba(255,253,248,.16) 100%),url("../img/ui/learning-atlas-hero.png")}
  .learn-masthead h1{font-size:42px}.learn-masthead p{font-size:14px}.home-command-panel{padding:20px}
  .course-heading{display:block}.course-heading p{margin-top:5px}.subject-grid,.quiz-subjects,.quiz-chapters{grid-template-columns:1fr}.qc-back,.learning-step{grid-column:auto}
  .el-hero h2{font-size:26px}.el-meeting-grid,.el-war-grid{grid-template-columns:1fr}
  .el-stats,.el-confusions,.el-achievements,.el-map-region-list{grid-template-columns:1fr}.quiz-context-bar{grid-template-columns:1fr;gap:7px}.quiz-context-bar em{display:none}
  .course-topline{min-height:70px;padding:10px;grid-template-columns:1fr auto}.course-topline>button{grid-column:2;grid-row:1}.course-topline>div{grid-column:1;grid-row:1;display:grid}.course-shell{grid-template-columns:1fr}.chapter-rail{position:static;max-height:none}.chapter-rail-head{padding:12px}.chapter-rail-list{max-height:none;display:flex;overflow-x:auto;padding:6px}.chapter-rail-list button{min-width:155px}.course-stage{min-height:0}.course-inspector{display:block}.course-inspector .inspector-stats{margin-top:10px}.course-welcome{padding:26px 20px}.course-welcome h1{font-size:32px}.framework-route{grid-template-columns:1fr}.framework-route article,.framework-route article:nth-child(2n){border-right:0}.framework-route article:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.framework-route article:last-child{border-bottom:0}.chapter-stage-head{padding:22px 18px 16px}.chapter-stage-head h1{font-size:27px}.chapter-tabs{overflow-x:auto;grid-template-columns:repeat(4,minmax(88px,1fr))}.chapter-tab-panel{padding:20px 16px}.route-cards button{grid-template-columns:32px 1fr}.route-cards em{display:none}.knowledge-panel{grid-template-columns:1fr}.knowledge-index{display:flex;overflow-x:auto}.knowledge-index button{min-width:145px}.knowledge-reader{min-height:340px;padding:20px}.relation-panel header{grid-template-columns:1fr}.relation-canvas{height:390px}.relation-center{width:130px}.relation-node{width:108px}.relation-node.n5{left:31%}.relation-node.n6{left:34%}.map-rule{grid-template-columns:1fr}.check-modes article{grid-template-columns:28px 1fr}.check-modes button,.check-modes em{grid-column:2;width:max-content}
  .talk-head{align-items:flex-start}.talk-head,.talk-compose,.talk-list-head,.talk-list{padding-left:14px;padding-right:14px}.talk-compose-foot{flex-wrap:wrap}.talk-compose-foot span{display:none}.talk-reply-box{margin-left:14px;margin-right:14px;grid-template-columns:1fr auto}.talk-reply-box textarea{grid-column:1/-1}.talk-question-like{white-space:nowrap}
}

/* ===== B08 merged from assets/css/spatial-ui.css ===== */
/* =========================================================
   导游学霸 · Spatial Learning OS
   Visual direction derived from docs/design/learning-os-concept-v1.png
   ========================================================= */
:root{
  --space:#02060c;
  --space-2:#06101d;
  --panel:rgba(10,19,31,.72);
  --panel-solid:#0a1421;
  --panel-soft:rgba(255,255,255,.055);
  --hairline:rgba(177,207,255,.15);
  --hairline-strong:rgba(133,183,255,.28);
  --ink:#f4f8ff;
  --ink-2:#a8b6ca;
  --ink-3:#65758b;
  --electric:#2f7cff;
  --cyan:#33d4ff;
  --violet:#7567ff;
  --amber:#ffb64d;
  --red:#2f7cff;
  --blue:#2f7cff;
  --jade:#33d4ff;
  --gold:#ffb64d;
  --bg:var(--space);
  --bg2:var(--space-2);
  --card:var(--panel);
  --card2:var(--panel-soft);
  --line:var(--hairline);
  --t:var(--ink);
  --t2:var(--ink-2);
  --t3:var(--ink-3);
  --shadow:0 22px 80px rgba(0,0,0,.38);
  --shadow-lg:0 36px 120px rgba(0,0,0,.56);
}
.party-atlas.tourism .party-atlas-canvas{background:radial-gradient(circle at 16% 44%,rgba(56,135,208,.18),transparent 28%),linear-gradient(145deg,rgba(8,25,43,.96),rgba(4,10,18,.98))}.party-atlas.tourism .party-atlas-track:before{background:linear-gradient(90deg,rgba(105,190,255,.1),rgba(105,190,255,.72) 14%,rgba(105,190,255,.22) 88%,transparent);box-shadow:0 0 18px rgba(54,151,224,.28)}.party-atlas.tourism .party-node{border-color:rgba(108,187,245,.23);background:linear-gradient(160deg,rgba(18,53,77,.9),rgba(7,17,29,.94))}.party-atlas.tourism .party-node:before{border-color:#83cfff;background:#101f2c;box-shadow:0 0 0 5px rgba(96,184,255,.08),0 0 14px rgba(74,167,255,.44)}.party-atlas.tourism .party-node:hover,.party-atlas.tourism .party-node.on{border-color:rgba(115,202,255,.8);background:linear-gradient(160deg,rgba(24,81,119,.94),rgba(7,23,41,.96));box-shadow:0 14px 34px rgba(0,70,140,.24)}.party-atlas.tourism .party-node-year,.party-atlas.tourism .party-node small{color:#8ed6ff}.party-atlas.tourism .party-thread-note{border-left-color:#55b8ee;background:rgba(55,153,214,.08)}.party-atlas.tourism .party-thread-note span{color:#75c8f4}.party-atlas.tourism .party-confusions>span~span{border-color:rgba(108,187,245,.18);background:rgba(70,155,221,.06);color:#a9d1e8}.party-atlas.tourism .party-confusions i{color:#65bdf1}
html{background:var(--space);overflow-anchor:none}
html,body{
  height:auto;min-height:100%;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Helvetica Neue",sans-serif;
  font-feature-settings:"kern" 1,"ss01" 1;
  -webkit-font-smoothing:antialiased;
}
body:not([data-view="redmap"]) :is(h1,h2,h3,h4){
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif;
}
body,body:not(.on-home),body:not(.on-home) main{
  background:
    radial-gradient(circle at 63% -10%,rgba(47,124,255,.13),transparent 34%),
    linear-gradient(180deg,#040a12 0%,#02060c 100%);
  color:var(--ink);
}
::selection{background:rgba(47,124,255,.72);color:#fff}
button{font:inherit}

/* shell */
.sidebar{
  width:208px;
  background:rgba(3,8,14,.86);
  border-right:1px solid rgba(151,190,255,.12);
  box-shadow:22px 0 70px rgba(0,0,0,.25);
  backdrop-filter:blur(30px) saturate(140%);
}
.sb-brand{height:78px;padding:18px;border-bottom-color:rgba(151,190,255,.1)}
.sb-brand-mark{
  width:40px;height:40px;border-radius:11px;
  background:linear-gradient(145deg,#4094ff,#0754e8);
  box-shadow:0 8px 28px rgba(27,105,255,.42),inset 0 1px rgba(255,255,255,.34);
  font-family:inherit;font-size:17px;
}
.sb-brand-name b{color:#fff;letter-spacing:.01em;font-weight:650}
.sb-progress{
  margin:17px 13px;padding:15px 12px;
  background:linear-gradient(150deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  border:1px solid rgba(151,190,255,.15);border-radius:14px;
  box-shadow:inset 0 1px rgba(255,255,255,.04);
}
.sb-progress-num b{color:#fff;-webkit-text-fill-color:initial;font-size:21px}
.sb-progress-bar{height:3px;background:rgba(255,255,255,.1)}.sb-progress-bar i{background:linear-gradient(90deg,var(--electric),var(--cyan));box-shadow:0 0 12px var(--electric)}
.sb-progress-label{color:var(--ink-3);letter-spacing:.08em}
.sb-nav{padding:8px 10px;gap:5px}
.sb-nav-item{min-height:50px;padding:13px 12px;border-radius:10px;color:#718096}
.sb-nav-item:hover{background:rgba(255,255,255,.055);color:#dce8fa}
.sb-nav-item.on{
  background:linear-gradient(100deg,rgba(47,124,255,.24),rgba(47,124,255,.08));
  border:1px solid rgba(82,150,255,.3);color:#fff;
  box-shadow:inset 0 1px rgba(255,255,255,.05),0 10px 28px rgba(0,64,180,.12);
}
.sb-nav-item.on::before{left:0;top:10px;bottom:10px;width:2px;background:#4a96ff;box-shadow:0 0 12px #4a96ff}
.sb-nav-item .sb-nav-ic{font-size:13px;font-variant-numeric:tabular-nums;color:#6f8098}
.sb-nav-item.on .sb-nav-ic{color:#66a7ff}
.sb-footer{border-top-color:rgba(151,190,255,.1)}
.sb-streak{color:var(--ink-3)}.sb-streak b{color:var(--amber);font-family:inherit;font-size:15px}
.sb-toggle{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);color:var(--ink-3)}
.workspace-bar{
  left:208px;height:64px;padding:0 34px;
  background:rgba(3,8,14,.74);border-bottom:1px solid rgba(151,190,255,.1);
  backdrop-filter:blur(30px) saturate(150%);
}
.workspace-bar span{font-family:inherit;font-size:9px;font-weight:700;color:#68a8ff;letter-spacing:.2em}
.workspace-bar b{color:#f2f7ff;font-size:13px;font-weight:600}.workspace-bar p{color:#5e7088}
main{margin-left:208px;background:transparent}
main.map-full{margin-left:208px}
body:not([data-view="map"]):not([data-view="redmap"]):not([data-view="classicwar"]):not([data-view="guide"]):not([data-view="interview"]) main{padding-top:92px}
#view>*{animation:spatialRise .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes spatialRise{from{opacity:0;transform:translateY(13px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}

/* home */
.learn-home{max-width:1320px}
.home-workspace-grid{grid-template-columns:minmax(0,1.75fr) 292px;gap:12px}
.learn-masthead{
  min-height:500px;padding:66px 45% 54px 48px;
  border:1px solid rgba(136,184,255,.16);border-radius:22px;
  background:
    linear-gradient(90deg,rgba(2,6,12,.98) 0%,rgba(2,6,12,.78) 44%,rgba(2,6,12,.05) 78%),
    url("../img/ui/learning-space-horizon-v1.png") center/cover no-repeat;
  box-shadow:inset 0 1px rgba(255,255,255,.06),0 30px 100px rgba(0,0,0,.35);
}
.learn-masthead:before{content:"SPATIAL LEARNING / 2026";color:#5f7490;font-family:inherit;font-size:9px}
.eyebrow,.route-kicker{color:#70acff;font-size:10px;letter-spacing:.19em}
.learn-masthead h1,.course-welcome h1,.chapter-stage-head h1,.route-intro h2,.chapter-check-panel h2,.relation-panel h2,.knowledge-reader h2,.simple-head h1,.view-head h1{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif;
  letter-spacing:-.045em;
}
.learn-masthead h1{max-width:630px;font-size:clamp(48px,5.7vw,82px);line-height:1.02;color:#fff;font-weight:720}
.learn-masthead h1 em{color:#70a9ff;background:linear-gradient(90deg,#fff,#5f9dff 58%,#6de6ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.learn-masthead p{max-width:540px;color:#8ea0b8;font-size:15px;line-height:1.8}
.map-entry-card{cursor:pointer;transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .28s,box-shadow .28s}
.map-entry-card:hover{transform:translateY(-3px);border-color:rgba(112,174,255,.48);box-shadow:inset 0 1px rgba(255,255,255,.09),0 34px 110px rgba(0,0,0,.42),0 0 44px rgba(48,128,255,.1)}
.map-entry-card:focus-visible{outline:2px solid #73b7ff;outline-offset:4px}
.masthead-map-action{width:min(100%,390px);margin-top:26px;padding:12px 14px;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;border:1px solid rgba(112,174,255,.32);border-radius:12px;background:rgba(37,106,199,.15);color:#f4f9ff;box-shadow:inset 0 1px rgba(255,255,255,.06);transition:background .22s,border-color .22s,transform .22s}
.map-entry-card:hover .masthead-map-action{transform:translateX(4px);border-color:rgba(112,190,255,.65);background:rgba(37,119,224,.24)}
.masthead-map-action i{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(112,190,255,.42);border-radius:9px;color:#78c8ff;font-size:18px;font-style:normal}
.masthead-map-action b{font-size:13px;font-weight:620}.masthead-map-action em{color:#79b9ff;font-size:11px;font-style:normal}
.home-command-panel{
  padding:23px;background:linear-gradient(160deg,rgba(15,28,44,.82),rgba(5,11,19,.88));
  border:1px solid rgba(142,189,255,.15);border-radius:22px;
  box-shadow:inset 0 1px rgba(255,255,255,.055),0 28px 80px rgba(0,0,0,.3);
  backdrop-filter:blur(28px);
}
.command-label{font-family:inherit;color:#6eaaff;border-bottom-color:rgba(151,190,255,.13)}
.home-command-panel .home-status{border-bottom-color:rgba(151,190,255,.13)}
.home-command-panel .home-status>b{font-family:inherit;font-size:58px;font-weight:250;color:#fff;letter-spacing:-.08em}
.home-command-panel .home-status>span{color:#7f91a8}
.continue-card{background:rgba(255,255,255,.055);color:#fff;border:1px solid rgba(151,190,255,.12);border-radius:12px}
.home-command-panel .continue-card span,.home-command-panel .continue-card em{color:#69a7ff}
.empty-command,.command-actions button{background:rgba(255,255,255,.035);border-color:rgba(151,190,255,.1);border-radius:11px}
.command-actions button:hover{background:rgba(47,124,255,.12);border-color:rgba(92,158,255,.3);transform:translateY(-2px)}
.command-actions span{font-family:inherit;color:#5b9cff}.command-actions em{color:#64778f}
.subject-section{padding-top:42px}.course-heading{border-color:rgba(151,190,255,.12)}
.section-heading span{color:#66a4ff}.section-heading h2{color:#f6f9ff;font-size:28px;letter-spacing:-.04em;font-family:inherit;font-weight:620}.course-heading p{color:#60728a}
.subject-grid{gap:10px}.subject-card{
  min-height:180px;padding:25px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.025));
  border:1px solid rgba(151,190,255,.12);border-radius:17px;color:#fff;
  box-shadow:inset 0 1px rgba(255,255,255,.04);
}
.subject-card:before{height:1px;background:linear-gradient(90deg,transparent,#4a92ff,transparent);opacity:.55}
.subject-card:hover{transform:translateY(-5px);border-color:rgba(92,158,255,.38);box-shadow:0 26px 80px rgba(0,64,180,.17),inset 0 1px rgba(255,255,255,.08)}
.subject-card h3{color:#f7faff;font-size:20px;letter-spacing:-.025em}.subject-card p{color:#8799b0}.subject-meta{color:#5f728a}.subject-enter,.subject-id{color:#65a6ff;border-color:rgba(101,166,255,.38)}
.subject-no{color:rgba(104,168,255,.11)}

/* course workspace */
.course-workspace{max-width:1420px}
.course-topline{
  min-height:58px;margin-bottom:11px;padding:0 18px;
  background:rgba(9,18,29,.72);border:1px solid rgba(151,190,255,.13);border-top:1px solid rgba(151,190,255,.2);
  border-radius:15px;color:#fff;backdrop-filter:blur(24px);box-shadow:inset 0 1px rgba(255,255,255,.04);
}
.course-topline>button{border-color:rgba(151,190,255,.14);color:#79afff}.course-topline span{font-family:inherit;color:#6ea8ff}.course-topline p{color:#61748d}
.course-shell{grid-template-columns:220px minmax(0,1fr) 230px;gap:11px}
.course-shell{grid-template-columns:196px minmax(0,1fr)}
.course-inspector{display:none}
.chapter-next-bar{display:flex;align-items:center;gap:8px;margin:14px 30px 0;padding:10px 12px;border:1px solid rgba(151,190,255,.13);border-radius:12px;background:rgba(7,16,28,.72)}
.chapter-next-bar>span{display:grid;gap:2px;margin-right:auto}.chapter-next-bar b{color:#f3f7ff;font-size:12px}.chapter-next-bar em{color:#7d92ac;font-size:10px;font-style:normal}
.chapter-next-bar button{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(151,190,255,.16);border-radius:8px;color:#a9bad0;background:rgba(255,255,255,.035);font-size:10px}
.chapter-next-bar button:hover{border-color:#5e9fff;color:#fff}.chapter-next-bar button i{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:rgba(90,157,255,.16);color:#76adff;font-style:normal;font-size:9px}.chapter-next-bar .next-primary{color:#fff;background:linear-gradient(135deg,#347fef,#2257b8);border-color:#5c9fff}
.chapter-rail,.course-stage,.course-inspector{
  background:linear-gradient(155deg,rgba(13,25,40,.78),rgba(5,11,19,.82));
  border:1px solid rgba(151,190,255,.13);border-radius:17px;
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 26px 70px rgba(0,0,0,.24);
  backdrop-filter:blur(26px) saturate(135%);
}
.chapter-rail-head{border-color:rgba(151,190,255,.1)}.chapter-rail-head span,.inspector-kicker{color:#70aaff;font-family:inherit}.chapter-rail-head b{color:#5d7088}
.chapter-rail-list button{border-radius:10px;color:#7e90a7}.chapter-rail-list button:hover{background:rgba(255,255,255,.045);color:#d6e1f1}
.chapter-rail-list button.on{
  color:#fff;background:linear-gradient(100deg,rgba(47,124,255,.23),rgba(47,124,255,.08));
  border-left-color:#4c95ff;box-shadow:inset 0 1px rgba(255,255,255,.04);
}
.chapter-rail-list button.on:after{content:"";width:5px;height:5px;border-radius:50%;background:#5a9dff;box-shadow:0 0 12px #5a9dff}
.chapter-rail-list i{font-family:inherit;color:#61758e}.chapter-rail-list em{color:#52647a}
.course-stage{min-height:690px;background-color:#030914;position:relative}
.course-stage:before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.7;
  background:linear-gradient(180deg,rgba(2,6,12,.08) 38%,rgba(2,6,12,.94) 82%),url("../img/ui/learning-space-horizon-v1.png") center 35%/cover no-repeat;
}
.course-stage>*{position:relative;z-index:1}
.course-inspector{background:linear-gradient(165deg,rgba(12,23,37,.88),rgba(5,11,18,.86))}
.course-inspector h3{font-family:inherit;color:#f5f8ff;letter-spacing:-.035em;font-size:18px;word-break:break-word}
.inspector-stats div{background:rgba(255,255,255,.04);border-color:rgba(151,190,255,.12)}.inspector-stats b{font-family:inherit;font-weight:300;color:#fff}.inspector-stats span{color:#60728a}
.inspector-map{background:linear-gradient(145deg,rgba(47,124,255,.14),rgba(51,212,255,.055));border:1px solid rgba(84,154,255,.22);border-radius:12px}.inspector-map span{color:#73abff}.inspector-map p{color:#71839a}
.course-inspector li{border-color:rgba(151,190,255,.09)}.course-inspector li i{border-color:rgba(151,190,255,.18);color:#64758c}.course-inspector li.on i{background:#2f7cff;border-color:#68a7ff;box-shadow:0 0 20px rgba(47,124,255,.5)}.course-inspector li span{color:#62748b}
.course-welcome h1{font-size:42px;color:#fff}.course-welcome>p{color:#8a9bb0}.framework-route{border-color:rgba(151,190,255,.12)}.framework-route article{border-color:rgba(151,190,255,.1);background:rgba(255,255,255,.018)}.framework-route i{font-family:inherit;color:#5f9fff}.framework-route span{color:#62758e}.course-welcome-list{background:rgba(47,124,255,.08);border-left-color:#4d96ff}.course-welcome-list span{color:#6b7e96}
.chapter-stage-head{padding:30px 30px 22px}.chapter-stage-head>span{color:#73adff}.chapter-stage-head h1{font-size:38px;color:#fff;font-weight:660}.chapter-stage-head p{max-width:790px;color:#8394a9}
.chapter-tabs{
  margin:0 25px;border:1px solid rgba(151,190,255,.14);border-radius:14px;overflow:hidden;
  background:rgba(5,12,21,.62);backdrop-filter:blur(18px);
}
.chapter-tabs button{height:50px;border-color:rgba(151,190,255,.1);color:#71849b}.chapter-tabs i{font-family:inherit;color:#53667d}.chapter-tabs button:hover{color:#dce7f7;background:rgba(255,255,255,.03)}
.chapter-tabs button.on{background:rgba(47,124,255,.09);box-shadow:inset 0 -2px #4e96ff;color:#fff}.chapter-tabs button.on i{color:#6ca8ff}
.chapter-tab-panel{min-height:500px;padding:28px 30px 34px}

/* product-story learning path */
.learning-route-panel{position:relative;min-height:480px;padding-top:4px}
.route-intro{text-align:center}.route-intro span{color:#70a9ff}.route-intro h2{margin-top:9px;color:#fff;font-size:29px;font-weight:620}.route-intro p{max-width:660px;margin:0 auto;color:#6e829b}
.route-cards{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.route-cards:before{
  content:"";position:absolute;left:16%;right:16%;top:82px;height:1px;
  background:linear-gradient(90deg,transparent,#2f7cff 15%,#7567ff 50%,#33d4ff 85%,transparent);
  box-shadow:0 0 20px rgba(47,124,255,.75);
}
.route-cards button{
  min-height:294px;padding:178px 16px 16px;display:block;text-align:center;
  border:0;background:transparent;color:#fff;position:relative;overflow:visible;
}
.route-cards button:hover{transform:translateY(-7px);border:0;background:transparent}
.route-cards button:before,.route-cards button:after{content:"";position:absolute;left:50%;top:82px;transform:translate(-50%,-50%);border-radius:50%}
.route-cards button:before{
  width:132px;height:132px;border:1px solid rgba(101,166,255,.72);
  background:radial-gradient(circle,rgba(47,124,255,.23),rgba(47,124,255,.04) 56%,transparent 58%);
  box-shadow:0 0 0 9px rgba(47,124,255,.05),0 0 45px rgba(47,124,255,.28),inset 0 0 28px rgba(47,124,255,.2);
}
.route-cards button:nth-child(2):before{border-color:rgba(132,110,255,.75);box-shadow:0 0 0 9px rgba(117,103,255,.05),0 0 45px rgba(117,103,255,.3),inset 0 0 28px rgba(117,103,255,.2)}
.route-cards button:nth-child(3):before{border-color:rgba(51,212,255,.72);box-shadow:0 0 0 9px rgba(51,212,255,.05),0 0 45px rgba(51,212,255,.26),inset 0 0 28px rgba(51,212,255,.18)}
.route-glyph{position:absolute;z-index:2;left:50%;top:82px;transform:translate(-50%,-50%);width:58px;height:58px;display:grid;place-items:center;color:#b9d8ff}
.route-glyph svg{width:58px;height:58px;fill:none;stroke:currentColor;stroke-width:1.6;filter:drop-shadow(0 0 9px rgba(90,162,255,.85))}
.route-cards i{display:block;font-family:inherit;font-size:12px;color:#66a5ff}.route-cards button:nth-child(2) i{color:#8a7cff}.route-cards button:nth-child(3) i{color:#4edcff}
.route-cards span{display:block;margin-top:7px;font-family:inherit;color:#60758f}.route-cards b{display:block;margin-top:7px;font-size:17px;letter-spacing:-.02em}.route-cards p{max-width:220px;margin:7px auto 0;color:#657990;line-height:1.6}.route-cards em{display:block;margin-top:13px;color:#7cb1ff}

/* knowledge / relationship / check */
.knowledge-panel{grid-template-columns:190px minmax(0,1fr)}.knowledge-index button{background:rgba(255,255,255,.025);border-color:rgba(151,190,255,.12);color:#889ab0}.knowledge-index button.on{background:linear-gradient(100deg,rgba(47,124,255,.2),rgba(47,124,255,.06));border-color:rgba(92,158,255,.34);color:#fff}.knowledge-index i{font-family:inherit;color:#6aa7ff}.knowledge-reader{background:rgba(4,11,20,.64);border:1px solid rgba(151,190,255,.12);border-radius:17px;backdrop-filter:blur(18px)}.reader-kicker{font-family:inherit;color:#73acff}.reader-lead{color:#8396ad}.reader-block{border-color:rgba(151,190,255,.12)}.reader-block span{color:#6da9ff}.reader-trap{border-color:rgba(230,156,106,.26);background:rgba(210,117,72,.07)}.reader-trap span{color:#e0a071}.reader-links button{border-color:rgba(151,190,255,.16);background:rgba(47,124,255,.08)}
.knowledge-atlas{position:relative;min-height:560px}.atlas-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.atlas-kicker{display:block;color:#6ca8ff;font:10px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.18em}.atlas-toolbar h2{margin:8px 0 6px;color:#f7fbff;font:650 29px/1.1 -apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif;letter-spacing:-.045em}.atlas-toolbar p{max-width:520px;margin:0;color:#7b8ea7;font-size:12px;line-height:1.65}.atlas-layers{display:flex;gap:4px;padding:4px;border:1px solid rgba(151,190,255,.14);border-radius:11px;background:rgba(3,10,18,.7)}.atlas-layers button{min-width:54px;padding:7px 10px;border-radius:7px;color:#71839b;font-size:10px}.atlas-layers button:hover{color:#dce9fb;background:rgba(255,255,255,.05)}.atlas-layers button.on{color:#fff;background:linear-gradient(135deg,rgba(65,145,255,.68),rgba(36,91,214,.55));box-shadow:0 5px 18px rgba(32,113,255,.22)}
.atlas-canvas{position:relative;height:480px;overflow:hidden;border:1px solid rgba(113,170,255,.2);border-radius:20px;background:radial-gradient(circle at 50% 50%,rgba(35,102,205,.2),transparent 27%),linear-gradient(145deg,rgba(6,18,33,.94),rgba(2,7,14,.98));box-shadow:inset 0 1px rgba(255,255,255,.07),inset 0 0 90px rgba(25,99,216,.1),0 24px 70px rgba(0,0,0,.2)}.atlas-grid{position:absolute;inset:0;opacity:.45;background-image:linear-gradient(rgba(126,180,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(126,180,255,.055) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at center,#000 0 48%,transparent 82%)}.atlas-canvas:before,.atlas-canvas:after{content:"";position:absolute;left:50%;top:50%;border:1px solid rgba(101,165,255,.16);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.atlas-canvas:before{width:54%;height:70%}.atlas-canvas:after{width:31%;height:40%;border-color:rgba(101,165,255,.11)}
.atlas-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.atlas-link-line{stroke:rgba(91,158,255,.32);stroke-width:.28;vector-effect:non-scaling-stroke;stroke-dasharray:5 5;animation:atlasDash 18s linear infinite}.atlas-link-line.on{stroke:#63b4ff;stroke-width:.7;filter:drop-shadow(0 0 4px rgba(76,158,255,.8));stroke-dasharray:none}@keyframes atlasDash{to{stroke-dashoffset:-100}}
.atlas-core{position:absolute;left:50%;top:50%;z-index:3;width:184px;height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translate(-50%,-50%);border:1px solid rgba(163,214,255,.55);border-radius:22px;background:linear-gradient(150deg,rgba(215,239,255,.98),rgba(105,170,236,.92));color:#071629;box-shadow:0 0 0 7px rgba(71,151,255,.08),0 0 60px rgba(64,155,255,.36),inset 0 1px rgba(255,255,255,.9)}.atlas-core:before{content:"";position:absolute;inset:7px;border:1px solid rgba(9,65,137,.2);border-radius:16px}.atlas-core span{position:relative;font:10px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.17em;color:#1456a1}.atlas-core b{position:relative;max-width:150px;margin-top:7px;text-align:center;font:650 18px/1.25 -apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif;letter-spacing:-.035em}.atlas-core em{position:relative;margin-top:7px;color:#2d6094;font-size:10px;font-style:normal}
.atlas-node{position:absolute;left:var(--x);top:var(--y);z-index:4;width:164px;min-height:72px;padding:12px 12px 11px;display:grid;grid-template-columns:24px 1fr;gap:8px;text-align:left;transform:translate(-50%,-50%);border:1px solid rgba(144,195,255,.23);border-radius:14px;background:linear-gradient(145deg,rgba(17,39,64,.9),rgba(5,16,29,.92));color:#eef6ff;box-shadow:0 12px 35px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.06);transition:transform .24s,background .24s,border-color .24s,box-shadow .24s}.atlas-node:hover{transform:translate(-50%,-54%);border-color:rgba(107,183,255,.72);background:linear-gradient(145deg,rgba(31,74,121,.94),rgba(7,25,46,.95));box-shadow:0 16px 42px rgba(0,70,180,.25),0 0 24px rgba(61,153,255,.14)}.atlas-node.on{border-color:#65b4ff;background:linear-gradient(145deg,rgba(38,105,177,.94),rgba(8,31,60,.96));box-shadow:0 0 0 2px rgba(85,166,255,.16),0 0 32px rgba(50,140,255,.28)}.atlas-node i{display:grid;place-items:center;width:23px;height:23px;border:1px solid rgba(111,177,255,.5);border-radius:7px;color:#73baff;font:10px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;font-style:normal}.atlas-node b{display:block;overflow:hidden;color:#f5faff;font-size:12px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.atlas-node span{display:block;overflow:hidden;margin-top:5px;color:#7d9abb;font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.knowledge-atlas[data-layer="questions"] .atlas-node span{color:#71caff;font-size:12px;font-weight:600}.knowledge-atlas[data-layer="mastery"] .atlas-node span{color:#d7ad6e}.knowledge-atlas[data-layer="mastery"] .atlas-node i{border-color:rgba(218,175,107,.6);color:#e2b776}
.atlas-hint{position:absolute;left:18px;bottom:16px;display:grid;gap:3px;color:#657c99}.atlas-hint span{font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.17em;color:#6baaff}.atlas-hint b{font-size:11px;font-weight:500;color:#b1c5de}.atlas-hint em{font-size:9px;font-style:normal}.atlas-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}.atlas-legend{display:flex;align-items:center;flex-wrap:wrap;gap:13px;color:#6b829e;font-size:9px}.atlas-legend span{display:inline-flex;align-items:center;gap:5px}.atlas-legend em{margin-left:5px;padding-left:12px;border-left:1px solid rgba(151,190,255,.15);color:#8aa3bf;font-style:normal}.atlas-legend .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#7a9bbf;box-shadow:0 0 8px rgba(130,180,255,.35)}.atlas-legend .dot.core{background:#c6eaff}.atlas-legend .dot.active{background:#62b7ff;box-shadow:0 0 9px #62b7ff}.atlas-utility{min-width:220px;padding:10px 12px;text-align:left;border:1px solid rgba(105,174,255,.2);border-radius:11px;background:rgba(47,124,255,.07);color:#fff}.atlas-utility:hover{background:rgba(47,124,255,.15);border-color:rgba(105,174,255,.5)}.atlas-utility span{display:block;color:#70adff;font:8px/1.1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.16em}.atlas-utility b{display:block;margin-top:4px;font-size:11px}.atlas-utility em{display:block;margin-top:3px;color:#6e87a4;font-size:9px;font-style:normal}
.inspector-node-actions{display:grid;gap:7px;margin:12px 0 16px}.inspector-action{width:100%;padding:9px 10px;text-align:left;border:1px solid rgba(127,179,243,.2);border-radius:9px;background:rgba(255,255,255,.035);color:#8eb8e8;font-size:10px}.inspector-action:hover{background:rgba(47,124,255,.13);border-color:rgba(104,177,255,.5);color:#ddebff}.inspector-action.primary{background:linear-gradient(135deg,rgba(64,145,255,.8),rgba(31,87,206,.8));border-color:rgba(136,205,255,.42);color:#fff;box-shadow:0 8px 20px rgba(31,104,230,.2)}
.party-atlas-canvas{position:relative;overflow:hidden;border:1px solid rgba(113,170,255,.2);border-radius:20px;background:radial-gradient(circle at 16% 44%,rgba(180,72,57,.16),transparent 28%),linear-gradient(145deg,rgba(20,18,27,.96),rgba(5,10,18,.98));box-shadow:inset 0 1px rgba(255,255,255,.06),inset 0 0 80px rgba(149,42,40,.08)}.party-track-label{display:flex;align-items:baseline;gap:10px;padding:20px 20px 10px}.party-track-label span{font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.18em;color:#d77b6b}.party-track-label b{font-size:14px;color:#f3e9e5}.party-track-label em{margin-left:auto;color:#7d8290;font-size:9px;font-style:normal}.party-atlas-track{position:relative;display:flex;gap:10px;overflow-x:auto;padding:24px 20px 30px;scroll-snap-type:x proximity;scrollbar-color:rgba(210,103,88,.5) transparent}.party-atlas-track:before{content:"";position:absolute;left:20px;right:20px;top:59px;height:1px;background:linear-gradient(90deg,rgba(224,129,105,.1),rgba(224,129,105,.7) 14%,rgba(224,129,105,.22) 88%,transparent);box-shadow:0 0 18px rgba(210,83,68,.28)}.party-node{position:relative;z-index:2;flex:0 0 146px;min-height:146px;padding:12px;text-align:left;scroll-snap-align:start;border:1px solid rgba(227,137,111,.22);border-radius:13px;background:linear-gradient(160deg,rgba(64,34,39,.86),rgba(14,20,30,.94));color:#fff;transition:transform .22s,border-color .22s,background .22s,box-shadow .22s}.party-node:before{content:"";position:absolute;left:50%;top:31px;width:8px;height:8px;transform:translate(-50%,-50%);border:2px solid #e39a7d;border-radius:50%;background:#231a22;box-shadow:0 0 0 5px rgba(224,129,105,.08),0 0 14px rgba(225,101,84,.44)}.party-node:hover{transform:translateY(-5px);border-color:rgba(241,159,130,.8);background:linear-gradient(160deg,rgba(108,49,48,.94),rgba(18,27,39,.96));box-shadow:0 14px 34px rgba(101,35,35,.28)}.party-node.on{border-color:#efaa8a;background:linear-gradient(160deg,rgba(125,56,51,.96),rgba(21,30,43,.98));box-shadow:0 0 0 2px rgba(239,158,130,.12),0 0 30px rgba(211,78,60,.24)}.party-node-year{display:block;color:#e6a287;font:10px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.09em}.party-node b{display:block;margin-top:26px;font-size:13px;line-height:1.25}.party-node em{display:block;margin-top:8px;overflow:hidden;color:#ac8d8d;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.party-node small{display:block;margin-top:10px;color:#eabda5;font-size:10px}.party-axis{display:flex;align-items:center;gap:8px;padding:0 20px 17px;color:#9d8490;font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif}.party-axis span{height:1px;flex:1;background:linear-gradient(90deg,rgba(224,129,105,.45),rgba(224,129,105,.08))}.party-thread-note{margin:0 20px 18px;padding:10px 12px;border-left:2px solid #d87968;background:rgba(214,91,72,.07)}.party-thread-note span{display:block;color:#d77b6b;font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.12em}.party-thread-note b{display:block;margin-top:5px;color:#d7c8c4;font-size:11px;font-weight:500}.party-confusions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.party-confusions>span{width:100%;color:#8a94a8;font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.1em}.party-confusions>span~span{display:grid;grid-template-columns:auto 12px auto;align-items:center;gap:4px;padding:7px 8px;border:1px solid rgba(219,135,111,.16);border-radius:8px;background:rgba(219,135,111,.05);color:#cdaaa0}.party-confusions b{font-size:9px;font-weight:500}.party-confusions i{color:#d77b6b;font-style:normal}.party-confusions em{grid-column:1/-1;color:#927c88;font-size:8px;font-style:normal}.party-atlas-footer{align-items:flex-start}
.relation-panel header>div>span{font-family:inherit;color:#6ca8ff}.relation-panel header p{color:#72859c}.relation-canvas{background:rgba(3,10,18,.66);border:1px solid rgba(151,190,255,.12);border-radius:18px}.relation-canvas:before,.relation-canvas:after{border-color:rgba(86,150,255,.15)}.relation-center{background:linear-gradient(145deg,#eaf4ff,#b9d6ff);color:#06101d;box-shadow:0 0 70px rgba(64,140,255,.34)}.relation-center span{font-family:inherit;color:#195fc8}.relation-center b{font-family:inherit}.relation-node{background:rgba(15,29,45,.78);border-color:rgba(151,190,255,.2);border-radius:11px}.relation-node:hover,.relation-node.on{background:rgba(47,124,255,.28);border-color:#5c9dff;box-shadow:0 0 28px rgba(47,124,255,.25)}.relation-node i{font-family:inherit;color:#71adff}.map-rule{background:rgba(255,255,255,.025);border-color:rgba(151,190,255,.11);border-radius:10px}.map-rule span{color:#677a92}.map-rule button{color:#6ca8ff}
.chapter-check-panel header{border-color:rgba(151,190,255,.11)}.chapter-check-panel header span{color:#70aaff}.check-modes article{background:rgba(255,255,255,.025);border-color:rgba(151,190,255,.12);border-radius:13px}.check-modes i{font-family:inherit;color:#67a5ff}.check-modes span{color:#687b92}.check-modes button{background:linear-gradient(135deg,#3d8cff,#1762e8);box-shadow:0 8px 24px rgba(24,98,232,.28)}

/* history knowledge matrix */
.history-matrix-shell{overflow:hidden;border:1px solid rgba(175,151,95,.23);border-radius:20px;background:radial-gradient(circle at 34% 10%,rgba(180,140,67,.13),transparent 30%),linear-gradient(145deg,rgba(25,23,20,.96),rgba(6,11,17,.98));box-shadow:inset 0 1px rgba(255,255,255,.055),inset 0 0 90px rgba(147,110,39,.07)}.history-matrix-scroll{min-width:1050px;overflow-x:auto;padding:18px;scrollbar-color:rgba(191,154,84,.48) transparent}.history-era-row,.history-lane-row{display:grid;grid-template-columns:125px repeat(7,minmax(125px,1fr));gap:7px}.history-era-row{position:sticky;top:0;z-index:4;margin-bottom:7px}.history-era-row>span,.history-era-row>b{min-height:38px;display:grid;place-items:center;border:1px solid rgba(211,182,122,.13);border-radius:9px;background:rgba(14,16,18,.9);color:#a49272;font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;letter-spacing:.12em}.history-era-row>b{color:#e3c78f;font-size:10px}.history-lane-row{align-items:stretch;margin-top:7px}.history-lane-row>header{min-height:112px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(211,182,122,.13);border-radius:10px;background:linear-gradient(150deg,rgba(84,66,36,.32),rgba(20,21,21,.78));color:#d8c49b}.history-lane-row>header i{color:#9d8254;font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif;font-style:normal}.history-lane-row>header b{font-size:11px;line-height:1.4}.history-era-cell{min-height:112px;padding:5px;border:1px dashed rgba(211,182,122,.08);border-radius:10px;background:rgba(255,255,255,.012)}.history-era-cell.has-node{display:grid;gap:5px;border-style:solid;border-color:rgba(211,182,122,.12);background:rgba(161,127,63,.035)}.history-node{min-width:0;padding:10px;text-align:left;border:1px solid rgba(213,177,104,.2);border-radius:9px;background:linear-gradient(145deg,rgba(63,51,32,.72),rgba(17,19,20,.88));color:#f2eadb;box-shadow:inset 0 1px rgba(255,255,255,.04);transition:transform .2s,border-color .2s,background .2s,box-shadow .2s}.history-node:hover{transform:translateY(-2px);border-color:rgba(232,195,117,.64);background:linear-gradient(145deg,rgba(93,70,35,.78),rgba(21,24,27,.92))}.history-node.on{border-color:#e5bd6f;background:linear-gradient(145deg,rgba(110,79,34,.86),rgba(24,27,31,.95));box-shadow:0 0 0 2px rgba(225,183,102,.1),0 0 22px rgba(189,133,40,.2)}.history-node span{display:block;color:#c99f5a;font:9px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif}.history-node b{display:block;margin-top:7px;overflow:hidden;color:#fff8ea;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.history-node em{display:-webkit-box;margin-top:6px;overflow:hidden;color:#8f887a;font-size:8px;line-height:1.45;font-style:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.history-atlas[data-layer="questions"] .history-node span{color:#ffd27e;font-size:11px;font-weight:650}.history-atlas[data-layer="mastery"] .history-node span{color:#c7a4e2}.history-atlas-footer{margin-top:13px}.history-atlas-footer .party-confusions{width:100%}

.history-matrix-shell{overflow-x:auto}

/* other primary pages */
.view-head{border-color:rgba(151,190,255,.11)}.view-head h1{color:#fff}.view-head p{color:#7d90a8}.page-kicker{font-family:inherit;color:#6ca8ff}
.quiz-page,.simple-page,.profile-page{color:#fff}.qs-item,.qc-item,.profile-page .card,.visual-tool-grid button,.practice-card{background:rgba(255,255,255,.04);border-color:rgba(151,190,255,.12);color:#fff;box-shadow:inset 0 1px rgba(255,255,255,.035)}
.qs-item:hover,.qc-item:hover,.visual-tool-grid button:hover{background:rgba(47,124,255,.09);border-color:rgba(92,158,255,.36)}.qs-sub,.visual-tool-grid span{color:#71849a}.qs-count{color:#74acff;background:rgba(47,124,255,.12)}.memory-intro{background:linear-gradient(135deg,rgba(47,124,255,.2),rgba(117,103,255,.11));border-color:rgba(92,158,255,.3)}.memory-intro .qs-sub{color:#8599b2}
.simple-head h1,.visual-tool-grid b{color:#fff}.simple-head p{color:#7d90a7}.simple-head>span{color:#6aa7ff}.visual-tool-grid i{background:rgba(47,124,255,.11);color:#79b1ff}.visual-tool-grid em{color:#6da9ff}
.profile-page .big-num{color:#fff;-webkit-text-fill-color:initial;background:none}.profile-page .bar{background:rgba(255,255,255,.08)}.profile-page .bar i{background:linear-gradient(90deg,var(--electric),var(--cyan))}
.quiz-context-bar{background:rgba(255,255,255,.04);border-color:rgba(151,190,255,.12);border-left-color:#4b95ff}.quiz-context-bar button{color:#72acff}.quiz-context-bar span,.quiz-context-bar em{color:#60748d}.quiz-context-bar b{color:#fff}
.practice-top h2{color:#f3f7ff}.practice-mode{color:#69a8ff}.practice-score{color:#71849b}.practice-score b{color:#f3f7ff}
.practice-stage .quiz-q{color:#fff}.practice-stage .opt{background:rgba(255,255,255,.035);border-color:rgba(151,190,255,.13);color:#dbe7f7}.practice-stage .opt:hover{background:rgba(47,124,255,.1);border-color:#4b94ff}.practice-stage .opt.selected{background:rgba(47,124,255,.16);border-color:#5ba0ff}.practice-progress{background:rgba(255,255,255,.08)}.practice-progress i{background:linear-gradient(90deg,var(--electric),var(--cyan))}
.question-context{background:linear-gradient(150deg,rgba(13,29,47,.94),rgba(5,14,25,.94));border:1px solid rgba(151,190,255,.13);box-shadow:inset 0 1px rgba(255,255,255,.04)}.quiz-exp{background:rgba(255,255,255,.045);color:#a3b4c8;border-left-color:#4d96ff}
.welcome-overlay{background:rgba(0,4,10,.82)}.welcome-card{background:rgba(8,17,28,.93);border-color:rgba(151,190,255,.16);color:#fff}.welcome-card h1{color:#fff}.wc-feat{background:rgba(255,255,255,.035);border-color:rgba(151,190,255,.11)}.wc-icon{color:#6ca8ff;border-color:rgba(108,168,255,.46)}.wc-feat-ic{color:#6ca8ff;border-color:rgba(151,190,255,.18)}

@media(max-width:1100px){
  .course-shell{grid-template-columns:190px minmax(0,1fr)}.course-inspector{grid-column:1/-1;display:grid;grid-template-columns:170px minmax(0,1fr) 220px;gap:12px}.course-inspector .inspector-kicker,.course-inspector h3,.course-inspector .inspector-stats{grid-column:1}.course-inspector .inspector-map{grid-column:2;grid-row:1/4}.course-inspector .inspector-node-actions{grid-column:3;grid-row:1/4;margin:0}.course-inspector ol{display:none}
}
@media(max-width:900px){
  .chapter-next-bar{margin:12px 16px 0;flex-wrap:wrap}.chapter-next-bar>span{width:100%;margin-bottom:2px}
  .workspace-bar{left:0}.course-topline{grid-template-columns:auto 1fr}.course-shell{grid-template-columns:185px minmax(0,1fr)}
}
/* 侧栏 768 隐藏后 main margin 同步归零 */
@media(max-width:768px){
  main{margin-left:0}
}
@media(max-width:620px){
  .workspace-bar{padding-left:72px}.home-workspace-grid{grid-template-columns:1fr}
  .learn-masthead{min-height:570px;padding:36px 24px;background-image:linear-gradient(180deg,rgba(2,6,12,.98) 0%,rgba(2,6,12,.7) 48%,rgba(2,6,12,.08) 75%),url("../img/ui/learning-space-horizon-v1.png");background-position:center bottom;background-size:auto 72%}
  .learn-masthead h1{font-size:48px}.home-command-panel{border-radius:18px}
  .subject-grid{grid-template-columns:1fr}.course-shell{grid-template-columns:1fr}.chapter-rail{background:rgba(7,15,25,.9)}
  .chapter-stage-head h1{font-size:31px}.chapter-tabs{margin:0 12px}.chapter-tab-panel{padding:23px 15px}
  .route-intro{text-align:left}.route-intro p{margin:0}.route-cards{grid-template-columns:1fr;gap:4px}.route-cards:before{left:51px;right:auto;top:40px;bottom:40px;width:1px;height:auto;background:linear-gradient(#2f7cff,#7567ff,#33d4ff)}
  .route-cards button{min-height:150px;padding:34px 12px 24px 130px;text-align:left}.route-cards button:before,.route-cards button:after{left:64px;top:74px}.route-cards button:before{width:94px;height:94px}.route-glyph{left:64px;top:74px;width:42px;height:42px}.route-glyph svg{width:42px;height:42px}.route-cards p{margin:7px 0 0}.route-cards em{margin-top:8px}
  .knowledge-panel{grid-template-columns:1fr}.relation-panel header{grid-template-columns:1fr}.relation-canvas{height:410px}
  .course-inspector{display:block}.course-inspector ol{display:grid}.atlas-toolbar{display:grid}.atlas-layers{width:max-content}.atlas-canvas{height:520px;border-radius:16px}.atlas-core{width:138px;height:108px;top:48%}.atlas-core b{max-width:118px;font-size:14px}.atlas-node{width:124px;min-height:68px;padding:10px 8px;grid-template-columns:19px 1fr;gap:5px}.atlas-node i{width:19px;height:19px}.atlas-node b{font-size:10px}.atlas-node span{font-size:8px}.atlas-canvas:before{width:78%;height:66%}.atlas-canvas:after{width:48%;height:34%}.atlas-footer{display:grid}.atlas-utility{width:100%;min-width:0}.atlas-hint{display:none}.party-atlas-canvas{border-radius:16px}.party-track-label{display:block;padding:16px 15px 7px}.party-track-label b{display:block;margin-top:7px}.party-track-label em{display:block;margin-top:5px}.party-atlas-track{padding:22px 15px 26px}.party-atlas-track:before{left:15px;right:15px}.party-node{flex-basis:136px;min-height:136px}.party-axis{padding-left:15px;padding-right:15px}.party-thread-note{margin-left:15px;margin-right:15px}.party-confusions{display:grid}.party-atlas-footer{gap:12px}
}
/* 学习工作区只保留章节导航与主内容，节点操作集中到 chapter-next-bar。 */
@media(max-width:1100px){
  .course-shell{grid-template-columns:190px minmax(0,1fr)}
  .course-shell>.course-inspector{display:none}
}
@media(max-width:620px){
  .course-shell{grid-template-columns:1fr}
  .course-shell>.course-inspector{display:none}
}

/* ===== B08 merged from assets/css/person-specialty.css ===== */
.person-specialty-entry{border-color:rgba(184,67,50,.3)!important;background:linear-gradient(105deg,rgba(184,67,50,.08),transparent)!important}
.person-specialty-entry .qs-count{color:#b84332!important}
.person-specialty-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 12px}
.person-specialty-filters button{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--t2);cursor:pointer}
.person-specialty-filters button:first-child{grid-row:span 2}
.person-specialty-filters button span{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left}
.person-specialty-filters button small{font-size:9px;font-weight:500;color:var(--t3)}
.person-specialty-filters button b{font:700 13px ui-monospace,monospace;color:var(--t3)}
.person-specialty-filters button.on{border-color:#b84332;background:rgba(184,67,50,.09);color:var(--t1);box-shadow:inset 3px 0 #b84332}
.person-specialty-filters button.on b{color:#b84332}
.person-question-context{display:flex;align-items:center;gap:12px;padding:12px 16px!important}
.person-question-context>span{font:700 11px ui-monospace,monospace;letter-spacing:.08em;color:#b84332}
.person-question-context>div{display:flex;flex-wrap:wrap;gap:6px}
.person-question-context i{font-style:normal;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--card)}
.person-relation-tags b{font-size:11px;border-radius:4px;padding:5px 8px;color:#b84332;background:rgba(184,67,50,.1)}
.person-question-context p{margin:0 0 0 auto!important;font-size:12px!important;color:var(--t3)}
.person-weakness{display:flex;align-items:center;gap:12px;margin:0 0 20px;padding:11px 14px;border-left:3px solid #b84332;background:rgba(184,67,50,.07);border-radius:0 8px 8px 0}
.person-weakness span{font-size:10px;letter-spacing:.08em;color:var(--t3)}.person-weakness b{font-size:13px}.person-weakness em{font-style:normal;font-size:11px;color:#b84332}.person-weakness button{margin-left:auto;border:0;background:transparent;color:#b84332;font-weight:700;cursor:pointer}
@media(max-width:760px){
 .person-specialty-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .person-specialty-filters button:first-child{grid-column:1/-1;grid-row:auto}
 .person-question-context{align-items:flex-start;flex-direction:column}
 .person-question-context p{margin:0!important}
 .person-weakness{align-items:flex-start;flex-wrap:wrap}.person-weakness button{margin-left:0;width:100%;text-align:left}
}

/* ===== B08 merged from assets/css/topic-specialty.css ===== */
/* ===== 专项训练中心（九组辨析专题） ===== */
.topic-specialty-entry{border-color:rgba(192,57,43,.3)!important;background:linear-gradient(105deg,rgba(231,76,60,.08),rgba(52,152,219,.06))!important}
.topic-specialty-entry .qs-icon{background:linear-gradient(135deg,#e74c3c22,#3498db22)!important;color:#c0392b!important}

/* 中心首页：克制的编辑式训练目录，强调“练什么”而不是彩色分类。 */
.topic-specialty-hub{max-width:1040px;margin:0 auto;padding-bottom:48px;color:var(--t)}
.topic-hub-intro{position:relative;margin:20px 0 26px;padding:30px 34px;border:1px solid color-mix(in srgb,var(--line) 82%,#1b7778);border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--card) 92%,#dcefed),var(--card));overflow:hidden}
.topic-hub-intro::after{content:'辨';position:absolute;right:22px;top:-35px;color:color-mix(in srgb,#147d7b 7%,transparent);font:700 150px/1 "STSong","Songti SC",serif;pointer-events:none}
.topic-hub-intro>span{display:block;margin-bottom:9px;color:#16807f;font-size:11px;font-weight:800;letter-spacing:.14em}
.topic-hub-intro h2{position:relative;margin:0;color:var(--t);font:700 clamp(25px,3vw,38px)/1.15 "Songti SC","STSong",serif;letter-spacing:-.025em}
.topic-hub-intro p{position:relative;max-width:680px;margin:13px 0 0;color:var(--t2);font-size:14px;line-height:1.8}
.ts-sections{display:grid;gap:28px}
.ts-section>header{display:flex;align-items:flex-start;gap:13px;margin-bottom:11px}
.ts-section>header i{padding-top:2px;color:#c07928;font:700 11px/1.5 ui-monospace,SFMono-Regular,monospace;font-style:normal;letter-spacing:.1em}
.ts-section>header b{display:block;color:var(--t);font-size:17px;line-height:1.25}
.ts-section>header p{margin:4px 0 0;color:var(--t3);font-size:12px;line-height:1.5}
.ts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ts-card{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:15px;min-height:132px;padding:20px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 96%,#d9ece8);color:var(--t);text-align:left;cursor:pointer;overflow:hidden;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.ts-card::after{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:#17817e;opacity:0;transition:opacity .18s}
.ts-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,#17817e 55%,var(--line));box-shadow:0 12px 30px rgba(19,56,59,.09)}
.ts-card:hover::after{opacity:1}
.ts-icon{align-self:start;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid color-mix(in srgb,#17817e 38%,var(--line));background:transparent;color:#147b79;font:700 11px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em}
.ts-meta{min-width:0}
.ts-track{display:block;margin-bottom:6px;color:#17817e;font-size:10px;font-weight:800;letter-spacing:.1em}
.ts-meta b{display:block;color:var(--t);font-size:17px;line-height:1.3}
.ts-meta small{display:block;margin-top:6px;color:var(--t2);font-size:13px;line-height:1.55}
.ts-examples{display:block;margin-top:8px;color:var(--t3);font-size:11px;line-height:1.4}
.ts-progress{align-self:stretch;display:flex;min-width:90px;flex-direction:column;align-items:flex-end;justify-content:center;border-left:1px solid var(--line);padding-left:15px}
.ts-progress strong{color:var(--t);font:700 24px/1 ui-monospace,SFMono-Regular,monospace}
.ts-progress strong small{margin-left:3px;color:var(--t3);font:500 10px/1 sans-serif}
.ts-progress em{margin-top:10px;color:var(--t3);font-size:11px;font-style:normal;white-space:nowrap}
.ts-card:hover .ts-progress em{color:#147b79}
.ts-weak{margin-bottom:7px;padding:3px 6px;border-radius:4px;background:#c07928;color:#fff;font-size:9px;font-weight:700}
.ts-person .ts-icon{border-color:color-mix(in srgb,#c07928 45%,var(--line));color:#a5611f}

/* 刷题时的上下文条 */
.topic-specialty-bar{border-left:3px solid var(--gc,#888)!important}
.topic-mode-switch{display:flex;gap:8px;margin:10px 0 14px}
.topic-mode-switch button{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer;text-align:left}
.topic-mode-switch button span{font-size:13px;font-weight:700;color:var(--t1)}
.topic-mode-switch button small{font-size:11px;color:var(--t3)}
.topic-mode-switch button.on{border-color:var(--gc,#5a8cf0);background:color-mix(in srgb,var(--gc,#5a8cf0) 8%,var(--card));box-shadow:inset 3px 0 var(--gc,#5a8cf0)}

/* 题目里的易混点上下文卡 */
.topic-question-context{display:flex;align-items:flex-start;gap:12px;padding:12px 16px!important;flex-wrap:wrap}
.topic-question-context>span{font:700 11px ui-monospace,monospace;letter-spacing:.06em;color:var(--gc,#3498db)}
.topic-confuse-tags{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:120px}
.topic-confuse-tags i{font-style:normal;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--card)}
.topic-mnemonic{margin:0!important;font-size:12px!important;color:var(--t2)!important;background:color-mix(in srgb,var(--gc,#3498db) 7%,transparent);padding:8px 10px;border-radius:6px;border-left:2px solid var(--gc,#3498db);width:100%}

@media(max-width:760px){
  .topic-hub-intro{padding:24px 22px}.topic-hub-intro::after{font-size:110px}
  .ts-grid{grid-template-columns:1fr}
  .ts-card{grid-template-columns:38px minmax(0,1fr);padding:17px;min-height:0}
  .ts-icon{width:36px;height:36px}
  .ts-progress{grid-column:2;align-self:auto;min-width:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;border:0;padding:2px 0 0}
  .ts-progress strong{font-size:16px}.ts-progress em{margin:0}
  .topic-mode-switch{flex-direction:column}
  .topic-question-context{flex-direction:column;align-items:flex-start}
}

/* ===== 解析增强（考点补充卡） ===== */
.quiz-enhancement{margin-top:8px;border-left:3px solid #5a8cf0!important;background:rgba(90,140,240,.05)!important}
.quiz-enhancement summary{font-weight:600;color:#5a8cf0}
.quiz-enhancement[open] summary{margin-bottom:8px}
.quiz-enhancement .enh-point,.quiz-enhancement .enh-trap,.quiz-enhancement .enh-memo{display:flex;gap:8px;padding:6px 0;border-top:1px dashed var(--line);font-size:13px;line-height:1.6}
.quiz-enhancement .enh-point:first-of-type,.quiz-enhancement .enh-trap:first-of-type,.quiz-enhancement .enh-memo:first-of-type{border-top:0}
.quiz-enhancement span{flex:none;font:700 11px ui-monospace,monospace;color:var(--t3);min-width:32px;padding-top:2px}
.quiz-enhancement .enh-point span{color:#5a8cf0}
.quiz-enhancement .enh-trap span{color:#e67e22}
.quiz-enhancement .enh-memo span{color:#27ae60}
.quiz-enhancement .enh-point div,.quiz-enhancement .enh-trap div,.quiz-enhancement .enh-memo div{color:var(--t1)}
.quiz-enhancement .enh-source{display:block;margin-top:6px;font-size:10px;color:var(--t3);opacity:.7}

/* ===== 解析区合并样式 ===== */
.quiz-exp-divider{border:0;border-top:1px dashed var(--line);margin:14px 0 10px}
.quiz-exp-enh-group{margin-top:4px}
.quiz-exp-enh-title{font:700 12px ui-monospace,monospace;letter-spacing:.04em;color:#5a8cf0;margin-bottom:8px;padding-left:2px}
.quiz-exp-enh-group .enh-point,.quiz-exp-enh-group .enh-trap,.quiz-exp-enh-group .enh-memo{padding:5px 0;border-top:0}

/* ===== 解析配图/配表 ===== */
.quiz-visual{margin-top:10px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.quiz-visual>summary{padding:10px 14px;font-weight:600;font-size:13px;cursor:pointer;background:rgba(90,140,240,.06);color:var(--t1)}
.quiz-table-block{border-left:3px solid #5a8cf0}
.quiz-compare-table{width:100%;border-collapse:collapse;font-size:12px;margin:8px 0}
.quiz-compare-table th{background:rgba(90,140,240,.1);color:#5a8cf0;padding:7px 8px;text-align:left;font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}
.quiz-compare-table td{padding:6px 8px;border-bottom:1px solid var(--line);color:var(--t1);line-height:1.5}
.quiz-compare-table tr.tv-first td{font-weight:600;color:var(--t1)}
.quiz-compare-table tr.tv-first td:first-child{color:#5a8cf0}
.quiz-table-hint{padding:6px 12px 10px;font-size:11px;color:#27ae60;background:rgba(39,174,96,.05);border-top:1px dashed var(--line)}
.quiz-image-block{border-left:3px solid #e67e22}
.quiz-visual-img-wrap{padding:10px;text-align:center}
.quiz-visual-img-wrap img{max-width:100%;max-height:240px;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.quiz-visual-features{margin:0 14px 8px;padding:6px 16px;font-size:12px;color:var(--t2)}
.quiz-visual-features li{padding:2px 0}
.quiz-visual-confuse{margin:0 14px 10px;padding:6px 10px;font-size:12px;color:#e67e22;background:rgba(230,126,34,.08);border-radius:4px}
.quiz-visual-spot-tag{padding:4px 14px 10px;font-size:11px;color:var(--t3)}
.quiz-knowledge-map{border-left:3px solid #39a7a0;background:linear-gradient(145deg,rgba(21,46,58,.98),rgba(13,29,43,.98));color:#eef8f6}
.quiz-knowledge-map>summary{display:flex;align-items:center;gap:9px;color:#eef8f6;background:rgba(70,196,180,.1)}
.quiz-knowledge-map>summary span{flex:none;padding:3px 7px;border:1px solid rgba(117,226,208,.45);border-radius:99px;color:#83e1d1;font:700 10px/1.2 ui-monospace,monospace;letter-spacing:.08em}
.knowledge-map-preview{position:relative;display:block;width:100%;padding:12px;border:0;background:transparent;cursor:zoom-in;text-align:center}
/* 框收缩到刚好包住缩略图:inline-block 随图自适应宽高,再在卡片里居中,不再整行铺满留大空框 */
.kmp-frame{position:relative;display:inline-block;max-width:100%;vertical-align:top}
.knowledge-map-preview img{display:block;width:auto;height:auto;max-width:100%;border-radius:9px;background:#0b1a25;box-shadow:0 12px 36px rgba(0,0,0,.26)}
.knowledge-map-preview i{position:absolute;right:8px;bottom:8px;padding:6px 9px;border-radius:99px;color:#fff;background:rgba(4,16,24,.78);font:600 10px/1 sans-serif;font-style:normal;backdrop-filter:blur(8px)}
.knowledge-map-meta{display:flex;justify-content:space-between;gap:12px;padding:0 14px 12px;color:#9db9c1;font-size:10px}
.knowledge-map-meta span{color:#6dd1c0;font-weight:700}
.knowledge-map-lightbox{position:fixed;z-index:100000;inset:0;display:grid;grid-template-rows:auto 1fr;background:rgba(3,10,16,.96);backdrop-filter:blur(14px)}
.knowledge-map-lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;color:#f3fbfa;background:rgba(7,24,33,.94);border-bottom:1px solid rgba(139,221,210,.18)}
.knowledge-map-lightbox-bar>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.knowledge-map-lightbox-bar>div{display:flex;align-items:center;gap:8px;flex:none}
.knowledge-map-lightbox-bar a,.knowledge-map-lightbox-bar button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border:1px solid rgba(139,221,210,.28);border-radius:99px;color:#dff7f2;background:rgba(109,209,192,.09);font-size:11px;text-decoration:none;cursor:pointer}
.knowledge-map-lightbox-bar button{width:34px;padding:0;font-size:22px}
.knowledge-map-lightbox-canvas{overflow:auto;padding:18px;text-align:center;overscroll-behavior:contain}
.knowledge-map-lightbox-canvas img{max-width:none;width:auto;height:auto;min-width:min(100%,900px);border-radius:10px;box-shadow:0 20px 80px rgba(0,0,0,.5)}
@media(max-width:760px){
  .quiz-compare-table{font-size:11px}
  .quiz-compare-table th,.quiz-compare-table td{padding:5px 6px}
  .quiz-visual-img-wrap img{max-height:180px}
  .knowledge-map-preview{padding:8px}
  .knowledge-map-preview i{right:6px;bottom:6px}
  .knowledge-map-meta{display:block;padding:1px 10px 10px}
  .knowledge-map-meta small{display:block;margin-top:3px}
  .knowledge-map-lightbox-bar{padding:10px}
  .knowledge-map-lightbox-bar>b{font-size:11px}
  .knowledge-map-lightbox-canvas{padding:8px}
  .knowledge-map-lightbox-canvas img{min-width:100%}
}

/* ===== 选项知识点展开 ===== */
.quiz-option-kb{border-left:3px solid #27ae60}
.opt-kb-list{padding:8px 12px}
.opt-kb-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12px;line-height:1.5}
.opt-kb-item:last-child{border-bottom:0}
.opt-kb-letter{flex:none;width:22px;height:22px;border-radius:50%;background:var(--line);color:var(--t3);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.opt-kb-item.is-correct .opt-kb-letter{background:#27ae60;color:#fff}
.opt-kb-name{flex:none;font-weight:600;color:var(--t1);min-width:60px}
.opt-kb-item.is-correct .opt-kb-name{color:#27ae60}
.opt-kb-desc{color:var(--t2);flex:1}
@media(max-width:760px){
  .opt-kb-item{flex-wrap:wrap;gap:4px}
  .opt-kb-name{min-width:auto}
}

/* 解析配图缩略图:默认小图省空间,点击图即放大(无文字提示,悬停微放大作暗示) */
.quiz-visual-thumb{position:relative;display:block;width:100%;padding:8px;border:0;background:transparent;cursor:zoom-in}
.quiz-visual-thumb img{display:block;width:100%;max-height:150px;object-fit:cover;object-position:center;border-radius:10px;background:#0b1a25;box-shadow:0 8px 22px rgba(0,0,0,.2);transition:transform .15s ease,box-shadow .15s ease}
.quiz-visual-thumb:hover img{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.3)}
@media(max-width:768px){
  .quiz-visual-thumb img{max-height:118px}
  .quiz-visual-thumb{padding:6px}
}

/* 一图搞懂无框化:取消深色卡与边框,浅色标题行紧跟正确答案下方,缩略图直接贴在标题下(仍可点击放大) */
/* 有图且有解析:左图右解析两栏;窄屏/手机自动上下排(图在上) */
.quiz-exp-split{display:flex;gap:14px;align-items:flex-start;margin-top:10px}
.quiz-exp-split-visual{flex:0 0 clamp(240px,30%,360px);min-width:0}
.quiz-exp-split-visual .knowledge-map-preview img{max-height:280px}
.quiz-exp-split-text{flex:1;min-width:0}
@media(max-width:820px){
  .quiz-exp-split{flex-direction:column}
  .quiz-exp-split-visual{flex:none}
  .quiz-exp-split-visual .knowledge-map-preview img{max-height:190px}
}
body[data-view="quiz"] .quiz-knowledge-map{margin:2px 0 0;background:transparent;border:0;border-radius:0;overflow:visible;color:var(--t2)}
body[data-view="quiz"] .quiz-knowledge-map>summary{padding:4px 0 6px;font-weight:600;font-size:13px;background:transparent;color:#2a8a81}
body[data-view="quiz"] .quiz-knowledge-map>summary span{border:1px solid rgba(42,138,129,.4);background:rgba(42,138,129,.07);color:#2a8a81}
body[data-view="quiz"] .knowledge-map-preview{padding:0 0 4px}
body[data-view="quiz"] .knowledge-map-preview img{max-height:250px;box-shadow:0 4px 14px rgba(9,44,71,.14)}
body[data-view="quiz"] .knowledge-map-meta{padding:0 0 10px;color:var(--t3)}
@media(max-width:768px){
  body[data-view="quiz"] .knowledge-map-preview img{max-height:190px}
}
/* 会员卡拿到服务端清晰预览后，按整卡宽度展示，避免沿用锁卡的矮图规则把文字压成不可读的窄条。 */
body[data-view="quiz"] .quiz-knowledge-map.mwall-member .kmp-frame{display:block;width:100%}
body[data-view="quiz"] .quiz-knowledge-map.mwall-member .knowledge-map-preview img{
  width:100%;
  max-width:100%;
  max-height:none;
  height:auto;
  object-fit:contain;
}

/* ===== B08 merged from assets/css/day-theme.css ===== */


html[data-theme="day"]{
  --space:#ffffff;--space-2:#f3f6f8;--panel:rgba(255,255,255,.78);--panel-solid:#ffffff;--panel-soft:rgba(25,52,69,.055);
  --hairline:rgba(41,66,77,.14);--hairline-strong:rgba(35,95,112,.28);--ink:#182b31;--ink-2:#53676b;--ink-3:#829094;
  --electric:#167d94;--cyan:#31a7ad;--violet:#6d6baa;--amber:#c98332;--red:#b54a3a;--blue:#167d94;--jade:#348b75;--gold:#c98332;
  --bg:var(--space);--bg2:var(--space-2);--card:var(--panel);--card2:var(--panel-soft);--line:var(--hairline);--t:var(--ink);--t2:var(--ink-2);--t3:var(--ink-3);
  --shadow:0 20px 55px rgba(52,65,61,.1);--shadow-lg:0 30px 90px rgba(52,65,61,.16);background:#ffffff;color-scheme:light
}
html[data-theme="day"] body,html[data-theme="day"] body:not(.on-home),html[data-theme="day"] body:not(.on-home) main{color:var(--ink);background:radial-gradient(circle at 68% -12%,rgba(79,170,185,.1),transparent 35%),#ffffff}
html[data-theme="day"] .sidebar{background:rgba(255,255,255,.92);border-right-color:rgba(41,66,77,.13);box-shadow:18px 0 60px rgba(46,64,62,.08)}
html[data-theme="day"] .sb-brand,html[data-theme="day"] .sb-footer{border-color:rgba(41,66,77,.11)}
html[data-theme="day"] .sb-brand-mark{background:linear-gradient(145deg,#3199a6,#126f83);box-shadow:0 8px 24px rgba(30,126,143,.22)}
html[data-theme="day"] .sb-brand-name b{color:#17333a}
html[data-theme="day"] .sb-progress{background:rgba(255,255,255,.76);border-color:rgba(41,66,77,.13);box-shadow:inset 0 1px #fff,0 8px 22px rgba(46,64,62,.055)}
html[data-theme="day"] .sb-progress-num b{color:#176f82;-webkit-text-fill-color:initial}
html[data-theme="day"] .sb-progress-bar{background:rgba(33,73,82,.1)}
html[data-theme="day"] .sb-nav-item{color:#718084}
html[data-theme="day"] .sb-nav-item:hover{color:#17333a;background:rgba(22,125,148,.07)}
html[data-theme="day"] .sb-nav-item.on{color:#125f71;background:linear-gradient(100deg,rgba(22,125,148,.14),rgba(22,125,148,.045));border-color:rgba(22,125,148,.2);box-shadow:inset 0 1px rgba(255,255,255,.8)}
html[data-theme="day"] .sb-nav-item.on::before{background:#178096;box-shadow:none}
html[data-theme="day"] .sb-toggle{background:rgba(255,255,255,.65);border-color:rgba(41,66,77,.1);color:#66787c}
html[data-theme="day"] .workspace-bar{background:rgba(255,255,255,.86);border-bottom-color:rgba(41,66,77,.12);box-shadow:0 8px 30px rgba(50,70,66,.05)}
html[data-theme="day"] .workspace-bar span{color:#167d94}html[data-theme="day"] .workspace-bar b{color:#173139}html[data-theme="day"] .workspace-bar p{color:#76878a}
html[data-theme="day"] .learn-masthead{border-color:rgba(41,88,96,.16);background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 42%,rgba(255,255,255,.08) 74%),url("../img/ui/learning-space-day-v1.png") center/cover no-repeat;box-shadow:inset 0 1px #fff,0 28px 80px rgba(54,72,67,.1)}
html[data-theme="day"] .learn-masthead:before{color:#799094}
html[data-theme="day"] :is(.eyebrow,.route-kicker,.section-heading span,.page-kicker,.simple-head>span){color:#177e93}
html[data-theme="day"] :is(.learn-masthead h1,.section-heading h2,.simple-head h1,.view-head h1){color:#173139}
html[data-theme="day"] .learn-masthead h1 em{background:linear-gradient(90deg,#145c69,#178aa0 65%,#4b9680);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
html[data-theme="day"] :is(.learn-masthead p,.simple-head p,.view-head p){color:#63777b}
html[data-theme="day"] .map-entry-card:hover{border-color:rgba(25,115,131,.42);box-shadow:inset 0 1px #fff,0 30px 86px rgba(37,76,70,.16),0 0 36px rgba(23,138,160,.08)}
html[data-theme="day"] .masthead-map-action{border-color:rgba(25,115,131,.24);background:rgba(26,123,139,.08);color:#173139}
html[data-theme="day"] .map-entry-card:hover .masthead-map-action{border-color:rgba(25,115,131,.48);background:rgba(26,123,139,.13)}
html[data-theme="day"] .masthead-map-action i,html[data-theme="day"] .masthead-map-action em{color:#16758a}
html[data-theme="day"] :is(.home-command-panel,.chapter-rail,.course-stage,.course-inspector){background:linear-gradient(155deg,rgba(255,255,255,.86),rgba(246,244,237,.9));border-color:rgba(41,76,83,.14);box-shadow:inset 0 1px #fff,0 24px 65px rgba(53,71,67,.09)}
html[data-theme="day"] :is(.home-command-panel .home-status>b,.subject-card h3,.simple-head h1,.visual-tool-grid b){color:#183238}
html[data-theme="day"] :is(.continue-card,.empty-command,.command-actions button,.subject-card,.qs-item,.qc-item,.profile-page .card,.visual-tool-grid button,.practice-card){background:rgba(255,255,255,.7);border-color:rgba(41,76,83,.13);color:#183238;box-shadow:inset 0 1px #fff}
html[data-theme="day"] :is(.subject-card,.qs-item,.qc-item,.visual-tool-grid button):hover{background:#fff;border-color:rgba(22,125,148,.34);box-shadow:0 22px 55px rgba(54,77,72,.1)}
html[data-theme="day"] :is(.subject-card p,.subject-meta,.visual-tool-grid span,.qs-sub){color:#687b7e}
html[data-theme="day"] :is(.subject-enter,.subject-id,.visual-tool-grid em,.visual-tool-grid i){color:#177e93}
html[data-theme="day"] .visual-tool-grid i{background:rgba(22,125,148,.09)}
html[data-theme="day"] .profile-page{color:#183238}html[data-theme="day"] .profile-page .big-num{color:#176f82}html[data-theme="day"] .profile-page .bar{background:rgba(31,70,78,.09)}
html[data-theme="day"] .welcome-overlay{background:rgba(35,46,44,.42)}html[data-theme="day"] .welcome-card{background:rgba(255,253,248,.97);border-color:rgba(41,76,83,.15);color:#183238}
html[data-theme="day"] .welcome-card h1{color:#183238}html[data-theme="day"] .wc-feat{background:rgba(22,125,148,.045);border-color:rgba(41,76,83,.1)}
@media(max-width:720px){.workspace-bar>p{display:none}}
@media(max-width:620px){html[data-theme="day"] .learn-masthead{background-image:linear-gradient(180deg,rgba(251,249,243,.98) 0%,rgba(251,249,243,.82) 48%,rgba(251,249,243,.12) 76%),url("../img/ui/learning-space-day-v1.png");background-position:center bottom;background-size:auto 72%}}

/* Progress command center — native light theme, not dark panels on a light canvas. */
html[data-theme="day"] .profile-page{color:#20383b}
html[data-theme="day"] .me-live{color:#708488}
html[data-theme="day"] .me-live i{background:#35bfa3;box-shadow:0 0 0 5px rgba(53,191,163,.1)}
html[data-theme="day"] .rank-command{
  color:#254044;background:linear-gradient(115deg,#fffdf7 0%,#f4fbf6 65%,#eaf8ef 100%);
  border-color:rgba(49,112,103,.17);box-shadow:inset 0 1px #fff,0 14px 40px rgba(53,83,75,.08)
}
html[data-theme="day"] .rank-seal{color:#664b27;background:linear-gradient(145deg,#fff4aa,#ffd071);box-shadow:0 6px 0 #d2a252,0 10px 20px rgba(122,93,44,.14),inset 0 2px 1px rgba(255,255,255,.8)}
html[data-theme="day"] .rank-seal:before,html[data-theme="day"] .rank-seal:after{background:#ffeb9d}
html[data-theme="day"] .rank-copy>span{color:#bb7e29}
html[data-theme="day"] .rank-copy h2{color:#263d3c}
html[data-theme="day"] .rank-copy p{color:#647875}
html[data-theme="day"] .rank-copy small{color:#798b87}
html[data-theme="day"] .rank-track{background:rgba(52,91,84,.1)}
html[data-theme="day"] .rank-track i{background:linear-gradient(90deg,#f0b54f,#55cbae)}
html[data-theme="day"] .rank-kpis{border-left-color:rgba(49,93,87,.12)}
html[data-theme="day"] .rank-kpis>div{border-right-color:rgba(49,93,87,.1)}
html[data-theme="day"] .rank-kpis span,html[data-theme="day"] .rank-kpis small{color:#7a8d89}
html[data-theme="day"] .rank-kpis b{color:#203a3c}
html[data-theme="day"] .rank-kpis .alert b{color:#d66052}
html[data-theme="day"] .management-panel{
  color:#20383b;background:rgba(255,254,250,.88);border-color:rgba(43,91,88,.14);
  box-shadow:inset 0 1px #fff,0 12px 34px rgba(55,78,72,.055)
}
html[data-theme="day"] .management-panel>header h2{color:#213a3d}
html[data-theme="day"] .management-panel>header span{color:#218f82}
html[data-theme="day"] .management-panel>header small{color:#879692}
html[data-theme="day"] .management-panel>header>i{color:#218f82;border-color:rgba(33,143,130,.24);background:#edf9f5}
html[data-theme="day"] .ai-diagnosis-body{background:linear-gradient(135deg,#f4fbf8,#fffaf0);border-color:rgba(47,115,105,.16)}
html[data-theme="day"] .ai-orbit{color:#218f82;border-color:rgba(33,143,130,.55);background:rgba(255,255,255,.72)}
html[data-theme="day"] .ai-orbit:before,html[data-theme="day"] .ai-orbit:after{border-color:rgba(33,143,130,.17)}
html[data-theme="day"] .ai-diagnosis-body span,html[data-theme="day"] .ai-diagnosis-body p{color:#758884}
html[data-theme="day"] .ai-diagnosis-body h3{color:#158777}
html[data-theme="day"] .diagnosis-evidence{border-color:rgba(45,89,83,.11)}
html[data-theme="day"] .diagnosis-evidence span{color:#8a9995}
html[data-theme="day"] .diagnosis-evidence b{color:#536b67}
html[data-theme="day"] .ai-action{color:#143a34;background:linear-gradient(90deg,#7ae3c8,#a8ecd1);box-shadow:0 7px 18px rgba(54,174,145,.14)}
html[data-theme="day"] .subject-progress-list button{border-color:rgba(45,89,83,.1)}
html[data-theme="day"] .subject-progress-list button:hover{background:#f0f8f4}
html[data-theme="day"] .subject-progress-list button>i{color:#188b7c;background:#e5f6f0}
html[data-theme="day"] .subject-progress-list b{color:#2d4545}
html[data-theme="day"] .subject-progress-list span{color:#82918d}
html[data-theme="day"] .subject-progress-list em{background:#e6eeeb}
html[data-theme="day"] .subject-progress-list button>strong{color:#188b7c}
html[data-theme="day"] .week-chart{border-color:rgba(45,89,83,.12)}
html[data-theme="day"] .week-chart i{background:linear-gradient(#69dbc1,#36a98f)}
html[data-theme="day"] .week-chart i b,html[data-theme="day"] .week-chart span,html[data-theme="day"] .activity-panel>p{color:#82928e}
html[data-theme="day"] .debt-list>div{border-color:rgba(45,89,83,.1)}
html[data-theme="day"] .debt-list .debt-head{background:#eef5f2}
html[data-theme="day"] .debt-list .debt-head>*{color:#7b8c88}
html[data-theme="day"] .debt-list>div>span{color:#344d4d}
html[data-theme="day"] .debt-list b{color:#667b77}
html[data-theme="day"] .debt-list b i{border-color:#aabbb7;background:#fff}
html[data-theme="day"] .debt-list b i.on{border-color:#39b99e;background:#58d1b6}
html[data-theme="day"] .debt-list small{color:#7d8e8a}
html[data-theme="day"] .debt-empty b{color:#38504e}
html[data-theme="day"] .debt-empty span{color:#84948f}
html[data-theme="day"] .panel-action{color:#168b7a;border-color:rgba(45,89,83,.11)}
html[data-theme="day"] .rank-ladder>div:not(:last-child):after{background:rgba(54,96,89,.14)}
html[data-theme="day"] .rank-ladder i{color:#70837e;background:#eef3f0;box-shadow:0 3px 0 #d7dfdb,inset 0 1px #fff}
html[data-theme="day"] .rank-ladder i>em{border-color:#81928e}
html[data-theme="day"] .rank-ladder i>em:before,html[data-theme="day"] .rank-ladder i>em:after{background:#81928e}
html[data-theme="day"] .rank-ladder .active{color:#a76d1e;background:rgba(255,208,113,.16)}
html[data-theme="day"] .rank-ladder .done{color:#218f82}
html[data-theme="day"] .data-control-panel{color:#294240;background:rgba(255,254,250,.88);border-color:rgba(43,91,88,.14);box-shadow:inset 0 1px #fff}
/* 题目提示卡(园林手法对比/建筑识图/宗教卡片)在浅色主题下的可读色。
   深色主题沿用 style.css 的白字+深色卡;此前桌面浅色主题没有覆盖,白字浅底看不见。
   色板与 mobile-appfeel.css 手机端保持一致。 */
html[data-theme="day"] body[data-view="quiz"].quiz-answering .garden-methods i,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .context-chips i,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .faith-cards i{background:rgba(13,89,108,.06);color:#3d4c46;border:1px solid rgba(13,89,108,.1)}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .garden-methods i.on,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .context-chips i.on,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .faith-cards i.on{background:rgba(230,82,63,.12);color:#8c3125;border-color:rgba(230,82,63,.4)}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .garden-methods b,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .context-chips b{color:#22332d}

/* ===== B08 merged from assets/css/learning-terminal-theme.css ===== */
/* =========================================================
   导游学霸 · Learning Terminal v2
   Typography: native modern Chinese sans for reliable offline rendering.
   UI: PingFang SC / Hiragino Sans GB. Metrics: DIN Alternate / SF Mono.
   ========================================================= */
:root{
  --font-ui:"SF Pro SC","SF Pro Text","PingFang SC","Helvetica Neue","Segoe UI Variable","Noto Sans CJK SC","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;
  --font-display:"SF Pro SC","SF Pro Display","PingFang SC","Helvetica Neue","Segoe UI Variable Display","Noto Sans CJK SC","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;
  --font-metric:"SF Pro SC","SF Pro Display","DIN Alternate","PingFang SC","Segoe UI Variable Display","Microsoft YaHei UI",Arial,sans-serif;
  --lt-bg:#07111a;
  --lt-surface:#0d1a24;
  --lt-surface-2:#12232e;
  --lt-surface-3:#172a35;
  --lt-line:rgba(147,177,190,.18);
  --lt-line-strong:rgba(72,199,191,.42);
  --lt-text:#eef4f2;
  --lt-text-2:#aab9bd;
  --lt-text-3:#71858d;
  --lt-accent:#38c4b8;
  --lt-accent-2:#66d5c5;
  --lt-amber:#dca14b;
  --lt-danger:#df6a60;
}
html,body,button,input,textarea,select{font-family:var(--font-ui)}
body:not([data-view="redmap"]) :is(h1,h2,h3,h4){font-family:var(--font-display)}
:is(.practice-score b,.practice-meta,.practice-progress,.qs-count,.person-specialty-filters button>b){font-family:var(--font-metric)}

/* Teaching and drilling stay distinct, but switching between them stays immediate. */
.study-mode-switch{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
  margin:0 0 22px;padding:6px;background:rgba(7,17,26,.72);
  border:1px solid var(--lt-line);border-radius:15px
}
.study-mode-switch button{
  min-width:0;padding:13px 15px;display:grid;grid-template-columns:32px 1fr;gap:10px;
  align-items:center;text-align:left;color:var(--lt-text-2);border:1px solid transparent;
  border-radius:10px;background:transparent
}
.study-mode-switch button:hover{background:rgba(255,255,255,.035);color:var(--lt-text)}
.study-mode-switch button.on{
  color:var(--lt-text);background:var(--lt-surface-2);border-color:var(--lt-line-strong);
  box-shadow:inset 3px 0 var(--lt-accent)
}
.study-mode-switch i{font:700 12px var(--font-metric);font-style:normal;color:var(--lt-accent)}
.study-mode-switch span{display:grid;gap:3px}.study-mode-switch b{font-size:14px}
.study-mode-switch em{font-size:11px;font-style:normal;color:var(--lt-text-3)}
.learn-home>.study-mode-switch{margin-top:28px}

/* The practice area is one coherent learning instrument, not stacked generic cards. */
body[data-view="quiz"] main{
  background:
    linear-gradient(rgba(57,116,123,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(57,116,123,.035) 1px,transparent 1px),
    radial-gradient(circle at 72% -8%,rgba(56,196,184,.1),transparent 34%),
    var(--lt-bg);
  background-size:36px 36px,36px 36px,auto,auto;
}
body[data-view="quiz"] .view-head h1,
body[data-view="quiz"] .practice-top h2{font-family:var(--font-display);letter-spacing:-.035em}
body[data-view="quiz"] .view-head h1{color:var(--lt-text)}
body[data-view="quiz"] .view-head p,
body[data-view="quiz"] .practice-score,
body[data-view="quiz"] .practice-meta{color:var(--lt-text-3)}
body[data-view="quiz"] .practice-score b{color:var(--lt-text);font-variant-numeric:tabular-nums}
body[data-view="quiz"] .practice-mode{color:var(--lt-accent)}
body[data-view="quiz"] .quiz-context-bar{border-left-color:var(--lt-accent)}
body[data-view="quiz"] .quiz-context-bar button{color:var(--lt-accent)}
body[data-view="quiz"] .person-specialty-entry{border-color:var(--lt-line-strong)!important;background:linear-gradient(105deg,rgba(56,196,184,.09),transparent)!important}
body[data-view="quiz"] .person-specialty-entry .qs-count{color:var(--lt-accent)!important}
body[data-view="quiz"] .person-specialty-filters button.on{border-color:var(--lt-accent);background:rgba(56,196,184,.09);box-shadow:inset 3px 0 var(--lt-accent)}
body[data-view="quiz"] .person-specialty-filters button.on b{color:var(--lt-accent)}
body[data-view="quiz"] .practice-progress{height:5px;background:rgba(139,167,177,.12)}
body[data-view="quiz"] .practice-progress i{background:linear-gradient(90deg,var(--lt-accent),#77d8cf);box-shadow:0 0 12px rgba(56,196,184,.25)}
body[data-view="quiz"] .practice-card{
  color:var(--lt-text);background:linear-gradient(145deg,rgba(17,34,45,.98),rgba(10,23,33,.98));
  border:1px solid var(--lt-line);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.22)
}
body[data-view="quiz"] .practice-stage.is-review .practice-card{border-color:rgba(220,161,75,.72)}
body[data-view="quiz"] .practice-stage .quiz-q{
  color:var(--lt-text);font-family:var(--font-ui);font-size:22px;font-weight:650;line-height:1.72;letter-spacing:.005em
}
body[data-view="quiz"] .practice-stage .opt{
  color:var(--lt-text);background:rgba(255,255,255,.025);border-color:var(--lt-line);
  border-radius:10px;padding:15px 16px
}
body[data-view="quiz"] .practice-stage .opt:hover{border-color:var(--lt-line-strong);background:rgba(56,196,184,.055)}
body[data-view="quiz"] .practice-stage .opt.selected{border-color:var(--lt-accent);background:rgba(56,196,184,.09);box-shadow:0 0 0 2px rgba(56,196,184,.08)}
body[data-view="quiz"] .practice-stage .opt .k{color:var(--lt-text-2);background:rgba(255,255,255,.055)}
body[data-view="quiz"] .btn-p,
body[data-view="quiz"] .multi-submit,
body[data-view="quiz"] .talk-send{background:var(--lt-accent);color:#071a1b;border:0;font-weight:750;box-shadow:none}
body[data-view="quiz"] .btn-p:hover,
body[data-view="quiz"] .multi-submit:hover,
body[data-view="quiz"] .talk-send:hover{background:var(--lt-accent-2);transform:translateY(-1px)}
body[data-view="quiz"] .btn-g{color:var(--lt-text-2);background:rgba(255,255,255,.035);border-color:var(--lt-line)}
body[data-view="quiz"] .tag{background:rgba(255,255,255,.055);color:var(--lt-text-2);border:1px solid transparent}
body[data-view="quiz"] .tag.b{background:rgba(56,196,184,.11);color:var(--lt-accent-2)}
body[data-view="quiz"] .quiz-exp{color:var(--lt-text-2);background:rgba(56,196,184,.055);border-left-color:var(--lt-accent)}

/* Context is a low-profile instrument rail. */
body[data-view="quiz"] .question-context{
  color:var(--lt-text);background:linear-gradient(90deg,rgba(12,31,42,.98),rgba(9,24,34,.98));
  border:1px solid var(--lt-line);border-radius:14px
}
body[data-view="quiz"] .question-context>span,
body[data-view="quiz"] .person-question-context>span{color:var(--lt-accent);font-family:var(--font-metric)}
body[data-view="quiz"] .question-context p{color:var(--lt-text-3)}
body[data-view="quiz"] .person-relation-tags b{color:var(--lt-accent-2);background:rgba(56,196,184,.1)}
body[data-view="quiz"] .person-question-context i{color:var(--lt-text-2);background:rgba(255,255,255,.035);border-color:var(--lt-line)}

/* Community uses the same elevation and palette as the question surface. */
body[data-view="quiz"] .question-talk{
  color:var(--lt-text);background:linear-gradient(145deg,rgba(15,31,42,.98),rgba(10,23,33,.98));
  border-color:var(--lt-line);border-radius:18px;box-shadow:0 20px 55px rgba(0,0,0,.18)
}
body[data-view="quiz"] .talk-head{background:rgba(255,255,255,.025);border-color:var(--lt-line)}
body[data-view="quiz"] .talk-head span,
body[data-view="quiz"] .talk-list-head button{color:var(--lt-accent)}
body[data-view="quiz"] .talk-head b,
body[data-view="quiz"] .talk-list-head b,
body[data-view="quiz"] .talk-author b{color:var(--lt-text)}
body[data-view="quiz"] .talk-question-like{color:var(--lt-text-2);background:rgba(255,255,255,.035);border-color:var(--lt-line)}
body[data-view="quiz"] .talk-question-like.on{color:var(--lt-accent);background:rgba(56,196,184,.09);border-color:var(--lt-line-strong)}
body[data-view="quiz"] .talk-compose textarea,
body[data-view="quiz"] .talk-reply-box textarea{
  color:var(--lt-text);background:rgba(3,12,19,.52);border-color:var(--lt-line);caret-color:var(--lt-accent)
}
body[data-view="quiz"] :is(.talk-compose textarea,.talk-reply-box textarea)::placeholder{color:var(--lt-text-3)}
body[data-view="quiz"] :is(.talk-compose textarea,.talk-reply-box textarea):focus{border-color:var(--lt-accent);box-shadow:0 0 0 3px rgba(56,196,184,.09)}
body[data-view="quiz"] .talk-avatar{color:var(--lt-accent-2);background:rgba(56,196,184,.11);font-family:var(--font-display)}
body[data-view="quiz"] .talk-name,
body[data-view="quiz"] .talk-compose-foot span,
body[data-view="quiz"] .talk-empty,
body[data-view="quiz"] .talk-author time,
body[data-view="quiz"] .talk-actions button{color:var(--lt-text-3)}
body[data-view="quiz"] .talk-comment p{color:var(--lt-text-2)}
body[data-view="quiz"] .talk-list-head,
body[data-view="quiz"] .talk-comment{border-color:var(--lt-line)}
body[data-view="quiz"] .talk-replies,
body[data-view="quiz"] .talk-reply-box{background:rgba(255,255,255,.025);border-color:var(--lt-line)}
body[data-view="quiz"] .sb-nav-item.on{border-color:rgba(56,196,184,.34);background:rgba(56,196,184,.1);color:var(--lt-text)}
body[data-view="quiz"] .sb-nav-item.on::before{background:var(--lt-accent)}

/* Focused question layout: one screen, one decision. */
.quiz-page.is-answering{max-width:1180px;padding-top:34px}
.quiz-page.is-answering>.study-mode-switch,
.quiz-page.is-answering>.view-head,
.quiz-page.is-answering>#quizNav{display:none}
.quiz-page.is-answering .practice-stage{max-width:1040px;padding-top:0}
.quiz-session-head{
  display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;
  padding:0 2px 18px
}
.quiz-session-head>button{
  justify-self:start;padding:9px 0;color:var(--lt-text-3);background:transparent;font-size:13px
}
.quiz-session-head>button:hover{color:var(--lt-accent)}
.quiz-session-head>div:nth-child(2){display:grid;gap:3px}
.quiz-session-head>div:nth-child(2)>span{color:var(--lt-text-3);font-size:11px}
.quiz-session-head h2{margin:0!important;font-size:18px!important;letter-spacing:0!important}
.quiz-session-head .practice-score{align-items:center;padding:8px 12px;border:1px solid var(--lt-line);border-radius:9px}
.quiz-session-head .practice-score span{display:flex;align-items:baseline;gap:6px}
.quiz-session-head .practice-score b{font-size:16px;margin:0;color:var(--lt-accent)}
.quiz-page.is-answering .practice-progress{margin-bottom:14px;height:3px}
.quiz-page.is-answering .practice-card{padding:34px 38px 22px;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.16)}
.quiz-page.is-answering .practice-meta{margin-bottom:30px;padding-bottom:15px;border-bottom:1px solid var(--lt-line)}
.quiz-page.is-answering .practice-meta>div{display:flex;align-items:center;gap:10px}
.quiz-mode-label{font-size:11px;color:var(--lt-text-3)}
.quiz-stem{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;align-items:start;margin-bottom:26px}
.quiz-stem>i{
  display:grid;place-items:center;width:30px;height:30px;border-radius:7px;
  color:#071a1b;background:var(--lt-accent);font:800 13px var(--font-metric);font-style:normal
}
.quiz-page.is-answering .quiz-q{margin:0;font-size:21px;line-height:1.65}
.quiz-options{display:grid;gap:10px}
.quiz-options-adaptive{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch
}
.quiz-options-adaptive .opt-wide{grid-column:1/-1}
.quiz-page.is-answering .quiz-options .opt{
  min-height:58px;margin:0;padding:14px 16px;border-radius:8px;align-items:center
}
.quiz-page.is-answering .quiz-options .opt .k{
  display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;padding:0;border-radius:50%;
  font:700 12px var(--font-metric)
}
/* Answer feedback must sit above the answering-state option skin. */
.quiz-page.is-answering .quiz-options .opt.ok{
  color:#18543d;
  border-color:#45bd87;
  background:#e2f3ea;
  box-shadow:0 0 0 2px rgba(69,189,135,.16)
}
.quiz-page.is-answering .quiz-options .opt.ok .k{
  color:#fff;
  background:#2f9f6d
}
.quiz-page.is-answering .quiz-options .opt.no{
  color:#71332d;
  border-color:#d26a5f;
  background:#fae9e6
}
.quiz-page.is-answering .quiz-options .opt.no .k{
  color:#fff;
  background:#c35a50
}
.quiz-page.is-answering .practice-nav{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  margin-top:26px;padding-top:18px;border-top:1px solid var(--lt-line)
}
.practice-nav>span{color:var(--lt-text-3);font:12px var(--font-metric)}
.practice-nav>span b{color:var(--lt-text);font-size:15px}
.quiz-nav-prev,.quiz-nav-next{padding:11px 17px;border-radius:8px;font-weight:700}
.quiz-nav-prev{justify-self:start;color:var(--lt-text-2);background:transparent;border:1px solid var(--lt-line)}
.quiz-nav-next{justify-self:end;color:#071a1b;background:var(--lt-accent)}
.quiz-nav-prev:disabled{opacity:.32;cursor:not-allowed}
.quiz-nav-next:hover{background:var(--lt-accent-2)}
.quiz-page.is-answering .quiz-result{margin-top:20px}
.quiz-page.is-answering .quiz-exp{padding:16px 18px;border-radius:8px}

/* Chapter cards carry their own review progress: the tint grows with the
   answered-question ratio without reducing contrast or changing card height. */
body[data-view="quiz"] .quiz-chapters .qc-item{
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(90deg,rgba(23,127,125,.16) 0 var(--chapter-progress,0%),var(--lt-surface) var(--chapter-progress,0%) 100%);
  transition:background-size .25s ease,border-color .2s ease,transform .2s ease
}
body[data-view="quiz"] .quiz-chapters .qc-item::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(105deg,rgba(23,127,125,.14),transparent 62%);
  opacity:calc(var(--chapter-progress,0) / 100);pointer-events:none
}
body[data-view="quiz"] .quiz-chapters .qc-item>*{position:relative;z-index:1}

/* Day theme is explicit: no inherited white text on light surfaces. */
html[data-theme="day"]{
  --lt-bg:#edf2f1;--lt-surface:#ffffff;--lt-surface-2:#f5f8f7;--lt-surface-3:#e8efed;
  --lt-line:rgba(31,75,82,.16);--lt-line-strong:rgba(24,132,129,.42);
  --lt-text:#11272c;--lt-text-2:#52676b;--lt-text-3:#7b8d91;
  --lt-accent:#177f7d;--lt-accent-2:#126a69;--lt-amber:#a96d1c;--lt-danger:#b94e45
}
html[data-theme="day"] body[data-view="quiz"] main{
  color:var(--lt-text);
  background:
    linear-gradient(rgba(37,105,107,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(37,105,107,.035) 1px,transparent 1px),
    radial-gradient(circle at 72% -8%,rgba(23,127,125,.09),transparent 34%),
    var(--lt-bg);
  background-size:36px 36px,36px 36px,auto,auto
}
html[data-theme="day"] .study-mode-switch{background:rgba(255,255,255,.58)}
html[data-theme="day"] body[data-view="quiz"] :is(.view-head h1,.practice-top h2,.practice-score b,.practice-stage .quiz-q){color:var(--lt-text)!important}
html[data-theme="day"] body[data-view="quiz"] .practice-card{color:var(--lt-text);background:rgba(255,255,255,.94);border-color:var(--lt-line);box-shadow:0 22px 55px rgba(25,58,61,.08)}
html[data-theme="day"] body[data-view="quiz"] .practice-stage .opt{color:var(--lt-text);background:#f8faf9;border-color:var(--lt-line)}
html[data-theme="day"] body[data-view="quiz"] .practice-stage .opt:hover{background:#eef7f5}
html[data-theme="day"] body[data-view="quiz"] .practice-stage .opt .k{color:var(--lt-text-2);background:#e9efed}
html[data-theme="day"] body[data-view="quiz"] .question-context{color:var(--lt-text);background:#e3eeec;border-color:rgba(23,127,125,.19)}
html[data-theme="day"] body[data-view="quiz"] .question-context p{color:var(--lt-text-2)}
html[data-theme="day"] body[data-view="quiz"] .person-question-context i{color:var(--lt-text-2);background:rgba(255,255,255,.65)}
html[data-theme="day"] body[data-view="quiz"] .question-talk{color:var(--lt-text);background:rgba(255,255,255,.94);border-color:var(--lt-line);box-shadow:0 20px 55px rgba(25,58,61,.07)}
html[data-theme="day"] body[data-view="quiz"] .talk-head{background:#eff4f2}
html[data-theme="day"] body[data-view="quiz"] .talk-head b,
html[data-theme="day"] body[data-view="quiz"] .talk-list-head b,
html[data-theme="day"] body[data-view="quiz"] .talk-author b{color:var(--lt-text)}
html[data-theme="day"] body[data-view="quiz"] .talk-question-like{color:var(--lt-text-2);background:#fff}
html[data-theme="day"] body[data-view="quiz"] .talk-compose textarea,
html[data-theme="day"] body[data-view="quiz"] .talk-reply-box textarea{color:var(--lt-text);background:#f8faf9;border-color:var(--lt-line)}
html[data-theme="day"] body[data-view="quiz"] .talk-replies,
html[data-theme="day"] body[data-view="quiz"] .talk-reply-box{background:#f0f5f3}

@media(max-width:620px){
  .study-mode-switch{grid-template-columns:1fr;margin-bottom:16px}
  .learn-home>.study-mode-switch{margin-top:70px}
  body[data-view="quiz"] .practice-stage .quiz-q{font-size:19px;line-height:1.68}
  body[data-view="quiz"] .practice-card{padding:20px 16px}
  body[data-view="quiz"] .talk-head,body[data-view="quiz"] .talk-compose{padding-left:15px;padding-right:15px}
  .quiz-page.is-answering{padding-top:76px}
  .quiz-session-head{grid-template-columns:1fr auto;padding-bottom:13px}
  .quiz-session-head>button{grid-column:1/-1;padding:0 0 8px}
  .quiz-session-head .practice-score span:nth-child(2){display:none}
  .quiz-page.is-answering .practice-card{padding:22px 15px 15px}
  .quiz-stem{grid-template-columns:28px minmax(0,1fr);gap:10px}
  .quiz-stem>i{width:26px;height:26px}
  .quiz-page.is-answering .quiz-options .opt{min-height:54px}
  .quiz-options-adaptive{grid-template-columns:1fr}
  .quiz-options-adaptive .opt-wide{grid-column:auto}
  .practice-nav{grid-template-columns:1fr auto 1fr}
}

/* Map detail: fixed reference-sheet layout with opaque reading surfaces. */
.spot-modal-backdrop{background:rgba(2,8,14,.86);backdrop-filter:blur(14px) saturate(.75)}
.spot-modal{
  width:min(1320px,calc(100vw - 48px));height:min(88vh,860px);max-height:min(88vh,860px);color:#eaf2f1;
  background:#0d1921;border:1px solid rgba(111,189,183,.28);border-radius:18px;
  box-shadow:0 32px 100px rgba(0,0,0,.72)
}
.spot-modal-scroll{height:100%;max-height:none;overflow-y:auto;overflow-x:hidden}
.spot-modal .sd-card{
  display:grid;grid-template-columns:minmax(340px,44%) minmax(0,1fr);min-height:100%;
  color:#eaf2f1;background:#0d1921;border:0;border-radius:0
}
.spot-modal .sd-hero{
  position:sticky;top:0;width:100%;height:min(88vh,860px);min-height:560px;
  aspect-ratio:auto;margin:0;
  background-color:#081219!important;background-size:contain;background-repeat:no-repeat;background-position:center;
  border:0;border-radius:0;box-shadow:none
}
.spot-modal .sd-hero::after{background:linear-gradient(180deg,transparent 68%,rgba(3,10,15,.38));border-radius:0}
.spot-modal .sd-body{min-width:0;height:auto;overflow:visible;padding:34px 42px 44px;border-top:1px solid rgba(111,189,183,.14);border-left:0}
.spot-modal .sd-title{
  margin:0 0 14px;padding-right:40px;color:#f4f8f7;font-family:var(--font-display);
  font-size:clamp(28px,3vw,38px);font-weight:760;line-height:1.25;letter-spacing:-.025em
}
.spot-modal .sd-tags{margin-bottom:16px}
.spot-modal .sd-tags .tag{color:#b9cbc9;background:#14252e;border-color:rgba(131,172,176,.24)}
.spot-modal .sd-tagline{color:#a9bfbd;font-family:var(--font-ui);font-size:15px;font-style:normal}
.spot-modal .sd-addr{color:#b8c9c8;background:#12222b;border-left-color:var(--lt-accent)}
.spot-modal .sd-section{border-top:1px solid rgba(131,172,176,.17)}
.spot-modal .sd-section-h{color:#66d1c5;font-family:var(--font-ui);font-size:14px;font-weight:750}
.spot-modal .sd-overview,
.spot-modal .sd-must,
.spot-modal .sd-guide-body,
.spot-modal .sd-quiz-q{
  color:#dce8e6;font-family:var(--font-ui);font-size:16px;line-height:1.85
}
.spot-modal .sd-must-section{
  margin-inline:0;padding:18px 20px;background:rgba(220,161,75,.08);
  border:1px solid rgba(220,161,75,.3)
}
.spot-modal .sd-must-h{color:#e2b66f}
.spot-modal .sd-guide-body,
.spot-modal .sd-quiz-item{background:#12222b;border-color:rgba(131,172,176,.2)}
.spot-modal .sd-guide-body{max-height:340px;padding:18px 20px;border-left-color:var(--lt-accent)}
.spot-modal .sd-actions{background:linear-gradient(transparent,#0d1921 20%)}
.spot-modal .spot-profile-head span{font-size:11px}
.spot-modal .spot-profile-head h3{font-size:19px}
.spot-modal .spot-profile-head strong{font-size:34px}
.spot-modal .spot-profile-head strong small{font-size:11px}
.spot-modal .spot-profile-summary{font-size:13px;line-height:1.6}
.spot-modal .spot-profile-groups{gap:11px}
.spot-modal .spot-profile-groups article{padding:14px 15px}
.spot-modal .spot-profile-groups header span,
.spot-modal .spot-profile-groups header em{font-size:11px}
.spot-modal .spot-profile-groups header b{font-size:14px}
.spot-modal .spot-profile-groups ul{font-size:14px;line-height:1.72}
.spot-modal-close{
  top:18px;right:18px;width:42px;height:42px;color:#eaf2f1;
  background:#14242d;border-color:rgba(131,172,176,.28)
}

html[data-theme="day"] .spot-modal-backdrop{background:rgba(19,34,38,.66)}
html[data-theme="day"] .spot-modal,
html[data-theme="day"] .spot-modal .sd-card{color:#14282d;background:#f7faf9}
html[data-theme="day"] .spot-modal{border-color:rgba(29,107,108,.24);box-shadow:0 30px 90px rgba(13,35,40,.26)}
html[data-theme="day"] .spot-modal .sd-body{border-left-color:rgba(29,107,108,.14)}
html[data-theme="day"] .spot-modal .sd-title{color:#10262b}
html[data-theme="day"] .spot-modal .sd-tags .tag{color:#315459;background:#e7efed;border-color:rgba(29,107,108,.18)}
html[data-theme="day"] .spot-modal .sd-tagline,
html[data-theme="day"] .spot-modal .sd-addr{color:#48666a}
html[data-theme="day"] .spot-modal .sd-addr,
html[data-theme="day"] .spot-modal .sd-guide-body,
html[data-theme="day"] .spot-modal .sd-quiz-item{background:#edf3f1}
html[data-theme="day"] .spot-modal .sd-section{border-top-color:rgba(29,107,108,.14)}
html[data-theme="day"] .spot-modal .sd-section-h{color:#177f7d}
html[data-theme="day"] .spot-modal .sd-overview,
html[data-theme="day"] .spot-modal .sd-must,
html[data-theme="day"] .spot-modal .sd-guide-body,
html[data-theme="day"] .spot-modal .sd-quiz-q{color:#183237}
html[data-theme="day"] .spot-modal .sd-must-section{background:#fff8e9;border-color:rgba(172,112,29,.28)}
html[data-theme="day"] .spot-modal .sd-actions{background:linear-gradient(transparent,#f7faf9 20%)}
html[data-theme="day"] .spot-modal-close{color:#173036;background:#e4ecea;border-color:rgba(29,107,108,.22)}

@media(max-width:980px){
  .spot-modal .sd-card{display:block;height:auto}
  .spot-modal .sd-hero{
    position:relative;width:min(calc(100% - 36px),var(--hero-max-width,100%));
    height:auto;min-height:220px;max-height:46dvh;margin:18px auto;
    aspect-ratio:var(--hero-aspect,16/9);border-radius:12px
  }
  .spot-modal .sd-hero::before{
    content:"向下查看景点考点  ↓";position:absolute;z-index:2;left:50%;bottom:14px;
    transform:translateX(-50%);padding:8px 13px;border:1px solid rgba(255,255,255,.28);
    border-radius:999px;background:rgba(7,23,32,.78);color:#fff;
    font:700 12px/1 var(--font-ui);letter-spacing:.04em;white-space:nowrap;
    backdrop-filter:blur(8px)
  }
}

@media(max-width:760px){
  .spot-modal{width:100%;height:100dvh;max-height:none;border-radius:0}
  .spot-modal-scroll{height:100%;max-height:none;overflow-y:auto}
  .spot-modal .sd-card{display:block;height:auto}
  .spot-modal .sd-hero{position:relative;width:min(calc(100% - 28px),var(--hero-max-width,100%));height:auto;min-height:180px;max-height:42dvh;margin:14px auto;aspect-ratio:var(--hero-aspect,16/9)}
  .spot-modal .sd-body{height:auto;overflow:visible;padding:22px 18px 30px;border-left:0}
  .spot-modal .sd-title{font-size:28px}
}

.spot-inline-intro,
.spot-inline-loading,
.spot-inline-empty,
.spot-inline-summary{
  display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:20px;
  color:#dce8e6;background:#12222b;border:1px solid rgba(131,172,176,.2);border-radius:12px
}
.spot-inline-intro b{font-size:17px}.spot-inline-intro span{color:#9fb6b5;font-size:13px}
.spot-inline-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:18px;color:#9fb6b5;font:650 12px var(--font-metric)}
.spot-inline-head i{height:4px;background:linear-gradient(90deg,var(--lt-accent) var(--spot-progress,100%),rgba(131,172,176,.16) 0);border-radius:4px}
.spot-inline-head em{font-style:normal}
.spot-inline-stem{margin-bottom:16px;color:#edf5f3;font-size:18px;font-weight:680;line-height:1.65}
.spot-inline-options{display:grid;gap:10px}
.spot-inline-options button{
  display:grid;grid-template-columns:34px 1fr;align-items:center;gap:12px;width:100%;padding:12px 14px;
  color:#dce8e6;text-align:left;background:#12222b;border:1px solid rgba(131,172,176,.2);border-radius:9px
}
.spot-inline-options button:hover,.spot-inline-options button.selected{background:rgba(56,196,184,.1);border-color:var(--lt-accent)}
.spot-inline-options button i{display:grid;place-items:center;width:30px;height:30px;color:#9fb6b5;font:700 13px var(--font-metric);font-style:normal;background:#1a3039;border-radius:7px}
.spot-inline-options button.ok{color:#c9f1dc;background:rgba(49,178,121,.13);border-color:#45bd87}
.spot-inline-options button.no{color:#ffd0ca;background:rgba(210,83,70,.12);border-color:#d26a5f}
.spot-inline-multi-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}
.spot-inline-selection-status{color:#9fb6b5;font-size:12px;line-height:1.5}
.spot-inline-submit{margin:0;background:var(--lt-accent)!important;color:#071a1b!important}
.spot-inline-submit:disabled{cursor:not-allowed;opacity:.42;filter:saturate(.35);box-shadow:none}
.spot-inline-result>div{display:grid;gap:9px;margin-top:14px;padding:15px 16px;border-radius:10px}
.spot-inline-result .correct{color:#c9f1dc;background:rgba(49,178,121,.12)}
.spot-inline-result .wrong{color:#ffd0ca;background:rgba(210,83,70,.12)}
.spot-inline-result p{margin:0;color:inherit;line-height:1.7}
.spot-inline-next{
  justify-self:start;min-height:44px;margin-top:4px;padding:10px 18px;color:#071a1b;
  font:750 14px var(--font-ui);background:var(--lt-accent);border:1px solid transparent;border-radius:9px
}
.spot-inline-next:hover{filter:brightness(1.08);transform:translateY(-1px)}
.spot-inline-summary b{color:var(--lt-accent);font:750 34px var(--font-metric)}
.spot-inline-summary p{margin:0;color:#b8c9c8}

html[data-theme="day"] .spot-inline-intro,
html[data-theme="day"] .spot-inline-loading,
html[data-theme="day"] .spot-inline-empty,
html[data-theme="day"] .spot-inline-summary{color:#183237;background:#edf3f1;border-color:rgba(29,107,108,.17)}
html[data-theme="day"] .spot-inline-intro span,
html[data-theme="day"] .spot-inline-head{color:#547176}
html[data-theme="day"] .spot-inline-stem{color:#10262b}
html[data-theme="day"] .spot-inline-options button{color:#183237;background:#f7faf9;border-color:rgba(29,107,108,.18)}
html[data-theme="day"] .spot-inline-options button i{color:#45666a;background:#e5eeec}
html[data-theme="day"] .spot-inline-options button:hover{background:#edf6f4;border-color:#65aaa5}
html[data-theme="day"] .spot-inline-options button.selected,
html[data-theme="day"] .spot-inline-options button[aria-pressed="true"]{
  color:#0d4a49;background:#d9efeb;border-color:#168b85;box-shadow:0 0 0 2px rgba(22,139,133,.12)
}
html[data-theme="day"] .spot-inline-options button.selected i,
html[data-theme="day"] .spot-inline-options button[aria-pressed="true"] i{color:#fff;background:#168b85}
html[data-theme="day"] .spot-inline-selection-status{color:#48666a}
html[data-theme="day"] .spot-inline-summary p{color:#48666a}
html[data-theme="day"] .spot-inline-result .correct{color:#174c37;background:#e2f3ea;border:1px solid #a7d8c0}
html[data-theme="day"] .spot-inline-result .wrong{color:#71332d;background:#fae9e6;border:1px solid #e7b5ad}
html[data-theme="day"] .spot-inline-result p,
html[data-theme="day"] .spot-inline-result span{color:inherit}
html[data-theme="day"] .spot-inline-next{color:#fff;background:#147f7b;box-shadow:0 5px 16px rgba(20,127,123,.2)}

html[data-theme="day"] .spot-modal .spot-profile{
  color:#17363a;background:#eef5f3;border-color:rgba(29,107,108,.22)
}
html[data-theme="day"] .spot-modal .spot-profile-head h3,
html[data-theme="day"] .spot-modal .spot-profile-groups header b{color:#173238}
html[data-theme="day"] .spot-modal .spot-profile-head strong{color:#a86b12}
html[data-theme="day"] .spot-modal .spot-profile-head strong small,
html[data-theme="day"] .spot-modal .spot-profile-summary,
html[data-theme="day"] .spot-modal .spot-profile-groups ul{color:#456368}
html[data-theme="day"] .spot-modal .spot-profile-groups article{
  background:#f8fbfa;border-color:rgba(29,107,108,.18)
}
html[data-theme="day"] .spot-modal .spot-profile-groups header em{color:#9a640e}

/* Learning center: a calm task list, not a catalogue disguised as a map. */
.learn-home-simple{max-width:980px;margin:0 auto;padding:0 0 72px}
.learn-home-simple>.study-mode-switch{max-width:560px;margin:28px 0 54px}
.simple-learn-head{max-width:680px;margin-bottom:34px}
.simple-learn-head>span{display:block;margin-bottom:10px;color:var(--lt-accent);font-size:12px;font-weight:750;letter-spacing:.12em}
.simple-learn-head h1{margin:0;color:var(--lt-text);font-size:46px;line-height:1.12;letter-spacing:-.045em}
.simple-learn-head p{margin:14px 0 0;color:var(--lt-text-2);font-size:16px}
.today-study-card{display:grid;grid-template-columns:1fr auto;align-items:end;gap:28px;padding:32px;border:1px solid var(--lt-line-strong);border-radius:18px;background:linear-gradient(120deg,rgba(56,196,184,.12),rgba(18,35,46,.84) 58%);box-shadow:0 24px 70px rgba(0,0,0,.16)}
.today-study-copy>span{display:block;margin-bottom:22px;color:var(--lt-accent);font-size:11px;font-weight:750;letter-spacing:.1em}
.today-study-copy h2{margin:0;color:var(--lt-text);font-size:30px;letter-spacing:-.025em}
.today-study-copy p{margin:8px 0 0;color:var(--lt-text-2);font-size:13px}
.today-study-action{min-width:142px;padding:14px 18px;border-radius:9px;background:var(--lt-accent);color:#071a1b;font-size:14px;font-weight:780}
.today-study-action:hover{background:var(--lt-accent-2);transform:translateY(-1px)}
.today-study-action i{margin-left:16px;font-style:normal}
.review-strip{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:24px;margin-top:14px;padding:20px 24px;border:1px solid var(--lt-line);border-radius:14px;background:rgba(13,26,36,.72)}
.review-strip>div{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:start;gap:6px}
.review-strip>div span{grid-column:1/-1;color:var(--lt-text-3);font-size:11px}
.review-strip>div b{color:var(--lt-text);font:750 28px var(--font-metric)}
.review-strip>div em{color:var(--lt-text-3);font-size:11px;font-style:normal}
.review-strip p{margin:0;color:var(--lt-text-2);font-size:13px}
.review-strip>button{color:var(--lt-accent);font-size:13px;font-weight:700}
.course-list-section{margin-top:54px}
.simple-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.simple-section-head h2{margin:0;color:var(--lt-text);font-size:20px}
.simple-section-head span{color:var(--lt-text-3);font-size:12px}
.course-row-list{border-top:1px solid var(--lt-line)}
.course-row-list>button{display:grid;grid-template-columns:54px 1fr auto 24px;align-items:center;gap:14px;width:100%;padding:18px 6px;border-bottom:1px solid var(--lt-line);color:var(--lt-text);text-align:left}
.course-row-list>button:hover{padding-left:12px;background:rgba(56,196,184,.045)}
.course-row-id{color:var(--lt-accent);font:700 11px var(--font-metric)}
.course-row-list b{font-size:15px}.course-row-list em{color:var(--lt-text-3);font-size:12px;font-style:normal}
.course-row-list i{color:var(--lt-text-3);font-style:normal}
.learn-tool-links{display:flex;align-items:center;gap:18px;margin-top:30px;color:var(--lt-text-3);font-size:12px}
.learn-tool-links span{margin-right:auto}.learn-tool-links button{color:var(--lt-text-2);text-decoration:underline;text-underline-offset:4px}
.learn-tool-links button:hover{color:var(--lt-accent)}
html[data-theme="day"] .simple-learn-head h1,
html[data-theme="day"] .today-study-copy h2,
html[data-theme="day"] .simple-section-head h2,
html[data-theme="day"] .course-row-list>button,
html[data-theme="day"] .review-strip>div b{color:#173238}
html[data-theme="day"] .simple-learn-head>span,
html[data-theme="day"] .today-study-copy>span,
html[data-theme="day"] .course-row-id,
html[data-theme="day"] .review-strip>button{color:#147f7b}
html[data-theme="day"] .simple-learn-head p,
html[data-theme="day"] .today-study-copy p,
html[data-theme="day"] .review-strip p,
html[data-theme="day"] .course-row-list em,
html[data-theme="day"] .learn-tool-links,
html[data-theme="day"] .learn-tool-links button{color:#547176}
html[data-theme="day"] .today-study-card{background:linear-gradient(120deg,#e1f0ec,#f8faf7 64%);border-color:rgba(20,127,123,.28);box-shadow:0 18px 50px rgba(45,74,69,.09)}
html[data-theme="day"] .today-study-action{color:#fff;background:#147f7b}
html[data-theme="day"] .review-strip{background:#f7faf8;border-color:rgba(29,107,108,.16)}
html[data-theme="day"] .course-row-list,
html[data-theme="day"] .course-row-list>button{border-color:rgba(29,107,108,.15)}
html[data-theme="day"] .course-row-list>button:hover{background:#edf6f3}
@media(max-width:620px){
  .learn-home-simple>.study-mode-switch{margin-bottom:38px}
  .simple-learn-head h1{font-size:36px}
  .today-study-card{grid-template-columns:1fr;padding:24px}
  .today-study-action{width:100%}
  .review-strip{grid-template-columns:1fr auto;gap:14px}
  .review-strip p{grid-column:1/-1;grid-row:2}
  .course-list-section{margin-top:42px}
  .course-row-list>button{grid-template-columns:46px 1fr auto}
  .course-row-list i{display:none}
  .learn-tool-links{align-items:flex-start;flex-wrap:wrap}
  .learn-tool-links span{width:100%}
}
.quiz-report-trigger{
  margin-right:14px;border:0;background:transparent;color:#52728a;
  font:600 13px/1.2 inherit;cursor:pointer;text-decoration:underline;
  text-underline-offset:3px;
}
.quiz-report-trigger:hover{color:#136ebd}
/* 错题重现开关：做题中随时开关，关闭时本组不再插入错题重现题 */
.review-repeat-toggle{
  margin-right:14px;padding:3px 10px;border:1px solid #b9d2e2;border-radius:99px;
  background:transparent;color:#136ebd;font:600 12px/1.4 inherit;cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.review-repeat-toggle:hover{background:#e8f2fa}
.review-repeat-toggle.is-off{border-color:#d8dee3;color:#8a97a0}
.review-repeat-toggle.is-off:hover{background:#f2f4f6;color:#5f6b73}
@media (max-width:768px){
  .review-repeat-toggle{margin-right:8px;padding:2px 8px;font-size:11px}
}
.question-report-overlay{
  position:fixed;inset:0;z-index:10020;display:grid;place-items:center;
  padding:24px;background:rgba(8,31,50,.42);backdrop-filter:blur(8px);
}
.question-report-card{
  position:relative;width:min(560px,100%);padding:30px;border:1px solid #cbddea;
  border-radius:20px;background:#fff;box-shadow:0 28px 80px rgba(9,44,71,.2);
  color:#102f47;
}
.question-report-card>span{font-size:11px;letter-spacing:.18em;color:#1689cf}
.question-report-card h3{margin:8px 0 6px;font-size:24px}
.question-report-card p{margin:0 0 20px;color:#607b90}
.question-report-close{
  position:absolute;right:18px;top:14px;border:0;background:transparent;
  color:#6d8495;font-size:26px;cursor:pointer;
}
.question-report-types{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.question-report-types input{position:absolute;opacity:0}
.question-report-types span{
  display:block;padding:8px 12px;border:1px solid #d4e2ec;border-radius:999px;
  color:#49677d;cursor:pointer;
}
.question-report-types input:checked+span{border-color:#1689cf;background:#eaf6fd;color:#0966a1}
.question-report-card textarea{
  box-sizing:border-box;width:100%;min-height:120px;padding:13px 14px;
  border:1px solid #cbddea;border-radius:12px;resize:vertical;font:14px/1.7 inherit;
}
.question-report-card form>button{
  width:100%;margin-top:14px;padding:12px;border:0;border-radius:10px;
  background:#116fbd;color:white;font:700 15px/1.2 inherit;cursor:pointer;
}
.question-report-card form>button:disabled{opacity:.65}
.question-report-status{min-height:20px;margin-top:8px;color:#17805f;font-size:13px}

/* One-click question feedback shares state in the question and explanation. */
.quiz-report-controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:100%}
.quiz-report-feedback{font-size:12px;color:#a33524;white-space:normal}
.quiz-report-trigger{min-height:36px;cursor:pointer}.quiz-report-trigger:disabled{opacity:.6;cursor:wait}
.quiz-result>.quiz-report-controls{margin:12px 0}.question-report-card{max-height:85dvh;overflow:auto}
.question-report-status.is-error{color:#a33524}.question-report-card label{font-size:14px;display:block;margin-bottom:8px}
@media(max-width:600px){.question-report-overlay{align-items:flex-end;padding:12px}.question-report-card{width:100%;padding:24px 20px;padding-bottom:max(24px,env(safe-area-inset-bottom));border-radius:20px}.quiz-report-trigger{min-height:44px}}

/* ===== B08 merged from assets/css/design-system-v2.css ===== */
/* 导游学霸 Design System v2
   Modern Chinese atlas × professional study terminal */
:root{
  --ds-ink:#17343a;
  --ds-muted:#657a7d;
  --ds-teal:#137f91;
  --ds-jade:#268b79;
  --ds-paper:#ffffff;
  --ds-line:rgba(40,76,82,.14);
  --ds-focus:#2b93a3;
  --ds-serif:var(--font-display);
  --ds-sans:var(--font-ui);
}

/* Navigation: one calm, platform-independent icon language. */
.sidebar{width:214px}
.sb-brand{height:72px}
.sb-brand-mark{border-radius:10px;background:linear-gradient(145deg,#258e9d,#126477);box-shadow:0 8px 22px rgba(25,113,130,.22)}
.sb-progress{margin:14px 13px 10px;padding:13px 14px;border-radius:12px}
.sb-progress-status{display:flex;align-items:center;gap:7px;margin-bottom:8px;color:var(--t2);font-size:12px}
.sb-progress-status i{width:7px;height:7px;border-radius:50%;background:#43b99c;box-shadow:0 0 0 4px rgba(67,185,156,.12)}
.sb-progress-num{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 8px;text-align:left}
.sb-progress-num b{font:700 26px/1 Georgia,serif}
.sb-progress-num span{color:var(--t3);font-size:12px}
.sb-progress-label{text-align:left;font-size:12px;margin-top:8px}
.sb-nav{padding:7px 12px 12px;gap:3px}
.sb-nav-group{padding:15px 10px 5px;color:rgba(73,93,97,.92);font-size:11px;font-weight:700;letter-spacing:.12em}
.sb-nav-item{min-height:48px;padding:11px 12px;gap:11px;border:1px solid transparent}
.sb-nav-item .sb-nav-ic{display:grid;place-items:center;width:22px;height:22px;font-size:0}
.sb-nav-item .sb-nav-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sb-nav-item.on{font-weight:700}
.sb-toggle{min-height:40px}
.sb-toggle span{font-size:23px;line-height:1;transition:transform .25s}
.sidebar:not(.expanded) .sb-toggle span{transform:rotate(180deg)}
.sidebar.expanded .sb-toggle::after{content:"收起导航"}
.workspace-bar{left:214px}
main,main.map-full{margin-left:214px}

/* Every interactive control needs a visible keyboard contract. */
button:focus-visible,[role="button"]:focus-visible,a:focus-visible{
  outline:3px solid color-mix(in srgb,var(--ds-focus) 55%,transparent);
  outline-offset:3px;
}

/* Map loading is now useful content, not a blank dark panel. */
.map-loading{
  gap:0;background:
    radial-gradient(circle at 50% 45%,rgba(36,139,151,.12),transparent 27%),
    linear-gradient(rgba(88,131,139,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(88,131,139,.045) 1px,transparent 1px),
    #081019;
  background-size:auto,34px 34px,34px 34px,auto;color:#dbe9e9
}
.ml-map-shell{position:relative;width:180px;height:118px;margin-bottom:22px}
.ml-map-shell svg{width:100%;height:100%;overflow:visible;fill:rgba(36,139,151,.07);stroke:#4db3be;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 14px rgba(77,179,190,.2))}
.ml-map-shell>span{position:absolute;width:7px;height:7px;border:2px solid #e0b664;border-radius:50%;background:#081019;box-shadow:0 0 0 5px rgba(224,182,100,.1);animation:mapPulse 1.8s infinite}
.ml-map-shell>span:nth-of-type(1){left:48px;top:48px}
.ml-map-shell>span:nth-of-type(2){left:103px;top:65px;animation-delay:.45s}
.ml-map-shell>span:nth-of-type(3){left:135px;top:49px;animation-delay:.9s}
.ml-text{display:grid;gap:3px;text-align:center;letter-spacing:0}
.ml-text b{color:#eef7f6;font-size:16px}
.ml-text span{color:#789295;font-size:12px}
.ml-progress{width:min(310px,72vw);height:6px;margin-top:24px;overflow:hidden;border-radius:99px;background:rgba(135,176,181,.13);box-shadow:inset 0 0 0 1px rgba(135,176,181,.08)}
.ml-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#267f91,#50b7ae,#e2b664);box-shadow:0 0 18px rgba(80,183,174,.38);transition:width .22s ease-out}
.ml-progress-meta{display:flex;justify-content:space-between;width:min(310px,72vw);margin-top:9px;color:#789295;font-size:11px}
.ml-progress-meta b{color:#a8c5c7;font:600 11px Georgia,serif}
.map-loading.is-complete{opacity:0;transition:opacity .25s ease}
@keyframes mapPulse{50%{transform:scale(1.45);box-shadow:0 0 0 9px rgba(224,182,100,0)}}
@media(prefers-reduced-motion:reduce){.ml-map-shell>span{animation:none}}

/* Raise the most problematic microcopy without flattening dense learning screens. */
.workspace-bar p,.command-actions em,.subject-meta,.course-heading p{font-size:12px}

/* Quiz hub: three jobs, one vocabulary, no decorative icon noise. */
.quiz-page>.view-head h1{font-family:var(--ds-serif)}
.quiz-entry-section{margin-top:28px}
.quiz-entry-section>header{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;margin-bottom:12px}
.quiz-entry-section>header>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(72,145,153,.25);border-radius:8px;color:#5fa1aa;font:700 11px Georgia,serif}
.quiz-entry-section>header div{display:grid;gap:2px}
.quiz-entry-section>header b{font-size:17px;color:var(--t)}
.quiz-entry-section>header p{margin:0;color:var(--t3);font-size:12px}
.quiz-entry-section .quiz-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}
.quiz-entry-section .qs-item{width:100%;min-height:82px;display:grid;grid-template-columns:44px 1fr auto;gap:12px;text-align:left;transform:none}
.quiz-entry-section .qs-item:hover{transform:translateY(-2px)}
.qs-code{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(87,154,163,.22);border-radius:9px;background:rgba(37,128,143,.07);color:#4d99a4;font-size:11px;font-weight:800}
.quiz-entry-section .qs-count{min-width:58px;text-align:center;font:700 14px Georgia,serif}
.quiz-review-entry{width:100%;min-height:82px;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid rgba(63,150,140,.22);border-radius:10px;background:linear-gradient(105deg,rgba(38,139,121,.1),rgba(38,139,121,.025));text-align:left}
.quiz-review-entry>div{display:grid;gap:4px}.quiz-review-entry b{font-size:15px}.quiz-review-entry span{color:var(--t3);font-size:12px}.quiz-review-entry em{color:#4fa398;font-size:12px;font-style:normal;font-weight:700}
.quiz-specialty-entries{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.quiz-specialty-entries button{min-height:94px;padding:17px 18px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);text-align:left}
.quiz-specialty-entries button:hover{border-color:#5c9ea7;transform:translateY(-2px)}
.quiz-specialty-entries span{grid-column:1/-1;color:#5c9ea7;font-size:11px;font-weight:800;letter-spacing:.08em}
.quiz-specialty-entries b{font-size:14px}.quiz-specialty-entries em{color:var(--t3);font-size:12px;font-style:normal}
.topic-specialty-hub .ts-icon{font:700 11px Georgia,serif;letter-spacing:.05em;color:var(--gc,#5c9ea7);background:color-mix(in srgb,var(--gc,#5c9ea7) 9%,transparent)}

/* Answering mode: restrained exam dossier, not a neon AI dashboard. */
body[data-view="quiz"].quiz-answering main{
  background:
    linear-gradient(rgba(193,173,137,.055) 1px,transparent 1px),
    #11181b;
  background-size:100% 34px;
}
body[data-view="quiz"].quiz-answering .practice-progress{height:2px;background:rgba(206,186,150,.14)}
body[data-view="quiz"].quiz-answering .practice-progress i{background:#b79259;box-shadow:none}
body[data-view="quiz"].quiz-answering .practice-card{
  background:#171f22;border-color:rgba(204,184,148,.22);border-radius:7px;
  box-shadow:0 26px 70px rgba(0,0,0,.2)
}
body[data-view="quiz"].quiz-answering .quiz-stem>i{
  color:#f4efe4;background:#283336;border:1px solid rgba(204,184,148,.32);
  border-radius:3px;font-family:Georgia,serif
}
body[data-view="quiz"].quiz-answering .practice-score b{color:#d5c5a7}
body[data-view="quiz"].quiz-answering .practice-stage .opt:hover{border-color:rgba(183,146,89,.55);background:rgba(183,146,89,.045)}
body[data-view="quiz"].quiz-answering .practice-stage .opt.selected{
  border-color:#b79259;background:rgba(183,146,89,.08);box-shadow:inset 3px 0 #b79259
}
body[data-view="quiz"].quiz-answering .tag.b{color:#cfb98f;background:rgba(183,146,89,.09);border-color:rgba(183,146,89,.18)}
body[data-view="quiz"].quiz-answering .quiz-nav-next{
  min-width:108px;color:#f8f4eb;background:#293437;border:1px solid rgba(211,194,162,.3);
  border-radius:4px;box-shadow:0 7px 18px rgba(0,0,0,.18)
}
body[data-view="quiz"].quiz-answering .quiz-nav-next:hover{background:#354246;border-color:#b79259}
body[data-view="quiz"].quiz-answering .quiz-nav-prev{border-radius:4px}
body[data-view="quiz"].quiz-answering .practice-nav>span b{color:#d5c5a7;font-family:Georgia,serif}

html[data-theme="day"] body[data-view="quiz"].quiz-answering main{
  background:
    linear-gradient(rgba(23,52,58,.03) 1px,transparent 1px),
    #ffffff;
  background-size:100% 34px
}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-card{
  color:#20292b;background:#ffffff;border-color:#d9dfe1;
  box-shadow:0 24px 65px rgba(52,65,61,.08)
}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-stem>i{
  color:#fffaf0;background:#273537;border-color:#273537
}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-progress{background:#ded7c9}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-progress i{background:#a47a3d}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-score b,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-nav>span b{color:#273537}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-stage .opt:hover{border-color:#b79b6b;background:#fcf8ef}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-stage .opt.selected{border-color:#9f7840;background:#faf4e8;box-shadow:inset 3px 0 #9f7840}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .tag.b{color:#725630;background:#f5ede0;border-color:#dfcfb5}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-nav-next{
  color:#fffdf8;background:#273537;border-color:#273537;box-shadow:0 7px 16px rgba(39,53,55,.15)
}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-nav-next:hover{background:#172426;border-color:#172426}

/* Immersive practice: answering owns the viewport. The reading column stays
   deliberately bounded, but the surrounding dashboard chrome and card frame
   disappear so large type—not nested containers—sets the hierarchy. */
body[data-view="quiz"].quiz-answering{
  /* clip 同样裁掉横向溢出,但不像 hidden 会把 body 变成滚动容器、
     弄坏 practice-nav 的吸底 sticky(做题导航) */
  overflow-x:clip
}
body[data-view="quiz"].quiz-answering :is(.sidebar,.workspace-bar,.mobile-menu-btn,.mobile-sidebar-backdrop){
  display:none!important
}
body[data-view="quiz"].quiz-answering main{
  min-height:100svh;margin-left:0!important;padding:0!important
}
body[data-view="quiz"].quiz-answering .quiz-page.is-answering{
  width:100%;max-width:none;padding:30px clamp(28px,5vw,96px) 52px
}
body[data-view="quiz"].quiz-answering .practice-stage{
  width:100%;max-width:1480px;margin:0 auto;padding:0
}
body[data-view="quiz"].quiz-answering .quiz-session-head{
  padding-bottom:22px
}
body[data-view="quiz"].quiz-answering .quiz-session-head h2{
  font-size:22px!important
}
body[data-view="quiz"].quiz-answering .practice-card,
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-card{
  padding:30px 0 0;background:transparent;border:0;border-radius:0;box-shadow:none
}
body[data-view="quiz"].quiz-answering .practice-meta{
  margin-bottom:34px;padding-bottom:18px
}
body[data-view="quiz"].quiz-answering .quiz-stem{
  grid-template-columns:46px minmax(0,1fr);gap:18px;margin-bottom:30px
}
body[data-view="quiz"].quiz-answering .quiz-stem>i{
  width:42px;height:42px;font-size:16px
}
body[data-view="quiz"].quiz-answering .quiz-q{
  max-width:46em;font-size:clamp(25px,1.65vw,31px);line-height:1.65
}
body[data-view="quiz"].quiz-answering .question-context{
  padding:20px 24px;margin-bottom:20px
}
body[data-view="quiz"].quiz-answering .question-context p{
  font-size:15px;line-height:1.75
}
body[data-view="quiz"].quiz-answering .quiz-options{
  gap:14px
}
body[data-view="quiz"].quiz-answering .quiz-options .opt{
  min-height:72px;padding:17px 20px;font-size:18px;line-height:1.6
}
body[data-view="quiz"].quiz-answering .quiz-options .opt .k{
  flex-basis:36px;width:36px;height:36px;font-size:14px
}
body[data-view="quiz"].quiz-answering .answer-reveal{
  padding:17px 19px
}
body[data-view="quiz"].quiz-answering .answer-reveal .answer-letters{
  font-size:20px
}
body[data-view="quiz"].quiz-answering .quiz-exp{
  padding:20px 22px;font-size:16px;line-height:1.85
}
body[data-view="quiz"].quiz-answering .practice-nav{
  margin-top:30px;padding-top:22px
}
body[data-view="quiz"].quiz-answering :is(.quiz-nav-prev,.quiz-nav-next){
  min-height:50px;padding:13px 22px;font-size:16px
}

@media(max-width:720px){
  body[data-view="quiz"].quiz-answering .quiz-page.is-answering{
    padding:18px 16px 32px
  }
  body[data-view="quiz"].quiz-answering .quiz-session-head h2{font-size:18px!important}
  body[data-view="quiz"].quiz-answering .practice-card{padding-top:22px}
  body[data-view="quiz"].quiz-answering .quiz-stem{
    grid-template-columns:34px minmax(0,1fr);gap:12px;margin-bottom:22px
  }
  body[data-view="quiz"].quiz-answering .quiz-stem>i{width:32px;height:32px;font-size:13px}
  body[data-view="quiz"].quiz-answering .quiz-q{font-size:22px;line-height:1.65}
  body[data-view="quiz"].quiz-answering .quiz-options .opt{
    min-height:60px;padding:14px 15px;font-size:16px
  }
  body[data-view="quiz"].quiz-answering .question-context{padding:16px}
  body[data-view="quiz"].quiz-answering .question-context p{font-size:14px}
  body[data-view="quiz"].quiz-answering .quiz-exp{padding:17px;font-size:15px}
}

/* Guide library: document index, not an emoji catalogue. */
.guide-list-item{grid-template-columns:34px minmax(0,1fr);gap:12px}
.guide-list-index{
  display:grid;place-items:center;width:30px;height:30px;color:var(--lt-text-3,#738083);
  font:650 10px/1 var(--font-metric,monospace);letter-spacing:.08em;
  border:1px solid var(--lt-line,rgba(90,105,105,.18));border-radius:2px
}
.guide-list-item.on .guide-list-index{
  color:#8d662d;border-color:rgba(164,122,61,.52);background:rgba(164,122,61,.08)
}
.guide-list-copy{min-width:0}
.guide-list-copy b{display:block;font-size:14px}
.guide-list-copy div{
  margin-top:4px;color:var(--t3);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.guide-document-mark{
  display:grid;place-items:center;width:34px;height:38px;color:#9b7135;
  font:700 14px/1 var(--font-display,serif);border:1px solid rgba(164,122,61,.38);
  border-radius:2px;background:rgba(164,122,61,.07)
}

/* Interview: a formal oral-exam desk, not a playful quiz widget. */
.split-list .interview-head{margin:4px 0 26px}
.interview-head>span{
  display:block;margin-bottom:10px;color:#9b7135;
  font:650 10px/1 var(--font-metric,monospace);letter-spacing:.16em
}
.interview-head h1{margin:0 0 7px;font-size:27px;letter-spacing:-.025em}
.interview-head p{max-width:560px;line-height:1.65}
.interview-syllabus-note{
  max-width:760px;margin:0 0 22px;padding:18px 20px;
  border:1px solid rgba(164,122,61,.28);border-radius:5px;
  background:linear-gradient(135deg,rgba(164,122,61,.09),rgba(164,122,61,.025))
}
.isn-label{
  margin-bottom:8px;color:#9b7135;
  font:650 10px/1 var(--font-metric,monospace);letter-spacing:.12em;text-transform:uppercase
}
.isn-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.isn-main b{font-size:18px;color:var(--t1)}
.isn-main span{font-size:13px;color:var(--t3)}
.isn-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;
  margin-top:14px
}
.isn-grid p,.isn-warning{margin:0;font-size:12px;line-height:1.65;color:var(--t2)}
.isn-grid strong{display:inline-block;min-width:62px;margin-right:6px;color:#8d662d}
.isn-warning{
  margin-top:13px;padding-top:11px;border-top:1px solid rgba(164,122,61,.2);
  color:var(--t2)
}
.delta-specialty-entry{
  position:relative;display:grid;grid-template-columns:50px minmax(0,1fr);gap:2px 12px;
  align-items:center;text-align:left;min-height:78px;padding:14px 16px!important;
  border-color:rgba(164,122,61,.38)!important;
  background:linear-gradient(120deg,rgba(164,122,61,.12),rgba(164,122,61,.025))!important
}
.delta-specialty-entry>span{
  grid-row:1/3;display:grid;place-items:center;width:50px;height:42px;
  color:#8d662d;font:750 12px/1 var(--font-metric,monospace);
  border:1px solid rgba(164,122,61,.38);border-radius:3px
}
.delta-specialty-entry>b{font-size:14px;color:var(--t1)}
.delta-specialty-entry>em{font-size:11px;color:var(--t3);font-style:normal}
.quiz-source-link{
  display:inline-flex;align-items:center;margin-top:12px;padding:7px 10px;
  color:#8d662d;font-size:11px;text-decoration:none;
  border:1px solid rgba(164,122,61,.3);border-radius:3px;background:rgba(164,122,61,.06)
}
.quiz-source-link:hover{border-color:rgba(164,122,61,.62);background:rgba(164,122,61,.12)}
@media(max-width:620px){
  .isn-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  body[data-view="interview"] .split-stage{
    display:block;height:auto;min-height:100vh;overflow:visible
  }
  body[data-view="interview"] .split-list{
    height:auto;min-height:100vh;overflow:visible;border-right:0
  }
  body[data-view="interview"] .split-map{display:none}
}
.interview-card{
  max-width:640px;padding:24px;border-radius:6px;box-shadow:0 12px 30px rgba(24,35,34,.06)
}
.interview-card .quiz-q{min-height:70px;padding:12px 0 24px;font-size:18px;line-height:1.7}
.interview-card #ivAns{
  border-left-color:#a47a3d!important;border-radius:2px!important;background:rgba(164,122,61,.07)!important
}
.interview-card .btn{min-height:42px;border-radius:3px;box-shadow:none}
.interview-card #ivToggle{color:#fffdf8;background:#273537;border-color:#273537}
.interview-card #ivToggle:hover{background:#1c282a}
.interview-card .interview-step{margin-left:auto}
.interview-card .interview-step+.interview-step{margin-left:0}
.interview-card .bar{height:3px;border-radius:0}
.interview-card .bar i{background:#a47a3d;border-radius:0}
.split-tip{border-radius:3px;letter-spacing:.01em}
html[data-theme="day"] body[data-view="interview"] .pill.on{
  color:#fffdf8;background:#a47a3d;border-color:#a47a3d
}

/* Progress: sober study record, no mascot or synthetic AI glow. */
body[data-view="me"] .rank-seal{
  width:54px;height:54px;border:1px solid rgba(164,122,61,.58);border-radius:3px;
  color:#d7b87d;background:transparent;box-shadow:none;transform:none;animation:none
}
body[data-view="me"] .rank-seal:before,
body[data-view="me"] .rank-seal:after{display:none}
body[data-view="me"] .rank-seal>span{transform:none}
body[data-view="me"] .ai-orbit{
  width:48px;height:48px;border-color:rgba(164,122,61,.55);border-radius:3px;color:#c49a58
}
body[data-view="me"] .ai-orbit:before,
body[data-view="me"] .ai-orbit:after{display:none}
body[data-view="me"] .ai-action{
  color:#fffdf8;background:#273537;border-radius:3px
}
body[data-view="me"] .subject-progress-list u{background:#a47a3d}
html[data-theme="day"] body[data-view="me"] .rank-command{
  color:#20292b;background:#fffdf8;border-color:#d6cec0;box-shadow:0 15px 38px rgba(70,57,39,.07)
}
html[data-theme="day"] body[data-view="me"] .rank-copy h2,
html[data-theme="day"] body[data-view="me"] .rank-kpis b{color:#273537}
html[data-theme="day"] body[data-view="me"] .rank-copy p,
html[data-theme="day"] body[data-view="me"] .rank-copy small,
html[data-theme="day"] body[data-view="me"] .rank-kpis span,
html[data-theme="day"] body[data-view="me"] .rank-kpis small{color:#74736e}
html[data-theme="day"] body[data-view="me"] .rank-kpis{border-left-color:#ded8cc}
html[data-theme="day"] body[data-view="me"] .rank-kpis>div{border-right-color:#e6e0d5}
html[data-theme="day"] body[data-view="me"] .rank-seal{color:#765a31;background:#f7f0e3}
html[data-theme="day"] body[data-view="me"] .ai-diagnosis-body{
  border-color:rgba(41,66,77,.18);background:#ffffff
}
html[data-theme="day"] body[data-view="me"] .ai-orbit{color:#765a31;background:#f7f0e3}
html[data-theme="day"] body[data-view="me"] .ai-diagnosis-body h3{color:#273537}
html[data-theme="day"] body[data-view="me"] .ai-action{color:#fffdf8;background:#273537}

/* Map detail system: archival field notes, consistent with the main product. */
.spot-modal{
  border-radius:8px;
  border-color:rgba(164,122,61,.28);
  box-shadow:0 28px 80px rgba(7,14,18,.42)
}
.spot-modal .sd-card{background:#111c22}
.spot-modal .sd-body{padding:28px 30px 36px}
.spot-modal .sd-record-type{
  margin-bottom:8px;color:#c49a58;font:650 10px/1 var(--font-metric,monospace);
  letter-spacing:.14em;text-transform:uppercase
}
.spot-modal .sd-title{font-size:30px;letter-spacing:-.025em}
.spot-modal .sd-tags .tag{border-radius:2px}
.spot-modal .sd-section{
  margin-top:20px;padding-top:18px;border-top:1px solid rgba(160,177,177,.14)
}
.spot-modal .sd-section-h{
  margin-bottom:12px;color:#c49a58;font-size:11px;letter-spacing:.12em
}
.spot-modal .sd-addr{
  border-left-color:#a47a3d;border-radius:0;background:#17242b
}
.spot-modal .sd-must-section{
  border:1px solid rgba(164,122,61,.26);border-radius:3px;background:rgba(164,122,61,.07)
}
.spot-modal .btn,
.spot-modal .spot-inline-next,
.spot-modal .spot-inline-submit,
.spot-modal .spot-practice-cta{border-radius:3px;box-shadow:none}
.spot-modal .btn-p,
.spot-modal .spot-inline-next,
.spot-modal .spot-inline-submit,
.spot-modal .spot-practice-cta{
  color:#fffdf8!important;background:#273537!important;border-color:#273537!important
}
.spot-modal .spot-inline-head i{border-radius:0;background:linear-gradient(90deg,#a47a3d var(--spot-progress,100%),rgba(131,172,176,.16) 0)}
.spot-modal .spot-inline-options button{border-radius:3px}
.spot-modal .spot-inline-options button i{border-radius:2px}
.spot-modal .spot-inline-options button.selected{
  color:#eadcc3;background:rgba(164,122,61,.11);border-color:#a47a3d;box-shadow:inset 3px 0 #a47a3d
}
.spot-poster-teaser{border-radius:4px}
.spot-poster-copy small,
.knowledge-poster>header span,
.knowledge-poster-title small{color:#c49a58}
.knowledge-poster,
.knowledge-poster-bundle{border-radius:4px}
.knowledge-poster-stage ol li,
.poster-coverage-supplement{border-radius:3px}

html[data-theme="day"] .spot-modal{border-color:#cfc4b2;box-shadow:0 30px 90px rgba(43,37,28,.25)}
html[data-theme="day"] .spot-modal .sd-card{color:#273537;background:#fffdf8}
html[data-theme="day"] .spot-modal .sd-title{color:#20292b}
html[data-theme="day"] .spot-modal .sd-section{border-top-color:#e3ddd2}
html[data-theme="day"] .spot-modal .sd-section-h{color:#8b6630}
html[data-theme="day"] .spot-modal .sd-tags .tag{color:#5d6868;background:#f3efe7;border-color:#ddd5c8}
html[data-theme="day"] .spot-modal .sd-addr{color:#5f6664;background:#f5f0e7}
html[data-theme="day"] .spot-modal .spot-profile,
html[data-theme="day"] .spot-modal .spot-profile-groups article,
html[data-theme="day"] .spot-modal .spot-inline-summary{background:#f8f4ec;border-color:#ddd4c5}
html[data-theme="day"] .spot-modal .spot-inline-options button{
  color:#273537;background:#fffdf8;border-color:#ddd5c8
}
html[data-theme="day"] .spot-modal .spot-inline-options button:hover{background:#faf5eb;border-color:#b99a68}
html[data-theme="day"] .spot-modal .spot-inline-options button i{color:#6f7470;background:#eee9df}
.ln-cat-code{
  display:inline-grid;place-items:center;width:23px;height:23px;margin-right:8px;
  color:#a47a3d;font:650 10px/1 var(--font-metric,monospace);font-style:normal;
  border:1px solid rgba(164,122,61,.35);border-radius:2px
}
.geo-usage-note{
  padding:14px!important;color:var(--t2);font-size:13px;line-height:1.7;text-align:center;
  border-radius:3px!important
}
.learned-mark{
  display:inline-block;margin-left:6px;padding:2px 6px;color:#356b59;
  font-size:9px;font-weight:650;border:1px solid rgba(53,107,89,.28);border-radius:2px
}
.study-mode-code{
  display:grid;place-items:center;width:32px;height:32px;color:#715b91;
  font:650 11px/1 var(--font-metric,monospace);border:1px solid rgba(113,91,145,.3);border-radius:2px
}
.study-set-label{color:var(--t3);font-size:12px;letter-spacing:.08em}
.exam-summary-card{border-radius:6px!important}
.exam-summary-state{
  display:inline-block;margin-bottom:14px;padding:5px 10px;color:#8b6630;
  font-size:11px;letter-spacing:.1em;border:1px solid rgba(164,122,61,.35);border-radius:2px
}
.exam-summary-score{color:#273537;font:700 34px/1.1 Georgia,serif}
.quiz-complete{display:grid;justify-items:center;gap:10px;padding:42px 24px!important}
.quiz-complete>span{color:#9b7135;font:650 10px/1 var(--font-metric,monospace);letter-spacing:.14em}
.quiz-complete>b{font-size:20px}

@media(max-width:768px){
  .sidebar{width:min(86vw,300px)}
  .workspace-bar{left:0;height:64px;padding:0 16px 0 72px}
  .workspace-bar>div{gap:0}
  .workspace-bar>div>span{display:none}
  .workspace-bar b{font-size:15px}
  main,main.map-full{margin-left:0}
  .mobile-menu-btn{display:grid;align-content:center;justify-content:center;gap:4px;width:46px;height:46px;border-radius:12px}
  .mobile-menu-btn span{display:block;width:19px;height:2px;border-radius:2px;background:currentColor}
  .map-loading{padding:76px 24px 36px}
  .ml-map-shell{width:150px;height:98px}
  .layer-nav-fab{min-height:46px}
  .quiz-entry-section .quiz-subjects,.quiz-specialty-entries{grid-template-columns:1fr}
  .quiz-entry-section .qs-item{grid-template-columns:40px 1fr auto;padding:13px}
  .qs-code{width:38px;height:38px}
  .quiz-review-entry{align-items:flex-start;flex-direction:column;gap:10px}
  .interview-card{padding:18px}
  .interview-card .flex.wrap{display:grid;grid-template-columns:1fr 1fr}
  .interview-card .interview-step{margin-left:0}
  .spot-modal .sd-body{padding:22px 18px 30px}
  .spot-modal .sd-title{font-size:26px}
}

/* ===== 自由组卷（自定义混合刷题）入口与配置页 ===== */
.quiz-custom-entry .quiz-custom-start{
  width:100%;min-height:82px;padding:16px 19px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  border:1px solid rgba(63,150,140,.28);border-radius:10px;
  background:linear-gradient(105deg,rgba(38,139,121,.12),rgba(38,139,121,.03));text-align:left;cursor:pointer;
  transition:transform .15s,border-color .15s;
}
.quiz-custom-entry .quiz-custom-start:hover{transform:translateY(-2px);border-color:#5c9ea7}
.quiz-custom-entry .quiz-custom-start>div{display:grid;gap:4px}
.quiz-custom-entry .quiz-custom-start b{font-size:15px}
.quiz-custom-entry .quiz-custom-start span{color:var(--t3);font-size:12px}
.quiz-custom-entry .quiz-custom-start em{color:#4fa398;font-size:12px;font-style:normal;font-weight:700;white-space:nowrap}

/* 配置页 */
.cs-page{display:grid;gap:4px;margin-top:6px}
.cs-back{color:var(--t3);font-size:13px;background:none;border:none;cursor:pointer;justify-self:start;padding:4px 0}
.cs-back:hover{color:var(--t)}
.cs-title{display:grid;gap:3px;margin:2px 0 14px}
.cs-title b{font-size:19px;color:var(--t)}
.cs-title span{color:var(--t3);font-size:12px}
.cs-step{margin-top:18px}
.cs-step>header{display:grid;grid-template-columns:30px 1fr;gap:11px;align-items:start;margin-bottom:11px}
.cs-step>header>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(72,145,153,.25);border-radius:7px;color:#5fa1aa;font:700 12px Georgia,serif}
.cs-step>header div{display:grid;gap:2px}
.cs-step>header b{font-size:15px;color:var(--t)}
.cs-step>header small{color:var(--t3);font-size:12px}
.cs-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.cs-item{cursor:pointer}
.cs-item .cs-check{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;font-size:16px;font-weight:800;color:#4fa398;background:rgba(38,139,121,.1);border:1px solid rgba(38,139,121,.18)}
.cs-item:not(.on) .cs-check{color:var(--t3);background:transparent}
.cs-item.on{border-color:#3a9889;box-shadow:0 0 0 1px rgba(58,152,137,.25),0 14px 36px rgba(38,139,121,.1)}
/* 章节多选块 */
.cs-chapter-block{margin-top:12px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.cs-chapter-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cs-chapter-head b{font-size:13px;color:var(--t)}
.cs-all-btn{font-size:12px;padding:5px 11px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--t2);cursor:pointer}
.cs-all-btn.on{border-color:#3a9889;color:#4fa398;background:rgba(38,139,121,.08)}
.cs-chapter-list{display:flex;flex-wrap:wrap;gap:7px}
.cs-chapter{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--t2);font-size:13px;cursor:pointer}
.cs-chapter small{color:var(--t3);font-size:11px}
.cs-chapter.on{border-color:#3a9889;color:var(--t);background:rgba(38,139,121,.08)}
.cs-chapter.on small{color:#4fa398}
/* pill 选项（题型/题量/模式） */
.cs-pills{display:flex;flex-wrap:wrap;gap:8px}
.cs-pill{padding:9px 16px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--t2);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}
.cs-pill:hover{border-color:#5c9ea7}
.cs-pill.on{border-color:#3a9889;color:var(--t);background:rgba(38,139,121,.1);font-weight:600}
/* 底部摘要 + 开始按钮 */
.cs-summary{position:sticky;bottom:0;margin-top:24px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border:1px solid rgba(72,145,153,.28);border-radius:11px;background:color-mix(in srgb,var(--card) 88%,rgba(38,139,121,.06));backdrop-filter:blur(8px);box-shadow:0 -8px 30px rgba(0,0,0,.06)}
.cs-summary-info{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--t3)}
.cs-summary-info b{color:var(--t);font-family:Georgia,serif}
.cs-start{min-width:130px;justify-self:end}
.cs-start:disabled{opacity:.5;cursor:not-allowed}
.cs-hint{margin-top:10px;color:var(--t3);font-size:12px}
/* 配置页在答题态下用浅底，避免与 exam dossier 冲突 */
body[data-view="quiz"].quiz-answering .cs-page,
body[data-view="quiz"].quiz-answering .cs-chapter-block,
body[data-view="quiz"].quiz-answering .cs-chapter,
body[data-view="quiz"].quiz-answering .cs-pill{background:#171f22;border-color:rgba(204,184,148,.18);color:#e9e2d3}
body[data-view="quiz"].quiz-answering .cs-title b,
body[data-view="quiz"].quiz-answering .cs-step>header b{color:#f4efe4}
body[data-view="quiz"].quiz-answering .cs-summary{background:#1a2326;border-color:rgba(204,184,148,.28)}
/* 自由组卷考试计时徽章 */
.exam-timer-badge{margin-left:auto;padding:5px 12px;border-radius:7px;font:700 13px Georgia,serif;color:#cfb98f;background:rgba(183,146,89,.12);border:1px solid rgba(183,146,89,.28);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ===== 薄弱章节专项 ===== */
.chapter-weakness-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.chapter-weakness-list button{min-height:88px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;border:1px solid rgba(202,112,72,.22);border-radius:10px;background:linear-gradient(110deg,rgba(202,112,72,.1),rgba(202,112,72,.02));color:var(--t);cursor:pointer}
.chapter-weakness-list button:hover{border-color:rgba(202,112,72,.55);transform:translateY(-2px)}
.chapter-weakness-list button>div{display:grid;gap:3px;min-width:0}
.chapter-weakness-list span{color:#c67b57;font-size:11px;font-weight:700}
.chapter-weakness-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.chapter-weakness-list small,.chapter-weakness-empty span,.chapter-weakness-more{color:var(--t3);font-size:11px}
.chapter-weakness-list em{flex:none;color:#c67b57;font-size:12px;font-style:normal;font-weight:700}
.chapter-weakness-empty{padding:20px;display:grid;gap:5px;border:1px dashed var(--line);border-radius:10px;text-align:center}
.chapter-weakness-more{display:block;margin-top:9px;text-align:right}
.chapter-specialty-bar{border-color:rgba(202,112,72,.3)}
.chapter-specialty-complete p{max-width:520px;margin:8px auto 18px;color:var(--t3)}
.sb-exam-countdown{position:relative;margin:0 13px 10px;padding:9px 12px;display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card) 90%,transparent);cursor:pointer;overflow:hidden}
.sb-exam-countdown>span{display:grid;gap:2px;pointer-events:none}
.sb-exam-countdown b{color:var(--t);font-size:13px;line-height:1.25;font-variant-numeric:tabular-nums}
.sb-exam-countdown small{color:var(--t3);font-size:10px;white-space:nowrap}
.sb-exam-countdown input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
@media(max-width:700px){
  .chapter-weakness-list{grid-template-columns:1fr}
  .chapter-weakness-list button{align-items:flex-start}
}

/* ===== 全真模拟面试(ivmock) ===== */
body[data-view="ivmock"] #view{max-width:920px;margin:0 auto;padding:0 0 60px}
.ivmock-page{padding:0}
.ivmock-stepper{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.ivmock-stepper span{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;font-size:12px;color:var(--t3);border:1px solid var(--line);border-radius:999px;background:var(--card)}
.ivmock-stepper span i{display:grid;place-items:center;width:18px;height:18px;font:700 11px/1 inherit;font-style:normal;border-radius:50%;background:rgba(164,122,61,.14);color:#c9a063}
.ivmock-stepper span.on{color:var(--t);border-color:rgba(164,122,61,.55)}
.ivmock-stepper span.done{color:var(--t2)}
.ivmock-stepper span.done i{background:rgba(78,201,168,.16);color:var(--jade)}
.ivm-intro p{margin:0 0 14px;line-height:1.7;color:var(--t2)}
/* 抽题密封卡 */
.ivm-seal{display:grid;gap:10px}
.ivm-seal-row{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--card2)}
.ivm-seal-row b{display:block;font-size:17px;color:var(--t)}
.ivm-seal-row em{display:block;font-style:normal;font-size:12px;color:var(--t3)}
.ivm-seal-qas{display:grid;gap:6px}
.ivm-seal-qas>div{display:flex;align-items:center;gap:12px;padding:10px 16px;border:1px dashed var(--line);border-radius:10px}
.ivm-seal-qas b{font-size:13px;color:var(--t3);font-weight:500}
.ivm-note{margin:4px 0;padding:11px 13px;font-size:12.5px;line-height:1.7;color:var(--t2);border-left:3px solid rgba(164,122,61,.5);background:rgba(164,122,61,.06);border-radius:0 8px 8px 0}
.ivm-note b{color:var(--t)}
/* 讲解计时 */
.ivm-speech{display:grid;gap:12px}
.ivm-speech-head{display:flex;flex-direction:column;gap:9px}
.ivm-speech-head h2{margin:0;font-size:24px;letter-spacing:-.02em}
.ivm-speech-head em{font-style:normal;font-size:12.5px;color:var(--t3)}
.ivm-clock{font-variant-numeric:tabular-nums;font-size:56px;font-weight:750;line-height:1;letter-spacing:.02em;color:var(--gold);padding:18px 0 8px;text-align:center}
.ivm-clock.low{color:var(--red);animation:ivmPulse 1s infinite}
@keyframes ivmPulse{50%{opacity:.55}}
.ivm-timeup{display:none;padding:10px 13px;font-size:13px;color:var(--red);border:1px solid rgba(239,107,107,.4);border-radius:8px;background:rgba(239,107,107,.08);text-align:center}
/* 评分点自评 */
.ivm-check{display:grid;gap:10px}
.ivm-check-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ivm-time-chip{font-size:12.5px;color:var(--jade);border:1px solid rgba(78,201,168,.35);border-radius:999px;padding:5px 11px;background:rgba(78,201,168,.07)}
.ivm-time-chip.bad{color:var(--red);border-color:rgba(239,107,107,.4);background:rgba(239,107,107,.07)}
.ivm-check-group{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ivm-check-group h4{display:flex;align-items:baseline;gap:9px;margin:0;padding:10px 14px;font-size:13.5px;color:var(--t);background:var(--card2)}
.ivm-check-group h4 i{display:grid;place-items:center;min-width:20px;height:20px;font:700 11px/1 inherit;font-style:normal;border-radius:50%;background:rgba(164,122,61,.16);color:#c9a063}
.ivm-check-group h4 em{font-style:normal;font-size:11.5px;color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.ivm-check-item{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13px;color:var(--t2);cursor:pointer;border-top:1px solid var(--line);user-select:none}
.ivm-check-item:hover{background:rgba(164,122,61,.05)}
.ivm-check-item i{flex:none;width:17px;height:17px;border:1.5px solid var(--t3);border-radius:5px;position:relative;transition:all .15s}
.ivm-check-item.on{color:var(--t)}
.ivm-check-item.on i{border-color:var(--jade);background:rgba(78,201,168,.18)}
.ivm-check-item.on i::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;font-size:11px;color:var(--jade)}
.ivm-count{font-size:13px;color:var(--t3)}
.ivm-count b{font-size:17px;color:var(--jade)}
/* 问答自评 */
.ivm-qa-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ivm-qa .quiz-q{margin:12px 0}
.ivm-rates{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ivm-rates button{display:grid;gap:5px;justify-items:start;padding:15px 14px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--card2);cursor:pointer;transition:all .15s}
.ivm-rates button:hover{transform:translateY(-2px);border-color:rgba(164,122,61,.6)}
.ivm-rates b{font-size:15px;color:var(--t)}
.ivm-rates span{font-size:11.5px;color:var(--t3);line-height:1.5}
.ivm-rated{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:11px 14px;border-radius:8px;background:var(--card2);font-size:13px;color:var(--t2)}
.ivm-rated b.r-会说{color:var(--jade)}
.ivm-rated b.r-提示后会{color:var(--orange)}
.ivm-rated b.r-不会{color:var(--red)}
.ivm-rated span{font-size:11.5px;color:var(--t3)}
.ivm-answer summary{cursor:pointer;font-size:13px;color:#c9a063;padding:4px 0}
.ivm-answer p{margin:8px 0 0;font-size:13.5px;line-height:1.85;color:var(--t2);padding:12px 14px;background:var(--card2);border-left:3px solid var(--jade);border-radius:0 8px 8px 0}
/* 成绩复盘 */
.ivm-result{display:grid;gap:14px}
.ivm-score{display:flex;align-items:baseline;gap:12px}
.ivm-score b{font-size:40px;color:var(--gold);letter-spacing:-.02em}
.ivm-score span{font-size:12.5px;color:var(--t3)}
.ivm-rule{margin:0;font-size:12px;color:var(--t3);padding-bottom:12px;border-bottom:1px solid var(--line)}
.ivm-res-row{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:10px}
.ivm-res-row.ok{border-color:rgba(78,201,168,.3)}
.ivm-res-row.bad{border-color:rgba(239,107,107,.35)}
.ivm-res-row .bar{height:8px}
.ivm-res-row em{font-style:normal;font-size:12.5px;color:var(--t2)}
.ivm-res-qa{display:grid;gap:8px}
.ivm-res-qa>div{display:grid;grid-template-columns:86px 1fr auto;gap:12px;align-items:center;padding:11px 14px;border-radius:10px;border:1px solid var(--line)}
.ivm-res-qa>div span{font-size:11.5px;color:var(--t3)}
.ivm-res-qa>div p{margin:0;font-size:13px;color:var(--t);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ivm-res-qa>div em{font-style:normal;font-size:12px;font-weight:700}
.ivm-res-qa>div.ok em{color:var(--jade)}
.ivm-res-qa>div.mid em{color:var(--orange)}
.ivm-res-qa>div.bad em{color:var(--red)}
.ivm-advice{padding:13px 15px;font-size:13px;line-height:1.75;color:var(--t2);border-left:3px solid var(--gold);background:rgba(240,200,118,.07);border-radius:0 8px 8px 0}
.ivm-untouched{display:grid;gap:8px;padding:13px 15px;border:1px dashed var(--line);border-radius:10px}
.ivm-untouched b{font-size:13px;color:var(--t)}
.ivm-untouched>div{display:flex;flex-wrap:wrap;gap:6px}
.ivm-untouched>div span{padding:4px 10px;font-size:11.5px;color:var(--t2);border:1px solid var(--line);border-radius:999px;background:var(--card2)}
.ivm-untouched p{margin:0;font-size:11.5px;color:var(--t3)}
/* 入口问答池切换 */
.ivm-pool{display:inline-flex;align-items:center;gap:8px}
.ivm-pool>span{font-size:12px;color:var(--t3)}
.ivm-pool button{padding:6px 12px;font-size:12px;color:var(--t2);border:1px solid var(--line);border-radius:999px;background:var(--card2);cursor:pointer}
.ivm-pool button.on{color:var(--gold);border-color:rgba(240,200,118,.55);background:rgba(240,200,118,.08)}
@media(max-width:640px){
  .ivm-seal-row{grid-template-columns:1fr;gap:6px}
  .ivm-rates{grid-template-columns:1fr}
  .ivm-res-qa>div{grid-template-columns:1fr;gap:4px}
  .ivm-res-qa>div p{white-space:normal}
  .ivm-clock{font-size:44px}
}

/* ===== 面试记忆闭环:状态徽标/要点条目/复习队列/篇目面板 ===== */
.iv-badge{display:inline-block;margin-left:8px;padding:2px 9px;font-size:11px;font-weight:600;border-radius:999px;vertical-align:1px}
.iv-badge.ok{color:var(--jade);background:rgba(78,201,168,.12);border:1px solid rgba(78,201,168,.35)}
.iv-badge.mid{color:var(--orange);background:rgba(240,160,80,.1);border:1px solid rgba(240,160,80,.35)}
.iv-badge.bad{color:var(--red);background:rgba(239,107,107,.1);border:1px solid rgba(239,107,107,.35)}
.iv-points-box{padding:13px 15px;background:var(--card2);border-radius:0 8px 8px 0;border-left:3px solid var(--jade)}
.iv-points-box>span{display:block;margin-bottom:8px;font-size:11.5px;color:var(--t3)}
.iv-points{margin:0;padding-left:18px;list-style:none}
.iv-points li{position:relative;margin:0 0 7px;font-size:13.5px;line-height:1.75;color:var(--t2)}
.iv-points li:last-child{margin-bottom:0}
.iv-points li::before{content:"";position:absolute;left:-14px;top:.65em;width:6px;height:6px;border-radius:50%;background:rgba(164,122,61,.55)}
.iv-points-box.hide{display:none}
.iv-rate{min-width:96px}
.iv-rate-ok:hover{border-color:rgba(78,201,168,.6);color:var(--jade)}
.iv-rate-mid:hover{border-color:rgba(240,160,80,.6);color:var(--orange)}
.iv-rate-bad:hover{border-color:rgba(239,107,107,.6);color:var(--red)}
.pill em{margin-left:4px;padding:1px 7px;font-style:normal;font-size:10.5px;color:var(--red);background:rgba(239,107,107,.12);border-radius:999px}
/* 复习队列 */
.iv-review header,.iv-guides header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.iv-review header span,.iv-guides header span{font:750 10.5px/1 var(--font-metric,monospace);letter-spacing:.14em;color:var(--t3)}
.iv-review header h2,.iv-guides header h2{margin:5px 0 0;font-size:17px}
.iv-review header em{font-style:normal;font-size:12px;color:var(--t3)}
.iv-review p{margin:0;font-size:13px;line-height:1.7;color:var(--t2)}
.iv-review p b{color:var(--red)}
.iv-review-guides{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.iv-review-guides button{padding:7px 12px;font-size:12.5px;color:var(--red);border:1px solid rgba(239,107,107,.35);border-radius:999px;background:rgba(239,107,107,.06);cursor:pointer}
.iv-review-guides button:hover{border-color:rgba(239,107,107,.65)}
.iv-review-card{border-color:rgba(164,122,61,.45)!important}
/* 16篇讲解掌握面板 */
.iv-guides header em{font-style:normal;font-size:12.5px;color:var(--gold)}
.iv-guide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ivg{display:grid;gap:3px;justify-items:start;padding:11px 12px;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--card2);cursor:pointer;transition:transform .15s,border-color .15s}
.ivg:hover{transform:translateY(-2px)}
.ivg b{font-size:13px;color:var(--t);line-height:1.3}
.ivg span{font-size:10.5px;color:var(--t3)}
.ivg.ok{border-color:rgba(78,201,168,.35)}
.ivg.ok span{color:var(--jade)}
.ivg.mid{border-color:rgba(240,160,80,.35)}
.ivg.mid span{color:var(--orange)}
.ivg.bad{border-color:rgba(239,107,107,.4)}
.ivg.bad span{color:var(--red)}
.iv-guides>p{margin:10px 0 0;font-size:11.5px;color:var(--t3)}
/* 录音指示与回放 */
.ivm-rec{display:inline-flex;align-items:center;gap:7px;align-self:start;padding:6px 12px;font-size:12px;color:var(--t3);border:1px dashed var(--line);border-radius:999px}
.ivm-rec::first-letter{color:var(--red)}
.ivm-audio{display:grid;gap:8px;padding:12px 14px;border:1px dashed var(--line);border-radius:9px;background:var(--card2)}
.ivm-audio>span{font-size:11.5px;color:var(--t3)}
.ivm-audio audio{width:100%;height:38px}
@media(max-width:640px){
  .iv-guide-grid{grid-template-columns:repeat(2,1fr)}
  .iv-rate{min-width:82px}
}

/* ===== 章节刷题模式选择(学习/巩固/测评) ===== */
.pm-picker{display:grid;gap:18px;padding:30px 28px 26px}
.pm-head{display:grid;gap:6px}
.pm-head>span{color:#3a8c99;font:800 9px Georgia,serif;letter-spacing:.18em}
.pm-head>b{font-size:22px}
.pm-head>small{color:var(--t3);font-size:11px}
.pm-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pm-card{position:relative;display:grid;gap:6px;align-content:start;padding:18px 16px;text-align:left;border:1.5px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}
.pm-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(20,74,105,.08)}
.pm-card>i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(58,152,169,.12);color:#22707f;font-style:normal;font-weight:800;font-size:15px}
.pm-card>b{font-size:15px}
.pm-card>span{color:var(--t2);font-size:11px}
.pm-card>em{color:var(--t3);font-size:10px;font-style:normal;line-height:1.6}
.pm-card.on{border-color:#3a9889;background:linear-gradient(150deg,rgba(58,152,145,.06),var(--card) 55%)}
.pm-card.on::after{content:"✓";position:absolute;top:12px;right:12px;color:#3a9889;font-weight:800;font-size:12px}
.pm-counts{display:none;gap:10px;align-items:center;padding:14px 16px;border:1px dashed var(--line);border-radius:12px;background:rgba(58,152,169,.04)}
.pm-counts.show{display:flex;flex-wrap:wrap}
.pm-counts>span{color:#33566e;font-size:11px;font-weight:700;white-space:nowrap}
.pm-count-pills{display:flex;gap:8px;flex-wrap:wrap}
.pm-count{padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--t2);font-size:12px;font-weight:700;cursor:pointer;transition:border-color .2s,background .2s}
.pm-count:hover{border-color:rgba(58,152,169,.4)}
.pm-count.on{border-color:#3a9889;background:rgba(38,139,121,.1);color:#22707f}
.pm-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:700px){
  .pm-picker{padding:22px 16px 20px;gap:14px}
  .pm-cards{grid-template-columns:1fr}
  .pm-card{padding:14px}
}

/* 测评模式:右上角交卷按钮 */
.assess-submit{padding:7px 16px;border:0;border-radius:999px;background:linear-gradient(135deg,#d96565,#c74e4e);color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(201,78,78,.25);transition:transform .15s,box-shadow .15s}
.assess-submit:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(201,78,78,.32)}
.assess-submit:active{transform:none}

/* ===== 测评报告(成熟题库风格:成绩头+统计格+题号网格+解析列表) ===== */
.as-report{display:grid;gap:0;max-width:860px;margin:0 auto;border:1px solid var(--line);border-radius:20px;background:var(--card);overflow:hidden;box-shadow:0 22px 60px rgba(12,48,60,.08)}
.as-hero{display:grid;justify-items:center;gap:10px;padding:34px 24px 24px;background:linear-gradient(170deg,rgba(58,152,169,.07),transparent 70%)}
.as-hero-tag{color:#33566e;font-size:11px;font-weight:700;letter-spacing:.08em}
.as-hero-score{display:flex;align-items:baseline;gap:10px}
.as-hero-score b{font:800 56px/1 Georgia,serif;color:#143b52;letter-spacing:-.02em}
.as-hero-score b i{font-style:normal;font-size:24px;font-weight:800;color:#5f7480}
.as-hero-score em{font-style:normal;font-size:15px;font-weight:800;color:#3a9889}
.as-hero>p{margin:0;color:var(--t3);font-size:12px}
.as-hero-stats{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap;justify-content:center}
.as-stat{display:grid;justify-items:center;gap:3px;min-width:86px;padding:12px 18px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.as-stat b{font:800 20px Georgia,serif;color:var(--t)}
.as-stat span{color:var(--t3);font-size:10px;letter-spacing:.1em}
.as-stat.ok b{color:#2f8f74}.as-stat.ok{border-color:rgba(47,143,116,.25);background:rgba(47,143,116,.05)}
.as-stat.bad b{color:#c74e4e}.as-stat.bad{border-color:rgba(199,78,78,.22);background:rgba(199,78,78,.04)}
.as-stat.skip b{color:#8296a0}
.as-stat.time b{font-size:18px;color:#143b52}
.as-grid-block{padding:18px 24px 20px;border-top:1px solid var(--line)}
.as-grid-legend{display:flex;align-items:center;gap:14px;margin-bottom:12px;color:var(--t3);font-size:11px;flex-wrap:wrap}
.as-grid-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.as-grid-legend i.ok{background:#2f8f74}.as-grid-legend i.bad{background:#c74e4e}.as-grid-legend i.skip{background:#c6d2d8}
.as-grid-legend span{margin-left:auto}
.as-grid{display:flex;flex-wrap:wrap;gap:7px}
.as-grid-dot{width:34px;height:34px;border-radius:9px;border:1.5px solid;font:700 13px/30px Georgia,serif;text-align:center;cursor:pointer;transition:transform .12s,box-shadow .12s;background:var(--card)}
.as-grid-dot:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(12,48,60,.12)}
.as-grid-dot.ok{color:#2f8f74;border-color:rgba(47,143,116,.45);background:rgba(47,143,116,.08)}
.as-grid-dot.bad{color:#c74e4e;border-color:rgba(199,78,78,.4);background:rgba(199,78,78,.07)}
.as-grid-dot.skip{color:#8296a0;border-color:var(--line);background:repeating-linear-gradient(45deg,transparent 0 5px,rgba(130,150,160,.09) 5px 10px)}
.as-review{border-top:1px solid var(--line);padding:18px 24px 8px;background:rgba(248,251,252,.6)}
.as-review-tabs{display:flex;gap:8px;margin-bottom:14px}
.as-tab{padding:9px 16px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--t2);font-size:12px;font-weight:700;cursor:pointer;transition:all .18s}
.as-tab:hover{border-color:rgba(58,152,169,.4)}
.as-tab.on{border-color:#3a9889;background:rgba(38,139,121,.1);color:#22707f}
.as-review-empty{padding:28px;text-align:center;color:var(--t3);font-size:13px}
.as-item{display:grid;gap:10px;margin-bottom:12px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);border-left-width:4px;background:var(--card);transition:box-shadow .3s}
.as-item.bad{border-left-color:#c74e4e}
.as-item.ok{border-left-color:#2f8f74}
.as-item.flash{box-shadow:0 0 0 3px rgba(58,152,169,.35)}
.as-item header{display:flex;align-items:center;gap:10px}
.as-item-no{display:grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border-radius:8px;background:rgba(58,152,169,.1);color:#22707f;font:800 12px Georgia,serif}
.as-item-state{font-size:11px;font-weight:800}
.as-item.bad .as-item-state{color:#c74e4e}
.as-item.ok .as-item-state{color:#2f8f74}
.as-item-type{margin-left:auto;color:var(--t3);font-size:10px}
.as-item-q{font-size:14px;font-weight:650;line-height:1.7;color:var(--t)}
.as-item-answers{display:grid;gap:6px}
.as-answer{display:flex;align-items:baseline;gap:10px;padding:8px 12px;border-radius:9px;font-size:12px}
.as-answer span{flex-shrink:0;color:var(--t3);font-size:10px;letter-spacing:.06em}
.as-answer b{font-weight:700;line-height:1.6}
.as-answer.ok{background:rgba(47,143,116,.07)}
.as-answer.ok b{color:#22685a}
.as-answer.bad{background:rgba(199,78,78,.06)}
.as-answer.bad b{color:#a83c3c}
.as-answer.bad b i{font-style:normal;color:var(--t3);font-weight:500}
.as-item-exp{border-top:1px dashed var(--line);padding-top:10px}
.as-item-exp summary{cursor:pointer;color:#33566e;font-size:11px;font-weight:700;letter-spacing:.06em;list-style:none}
.as-item-exp summary::-webkit-details-marker{display:none}
.as-item-exp summary::before{content:"▸ ";color:#3a8c99}
.as-item-exp[open] summary::before{content:"▾ "}
.as-item-exp>div{margin-top:8px;color:var(--t2);font-size:12.5px;line-height:1.85;white-space:pre-wrap}
.as-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;padding:20px 24px 26px;border-top:1px solid var(--line)}
@media(max-width:640px){
  .as-hero{padding:26px 16px 18px}
  .as-hero-score b{font-size:44px}
  .as-stat{min-width:72px;padding:10px 12px}
  .as-grid-block{padding:14px 16px 16px}
  .as-grid-dot{width:30px;height:30px;line-height:27px;font-size:12px}
  .as-review{padding:14px 16px 6px}
  .as-item{padding:13px 14px}
  .as-actions{padding:16px 16px 22px}
}

/* 章节列表：本科目内复习优先级。标签先于星级，直接给出行动顺序。 */
.qc-item{display:flex;align-items:center;gap:10px}
.chapter-priority{--priority:#64717a;--priority-soft:#eef1f2;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;color:var(--priority);font-size:10px;letter-spacing:.035em;white-space:nowrap}
.chapter-priority>b{min-width:32px;padding:3px 7px;border:1px solid color-mix(in srgb,var(--priority) 42%,transparent);border-radius:3px;background:var(--priority-soft);color:var(--priority);font-size:10px;line-height:1;font-weight:850;text-align:center;letter-spacing:.12em}
.chapter-priority>span{font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;letter-spacing:-.04em}
.chapter-priority>i{font-style:normal;color:#33566e;font-size:10px;font-weight:650;letter-spacing:0}
.priority-5{--priority:#9e3d2f;--priority-soft:#f8e9e5}
.priority-4{--priority:#9a6419;--priority-soft:#f8efdc}
.priority-3{--priority:#27705e;--priority-soft:#e5f1ed}
.priority-2{--priority:#526a7d;--priority-soft:#eaf0f4}
.priority-1{--priority:#74736f;--priority-soft:#f0efec}
.qc-weight{margin-left:auto}
.qc-item:has(.priority-5){box-shadow:inset 3px 0 0 #9e3d2f}
.qc-item:has(.priority-1){opacity:.82}
.qc-item .qc-count{margin-left:0}
.qc-item .qc-name{flex:1;min-width:0;text-align:left}
.chapter-priority-guide{display:flex;align-items:center;gap:12px;margin:10px 0 14px;padding:11px 14px;border:1px solid #d9d5c9;border-left:4px solid #9e3d2f;border-radius:5px;background:linear-gradient(90deg,#faf5ec,#fffdf8);color:#43515a;font-size:11px;line-height:1.55}
.chapter-priority-guide>b{color:#24333c;font-size:11px;letter-spacing:.08em;white-space:nowrap}
.chapter-priority-guide i{padding:2px 5px;border-radius:2px;font-style:normal;font-weight:800}
.chapter-priority-guide .g5{background:#f8e9e5;color:#9e3d2f}
.chapter-priority-guide .g4{background:#f8efdc;color:#9a6419}
.chapter-priority-guide .g2{background:#eaf0f4;color:#526a7d}
@media(max-width:640px){
  .qc-item{flex-wrap:wrap}
  .qc-weight{width:100%;margin-left:0;order:3}
  .chapter-priority>i{font-size:9px}
  .chapter-priority-guide{align-items:flex-start;flex-direction:column;gap:4px}
}

/* 薄弱章节条目与模式选择卡复用同一优先级语义 */
.cw-weight{display:flex;width:max-content;margin:4px 0 2px}
.pm-head .pm-weight{margin-left:7px;vertical-align:middle}

/* ===== B08 merged from assets/css/auth.css ===== */
/* Web auth follows the approved blue-white system on every viewport. */
.auth-overlay{--auth-ink:#0a2348;--auth-ink-2:#42557a;--auth-ink-3:#66789c;--auth-blue:#087bff;--auth-blue-deep:#065ec4;--auth-line:#dce8f5;position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(10,35,72,.38);backdrop-filter:blur(14px) saturate(115%)}
.auth-overlay .auth-card{width:min(480px,100%);padding:32px;border:1px solid var(--auth-line);border-radius:16px;background:#fff;color:var(--auth-ink);box-shadow:0 24px 70px rgba(10,35,72,.2),0 5px 18px rgba(10,35,72,.08)}
.auth-mobile-brand{display:flex;align-items:center;gap:11px;margin:0 0 22px;padding-bottom:18px;border-bottom:1px solid var(--auth-line)}
.auth-brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#087bff,#065ec4);color:#fff;font-size:18px;font-weight:800;box-shadow:0 6px 14px rgba(8,123,255,.2)}
.auth-mobile-brand div{display:grid;gap:2px}.auth-mobile-brand b{font-size:16px;letter-spacing:.04em}.auth-mobile-brand small{color:var(--auth-ink-3);font-size:11px}
.auth-overlay .auth-kicker{color:var(--auth-blue-deep);font-size:10px;letter-spacing:.16em}.auth-overlay .auth-card h2{margin:8px 0;color:var(--auth-ink);font-size:28px;letter-spacing:-.02em}.auth-overlay .auth-card>p{color:var(--auth-ink-2);font-size:14px;line-height:1.7}
.auth-provider-note{display:flex;align-items:center;gap:7px;margin-top:14px;padding:10px 12px;border:1px solid var(--auth-line);border-radius:10px;background:#f3f8fe;color:var(--auth-ink-2);font-size:12px;line-height:1.55}.auth-provider-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#087bff}.auth-wechat-login{margin-left:auto;color:var(--auth-blue-deep);font-weight:700;white-space:nowrap;text-decoration:underline;text-underline-offset:2px}
.auth-overlay .auth-tabs{margin-top:18px;padding:4px;border:1px solid var(--auth-line);border-radius:10px;background:#f3f8fe}.auth-overlay .auth-tabs button{min-height:40px;color:var(--auth-ink-2)}.auth-overlay .auth-tabs button.active{background:#fff;color:var(--auth-blue-deep);box-shadow:0 2px 9px rgba(8,123,255,.13)}
.auth-overlay .auth-card form{gap:10px;margin-top:22px}.auth-overlay .auth-card label{color:var(--auth-ink-2);font-size:13px}.auth-overlay .auth-card input{padding:13px 14px;border-color:#bfd2ea;border-radius:10px;background:#fff;color:var(--auth-ink);font-size:16px;letter-spacing:.02em}.auth-overlay .auth-card input:focus{border-color:var(--auth-blue);box-shadow:0 0 0 3px rgba(8,123,255,.14)}
.auth-overlay .auth-card form button[type=submit]{background:var(--auth-blue);box-shadow:0 7px 16px rgba(8,123,255,.18)}.auth-overlay .auth-card form button[type=submit]:hover{background:var(--auth-blue-deep)}.auth-overlay .auth-card form .auth-forgot,.auth-overlay .auth-card form .auth-back-login{min-height:38px;border:1px solid #bfd2ea;background:#fff;color:var(--auth-blue-deep);font-weight:700}.auth-overlay .auth-card form .auth-forgot:hover,.auth-overlay .auth-card form .auth-back-login:hover{background:#f1f6ff;border-color:#8fb5e6}
/* 验证码按钮并非 submit，须显式归入蓝白次级按钮，避免掉回遗留 --red 赭石色，使注册/重置与登录风格统一 */
.auth-overlay .auth-code-row button{background:#e8f2ff;border:1px solid #bfd2ea;color:var(--auth-blue-deep);font-weight:700;box-shadow:none}.auth-overlay .auth-code-row button:hover:not(:disabled){background:#d8e9ff;border-color:#8fb5e6}.auth-overlay .auth-code-row button:disabled{background:#f3f8fe;color:var(--auth-ink-3);opacity:1}
.auth-overlay .auth-close{color:var(--auth-ink-2);background:#f3f8fe}.auth-overlay .auth-close:hover{color:var(--auth-blue-deep);background:#e8f2ff}.auth-overlay .auth-profile-fields{border-color:var(--auth-line);background:#f3f8fe}.auth-overlay .avatar-choice{background:#fff;border-color:var(--auth-line)}.auth-overlay .avatar-choice.selected{border-color:var(--auth-blue);background:#e8f2ff;box-shadow:0 0 0 2px rgba(8,123,255,.1)}.auth-overlay :is(button,a,input):focus-visible{outline:2px solid var(--auth-blue);outline-offset:2px}
@media(min-width:769px){.auth-mobile-brand{display:none}}
@media(max-width:700px){.auth-overlay .auth-card{width:100%;padding:26px 20px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 14px 14px}.auth-mobile-brand{margin-bottom:18px}.auth-overlay .auth-card h2{font-size:25px}.auth-provider-note{align-items:flex-start}}
@media(max-width:430px){.auth-overlay .auth-card{max-height:calc(100dvh - 12px);padding-left:18px;padding-right:18px}.auth-provider-note{font-size:11px}}
.auth-card{position:relative;width:min(440px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:34px;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:20px;background:var(--card);box-shadow:0 30px 90px rgba(0,0,0,.45)}
.auth-kicker{color:var(--red);font-size:10px;font-weight:800;letter-spacing:.18em}
.auth-card h2{margin:10px 0 8px;font-size:28px}.auth-card>p{color:var(--t2);font-size:13px;line-height:1.7}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:18px;padding:4px;border-radius:11px;background:var(--bg2)}
.auth-tabs button{min-height:38px;border-radius:8px;color:var(--t2);font-size:12px;font-weight:800}
.auth-tabs button.active{background:var(--card);color:var(--text);box-shadow:0 2px 10px rgba(0,0,0,.12)}
.auth-card form{display:grid;gap:10px;margin-top:24px}.auth-card label{color:var(--t2);font-size:11px;font-weight:700}
.auth-card form[hidden]{display:none}
.auth-code-row{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:8px}
.auth-code-row button{padding:0 10px;font-size:12px}
.auth-card input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;letter-spacing:.08em;outline:none}
.auth-card input:focus{border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 16%,transparent)}
.auth-legal-consent{display:flex!important;align-items:flex-start;gap:9px;margin:3px 0;color:var(--t2)!important;font-size:11px!important;line-height:1.65}.auth-legal-consent input{flex:0 0 auto;width:17px!important;height:17px;margin:1px 0 0;padding:0}.auth-legal-consent a{color:#167f88;text-decoration:underline}.delete-account-card .danger{background:#a33a31}.delete-account-card .delete-account-cancel{border:1px solid var(--line);background:transparent;color:var(--t2)}
.auth-card form button{min-height:44px;border-radius:10px;background:var(--red);color:#fff;font-weight:800}.auth-card form button:disabled{opacity:.55}
.auth-error{min-height:20px;color:var(--bad);font-size:12px;line-height:1.5}
.auth-help-link{color:inherit;text-decoration:underline;margin-left:4px}.auth-failure-notice{position:fixed;left:50%;bottom:24px;z-index:11000;max-width:min(90vw,420px);transform:translateX(-50%);padding:12px 16px;border:1px solid color-mix(in srgb,var(--bad) 45%,transparent);border-radius:10px;background:var(--card);color:var(--bad);box-shadow:0 14px 40px rgba(0,0,0,.28);font-size:12px;font-weight:700}
.security-card{width:min(480px,100%)}.security-card form{margin-top:20px}.security-sessions{display:grid;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.security-sessions p{margin:0;color:var(--t2);font-size:11px;line-height:1.5}.security-sessions button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);font-weight:800}.security-sessions button:disabled{opacity:.55}
.auth-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;color:var(--t2);font-size:22px}
.account-entry{margin-left:12px}.account-login-btn,.account-user-btn{min-height:34px;padding:0 14px;border:1px solid rgba(208,166,91,.55);border-radius:999px;background:rgba(208,166,91,.12);color:var(--text);font-size:12px;font-weight:700;cursor:pointer}.account-login-btn:hover,.account-user-btn:hover{background:rgba(208,166,91,.24)}
.account-user-btn{display:flex;align-items:center;gap:7px}.account-avatar{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#d0a65b;color:#172426;font-size:11px}
.profile-avatar{position:relative;display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;overflow:hidden;border:1px solid rgba(18,89,101,.13);border-radius:35%;background:#e8f3ef;color:#176f78;box-shadow:inset 0 1px rgba(255,255,255,.8)}.profile-avatar svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.profile-avatar i{display:none}.profile-avatar-mountain{background:#e7f0e3;color:#55754f}.profile-avatar-compass{background:#e5f2f4;color:#167f88}.profile-avatar-book{background:#f5ead9;color:#9b6a28}.profile-avatar-sun{background:#fff0d0;color:#bc7020}.profile-avatar-default{background:#efe9dd;color:#866c48}.account-user-btn .profile-avatar{width:24px;height:24px;border:0;border-radius:50%;box-shadow:none}.account-user-btn .profile-avatar svg{width:15px;height:15px}
.auth-profile-fields{display:grid;gap:10px;margin:0 0 8px;padding:14px;border:1px solid rgba(22,127,136,.16);border-radius:14px;background:rgba(22,127,136,.045)}
.avatar-picker{min-width:0;margin:2px 0 0;padding:0;border:0}.avatar-picker legend{margin-bottom:9px;color:var(--t2);font-size:11px;font-weight:700}.avatar-picker>div{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.avatar-choice{display:grid!important;justify-items:center;gap:5px;min-width:0;padding:7px 3px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--t2)!important;cursor:pointer;transition:.18s ease}.avatar-choice:hover{border-color:rgba(22,127,136,.4);transform:translateY(-1px)}.avatar-choice.selected{border-color:#167f88;background:rgba(22,127,136,.09);box-shadow:0 0 0 2px rgba(22,127,136,.09)}.avatar-choice input{position:absolute;width:1px!important;height:1px;padding:0!important;opacity:0;pointer-events:none}.avatar-choice span:last-child{overflow:hidden;width:100%;font-size:9px;text-align:center;text-overflow:ellipsis;white-space:nowrap}
.profile-editor-card{width:min(500px,100%)}.profile-editor-card form{gap:9px}.profile-name-meta{display:flex;justify-content:space-between;margin-top:-5px;color:var(--t2);font-size:10px}.profile-name-meta b,.profile-name-meta i{font-style:normal;font-weight:600}.profile-avatar-picker{margin-top:9px}.profile-avatar-picker .avatar-choice{padding:10px 5px}.profile-avatar-picker .profile-avatar{width:50px;height:50px}.profile-editor-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}.profile-editor-actions .profile-cancel{border:1px solid var(--line);background:transparent;color:var(--t2)}
@media(max-width:700px){.auth-card{max-height:calc(100vh - 32px);overflow:auto;padding:26px 22px}.account-entry{margin-left:4px}.account-login-btn{padding:0 9px;font-size:11px}.workspace-bar>p{display:none}}
.me-admin-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:17px 20px;border:1px solid rgba(208,166,91,.42);border-radius:12px;background:linear-gradient(110deg,#101a18,#182822);color:#fff;text-decoration:none;box-shadow:0 12px 30px rgba(13,28,23,.14)}.me-admin-entry span{display:grid;gap:3px}.me-admin-entry i{color:#d0a65b;font:800 7px ui-monospace,monospace;letter-spacing:.16em}.me-admin-entry b{font:700 19px "Songti SC","STSong",serif}.me-admin-entry small{color:#a9b7b0;font-size:9px}.me-admin-entry strong{flex:0 0 auto;padding:9px 12px;border:1px solid rgba(208,166,91,.45);border-radius:8px;color:#edd18d;font-size:10px}.me-admin-entry:hover{border-color:#d0a65b}.me-admin-entry:hover strong{background:#d0a65b;color:#17211d}@media(max-width:700px){.me-admin-entry{align-items:flex-start;padding:15px 16px}.me-admin-entry strong{align-self:center;font-size:9px}.me-admin-entry small{max-width:190px;line-height:1.5}}
@media(max-width:430px){.auth-overlay{align-items:end;padding:0}.auth-card{width:100%;max-height:calc(100dvh - 12px);padding:26px 18px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.auth-card h2{font-size:24px}.avatar-picker>div{gap:4px}.avatar-choice{padding:7px 1px}.avatar-choice .profile-avatar{width:39px;height:39px}.profile-editor-card .avatar-choice .profile-avatar{width:43px;height:43px}.profile-editor-actions{position:sticky;bottom:0;padding-top:8px;background:var(--card)}}
.auth-nudge{position:fixed;right:22px;bottom:22px;z-index:8000;display:flex;align-items:center;gap:12px;max-width:430px;padding:14px 15px;border:1px solid rgba(208,166,91,.38);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,#d0a65b 6%);box-shadow:0 16px 45px rgba(0,0,0,.25);animation:authNudgeIn .3s ease}.auth-nudge div{display:grid;gap:4px}.auth-nudge b{font-size:13px}.auth-nudge span{color:var(--t2);font-size:11px;line-height:1.45}.auth-nudge button{white-space:nowrap;padding:8px 11px;border-radius:8px;background:#d0a65b;color:#172426;font-size:11px;font-weight:800}.auth-nudge button:last-child{padding:4px 7px;background:transparent;color:var(--t2);font-size:18px}@keyframes authNudgeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:600px){.auth-nudge{right:12px;bottom:12px;left:12px}}

/* ===== 网页微信扫码登录（开放平台网站应用；服务端配置可用时才显示）===== */
.auth-tabs.has-wechat{grid-template-columns:1fr 1fr 1.15fr}
.auth-wechat-panel{display:grid;gap:12px;margin-top:22px}
.auth-wechat-panel[hidden]{display:none}
.auth-wechat-hint{margin:0;color:var(--t2);font-size:12px;line-height:1.7}
.auth-wechat-qr{display:grid;place-items:center;min-height:230px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:var(--bg2)}
.auth-wechat-frame{width:300px;height:400px;border:0;border-radius:8px;background:#fff}
.auth-wechat-tip{margin:0;color:var(--t2);font-size:12px;text-align:center}
.auth-overlay .auth-wechat-qr{border-color:var(--auth-line);background:#f3f8fe}

/* Compact field rhythm shared by the approved account dialog states. */
#authOverlay .auth-field{display:grid;gap:6px;min-width:0}
#authOverlay .auth-field[hidden]{display:none!important}
#authOverlay .auth-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#authOverlay .auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:20px}
#authOverlay .auth-method-switch{min-height:unset;padding:2px 0;border:0;background:transparent;box-shadow:none;color:var(--auth-blue-deep);font-size:12px;font-weight:700;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
#authOverlay .auth-method-switch:hover{color:var(--auth-blue)}
#authOverlay .auth-tabs[hidden]{display:none}
#authOverlay .auth-notice{margin:0;color:var(--auth-ink-3);font-size:11px;line-height:1.45}
#authOverlay .auth-feedback:not([hidden]){padding:8px 10px;border:1px solid #d7e6f8;border-radius:9px;background:#f3f8fe;color:#405b7a}
#authOverlay .auth-field-hint{color:var(--auth-ink-3);font-size:10px;line-height:1.4}
#authOverlay .auth-reset-heading-back{display:flex;align-items:center;gap:12px;margin:0 0 2px}
#authOverlay .auth-reset-heading-back .auth-back-login{min-height:32px;padding:0;border:0;background:transparent;color:var(--auth-blue-deep);box-shadow:none;font-size:12px;font-weight:700}
#authOverlay .auth-back-login-bottom{width:100%;min-height:34px;padding:2px 0;border:0;background:transparent;color:var(--auth-blue-deep);box-shadow:none;font-size:12px;font-weight:700;text-align:center}
#authOverlay .auth-back-login-bottom:hover{background:transparent;color:var(--auth-blue);text-decoration:underline;text-underline-offset:3px}
#authOverlay .auth-reset-heading-back h3{margin:0;color:var(--auth-ink);font-size:18px}
#authOverlay .auth-reset-intro{margin:0;color:var(--auth-ink-2);font-size:12px;line-height:1.5}
#authOverlay .auth-wechat-link{min-height:32px;padding:0;border:0;background:transparent;color:var(--auth-blue-deep);font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
#authOverlay .auth-code-row{grid-template-columns:minmax(0,1fr) 132px;gap:8px}
#authOverlay .auth-error:empty{display:none}
@media(max-width:560px){#authOverlay .auth-field-pair{grid-template-columns:minmax(0,1fr);gap:10px}}

/* ===== B08 merged from assets/css/homepage-vision.css ===== */
/* Homepage vision layer: editorial white + blue, intentionally unlike the
   darker learning terminal used inside lessons and practice. */
body[data-view="learn"] main{
  background:#f7fbff;
}
body[data-view="learn"] #view{
  min-height:100vh;
}
.learn-home-vision{
  --vision-ink:#102f4b;
  --vision-blue:#1769c2;
  --vision-cyan:#40b8d6;
  --vision-line:rgba(30,91,143,.14);
  max-width:1440px;margin:0 auto;padding:28px clamp(24px,4vw,72px) 56px;
  color:var(--vision-ink)
}
.vision-hero{
  position:relative;min-height:560px;display:grid;grid-template-columns:minmax(360px,.92fr) minmax(0,1.32fr);
  align-items:center;overflow:hidden;border:1px solid var(--vision-line);border-radius:28px;
  background:#fff url("../img/ui/home-vision-hero-v1.png") right center/auto 100% no-repeat;
  box-shadow:0 24px 80px rgba(39,100,145,.1)
}
.vision-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 26%,rgba(255,255,255,.34) 62%,transparent 100%);pointer-events:none}
.vision-hero-copy{position:relative;z-index:1;padding:72px 0 70px clamp(32px,5vw,76px);max-width:650px}
.vision-eyebrow,.vision-section-head>div>span,.vision-continue-main>span,.vision-review>span{
  color:#2782ad;font-size:11px;font-weight:800;letter-spacing:.16em
}
.vision-hero h1{margin:18px 0 20px;color:#0b2b49;font:800 clamp(42px,4vw,60px)/1.12 "Songti SC","STSong",serif;letter-spacing:-.055em}
.vision-hero h1 em{font-style:normal;color:#1769c2}
.vision-hero-copy>p{max-width:500px;margin:0;color:#527087;font-size:17px;line-height:1.9}
.vision-actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.vision-actions button,.vision-continue-main button{min-height:48px;padding:0 19px;border-radius:8px;font-weight:800}
.vision-primary{color:#fff;background:#1769c2;box-shadow:0 12px 25px rgba(23,105,194,.2)}
.vision-primary:hover{background:#0d579f;transform:translateY(-2px)}
.vision-secondary{color:#1769c2;background:#edf6fc;border:1px solid rgba(23,105,194,.18)}
.vision-actions i,.vision-continue-main i{font-style:normal;margin-left:12px}
.vision-proof{display:flex;gap:22px;margin-top:42px;color:#7790a1;font-size:11px;flex-wrap:wrap}
.vision-proof span{display:flex;align-items:baseline;gap:5px}
.vision-proof b{color:#1769c2;font:700 20px Georgia,serif}
.vision-start,.vision-tools{padding-top:74px}
.vision-section-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:22px}
.vision-section-head h2{margin:8px 0 0;color:#123b5d;font:800 29px/1.2 "Songti SC","STSong",serif;letter-spacing:-.04em}
.vision-section-head>p{max-width:310px;margin:0;color:#7290a4;font-size:13px;line-height:1.7;text-align:right}
.vision-path{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vision-path-step{position:relative;min-height:164px;display:grid;grid-template-columns:34px 1fr 18px;gap:12px;align-items:start;padding:25px 20px;text-align:left;background:rgba(255,255,255,.76);border:1px solid var(--vision-line);border-radius:16px;transition:.25s ease}
.vision-path-step:hover{background:#fff;border-color:#78bad7;box-shadow:0 14px 32px rgba(48,119,158,.09);transform:translateY(-3px)}
.vision-path-step.is-first{background:linear-gradient(145deg,#eaf7fd,#fff)}
.vision-path-no{color:#59a8c8;font:700 13px Georgia,serif}
.vision-path-step b{display:block;color:#16436a;font-size:15px;line-height:1.5}
.vision-path-step p{margin:9px 0 0;color:#7891a3;font-size:12px;line-height:1.65}
.vision-path-step>i{color:#287ab1;font-style:normal;font-size:18px}
.vision-map-feature{
  position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.72fr) auto;
  gap:34px;align-items:center;overflow:hidden;margin-top:66px;padding:36px 38px;
  color:#eaf7ff;background:
    linear-gradient(100deg,rgba(15,66,109,.98) 0%,rgba(20,94,146,.94) 58%,rgba(20,94,146,.72) 100%),
    url("../img/ui/home-vision-hero-v1.png") right 40%/auto 145% no-repeat;
  border-radius:22px;box-shadow:0 22px 46px rgba(18,74,116,.16)
}
.vision-map-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(76,174,215,.12));pointer-events:none}
.vision-map-feature>*{position:relative;z-index:1}
.vision-map-feature span{color:#8ed8ec;font-size:11px;font-weight:800;letter-spacing:.15em}
.vision-map-feature h2{margin:8px 0 9px;color:#fff;font:800 27px "Songti SC","STSong",serif}
.vision-map-feature p{max-width:590px;margin:0;color:#b8d6e6;font-size:13px;line-height:1.8}
.vision-map-feature ul{display:grid;gap:10px;margin:0;padding:0;list-style:none;color:#cce5ef;font-size:12px}
.vision-map-feature li::before{content:"";display:inline-block;width:5px;height:5px;margin:0 9px 2px 0;border-radius:50%;background:#75d1e8}
.vision-map-feature button{min-height:48px;padding:0 19px;color:#13517d;background:#fff;border-radius:8px;font-weight:800;white-space:nowrap}
.vision-map-feature i{margin-left:12px;font-style:normal}
.vision-today{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;margin-top:24px;padding:26px 30px;
  background:linear-gradient(110deg,#eaf8f8,#f8fcff);border:1px solid rgba(25,141,140,.2);border-radius:18px;
  box-shadow:0 14px 34px rgba(27,106,135,.07)
}
.vision-today span{color:#178785;font-size:10px;font-weight:900;letter-spacing:.17em}
.vision-today h2{margin:7px 0 6px;color:#123e58;font:800 25px/1.25 "Songti SC","STSong",serif}
.vision-today p{margin:0;color:#688799;font-size:13px;line-height:1.7}
.vision-today button{min-height:48px;padding:0 20px;color:#fff;background:#178785;border-radius:9px;font-weight:800;white-space:nowrap}
.vision-today button:hover{background:#106e6d;transform:translateY(-1px)}
.vision-today i{margin-left:12px;font-style:normal}
.vision-today-waiting{background:linear-gradient(110deg,#fff7e7,#fbfdff);border-color:rgba(197,142,48,.24)}
.vision-today-waiting span{color:#aa7114}.vision-today-waiting button{background:#a97015}
.vision-continue{display:grid;grid-template-columns:1.5fr .78fr;gap:14px;margin-top:66px}
.vision-continue-main,.vision-review{border-radius:18px;padding:27px 30px}
.vision-continue-main{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 24px;background:#e9f5fc;border:1px solid rgba(41,137,181,.13)}
.vision-continue-main h2{margin:5px 0;color:#103b5e;font:800 25px "Songti SC","STSong",serif}
.vision-continue-main p{margin:0;color:#6b8799;font-size:13px}
.vision-continue-main button{grid-column:2;grid-row:1/4;color:#fff;background:#1769c2}
.vision-review{background:#124064;color:#d7edf4}
.vision-review>span{color:#8fd6e8}
.vision-review b{display:block;margin-top:11px;color:#fff;font:700 36px Georgia,serif}
.vision-review p{margin:2px 0 16px;color:#a8c9d5;font-size:12px}
.vision-review button{padding:0;color:#88d0e2;background:none;border:0;font-size:12px;font-weight:800}
.vision-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.vision-tool-grid button{display:grid;grid-template-columns:36px 1fr 15px;gap:12px;align-items:start;min-height:158px;padding:22px 20px;text-align:left;background:#fff;border:1px solid var(--vision-line);border-radius:14px;transition:.25s ease}
.vision-tool-grid button:hover{border-color:#68b0d0;box-shadow:0 14px 30px rgba(39,113,161,.1);transform:translateY(-3px)}
.vision-tool-index{color:#6bb2cf;font:700 12px Georgia,serif}
.vision-tool-grid b{color:#19466b;font-size:16px}
.vision-tool-grid p{margin:9px 0 0;color:#7892a3;font-size:12px;line-height:1.7}
.vision-tool-grid i{color:#277db4;font-style:normal}
.vision-footer{display:flex;align-items:center;gap:20px;margin-top:76px;padding-top:20px;border-top:1px solid var(--vision-line);color:#6b899e}
.vision-footer>span{color:#16507a;font:800 18px "Songti SC","STSong",serif}
.vision-footer p{margin:0;font-size:12px}
.vision-footer button{margin-left:auto;color:#1769c2;background:none;border:0;font-size:12px;font-weight:800}
@media(max-width:980px){
  .vision-hero{min-height:620px;grid-template-columns:1fr;background-position:70% bottom;background-size:auto 66%}
  .vision-hero::after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.97) 42%,rgba(255,255,255,.25) 78%,transparent 100%)}
  .vision-hero-copy{padding:56px 34px 260px}
  .vision-path{grid-template-columns:repeat(2,1fr)}
  .vision-map-feature{grid-template-columns:1fr auto}.vision-map-feature ul{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,1fr)}
  .vision-tool-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .learn-home-vision{padding:14px 14px 36px}
  .vision-hero{min-height:650px;border-radius:20px;background-size:auto 53%;background-position:70% bottom}
  .vision-hero-copy{padding:38px 24px 250px}.vision-hero h1{font-size:45px}.vision-hero-copy>p{font-size:14px;line-height:1.8}
  .vision-proof{gap:12px;margin-top:27px}.vision-proof b{font-size:17px}
  .vision-start,.vision-tools{padding-top:52px}.vision-section-head{display:block}.vision-section-head>p{margin-top:10px;text-align:left}
  .vision-section-head h2{font-size:25px}
  .vision-path,.vision-continue,.vision-tool-grid{grid-template-columns:1fr}
  .vision-path-step{min-height:125px}
  .vision-map-feature{display:block;margin-top:48px;padding:27px 23px}.vision-map-feature ul{margin:20px 0}.vision-map-feature button{width:100%}
  .vision-today{display:block;padding:23px}.vision-today button{width:100%;margin-top:18px}
  .vision-continue-main{display:block;padding:23px}.vision-continue-main button{margin-top:18px}
  .vision-review{padding:23px}.vision-tool-grid button{min-height:132px}
  .vision-footer{display:block;margin-top:54px}.vision-footer p{margin:9px 0 14px}.vision-footer button{margin:0}
}

/* Shared application chrome: every view speaks the same white/blue language.
   Content modules can still keep their own density, but navigation never
   changes personality between pages. */
:root{
  --shell-blue:#1769c2;
  --shell-ink:#133b5c;
  --shell-muted:#718ba0;
  --shell-line:rgba(28,92,143,.14);
  --shell-paper:#f7fbff;
}
html[data-theme="day"] body,
html[data-theme="day"] body:not(.on-home),
html[data-theme="day"] body:not(.on-home) main{
  color:var(--shell-ink);
  background:
    radial-gradient(circle at 80% -20%,rgba(92,190,224,.12),transparent 34%),
    linear-gradient(180deg,#f8fbfd 0%,#f3f8fb 100%);
}
html[data-theme="day"] .sidebar{
  width:228px;color:var(--shell-ink);background:rgba(255,255,255,.92);
  border-right:1px solid var(--shell-line);box-shadow:12px 0 42px rgba(42,105,145,.07);
  backdrop-filter:blur(18px)
}
html[data-theme="day"] .sb-brand{
  height:76px;padding:0 20px;border-bottom:1px solid var(--shell-line)
}
html[data-theme="day"] .sb-brand-mark{
  width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#2aa5bb,#1769a2);
  box-shadow:0 8px 18px rgba(23,105,194,.2)
}
html[data-theme="day"] .sb-brand-name b{color:#173b59;font-size:16px}
html[data-theme="day"] .sb-progress{
  margin:16px 14px 12px;padding:14px 15px;border:1px solid var(--shell-line);
  background:linear-gradient(145deg,#fff,#f0f8fc);box-shadow:0 10px 26px rgba(49,113,149,.08)
}
html[data-theme="day"] .sb-progress-num b{color:var(--shell-blue)}
html[data-theme="day"] .sb-progress-label{color:var(--shell-muted)}
html[data-theme="day"] .sb-nav{padding:10px 12px 16px}
html[data-theme="day"] .sb-nav-group{color:#5b7382;letter-spacing:.14em}
html[data-theme="day"] .sb-nav-item{
  min-height:46px;color:#68829a;border-radius:10px
}
html[data-theme="day"] .sb-nav-item:hover{
  color:var(--shell-blue);background:#eff8fd;border-color:rgba(56,161,205,.16)
}
html[data-theme="day"] .sb-nav-item.on{
  color:#1769a2;background:linear-gradient(90deg,#e7f5fc,#f7fbfd);
  border-color:rgba(45,153,199,.24);box-shadow:inset 3px 0 #1e9ac0
}
html[data-theme="day"] .sb-nav-item.on::before{display:none}
html[data-theme="day"] .sb-footer{border-top:1px solid var(--shell-line)}
html[data-theme="day"] .sb-streak{color:#849baa}
html[data-theme="day"] .sb-streak b{color:#d69c35}
html[data-theme="day"] .sb-toggle{color:#68829a;background:#f5fafc;border-color:var(--shell-line)}
html[data-theme="day"] .workspace-bar{
  left:228px;height:64px;padding:0 30px;background:rgba(255,255,255,.86);
  border-bottom:1px solid var(--shell-line);box-shadow:0 8px 26px rgba(42,105,145,.05);
  backdrop-filter:blur(18px)
}
html[data-theme="day"] .workspace-bar span{color:#2385ae}
html[data-theme="day"] .workspace-bar b{color:#173b59}
html[data-theme="day"] .workspace-bar p{color:#7891a3}
html[data-theme="day"] main,
html[data-theme="day"] main.map-full{margin-left:228px}
html[data-theme="day"] body:not([data-view="map"]):not([data-view="redmap"]):not([data-view="classicwar"]):not([data-view="guide"]):not([data-view="interview"]) main{
  padding-top:88px
}
html[data-theme="day"] body[data-view="learn"] main{padding-top:64px}
html[data-theme="day"] body[data-view="learn"] #view{background:transparent}
html[data-theme="day"] body[data-view="learn"] .learn-home-vision{
  max-width:none;margin:0;padding:0 42px 62px
}
html[data-theme="day"] body[data-view="learn"] .vision-hero{
  min-height:calc(100svh - 112px);border-radius:0 0 26px 26px;border-top:0
}
@media(max-width:720px){
  html[data-theme="day"] .sidebar{width:min(86vw,300px)}
  html[data-theme="day"] .workspace-bar{left:0;padding-left:72px}
  html[data-theme="day"] main,html[data-theme="day"] main.map-full{margin-left:0!important}
  html[data-theme="day"] body[data-view="learn"] main{padding-top:64px}
  html[data-theme="day"] body[data-view="learn"] .learn-home-vision{padding:0 14px 36px}
  html[data-theme="day"] body[data-view="learn"] .vision-hero{min-height:650px;border-radius:20px}
}

/* Quiz: the hub, chapter list and answer flow share the white-blue product language. */
html[data-theme="day"] body[data-view="quiz"] main{
  background:radial-gradient(circle at 82% 2%,rgba(72,176,215,.11),transparent 29%),linear-gradient(180deg,#f8fcff,#f2f8fc)
}
html[data-theme="day"] body[data-view="quiz"] .quiz-page{
  width:min(1220px,100%);max-width:none;margin:0 auto;padding:34px clamp(24px,4vw,64px) 70px;color:var(--shell-ink)
}
html[data-theme="day"] body[data-view="quiz"] .study-mode-switch{
  width:max-content;display:flex;gap:2px;margin:0 0 48px;padding:4px;background:#edf5fa;border:1px solid var(--shell-line);border-radius:10px
}
html[data-theme="day"] body[data-view="quiz"] .study-mode-switch button{min-width:210px;padding:11px 14px;color:#6e899d;border:0;border-radius:7px}
html[data-theme="day"] body[data-view="quiz"] .study-mode-switch button.on{color:#154b75;background:#fff;box-shadow:0 5px 18px rgba(37,101,142,.1)}
html[data-theme="day"] body[data-view="quiz"] .study-mode-switch i{color:#3c9fc4}
html[data-theme="day"] body[data-view="quiz"] .study-mode-switch em{color:#8aa0af}
html[data-theme="day"] body[data-view="quiz"] .view-head{margin-bottom:38px}
html[data-theme="day"] body[data-view="quiz"] .page-kicker{color:#2488b3;font-size:10px;font-weight:800;letter-spacing:.18em}
html[data-theme="day"] body[data-view="quiz"] .view-head h1{margin:8px 0 7px;color:#103b5e;font:800 38px/1.2 "Songti SC","STSong",serif}
html[data-theme="day"] body[data-view="quiz"] .view-head p{color:#718b9d;font-size:13px}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section{margin-top:42px}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section>header{grid-template-columns:42px 1fr;gap:15px;margin-bottom:16px}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section>header>span{width:40px;height:40px;color:#247ca7;background:#eaf5fb;border-color:#cce3ef;border-radius:10px}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section>header b{color:#143e5f;font-size:18px}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section>header p{color:#7890a1}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section .quiz-subjects{gap:12px}
html[data-theme="day"] body[data-view="quiz"] :is(.qs-item,.qc-item){
  color:#183f5e;background:rgba(255,255,255,.88);border:1px solid #d8e6ee;border-radius:13px;box-shadow:0 8px 24px rgba(43,101,137,.045)
}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section .qs-item{min-height:94px;padding:17px 19px;grid-template-columns:48px 1fr auto;gap:15px}
html[data-theme="day"] body[data-view="quiz"] :is(.qs-item,.qc-item):hover{background:#fff;border-color:#79bad6;box-shadow:0 14px 34px rgba(39,108,148,.1);transform:translateY(-2px)}
html[data-theme="day"] body[data-view="quiz"] .qs-code{width:46px;height:46px;color:#1769a0;background:#eaf6fc;border-color:#c9e2ef;border-radius:11px}
html[data-theme="day"] body[data-view="quiz"] .qs-info b{color:#173f5e;font-size:14px}
html[data-theme="day"] body[data-view="quiz"] .qs-sub{margin-top:4px;color:#7e95a5}
html[data-theme="day"] body[data-view="quiz"] .qs-count{color:#1769a0;font-size:16px}
html[data-theme="day"] body[data-view="quiz"] .quiz-review-entry{
  min-height:90px;padding:19px 21px;color:#163f5f;background:linear-gradient(105deg,#e9f6fb,#f8fcfe);border-color:#c7e2ed;border-radius:13px
}
html[data-theme="day"] body[data-view="quiz"] .quiz-review-entry span{color:#718d9e}
html[data-theme="day"] body[data-view="quiz"] .quiz-review-entry em{color:#157ca5}
html[data-theme="day"] body[data-view="quiz"] .quiz-specialty-entries{gap:12px}
html[data-theme="day"] body[data-view="quiz"] .quiz-specialty-entries button{
  min-height:108px;padding:20px;color:#183f5e;background:#fff;border-color:#d8e6ee;border-radius:13px;box-shadow:0 8px 24px rgba(43,101,137,.04)
}
html[data-theme="day"] body[data-view="quiz"] .quiz-specialty-entries button:hover{border-color:#79bad6;box-shadow:0 14px 34px rgba(39,108,148,.1)}
html[data-theme="day"] body[data-view="quiz"] .quiz-specialty-entries span{color:#2186ae}
html[data-theme="day"] body[data-view="quiz"] .quiz-specialty-entries em{color:#7890a1}
html[data-theme="day"] body[data-view="quiz"] .learning-step{color:#173f5e;background:linear-gradient(90deg,#e8f5fb,#f7fbfd);border-left-color:#268ab2}
html[data-theme="day"] body[data-view="quiz"] .learning-step span{color:#1c7fa8}
html[data-theme="day"] body[data-view="quiz"] .quiz-chapters{gap:9px}
html[data-theme="day"] body[data-view="quiz"] .quiz-chapters .qc-item{
  min-height:58px;padding:13px 15px;background:linear-gradient(90deg,rgba(54,156,194,.16) 0 var(--chapter-progress,0%),#fff var(--chapter-progress,0%) 100%)
}
html[data-theme="day"] body[data-view="quiz"] .quiz-context-bar{
  color:#163e5e;background:#fff;border-color:#d8e6ee;border-left-color:#2589b1;box-shadow:0 9px 25px rgba(42,100,137,.06)
}
html[data-theme="day"] body[data-view="quiz"] .quiz-context-bar button{color:#177ba4}
html[data-theme="day"] body[data-view="quiz"] .quiz-context-bar b{color:#153d5c}
html[data-theme="day"] body[data-view="quiz"] .quiz-context-bar :is(span,em){color:#7890a1}

html[data-theme="day"] body[data-view="quiz"].quiz-answering main{
  background:linear-gradient(rgba(44,123,167,.045) 1px,transparent 1px),linear-gradient(180deg,#f8fcff,#f2f8fc);background-size:100% 38px,auto
}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-page.is-answering{color:#143b59;padding-top:28px}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-page.is-answering>.study-mode-switch{display:none}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-session-head>button{color:#66869b}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-session-head>button:hover{color:#1769a0}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-session-head h2{color:#143d5d}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-session-head>div:nth-child(2)>span{color:#7891a2}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-session-head .practice-score{background:rgba(255,255,255,.7);border-color:#d5e5ee}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-score b{color:#1769a0}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-progress{background:#dbe9f0}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-progress i{background:linear-gradient(90deg,#1988ba,#46bdd4)}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-meta{color:#7891a2;border-color:#d8e6ee}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .tag.b{color:#176f99;background:#e8f5fb;border-color:#cbe4ef}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-mode-label{color:#7b93a3}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-stem>i{color:#fff;background:#1769a0;border-color:#1769a0;border-radius:9px}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-q{color:#102f49}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .question-context{color:#173e5d;background:linear-gradient(105deg,#e8f5f8,#f3f9fb);border-color:#c7e2e9}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .question-context>span{color:#177b9e}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .question-context p{color:#58788b}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-options .opt{color:#17384f;background:rgba(255,255,255,.88);border-color:#d2e2eb;border-radius:12px}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-options .opt .k{color:#347a9d;background:#e9f3f8}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-stage .opt:hover{border-color:#70b6d2;background:#f1f9fd}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-stage .opt.selected{border-color:#278db7;background:#e9f6fb;box-shadow:inset 4px 0 #278db7}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .multi-submit{min-height:54px;color:#fff;background:#1769a0;border-radius:10px}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-nav{border-color:#d8e6ee}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-nav>span{color:#7891a2}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .practice-nav>span b{color:#17466a}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-nav-prev{color:#52778e;background:#fff;border-color:#cfdee7;border-radius:9px}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-nav-next{color:#fff;background:#174d73;border-color:#174d73;border-radius:9px;box-shadow:0 9px 20px rgba(23,77,115,.14)}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-nav-next:hover{background:#103d5f;border-color:#103d5f}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .answer-reveal{color:#173e5d;background:#eaf5fa}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .answer-reveal .answer-letters{color:#176f9d}
html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-exp{color:#365b70;background:#edf7fa;border-left-color:#2992b5}
@media(max-width:768px){
  html[data-theme="day"] body[data-view="quiz"] .quiz-page{padding:78px 16px 42px}
  html[data-theme="day"] body[data-view="quiz"] .study-mode-switch{width:100%;margin-bottom:34px}
  html[data-theme="day"] body[data-view="quiz"] .study-mode-switch button{min-width:0;flex:1;padding:10px}
  html[data-theme="day"] body[data-view="quiz"] .study-mode-switch em{display:none}
  html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section .quiz-subjects{grid-template-columns:1fr}
  html[data-theme="day"] body[data-view="quiz"].quiz-answering .quiz-page.is-answering{padding:18px 15px 32px}
}


/* 没有序号的 entry-section header：单列占满，不挤在42px里 */
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section>header.no-num{grid-template-columns:1fr;gap:4px;margin-bottom:12px}
html[data-theme="day"] body[data-view="quiz"] .quiz-entry-section>header.no-num>div{grid-column:1/-1}

/* ===== B08 merged from assets/css/landing-vision.css ===== */
/* ============================================================
   Landing Vision v2 · 数字山河志
   产品发布式留白 × 中国纸雕地形 × 严谨职业叙事
   ============================================================ */

body[data-view="home"] main{
  padding-top:64px!important;
  overflow:clip;
  background:#f4f7f9!important;
}
.landing-page{
  --lv-blue:#126fc3;
  --lv-cyan:#27a9c8;
  --lv-teal:#0b596d;
  --lv-ink:#092740;
  --lv-deep:#061b2c;
  --lv-muted:#657d90;
  --lv-line:rgba(22,79,119,.13);
  --lv-paper:#f4f8fa;
  --lv-white:#fff;
  --lv-gold:#d5a94e;
  --lv-serif:"Songti SC","STSong","Noto Serif CJK SC",serif;
  --lv-sans:"SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI",sans-serif;
  color:var(--lv-ink);
  background:#fff;
  font-family:var(--lv-sans);
  -webkit-font-smoothing:antialiased;
}
.landing-page *{box-sizing:border-box}
.landing-page button,.landing-page a{font:inherit}
.landing-page button{cursor:pointer}
.landing-page :focus-visible{outline:3px solid rgba(39,169,200,.38);outline-offset:3px}

/* Hero */
.landing-hero{
  position:relative;
  min-height:calc(100svh - 64px);
  display:flex;
  align-items:center;
  overflow:hidden;
  isolation:isolate;
  background:#eef4f6;
  border-bottom:1px solid rgba(26,79,111,.08);
}
.landing-hero::before{
  content:"";
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 29%,rgba(255,255,255,.54) 48%,rgba(255,255,255,.04) 72%),
    linear-gradient(180deg,rgba(255,255,255,.16),rgba(226,239,244,.12));
}
.landing-hero::after{
  content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;height:170px;
  background:linear-gradient(180deg,transparent,#f4f7f9);
  pointer-events:none;
}
.landing-hero-visual{
  position:absolute;inset:0;z-index:-2;
  background:url("../img/ui/home-landscape-2026-v1.webp") 56% center/cover no-repeat;
  transform:scale(1.006);
  animation:lvHeroBreathe 14s cubic-bezier(.2,.7,.2,1) both;
}
.landing-hero-copy{
  position:relative;z-index:2;
  width:min(610px,53%);
  margin-left:clamp(44px,6vw,104px);
  padding:82px 0 118px;
  animation:lvHeroEnter .9s cubic-bezier(.18,.8,.2,1) both;
}
.landing-release{
  width:max-content;max-width:100%;display:flex;align-items:center;gap:10px;
  margin-bottom:30px;padding:7px 13px 7px 7px;border:1px solid rgba(25,116,148,.15);
  border-radius:999px;background:rgba(255,255,255,.68);backdrop-filter:blur(18px);
  box-shadow:0 8px 30px rgba(19,73,100,.06);
  color:#365f72;font-size:11px;letter-spacing:.04em;
}
.landing-release span{
  padding:5px 9px;border-radius:999px;color:#fff;background:linear-gradient(135deg,#147ea5,#0d6078);
  font:800 10px/1 var(--lv-sans);letter-spacing:.12em;
}
.landing-release b{font-weight:650}
.landing-hero-eyebrow,.landing-eyebrow{
  margin:0;color:#167d9e;font-size:10px;font-weight:800;letter-spacing:.27em;text-transform:uppercase;
}
body[data-view="home"] .landing-hero h1{
  max-width:600px;margin:15px 0 24px;color:var(--lv-deep);
  font:800 clamp(52px,5.25vw,82px)/1.05 var(--lv-serif);
  letter-spacing:-.064em;
}
.landing-hero h1 em{
  color:var(--lv-blue);font-style:normal;
  background:linear-gradient(100deg,#0e63b4,#1698b5 78%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.landing-hero-sub{
  max-width:570px;margin:0;color:#49697c;font-size:clamp(15px,1.15vw,18px);line-height:1.9;
  text-wrap:pretty;
}
.landing-hero-cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:34px}
.landing-discover-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:17px}.landing-discover-links a{color:#257a93;font-size:10px;font-weight:750;text-decoration:none;border-bottom:1px solid rgba(37,122,147,.2)}.landing-discover-links a:hover{color:#0d6392;border-color:currentColor}
.lv-btn{
  min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:0 24px;border-radius:999px;border:1px solid transparent;
  font-size:14px;font-weight:750;letter-spacing:.01em;
  transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s,background .3s,border-color .3s;
}
.lv-btn i{font-style:normal;transition:transform .3s}
.lv-btn:hover{transform:translateY(-2px)}
.lv-btn:hover i{transform:translateX(3px)}
.lv-btn-primary{color:#fff;background:linear-gradient(135deg,#0d6cbc,#148cad);box-shadow:0 13px 32px rgba(16,105,162,.22)}
.lv-btn-primary:hover{box-shadow:0 18px 42px rgba(16,105,162,.3)}
.lv-btn-ghost{color:#17435f;background:rgba(255,255,255,.64);border-color:rgba(19,78,112,.17);backdrop-filter:blur(16px)}
.lv-btn-ghost:hover{background:#fff;border-color:rgba(18,105,159,.28)}
.landing-hero-meta{
  display:flex;gap:22px;flex-wrap:wrap;margin-top:36px;padding-top:20px;
  border-top:1px solid rgba(21,78,110,.12);color:#51676f;font-size:10px;
}
.landing-hero-meta span{display:flex;align-items:baseline;gap:5px}
.landing-hero-meta b{color:#153f59;font:700 14px/1 Georgia,serif}
.landing-scroll-cue{
  position:absolute;left:50%;bottom:24px;z-index:4;transform:translateX(-50%);
  display:grid;justify-items:center;gap:7px;padding:0;border:0;background:none;color:#638090;
  font-size:9px;letter-spacing:.15em;
}
.landing-scroll-cue span{width:1px;height:27px;background:linear-gradient(#1e89a7,transparent);animation:lvScroll 1.8s ease-in-out infinite}

/* Proof strip and common sections */
.landing-proof{
  max-width:1180px;display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto;
  padding:24px clamp(24px,4vw,58px);border-bottom:1px solid var(--lv-line);
}
.landing-proof>div{padding:12px 28px;border-right:1px solid var(--lv-line)}
.landing-proof>div:first-child{padding-left:0}.landing-proof>div:last-child{padding-right:0;border-right:0}
.landing-proof span{display:block;margin-bottom:7px;color:#8094a1;font-size:9px;font-weight:750;letter-spacing:.17em;text-transform:uppercase}
.landing-proof b{color:#173e57;font-size:13px;font-weight:700}
.landing-stats{max-width:1180px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:34px auto 0;padding:0 clamp(24px,4vw,58px);background:var(--lv-line)}
.landing-stats article{min-height:180px;padding:28px;background:#fff}
.landing-stats b{display:block;color:#0d668e;font:750 34px/1 var(--lv-serif);letter-spacing:-.04em}
.landing-stats span{display:block;margin-top:11px;color:#183e56;font-size:12px;font-weight:800}
.landing-stats p{margin:13px 0 0;color:#78909c;font-size:10px;line-height:1.75}
.landing-section{max-width:1180px;margin:0 auto;padding:128px clamp(24px,4vw,58px)}
.landing-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,400px);gap:70px;align-items:end;margin-bottom:55px}
.landing-section-head.is-centered{display:block;max-width:870px;margin:0 auto 64px;text-align:center}
.landing-section-head.is-centered>p{max-width:660px;margin:22px auto 0}
body[data-view="home"] .landing-section-head h2,
body[data-view="home"] .landing-path-wrap h2,
body[data-view="home"] .landing-cta h2{
  margin:13px 0 0;color:var(--lv-deep);font:800 clamp(36px,4.1vw,58px)/1.13 var(--lv-serif);letter-spacing:-.052em;
}
.landing-section-head h2 em{font-style:normal;color:var(--lv-blue)}
.landing-section-head>p{margin:0;color:var(--lv-muted);font-size:14px;line-height:1.9;text-wrap:pretty}

/* Certificate / exam architecture */
.landing-certificate{padding-top:145px}
.lv-certificate-layout{display:grid;grid-template-columns:.92fr 1.18fr;gap:18px;align-items:stretch}
.lv-certificate-card{
  position:relative;min-height:540px;padding:40px;border-radius:30px;overflow:hidden;
  display:flex;flex-direction:column;color:#d6e8ef;
  background:
    radial-gradient(circle at 100% 0%,rgba(50,181,207,.26),transparent 36%),
    linear-gradient(155deg,#092d45 0%,#0b5165 100%);
  box-shadow:0 28px 70px rgba(7,45,68,.18);
}
.lv-certificate-card::after{
  content:"";position:absolute;right:-110px;bottom:-125px;width:360px;height:360px;border:1px solid rgba(151,219,230,.16);border-radius:50%;
  box-shadow:0 0 0 38px rgba(151,219,230,.045),0 0 0 76px rgba(151,219,230,.035);
}
.lv-certificate-seal{
  position:absolute;top:34px;right:34px;width:62px;height:62px;display:grid;place-items:center;
  border:1px solid rgba(203,237,240,.34);border-radius:50%;color:#bfe8ed;
  font:750 9px/1.25 var(--lv-sans);letter-spacing:.16em;text-align:center;
}
.lv-certificate-card>div:nth-child(2){position:relative;z-index:1;padding-right:60px}
.lv-certificate-card>div:nth-child(2)>span{color:#88ccd9;font-size:9px;font-weight:800;letter-spacing:.19em}
.lv-certificate-card h3{margin:15px 0 0;color:#fff;font:800 28px/1.45 var(--lv-serif);letter-spacing:-.03em}
.lv-certificate-card ol{position:relative;z-index:1;display:grid;gap:0;margin:auto 0 26px;padding:0;list-style:none}
.lv-certificate-card li{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid rgba(205,232,237,.12)}
.lv-certificate-card li>i{color:#70c9d7;font:700 11px Georgia,serif;font-style:normal}
.lv-certificate-card li span{display:grid;gap:4px}.lv-certificate-card li b{color:#edf8fa;font-size:13px}.lv-certificate-card li small{color:#8fb7c4;font-size:11px;line-height:1.5}
.lv-certificate-note{position:relative;z-index:1;color:#82aab7;font-size:10px;line-height:1.6}
.lv-exam-system{padding:40px;border:1px solid var(--lv-line);border-radius:30px;background:#f6f9fa}
.lv-exam-title{display:grid;gap:10px;margin-bottom:25px}
.lv-exam-title span{color:#288aa3;font-size:9px;font-weight:800;letter-spacing:.18em}
.lv-exam-title b{max-width:500px;color:#173d55;font:750 20px/1.55 var(--lv-serif)}
.lv-exam-papers{display:grid;gap:11px}
.lv-exam-papers article{
  position:relative;display:grid;grid-template-columns:36px 1fr;gap:4px 12px;padding:23px 24px;
  border:1px solid rgba(27,89,121,.11);border-radius:17px;background:#fff;
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,border-color .28s;
}
.lv-exam-papers article:hover{transform:translateX(4px);border-color:rgba(31,143,170,.28);box-shadow:0 16px 38px rgba(22,81,111,.08)}
.lv-exam-papers article>i{grid-row:1/4;color:#22707f;font:700 12px Georgia,serif;font-style:normal}
.lv-exam-papers article>span{color:#7d949f;font-size:9px;font-weight:750;letter-spacing:.13em}
.lv-exam-papers h3{margin:3px 0 0;color:#133c55;font-size:17px}.lv-exam-papers p{margin:3px 0 0;color:#718894;font-size:12px;line-height:1.6}
.lv-exam-papers .is-interview{color:#fff;background:linear-gradient(120deg,#0e5d78,#137f94);border-color:transparent}
.lv-exam-papers .is-interview>i,.lv-exam-papers .is-interview>span{color:#9ddce4}.lv-exam-papers .is-interview h3{color:#fff}.lv-exam-papers .is-interview p{color:#b9dce2}
.lv-subjects{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.lv-subject{min-height:255px;display:flex;flex-direction:column;align-items:stretch;padding:26px;text-align:left;color:var(--lv-ink);border:1px solid var(--lv-line);border-radius:20px;background:#fff;transition:transform .28s,box-shadow .28s,border-color .28s}
.lv-subject:hover{transform:translateY(-4px);border-color:rgba(36,146,169,.34);box-shadow:0 18px 42px rgba(20,74,105,.08)}
.lv-subject-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.lv-subject-top>i{color:#2689a2;font:700 12px Georgia,serif;font-style:normal}.lv-subject-top>small{color:#7d929d;font-size:9px}
.lv-subject h3{margin:35px 0 12px;color:#123a52;font:750 18px/1.45 var(--lv-serif)}.lv-subject p{margin:0;color:#718691;font-size:11px;line-height:1.8}.lv-subject>em{margin-top:auto;padding-top:22px;color:#267f98;font-size:10px;font-weight:750;font-style:normal}.lv-subject>em i{font-style:normal}
.lv-interview-note{display:grid;grid-template-columns:56px 1fr auto;gap:22px;align-items:center;margin-top:12px;padding:25px 28px;border-radius:20px;color:#d8edf1;background:linear-gradient(120deg,#0a3853,#0e7787)}
.lv-interview-note>span{color:#79cfda;font:700 17px Georgia,serif}.lv-interview-note>div{display:grid;gap:5px}.lv-interview-note small{color:#86cbd5;font-size:9px;letter-spacing:.12em}.lv-interview-note h3{margin:0;color:#fff;font:750 18px var(--lv-serif)}.lv-interview-note p{max-width:710px;margin:0;color:#acd0d7;font-size:10px;line-height:1.7}.lv-interview-note button{padding:11px 0 11px 20px;border:0;border-left:1px solid rgba(213,239,243,.18);background:none;color:#fff;font-size:10px;font-weight:750;white-space:nowrap}.lv-interview-note button i{font-style:normal}

/* Value and career */
.landing-value{padding-top:118px}
.lv-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.lv-benefit{min-height:285px;padding:30px 26px;border:1px solid var(--lv-line);border-radius:22px;background:#fff;transition:transform .3s,box-shadow .3s,border-color .3s}
.lv-benefit:hover{transform:translateY(-5px);border-color:rgba(37,151,178,.3);box-shadow:0 24px 50px rgba(17,75,105,.09)}
.lv-benefit>span{display:block;margin-bottom:55px;color:#22707f;font:700 12px Georgia,serif}
.lv-benefit h3{margin:0 0 13px;color:#123950;font:750 18px/1.45 var(--lv-serif)}
.lv-benefit p{margin:0;color:#718590;font-size:12px;line-height:1.8}
.landing-career{position:relative;overflow:hidden;color:#dbeaf0;background:#071f31}
.landing-career::after{content:"";position:absolute;inset:0 0 0 42%;background:url("../img/ui/home-landscape-2026-v1.webp") 56% center/cover no-repeat;opacity:.1;filter:saturate(.6) contrast(1.1);mix-blend-mode:screen}
.landing-career-inner{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:125px clamp(24px,4vw,58px)}
.landing-career .landing-section-head{border-bottom:1px solid rgba(211,235,241,.13);padding-bottom:42px}
.landing-career .landing-eyebrow{color:#75cbd8}
body[data-view="home"] .landing-career h2{color:#f1f8fa}.landing-career h2 em{color:#80d2dc}
.landing-career .landing-section-head>p{color:#9ebbc5}
.lv-career-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(218,239,243,.12);border:1px solid rgba(218,239,243,.12)}
.lv-career-grid article{min-height:290px;padding:28px 24px;background:rgba(7,31,49,.9);transition:background .3s}
.lv-career-grid article:hover{background:rgba(13,66,82,.9)}
.lv-career-grid i{display:block;margin-bottom:48px;color:#67bdcb;font:700 11px Georgia,serif;font-style:normal}.lv-career-grid span{color:#75a8b6;font-size:9px;font-weight:750;letter-spacing:.16em}
.lv-career-grid h3{margin:12px 0;color:#fff;font:700 18px/1.5 var(--lv-serif)}.lv-career-grid p{margin:0;color:#98b8c2;font-size:12px;line-height:1.8}
.lv-career-disclaimer{max-width:760px;margin:22px 0 0;color:#668a96;font-size:9px;line-height:1.7}

/* Path */
.landing-path-section{padding-top:105px;padding-bottom:105px}
.landing-path-wrap{padding:65px 58px;border-radius:30px;background:linear-gradient(145deg,#eef6f8,#f9fbfb);border:1px solid var(--lv-line)}
.landing-path-wrap header{display:flex;justify-content:space-between;align-items:end;gap:40px;padding-bottom:35px;border-bottom:1px solid var(--lv-line)}
body[data-view="home"] .landing-path-wrap h2{font-size:clamp(31px,3.4vw,48px)}
.lv-timeline{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:22px;margin-top:44px}
.lv-timeline::before{content:"";position:absolute;left:20px;right:20px;top:20px;height:1px;background:linear-gradient(90deg,#55b2c3,#b6dbe1 82%,#d4a84e)}
.lv-step{position:relative;z-index:1}.lv-step-dot{width:42px;height:42px;display:grid;place-items:center;margin-bottom:24px;border-radius:50%;color:#287f96;background:#f4fafb;border:1px solid #80beca;font:700 10px Georgia,serif}
.lv-step.is-final .lv-step-dot{color:#fff;background:#96690d;border-color:#e5c77c;box-shadow:0 0 0 7px rgba(213,169,78,.1)}
.lv-step h3{margin:0 0 10px;color:#123a52;font:750 15px var(--lv-serif)}.lv-step p{margin:0;color:#718691;font-size:11px;line-height:1.75}

/* Product bento */
.landing-product{padding-top:95px}
.lv-features{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(2,245px) 230px;gap:14px}
.lv-feature{
  position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;
  padding:28px;text-align:left;color:#123950;background:#f3f7f8;border:1px solid var(--lv-line);border-radius:24px;
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s;
}
.lv-feature:hover{transform:translateY(-4px);border-color:rgba(32,141,168,.32);box-shadow:0 24px 55px rgba(15,70,99,.11)}
.lv-feature-top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center}.lv-feature-top>i{color:#4b8798;font-size:9px;font-weight:800;letter-spacing:.15em;font-style:normal}
.lv-feature-top svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65}.lv-feature-copy{position:relative;z-index:2;display:block;max-width:410px}
.lv-feature h3{margin:0 0 10px;color:inherit;font:750 25px/1.25 var(--lv-serif)}.lv-feature p{margin:0;color:#69818e;font-size:12px;line-height:1.78}
.lv-feature>em{position:relative;z-index:2;color:#237f99;font-size:10px;font-weight:750;font-style:normal}.lv-feature>em i{font-style:normal}
.lv-feature-1{grid-column:1/8;grid-row:1/3;padding:34px}
.lv-feature-1::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 22%,rgba(245,250,250,.98) 82%),url("../img/ui/home-landscape-2026-v1.webp") 61% center/cover no-repeat}
.lv-feature-1 .lv-feature-copy{margin-top:auto;padding-top:260px}.lv-feature-1 h3{font-size:35px}.lv-feature-1 p{max-width:480px;font-size:13px}
.lv-feature-2{grid-column:8/13;grid-row:1;color:#fff;background:linear-gradient(135deg,#0a3b57,#0b7182)}
.lv-feature-2 .lv-feature-top>i,.lv-feature-2>em{color:#90d7df}.lv-feature-2 p{color:#b7d7dc}.lv-feature-2 h3{color:#fff}
.lv-feature-2::after{content:"9,199";position:absolute;right:20px;bottom:-18px;color:rgba(255,255,255,.075);font:700 70px Georgia,serif;letter-spacing:-.05em}
.lv-feature-3{grid-column:8/13;grid-row:2;background:#eef4fb}
.lv-feature-4{grid-column:1/5;grid-row:3}.lv-feature-5{grid-column:5/9;grid-row:3}.lv-feature-6{grid-column:9/13;grid-row:3}
.lv-feature-4,.lv-feature-6{background:#fff}.lv-feature-5{background:#f8f4eb;border-color:rgba(158,119,50,.14)}
.lv-feature-4 h3,.lv-feature-5 h3,.lv-feature-6 h3{font-size:20px}

/* Learning loop */
.landing-flow-section{padding-top:105px}
.landing-flow-wrap{position:relative;overflow:hidden;padding:70px 60px;border-radius:32px;color:#d9eaf0;background:linear-gradient(145deg,#082a42,#0b5667)}
.landing-flow-wrap::after{content:"";position:absolute;right:-130px;top:-170px;width:480px;height:480px;border:1px solid rgba(145,220,229,.11);border-radius:50%;box-shadow:0 0 0 55px rgba(145,220,229,.03),0 0 0 110px rgba(145,220,229,.025)}
.landing-flow-wrap .landing-section-head{position:relative;z-index:1;margin-bottom:60px}.landing-flow-wrap .landing-eyebrow{color:#86d5df}
body[data-view="home"] .landing-flow-wrap .landing-section-head h2{color:#fff;font-size:clamp(34px,3.6vw,50px)}.landing-flow-wrap .landing-section-head>p{color:#a6c5cd}
.lv-flow{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(207,236,241,.15)}
.lv-flow-step{position:relative;display:grid;grid-template-columns:36px 1fr;gap:13px;padding:30px 24px 8px 0}
.lv-flow-step:not(:last-child)::after{content:"";position:absolute;right:20px;top:-3px;width:6px;height:6px;border:1px solid #6ec6d2;border-radius:50%;background:#0a4659}
.lv-flow-no{color:#70c4d0;font:700 11px Georgia,serif}.lv-flow-step h3{margin:0 0 10px;color:#fff;font:700 16px var(--lv-serif)}.lv-flow-step p{margin:0;color:#9ebbc4;font-size:11px;line-height:1.75}
.lv-flow-actions{position:relative;z-index:1;display:flex;align-items:center;gap:22px;margin-top:45px}.landing-flow-wrap .lv-btn-primary{color:#0b4c61;background:#fff;box-shadow:0 13px 32px rgba(0,0,0,.14)}
.lv-text-link{padding:10px 0;border:0;background:none;color:#9dd9e1;font-size:11px;font-weight:750}

/* Syllabus */
#lvSyllabus{padding-top:100px}
.lv-syllabus-intro{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;align-items:stretch}
.lv-syllabus-national{display:grid;gap:10px}
.lv-syllabus-link{display:grid;grid-template-columns:72px 1fr auto;gap:18px;align-items:center;min-height:105px;padding:22px 24px;text-decoration:none;color:var(--lv-ink);border:1px solid var(--lv-line);border-radius:18px;background:#fff;transition:transform .28s,box-shadow .28s,border-color .28s}
.lv-syllabus-link:hover{transform:translateY(-3px);border-color:rgba(34,143,169,.34);box-shadow:0 18px 42px rgba(20,74,105,.08)}
.lv-doc-type{color:#2b879c;font:700 9px Georgia,serif;letter-spacing:.12em}.lv-syllabus-link div{display:grid;gap:7px}.lv-syllabus-link b{color:#143b52;font-size:14px}.lv-syllabus-link div span{color:#5f7480;font-size:10px}
.lv-syllabus-link>em{color:#277f98;font-size:10px;font-weight:750;font-style:normal}.lv-syllabus-link>em i{font-style:normal}.lv-syllabus-link.is-current{background:linear-gradient(110deg,#eef9fa,#fff)}
.lv-syllabus-aside{display:flex;flex-direction:column;justify-content:center;padding:30px;border-radius:18px;color:#d7e9ee;background:linear-gradient(145deg,#0c3b54,#0d6674)}
.lv-syllabus-aside>span{color:#8dd2dc;font-size:9px;font-weight:800;letter-spacing:.16em}.lv-syllabus-aside>b{display:flex;align-items:baseline;gap:7px;margin:16px 0;color:#fff;font:700 52px/1 Georgia,serif}.lv-syllabus-aside b small{font:650 11px var(--lv-sans);color:#a9ced5}.lv-syllabus-aside p{margin:0;color:#a8c9d0;font-size:11px;line-height:1.75}
.lv-province-directory{margin-top:22px;border:1px solid var(--lv-line);border-radius:20px;background:#f8fafb;overflow:hidden}
.lv-province-directory summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 25px;list-style:none;cursor:pointer}.lv-province-directory summary::-webkit-details-marker{display:none}.lv-province-directory summary>span{display:grid;gap:4px}.lv-province-directory summary b{font-size:13px}.lv-province-directory summary small{color:#5f7480;font-size:10px}.lv-province-directory summary>i{font-size:22px;font-style:normal;transition:transform .25s}.lv-province-directory[open] summary>i{transform:rotate(45deg)}
.lv-province-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 14px 18px;border-top:1px solid var(--lv-line)}
.lv-province{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:12px 15px;border:1px solid var(--lv-line);border-radius:12px;background:#fff;text-decoration:none;color:var(--lv-ink);transition:transform .24s,border-color .24s,box-shadow .24s}
.lv-province:hover{transform:translateY(-2px);border-color:rgba(36,146,169,.35);box-shadow:0 10px 22px rgba(20,74,105,.07)}.lv-province>span{display:grid;gap:4px}.lv-province b{font-size:12px}.lv-province small{color:#5f7480;font-size:9px;line-height:1.35}.lv-province>i{font-style:normal;color:#5f7480}.lv-province.is-ready{background:#f3fbf7;border-color:rgba(59,157,108,.24)}.lv-province.is-ready>i{color:#3b9d6c}.lv-province.is-reference{background:#fffaf0;border-color:rgba(191,139,49,.24)}.lv-province.is-reference>i{color:#b07a21}

/* Final CTA and footer */
.landing-cta{max-width:1064px;margin:15px auto 0;display:flex;align-items:center;justify-content:space-between;gap:60px;padding:66px 68px;border-radius:32px;color:#fff;background:linear-gradient(125deg,#0b3450 0%,#0a6a78 100%);box-shadow:0 28px 70px rgba(8,55,80,.18)}
.landing-cta>div>span{color:#8ed2dc;font-size:9px;font-weight:800;letter-spacing:.18em}.landing-cta h2{color:#fff!important;font-size:clamp(30px,3.4vw,46px)!important}.landing-cta p{max-width:570px;margin:14px 0 0;color:#acd0d7;font-size:12px;line-height:1.8}.landing-cta .lv-btn-primary{flex-shrink:0;color:#0b5063;background:#fff;box-shadow:0 14px 34px rgba(0,0,0,.15)}
.landing-footer{max-width:1180px;margin:0 auto;padding:55px clamp(24px,4vw,58px) 75px;display:flex;align-items:center;gap:18px}.landing-footer>span{display:flex;align-items:center;gap:10px}.landing-footer>span b{font:800 15px var(--lv-serif);white-space:nowrap}.landing-footer p{flex:1;margin:0;color:#5f7480;font-size:9px}.landing-footer nav{display:flex;gap:15px}.landing-footer nav button,.landing-footer nav a{padding:0;border:0;background:none;color:#58778a;font-size:10px;font-weight:700;text-decoration:none}

@keyframes lvHeroEnter{from{opacity:0;transform:translateY(22px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes lvHeroBreathe{from{transform:scale(1.03)}to{transform:scale(1.006)}}
@keyframes lvScroll{0%,100%{opacity:.25;transform:scaleY(.55);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}

@media(max-width:1080px){
  .landing-hero-copy{width:min(580px,59%);margin-left:46px}.landing-hero::before{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 38%,rgba(255,255,255,.35) 63%,transparent 82%)}
  .landing-section-head{gap:40px}.lv-certificate-layout{grid-template-columns:1fr}.lv-certificate-card{min-height:500px}
  .landing-stats{grid-template-columns:repeat(2,1fr)}.lv-subjects{grid-template-columns:repeat(2,1fr)}
  .lv-benefits,.lv-career-grid{grid-template-columns:repeat(2,1fr)}
  .lv-features{grid-template-rows:420px repeat(3,220px)}.lv-feature-1{grid-column:1/13;grid-row:1}.lv-feature-1 .lv-feature-copy{padding-top:200px}.lv-feature-2{grid-column:1/7;grid-row:2}.lv-feature-3{grid-column:7/13;grid-row:2}.lv-feature-4{grid-column:1/7;grid-row:3}.lv-feature-5{grid-column:7/13;grid-row:3}.lv-feature-6{grid-column:1/13;grid-row:4}
  .lv-province-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:768px){
  body[data-view="home"] main{padding-top:64px!important}
  .landing-hero{min-height:780px;align-items:flex-start}.landing-hero-visual{background-position:66% bottom;background-size:auto 68%;background-repeat:no-repeat}.landing-hero::before{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.98) 47%,rgba(255,255,255,.42) 75%,rgba(244,247,249,.3) 100%)}
  .landing-hero-copy{width:auto;margin:0;padding:58px 22px 280px}.landing-release{margin-bottom:21px}.landing-hero-eyebrow{font-size:8px;letter-spacing:.19em}body[data-view="home"] .landing-hero h1{font-size:45px;letter-spacing:-.055em}.landing-hero-sub{font-size:14px;line-height:1.8}
  .landing-hero-cta{align-items:stretch}.lv-btn{min-height:50px}.landing-hero-meta{gap:11px 16px;margin-top:26px}.landing-scroll-cue{display:none}
  .landing-proof{grid-template-columns:1fr;padding:18px 22px}.landing-proof>div,.landing-proof>div:first-child,.landing-proof>div:last-child{padding:14px 0;border-right:0;border-bottom:1px solid var(--lv-line)}.landing-proof>div:last-child{border-bottom:0}
  .landing-stats{grid-template-columns:1fr;margin-top:20px;padding:0 22px;background:transparent}.landing-stats article{min-height:auto;border-bottom:1px solid var(--lv-line);padding:24px 0}.landing-stats b{font-size:30px}
  .landing-section,.landing-career-inner{padding:82px 22px}.landing-section-head{display:block;margin-bottom:36px}.landing-section-head>p{margin-top:19px}.landing-section-head.is-centered{text-align:left;margin-bottom:42px}.landing-section-head.is-centered>p{margin:19px 0 0}
  body[data-view="home"] .landing-section-head h2{font-size:35px}.landing-certificate{padding-top:90px}
  .lv-certificate-card,.lv-exam-system{padding:28px;border-radius:23px}.lv-certificate-card{min-height:520px}.lv-certificate-card h3{font-size:24px}.lv-certificate-seal{top:26px;right:24px;width:52px;height:52px}.lv-exam-papers article{padding:20px}
  .lv-subjects{grid-template-columns:1fr}.lv-subject{min-height:225px}.lv-interview-note{grid-template-columns:42px 1fr;padding:23px}.lv-interview-note>button{grid-column:2;padding:13px 0 0;border-left:0;border-top:1px solid rgba(213,239,243,.18);text-align:left}
  .lv-benefits,.lv-career-grid{grid-template-columns:1fr}.lv-benefit{min-height:235px}.lv-benefit>span{margin-bottom:34px}.lv-career-grid article{min-height:230px}.lv-career-grid i{margin-bottom:35px}
  .landing-path-section{padding:72px 14px}.landing-path-wrap{padding:45px 24px;border-radius:24px}.landing-path-wrap header{display:block}.lv-timeline{grid-template-columns:1fr;gap:0}.lv-timeline::before{left:20px;right:auto;top:0;bottom:0;width:1px;height:auto}.lv-step{display:grid;grid-template-columns:42px 1fr;gap:16px;padding-bottom:28px}.lv-step-dot{margin:0}.lv-step p{max-width:440px}
  .lv-features{display:grid;grid-template-columns:1fr;grid-template-rows:390px repeat(5,210px)}.lv-feature-1,.lv-feature-2,.lv-feature-3,.lv-feature-4,.lv-feature-5,.lv-feature-6{grid-column:1;grid-row:auto}.lv-feature-1{padding:26px}.lv-feature-1 .lv-feature-copy{padding-top:195px}.lv-feature-1 h3{font-size:28px}
  .landing-flow-section{padding-left:14px;padding-right:14px}.landing-flow-wrap{padding:48px 24px;border-radius:24px}.lv-flow{grid-template-columns:1fr}.lv-flow-step{padding:22px 0;border-bottom:1px solid rgba(207,236,241,.12)}.lv-flow-step:not(:last-child)::after{display:none}.lv-flow-actions{align-items:stretch;flex-direction:column;gap:8px}.lv-text-link{text-align:left}
  .lv-syllabus-intro{grid-template-columns:1fr}.lv-syllabus-link{grid-template-columns:58px 1fr}.lv-syllabus-link>em{grid-column:2}.lv-syllabus-aside{min-height:230px}.lv-province-grid{grid-template-columns:repeat(2,1fr);padding:8px}.lv-province{min-height:68px;padding:11px}
  .landing-cta{margin:0 14px;display:block;padding:48px 28px;border-radius:25px}.landing-cta .lv-btn{width:100%;margin-top:27px}.landing-footer{display:grid;grid-template-columns:1fr auto}.landing-footer p{grid-column:1/-1;grid-row:2}.landing-footer nav{gap:9px}
}
@media(max-width:430px){
  .landing-release b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing-hero-cta{display:grid}.landing-hero-cta .lv-btn{width:100%}.landing-hero-meta span{width:100%}
  .lv-province-grid{grid-template-columns:1fr}.landing-footer{display:flex;align-items:flex-start;flex-direction:column}.landing-footer nav{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  .landing-page *{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}
}

/* ===== B08 merged from assets/css/subject-progress-v2.css ===== */
/* Subject cards: one-glance progress without hiding the question-bank size. */
body[data-view="quiz"] .quiz-entry-section .qs-item{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(90deg,rgba(42,142,210,.14) 0 var(--subject-progress,0%),rgba(255,255,255,.78) var(--subject-progress,0%) 100%);
}
body[data-view="quiz"] .quiz-entry-section .qs-item::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:0;right:0;bottom:0;height:4px;
  background:linear-gradient(90deg,#2189ce 0 var(--subject-progress,0%),#dcecf6 var(--subject-progress,0%) 100%);
}
body[data-view="quiz"] .quiz-entry-section .qs-item:hover{
  background:
    linear-gradient(90deg,rgba(42,142,210,.2) 0 var(--subject-progress,0%),#fff var(--subject-progress,0%) 100%);
}
body[data-view="quiz"] .quiz-entry-section .qs-info{
  min-width:0;
}
body[data-view="quiz"] .quiz-entry-section .qs-progress{
  display:block;
  margin-top:6px;
  color:#267bb0;
  font:700 11px/1.2 var(--font-metric,var(--font-ui));
  letter-spacing:.01em;
}
body[data-view="quiz"] .quiz-entry-section .qs-count{
  position:relative;
  z-index:1;
}
@media(max-width:620px){
  body[data-view="quiz"] .quiz-entry-section .qs-progress{font-size:10px}
}

/* ===== B08 merged from assets/css/progress-dashboard-v2.css ===== */
/* Progress dashboard: same white/blue atlas language as the home page. */
body[data-view="me"]{
  background:
    radial-gradient(circle at 82% 9%,rgba(91,171,224,.13),transparent 360px),
    #f5faff;
}
body[data-view="me"] .me-head h1,
body[data-view="me"] .data-heading h1{color:#123b59}
body[data-view="me"] .me-live{color:#2783b8}
body[data-view="me"] .rank-command{
  position:relative;
  overflow:hidden;
  min-height:180px;
  margin-bottom:18px;
  padding:28px 30px;
  border:1px solid #cfe3f1;
  border-radius:22px;
  color:#173c57;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 45%,rgba(255,255,255,.38) 73%,rgba(255,255,255,.05) 100%),
    url("../img/progress/progress-hero-map-v1.png") right center/cover no-repeat,
    #fff;
  box-shadow:0 20px 55px rgba(35,102,144,.12);
}
body[data-view="me"] .rank-seal{
  width:74px;height:74px;
  color:#fff;
  background:#197bc1;
  border:0;
  border-radius:20px;
  font:800 22px/1 var(--font-metric,var(--font-ui));
  box-shadow:0 12px 26px rgba(25,123,193,.24);
}
body[data-view="me"] .rank-copy h2,
body[data-view="me"] .rank-kpis b{color:#123b59}
body[data-view="me"] .rank-copy>span{color:#1d82bf}
body[data-view="me"] .rank-copy p,
body[data-view="me"] .rank-copy small,
body[data-view="me"] .rank-kpis span,
body[data-view="me"] .rank-kpis small{color:#668196}
body[data-view="me"] .rank-track{background:#dcecf6}
body[data-view="me"] .rank-track i{background:linear-gradient(90deg,#197bc1,#46b5db)}
body[data-view="me"] .rank-kpis{border-left-color:#cfe3f1}
body[data-view="me"] .rank-kpis>div{border-right-color:#dceaf2}
body[data-view="me"] .rank-kpis .alert b{color:#d26745}
body[data-view="me"] .me-dashboard-grid{gap:16px}
body[data-view="me"] .management-panel{
  padding:22px;
  border:1px solid #d3e5f0;
  border-radius:16px;
  background:rgba(255,255,255,.82);
  box-shadow:0 12px 34px rgba(41,105,141,.07);
}
body[data-view="me"] .management-panel>header span{color:#2183bd}
body[data-view="me"] .management-panel>header h2{color:#183e59}
body[data-view="me"] .management-panel>header small{color:#7791a1}
body[data-view="me"] .management-panel>header>i{
  color:#1f82ba;background:#eaf6fc;border-color:#cbe4f2;
}
.memory-terminal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.memory-terminal-grid button{
  display:grid;gap:3px;padding:14px;text-align:left;
  border:1px solid #d8e8f1;border-radius:12px;background:#f8fcff;cursor:pointer;
  transition:transform .18s,background .18s,border-color .18s;
}
.memory-terminal-grid button:hover{transform:translateY(-2px);background:#fff;border-color:#73b4d7}
.memory-terminal-grid b{color:#176fae;font:800 24px/1 var(--font-metric,var(--font-ui))}
.memory-terminal-grid span{color:#2d536c;font-weight:750;font-size:13px}
.memory-terminal-grid em{color:#6b899b;font-size:11px;font-style:normal}
.memory-terminal-note{
  display:flex;align-items:center;gap:8px;margin-top:13px;padding-top:12px;
  border-top:1px solid #deebf2;color:#6d899a;font-size:11px;
}
.memory-terminal-note i{width:7px;height:7px;border-radius:50%;background:#37a8d6;box-shadow:0 0 0 4px #e3f4fb}
.me-subview{max-width:1180px;margin:0 auto;padding:4px 0 70px}
.me-subview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px;padding:0 0 18px;border-bottom:1px solid #d6e7f0}
.me-subview-head>div{display:grid;gap:5px}.me-subview-head span{color:#2183bd;font:700 10px ui-monospace,monospace;letter-spacing:.16em}.me-subview-head h2{color:#143e5e;font:800 30px/1.15 "Songti SC","STSong",serif}.me-subview-head p{color:#7891a1;font-size:12px}
.me-filter-tabs{display:flex;gap:8px;margin-bottom:16px}.me-filter-tabs button{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #d3e5ef;border-radius:10px;color:#5d7d8e;background:#fff}.me-filter-tabs button.on{color:#fff;background:#197bc1;border-color:#197bc1}.me-filter-tabs b{font:700 12px Georgia,serif}
.me-subview-actions{display:flex;align-items:center;gap:12px;margin:16px 0}.me-subview-actions>span{color:#7891a1;font-size:11px}
.me-detail-list{display:grid;gap:8px}.me-detail-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;border:1px solid #d5e6ef;border-radius:12px;background:rgba(255,255,255,.82)}.me-detail-list article.selected{border-color:#2588c0;box-shadow:0 0 0 3px rgba(37,136,192,.1)}.me-detail-list article>div{display:grid;gap:5px;min-width:0}.me-detail-list b{color:#234e68;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me-detail-list span{color:#7891a1;font-size:11px}.me-detail-list em{color:#207bb3;font:700 12px Georgia,serif;font-style:normal;white-space:nowrap}
.me-empty{display:grid;place-items:center;gap:8px;min-height:190px;border:1px dashed #c7dfe9;border-radius:15px;color:#6f8b9a;background:rgba(255,255,255,.5)}.me-empty b{color:#315b70;font-size:17px}.me-empty span{font-size:12px}
.me-subject-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.me-subject-card{display:grid;gap:8px;padding:20px;text-align:left;border:1px solid #d2e6f0;border-radius:14px;background:#fff}.me-subject-card:hover{border-color:#66acd1;transform:translateY(-2px)}.me-subject-card b{color:#1674b0;font:700 16px Georgia,serif}.me-subject-card strong{color:#244e67;font-size:15px}.me-subject-card span,.me-subject-card em{color:#7891a1;font-size:11px;font-style:normal}
.me-chapter-list{display:grid;gap:9px}.me-chapter-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border:1px solid #d5e6ef;border-radius:12px;background:#fff}.me-chapter-list article>div{display:grid;gap:5px}.me-chapter-list b{color:#234e68;font-size:13px}.me-chapter-list span{color:#7891a1;font-size:11px}
.me-activity-chart{display:flex;align-items:flex-end;justify-content:space-around;gap:14px;height:280px;padding:24px 18px 0;border-bottom:1px solid #d8e8f0}.me-activity-chart>div{display:flex;flex:1;height:100%;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px}.me-activity-chart b{color:#287eae;font:700 12px Georgia,serif}.me-activity-chart i{width:min(46px,70%);min-height:6px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#46afd4,#197bc1)}.me-activity-chart span{color:#7891a1;font-size:11px}
.me-record-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.me-record-cards article{display:grid;gap:8px;padding:18px;border:1px solid #d5e6ef;border-radius:13px;background:#fff}.me-record-cards b{color:#234e68}.me-record-cards span{color:#7891a1;font-size:11px;line-height:1.5}.me-record-cards em{color:#2380b6;font-style:normal;font-weight:700}
@media(max-width:800px){.me-subview-head{align-items:flex-start;flex-direction:column}.me-subview-head .btn{width:100%}.me-subject-grid{grid-template-columns:1fr 1fr}.me-record-cards{grid-template-columns:1fr}.me-subview-actions{align-items:stretch;flex-direction:column}.me-subview-actions .btn{width:100%}}
@media(max-width:520px){.me-subject-grid{grid-template-columns:1fr}.me-detail-list article{align-items:flex-start;flex-direction:column}.me-detail-list em{align-self:flex-end}}
body[data-view="me"] .subject-progress-list button{border-color:#dfebf2}
body[data-view="me"] .subject-progress-list button:hover{background:#f4faff}
body[data-view="me"] .subject-progress-list button>i{color:#1674b0;background:#eaf5fb}
body[data-view="me"] .subject-progress-list b{color:#234b65}
body[data-view="me"] .subject-progress-list span{color:#7891a0}
body[data-view="me"] .subject-progress-list em{background:#e1eef5}
body[data-view="me"] .subject-progress-list u{background:linear-gradient(90deg,#2086c7,#54bed7)}
body[data-view="me"] .subject-progress-list button>strong{color:#1979b7}
body[data-view="me"] .week-chart{border-bottom-color:#d9e8f1}
body[data-view="me"] .week-chart>div>i{background:linear-gradient(180deg,#46afd4,#197bc1)}
body[data-view="me"] .debt-list>div{border-bottom-color:#e1edf3}
body[data-view="me"] .debt-list .debt-head{color:#6d8a9a}
body[data-view="me"] .debt-list>div>span{color:#34586e}
body[data-view="me"] .debt-list>div>b{color:#1a79b6}
body[data-view="me"] .panel-action,
body[data-view="me"] .data-control-panel .btn-p{color:#fff;background:#197bc1;border-color:#197bc1}
body[data-view="me"] .data-control-panel{
  border-color:#d3e5f0;background:rgba(255,255,255,.82);border-radius:16px;
}
body[data-view="me"] .rank-ladder>div{color:#6f8c9b}
body[data-view="me"] .rank-ladder>div.active b,
body[data-view="me"] .rank-ladder>div.done b{color:#176fae}
.record-status-list{display:grid;gap:0}
.record-status-list>div{
  display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;
  padding:13px 0;border-bottom:1px solid #e1edf3;
}
.record-status-list>div:last-child{border-bottom:0}
.record-status-list .status-dot{
  width:8px;height:8px;border-radius:50%;background:#2c9ed0;
  box-shadow:0 0 0 4px #e5f5fb;
}
.record-status-list .status-dot.warm{background:#e8a04b;box-shadow:0 0 0 4px #fff3e2}
.record-status-list b{display:block;color:#28516a;font-size:12px}
.record-status-list span{display:block;margin-top:3px;color:#7892a1;font-size:10px;line-height:1.4}
.record-status-list em{color:#237eb6;font:700 11px/1 var(--font-metric,var(--font-ui));font-style:normal}
@media(max-width:700px){
  body[data-view="me"] .rank-command{padding:22px 18px;background-position:64% center}
  body[data-view="me"] .rank-kpis{margin-top:12px}
  .memory-terminal-grid{grid-template-columns:1fr 1fr}
}

/* ===== B08 merged from assets/css/nav-availability.css ===== */
/* Open beta navigation + contact card */
.sb-nav-item.is-experimental{
  background:rgba(239,246,250,.54);
  border:1px dashed rgba(64,145,166,.3);
}
.sb-nav-item.is-experimental:hover{color:var(--t);background:rgba(225,243,248,.9)}
.sb-nav-status{
  margin-left:auto;
  padding:3px 7px;
  border-radius:999px;
  color:#33566e;
  background:#e7f2f8;
  font-size:10px;
  line-height:1;
  letter-spacing:0;
  white-space:nowrap;
}
.sb-progress-status{justify-content:space-between}
.sb-progress-state{display:flex;align-items:center;gap:7px}
.sb-progress-state>i{width:7px;height:7px;border-radius:50%;background:#43b99c;box-shadow:0 0 0 4px rgba(67,185,156,.12)}
.sb-progress-streak{color:#567383;font-size:10px;white-space:nowrap}
.sb-progress-streak b{margin:0 2px;color:#a06a10;font:700 14px Georgia,serif}
.sb-footer-contact{
  display:grid;
  gap:6px;
  padding:4px 7px 8px;
}
.sb-footer-contact>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.sb-footer-contact span{color:#5d7482;font-size:10px;white-space:nowrap}
.sb-footer-contact button,.sb-footer-contact a{
  min-width:0;
  padding:0;
  overflow:hidden;
  border:0;
  background:none;
  color:#2f7898;
  font:600 11px/1.4 inherit;
  text-decoration:none;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.sb-footer-contact button:hover,.sb-footer-contact a:hover{color:#126b91;text-decoration:underline}
.sb-contact-copy{display:grid!important;justify-content:stretch!important;gap:2px!important}
.sb-contact-copy b{color:#365f70;font-size:11px}
.sb-contact-copy p{color:#5d7482;font-size:9px;line-height:1.45}
.sb-contact-qr{
  display:block;
  width:96px;
  height:96px;
  margin:2px auto 4px;
  border:5px solid #fff;
  border-radius:10px;
  object-fit:cover;
  box-shadow:0 5px 16px rgba(32,82,102,.13);
}
.sb-footer-contact>small{margin-top:-3px;color:#5d7482;font-size:8px;text-align:right}

/* 常见 768px 高桌面优先展示完整备考主线；联系卡在更高窗口和移动菜单中保留。 */
@media (min-width:769px) and (max-height:820px){
  .sb-footer-contact{display:none}
  .sb-progress{display:none}
  .sb-footer{padding-block:6px}
  .sb-nav{padding-block:4px}
  .sb-nav-item{padding-block:8px}
  .sb-nav-group{padding-top:7px;margin-top:1px}
}

/* A real compact state: icon rail, not just a rotated arrow. */
html .sidebar:not(.expanded){width:72px}
.sidebar:not(.expanded)~.workspace-bar{left:72px}
.sidebar:not(.expanded)~main,
.sidebar:not(.expanded)~main.map-full{margin-left:72px}
.sidebar:not(.expanded) .sb-brand{padding-inline:16px}
.sidebar:not(.expanded) .sb-brand-name,
.sidebar:not(.expanded) .sb-progress,
.sidebar:not(.expanded) .sb-nav-group,
.sidebar:not(.expanded) .sb-nav-name,
.sidebar:not(.expanded) .sb-nav-status,
.sidebar:not(.expanded) .sb-footer-contact{display:none}
.sidebar:not(.expanded) .sb-nav{padding-inline:10px}
.sidebar:not(.expanded) .sb-nav-item{justify-content:center;padding-inline:0}
.sidebar:not(.expanded) .sb-toggle{padding-inline:0;font-size:0}
.sidebar:not(.expanded) .sb-toggle::after{content:""}
.sidebar:not(.expanded) .sb-footer{padding-inline:10px}

@media(max-width:768px){
  html .sidebar:not(.expanded){width:240px}
  .sidebar:not(.expanded) .sb-brand-name,
  .sidebar:not(.expanded) .sb-progress,
  .sidebar:not(.expanded) .sb-nav-group,
  .sidebar:not(.expanded) .sb-nav-name,
  .sidebar:not(.expanded) .sb-nav-status,
  .sidebar:not(.expanded) .sb-footer-contact{display:initial}
  .sidebar:not(.expanded)~.workspace-bar{left:0}
  .sidebar:not(.expanded)~main,
  .sidebar:not(.expanded)~main.map-full{margin-left:0}
  #jx-sync-indicator{bottom:calc(66px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100vw - 24px)}
}
.availability-toast{
  position:fixed;
  left:50%;
  bottom:28px;
  z-index:1000;
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:240px;
  max-width:calc(100vw - 32px);
  padding:13px 16px;
  border:1px solid #c9e0ec;
  border-radius:12px;
  background:rgba(248,253,255,.97);
  box-shadow:0 12px 30px rgba(24,74,99,.18);
  color:#28566d;
  transform:translate(-50%,16px);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;
}
.availability-toast.show{opacity:1;transform:translate(-50%,0)}
.availability-toast strong{font-size:14px;color:#176a8c}
.availability-toast span{font-size:12px;color:#668496}

/* ===== B08 merged from assets/css/brand-logo.css ===== */
/* 导游学霸品牌标志：地图定位 × 学习路径 × 目标星 */
.sb-brand{
  gap:12px;
}
.sb-brand-mark{
  width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:12px;
  background:none!important;
  box-shadow:0 8px 22px rgba(13,89,108,.26)!important;
  overflow:hidden;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;
}
.sb-brand-mark img{
  display:block;
  width:100%;
  height:100%;
}
.sb-brand:hover .sb-brand-mark{
  transform:translateY(-2px) rotate(-2deg);
  box-shadow:0 12px 28px rgba(13,89,108,.34)!important;
}
.sb-brand-name{
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1;
}
.sb-brand-name b{
  font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;
  font-size:17px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
}
.sb-brand-name small{
  color:#77aab1;
  font:600 8px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.16em;
}
html[data-theme="day"] .sb-brand-name small{
  color:#5c8790;
}
@media(max-width:760px){
  .sb-brand-mark{width:38px;height:38px}
}

/* ===== B08 merged from assets/css/navigation-safety.css ===== */
/* Full-screen learning modules must never become navigation dead ends. */
.immersive-nav{display:none}

body[data-view="quiz"].quiz-answering .immersive-nav,
body[data-view="guiderpg"] .immersive-nav,
body[data-view="redmap"] .immersive-nav,
body[data-view="classicwar"] .immersive-nav{
  position:fixed;
  z-index:1400;
  top:14px;
  left:14px;
  right:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:54px;
  padding:7px 9px;
  border:1px solid rgba(91,128,139,.24);
  border-radius:15px;
  background:rgba(250,253,253,.94);
  box-shadow:0 12px 35px rgba(20,55,66,.14);
  backdrop-filter:blur(18px);
}
.immersive-brand{display:flex;align-items:center;gap:9px;text-align:left}
.immersive-brand img{width:38px;height:38px;border-radius:10px;box-shadow:0 5px 14px rgba(13,89,108,.2)}
.immersive-brand span{display:grid;gap:2px}
.immersive-brand b{color:#174b5d;font:800 15px/1 "Songti SC","STSong",serif;letter-spacing:.08em}
.immersive-brand small{color:#76919b;font-size:9px}
.immersive-nav>div{display:flex;gap:7px}
.immersive-nav>div button{
  min-height:36px;
  padding:0 13px;
  border:1px solid #c9dce3;
  border-radius:9px;
  color:#315f70;
  background:#fff;
  font-size:11px;
  font-weight:700;
}
.immersive-nav>div button:first-child{color:#fff;background:#167f88;border-color:#167f88}

body[data-view="quiz"].quiz-answering .quiz-page.is-answering{padding-top:92px!important}
body[data-view="guiderpg"] .grpg-app,
body[data-view="redmap"] main,
body[data-view="classicwar"] main{padding-top:76px!important}

.quiz-complete-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:18px}
.quiz-complete-actions .btn{margin-top:0}
.sb-contact-qr-button{position:relative;display:block;width:108px;margin:2px auto 4px;padding:0;border:0;border-radius:10px;background:#fff;cursor:zoom-in;overflow:hidden}
.sb-contact-qr-button .sb-contact-qr{width:108px;height:108px;margin:0;border:5px solid #fff}
.sb-contact-qr-button>span{position:absolute;inset:auto 0 0;padding:5px 2px;color:#fff;background:rgba(18,92,112,.86);font-size:8px;opacity:0;transition:opacity .18s ease}
.sb-contact-qr-button:hover>span,.sb-contact-qr-button:focus-visible>span{opacity:1}
.contact-qr-modal{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(10,35,45,.72);opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(8px)}
.contact-qr-modal.show{opacity:1;pointer-events:auto}
.contact-qr-dialog{position:relative;width:min(430px,calc(100vw - 32px));padding:30px 28px 24px;text-align:center;border:1px solid #c4dfe7;border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(5,45,61,.28)}
.contact-qr-close{position:absolute;right:14px;top:10px;width:34px;height:34px;border:0;border-radius:50%;color:#668490;background:#eef6f8;font-size:24px;line-height:1;cursor:pointer}
.contact-qr-kicker{color:#23879d;font:700 10px ui-monospace,monospace;letter-spacing:.18em}
.contact-qr-dialog h2{margin:8px 0 4px;color:#173f50;font:800 24px "Songti SC","STSong",serif}
.contact-qr-dialog p{margin:0 0 18px;color:#77919b;font-size:12px}
.contact-qr-large{display:block;width:min(320px,80vw);height:min(320px,80vw);margin:0 auto 20px;padding:8px;border:1px solid #d5e7ec;border-radius:12px;object-fit:contain;background:#fff}
.contact-qr-actions{display:flex;justify-content:center;gap:9px}.contact-qr-actions .btn{min-width:112px}
body.qr-modal-open{overflow:hidden}

/* Button hierarchy: one clear primary action, quiet exits, reliable touch targets. */
.immersive-nav button,
.quiz-complete-actions .btn,
body[data-view="quiz"].quiz-answering :is(.quiz-nav-prev,.quiz-nav-next,.multi-submit),
body[data-view="quiz"].quiz-answering .quiz-options .opt{
  min-height:44px;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.immersive-nav button:hover,
.quiz-complete-actions .btn:hover,
body[data-view="quiz"].quiz-answering :is(.quiz-nav-prev,.quiz-nav-next,.multi-submit,.quiz-options .opt):hover{
  transform:translateY(-1px);
}
.immersive-nav button:active,
.quiz-complete-actions .btn:active,
body[data-view="quiz"].quiz-answering :is(.quiz-nav-prev,.quiz-nav-next,.multi-submit,.quiz-options .opt):active{
  transform:translateY(1px);
}
.immersive-nav button:focus-visible,
.quiz-complete-actions .btn:focus-visible,
body[data-view="quiz"].quiz-answering :is(.quiz-nav-prev,.quiz-nav-next,.multi-submit,.quiz-options .opt):focus-visible{
  outline:3px solid rgba(43,147,163,.35);
  outline-offset:3px;
}
body[data-view="quiz"].quiz-answering .quiz-options .opt{
  position:relative;
  min-height:58px;
  padding:16px 18px;
  border-width:1px;
  border-radius:12px;
}
body[data-view="quiz"].quiz-answering .quiz-options .opt .k{
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border-radius:8px;
  font:800 12px/1 ui-monospace,monospace;
}
body[data-view="quiz"].quiz-answering .quiz-options .opt.selected{
  box-shadow:inset 4px 0 #167f88,0 8px 18px rgba(24,91,105,.08);
}
body[data-view="quiz"].quiz-answering .practice-nav{
  padding-top:18px;
  border-top:1px solid rgba(91,128,139,.2);
}
body[data-view="quiz"].quiz-answering .quiz-nav-prev{padding-inline:18px}
body[data-view="quiz"].quiz-answering .quiz-nav-next{padding-inline:22px;font-weight:800}
.quiz-complete-actions .btn-p{min-width:116px}
.quiz-complete-actions .btn-g{min-width:104px}

@media(max-width:620px){
  body[data-view="quiz"].quiz-answering .immersive-nav,
  body[data-view="guiderpg"] .immersive-nav,
  body[data-view="redmap"] .immersive-nav,
  body[data-view="classicwar"] .immersive-nav{top:8px;left:8px;right:8px}
  .immersive-brand span{display:none}
  .immersive-nav>div button{padding:0 9px;font-size:10px}
  .immersive-nav>div button:last-child{display:none}
  .quiz-complete-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .quiz-complete-actions .btn-p{grid-column:1/-1}
  body[data-view="quiz"].quiz-answering .practice-nav{gap:8px}
  body[data-view="quiz"].quiz-answering .practice-nav .btn{padding-inline:12px}
}

/* ===== B08 merged from assets/css/k2-visual-memory.css ===== */
.k2-memory-card {
  position: relative;
  margin: 18px 0 22px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--bd, #243b43) 78%, transparent);
  border-radius: 18px;
  background: #102b2b;
  color: #fff;
  box-shadow: 0 16px 45px rgba(6, 25, 27, .18);
}
.k2-memory-card > summary {
  min-height: 54px;
  padding: 0 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
  color: #dce9e4;
  background: #153837;
}
.k2-memory-card > summary::-webkit-details-marker { display: none; }
.k2-memory-card > summary span { font-size: 13px; font-weight: 800; }
.k2-memory-card > summary small { color: #a9bbb6; font-size: 11px; }
.k2-memory-card > summary::after { content: "+"; color: #dbe766; font-size: 20px; line-height: 1; }
.k2-memory-card[open] > summary::after { content: "−"; }
.k2-memory-image {
  position: relative;
  aspect-ratio: 16 / 7.7;
  min-height: 260px;
  overflow: hidden;
}
.k2-memory-image::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(5, 24, 25, .84), transparent 56%), linear-gradient(90deg, rgba(5, 24, 25, .12), transparent 50%);
}
.k2-memory-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter .35s ease, transform .5s ease;
}
.k2-memory-card.is-revealed .k2-memory-image img { filter: saturate(.82) contrast(1.04); transform: scale(1.012); }
.k2-memory-head {
  position: absolute;
  z-index: 2;
  left: 22px;
  right: 22px;
  bottom: 18px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
}
.k2-memory-head > div { min-width: 0; }
.k2-memory-head span {
  display: block;
  margin-bottom: 6px;
  color: #dbe766;
  font: 700 10px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .12em;
}
.k2-memory-head b { display: block; font: 800 clamp(20px, 3vw, 30px)/1.2 "Noto Serif SC", "Songti SC", serif; }
.k2-memory-head p { max-width: 360px; margin: 0; color: #e1ebe7; font-size: 13px; line-height: 1.6; text-align: right; }
.k2-memory-scene-tag {
  position: absolute;
  z-index: 2;
  left: 18px;
  top: 16px;
  padding: 7px 10px;
  border-left: 3px solid #dbe766;
  background: rgba(7, 31, 31, .74);
  color: #fff;
  font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .08em;
}
.k2-memory-answer { display: none; padding: 20px 22px 22px; background: #102b2b; }
.k2-memory-card.is-revealed .k2-memory-answer { display: block; animation: k2MemoryIn .34s ease both; }
.k2-memory-principle { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.k2-memory-principle span { color: #a9bbb6; font-size: 11px; }
.k2-memory-principle b { color: #dbe766; font-size: 18px; }
.k2-memory-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin: 0; padding: 0; list-style: none; counter-reset: k2step; }
.k2-memory-steps li { position: relative; min-height: 76px; padding: 13px 12px 12px 42px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.055); color: #f6f4e8; font-size: 12px; line-height: 1.55; counter-increment: k2step; }
.k2-memory-steps li::before { content: counter(k2step, decimal-leading-zero); position: absolute; left: 12px; top: 14px; color: #dbe766; font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.k2-memory-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.k2-memory-footer p { margin: 0; padding: 12px 14px; font-size: 12px; line-height: 1.65; }
.k2-memory-trap { border-left: 3px solid #dc694f; background: rgba(220,105,79,.12); color: #f4d7d0; }
.k2-memory-mnemonic { border-left: 3px solid #dbe766; background: rgba(219,231,102,.09); color: #eef2bf; }
.k2-memory-marker {
  position: absolute;
  z-index: 3;
  left: var(--x);
  top: var(--y);
  display: none;
  transform: translate(-50%, -50%);
  padding: 7px 9px 7px 30px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 99px;
  background: rgba(8, 44, 42, .9);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  box-shadow: 0 7px 22px rgba(0,0,0,.26);
}
.k2-memory-marker::before { content: "✓"; position: absolute; left: 7px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: #dbe766; color: #102b2b; font-size: 10px; }
.k2-memory-card.is-revealed .k2-memory-marker { display: block; animation: k2MarkerIn .32s ease both; }
.k2-memory-card.is-revealed .k2-memory-marker:nth-of-type(2) { animation-delay: .08s; }
.k2-memory-card.is-revealed .k2-memory-marker:nth-of-type(3) { animation-delay: .16s; }
@keyframes k2MemoryIn { from { opacity: 0; transform: translateY(-8px); } }
@keyframes k2MarkerIn { from { opacity: 0; transform: translate(-50%, -38%); } }

@media (max-width: 720px) {
  .k2-memory-card { margin: 14px 0 18px; border-radius: 14px; }
  .k2-memory-image { aspect-ratio: 4 / 3; min-height: 230px; }
  .k2-memory-image img { object-position: center; }
  .k2-memory-head { left: 14px; right: 14px; bottom: 13px; display: block; }
  .k2-memory-head b { font-size: 21px; }
  .k2-memory-head p { margin-top: 5px; text-align: left; font-size: 11px; }
  .k2-memory-answer { padding: 17px 14px 18px; }
  .k2-memory-principle { display: block; }
  .k2-memory-principle b { display: block; margin-top: 4px; font-size: 16px; }
  .k2-memory-steps { grid-template-columns: 1fr 1fr; }
  .k2-memory-steps li { min-height: 68px; }
  .k2-memory-footer { grid-template-columns: 1fr; }
  .k2-memory-marker { padding: 6px; border-radius: 8px; font-size: 10px; }
  .k2-memory-marker::before { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .k2-memory-card *, .k2-memory-card *::before { animation: none !important; transition: none !important; }
}

/* ===== B08 merged from assets/css/mobile-enhance.css ===== */
/* 导游学霸 · 手机操作系统性优化(阶段 5)
   集中处理清单阶段 5 的 15 条手机端体验要求,不散改现有 CSS。
   覆盖:触摸区、文字可读、刘海/圆角/底部安全区、横屏、单手操作、滚动抖动、弹窗锁背景等。
   作用域:仅在小屏(max-width:768px)生效,不影响桌面端。 */

/* ============================================================
   1. 核心按钮触摸区域 ≥ 44×44px(清单:触摸区不小于约 44px)
   ============================================================ */
@media (max-width: 768px) {
  button,
  [role="button"],
  .btn,
  .nav-btn,
  input[type="submit"],
  input[type="button"] {
    min-height: 44px;
    min-width: 44px;
    touch-action: manipulation;   /* 消除 300ms 点击延迟 */
  }

  /* 做题选项区也保证可单手点选(清单:做题选项单手操作) */
  .quiz-opt,
  [class*="opt"],
  .answer-option {
    min-height: 44px;
    padding: 12px 14px;
  }

  /* ============================================================
     2. 文字无需双指放大即可阅读(清单:文字可读,禁双指缩放已由 viewport 控制)
     ============================================================ */
  body {
    -webkit-text-size-adjust: 100%;   /* iOS 横屏不放大 */
    text-size-adjust: 100%;
    font-size: 16px;                  /* 最小 16px 防 iOS 聚焦放大 */
  }
  /* 小字也保证 ≥ 14px 可读 */
  small, .small { font-size: 14px; }

  /* ============================================================
     3. 刘海屏/圆角屏/底部手势区安全区(清单:适配刘海屏/圆角/底部手势)
     ============================================================ */
  /* 固定定位元素加安全区内边距 */
  .topbar,
  header[role="banner"],
  #jx-sync-indicator,
  #jx-install-btn,
  #jx-wechat-tip {
    padding-top: env(safe-area-inset-top, 0px);
  }
  /* 底部固定元素(同步指示器/安装按钮/导航)留出底部手势区 */
  #jx-sync-indicator,
  #jx-install-btn,
  #jx-install-close,
  #jx-ios-guide,
  footer[role="contentinfo"],
  .bottom-nav,
  .mobile-tabbar {
    margin-bottom: env(safe-area-inset-bottom, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  /* 全局安全区撑开(可选,容器用) */
  .safe-top { padding-top: env(safe-area-inset-top, 0px); }
  .safe-bottom { padding-bottom: env(safe-area-inset-bottom, 0px); }

  /* ============================================================
     4. 底部导航滚动时不抖动(清单:页面滚动时底部导航不抖动)
     ============================================================ */
  .bottom-nav,
  .mobile-tabbar,
  [class*="bottom-bar"] {
    position: fixed;            /* 固定定位避免随内容回流抖动 */
    transform: translateZ(0);   /* GPU 层,消除滚动时重绘抖动 */
    will-change: transform;
    backface-visibility: hidden;
  }

  /* ============================================================
     5. 单手操作:核心交互元素落在拇指可达区域(底部)
     ============================================================ */
  /* 做题的"提交/下一题"按钮放大并靠下(清单:提交/下一题单手操作) */
  .quiz-submit,
  .quiz-next,
  [class*="submit-btn"],
  [class*="next-btn"] {
    min-height: 48px;
    font-size: 16px;
    margin-bottom: 8px;
  }

  /* ============================================================
     6. 弹窗打开后背景不能继续滚动(清单:弹窗背景锁滚动)
     通过 JS 给 body 加 .modal-open 实现,这里定义锁定的样式
     ============================================================ */
  body.modal-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
    /* 记住滚动位置由 JS 处理,这里只锁定 */
  }
  /* 弹窗自身可滚动,且不透传到背景 */
  dialog,
  [role="dialog"],
  .modal,
  [class*="overlay"],
  [class*="popup"] {
    overscroll-behavior: contain;   /* 滚动不穿透到背景 */
  }

  /* ============================================================
     7. 地图页可缩放/点击(清单:地图手机可缩放/点击/返回)
     ============================================================ */
  .jxmap,
  [class*="map-container"],
  #map,
  .amap-container,
  .BMap_mask {
    touch-action: pan-x pan-y pinch-zoom;   /* 允许双指缩放,不拦截页面滚动 */
  }

  /* ============================================================
     8. 图片按屏幕大小加载(清单:图片按屏幕加载,省流量)
     ============================================================ */
  img {
    max-width: 100%;
    height: auto;
  }
  /* 大背景图在小屏降级(配合 JS 懒加载) */
  img[loading] { content-visibility: auto; }
}

/* ============================================================
   9. 横屏不严重错位(清单:横屏不严重错位)
   ============================================================ */
@media (max-width: 768px) and (orientation: landscape) and (max-height: 480px) {
  /* 矮横屏(如手机横放):关键内容收紧,避免溢出 */
  body { font-size: 15px; }
  .topbar,
  header[role="banner"] {
    min-height: 0;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  /* 登录弹窗横屏可滚动,不被键盘遮挡 */
  [role="dialog"],
  dialog {
    max-height: 100vh;
    overflow-y: auto;
  }
}

/* ============================================================
   10. 加载状态/骨架屏(清单:首次打开有加载状态,慢网显示骨架)
   ============================================================ */
/* 首屏加载占位(避免白屏) */
.jx-boot-loading {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg, #0D596C);
  color: #fff;
  font-family: system-ui, sans-serif;
  z-index: 99999;
  transition: opacity .3s;
}
.jx-boot-loading.hidden { opacity: 0; pointer-events: none; }

/* 骨架屏 shimmer(慢网加载占位) */
.jx-skeleton {
  background: linear-gradient(90deg,
    rgba(255,255,255,.06) 25%,
    rgba(255,255,255,.14) 37%,
    rgba(255,255,255,.06) 63%);
  background-size: 400% 100%;
  animation: jx-shimmer 1.4s ease infinite;
  border-radius: 6px;
  min-height: 20px;
}
@keyframes jx-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

/* ============================================================
   11. 颜色对比度增强(清单:检查对比度)
   ============================================================ */
@media (max-width: 768px) {
  /* 小屏文字对比度提升 */
  .small, small { opacity: 0.85; }
  /* 焦点可见性(键盘操作/无障碍) */
  a:focus-visible,
  button:focus-visible,
  [role="button"]:focus-visible,
  input:focus-visible,
  [tabindex]:focus-visible {
    outline: 2px solid #2B9AA5;
    outline-offset: 2px;
  }
}

/* ============================================================
   12. prefers-reduced-motion 尊重(无障碍)
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .jx-skeleton { animation: none; }
}

/* ===== B08 merged from assets/css/mobile-system.css ===== */
/* 导游学霸 · 移动端系统收口层
   本文件始终最后加载，用于结束多份历史 CSS 之间的级联竞争。 */

@media (max-width: 768px) {
  :root {
    --mobile-gutter: clamp(14px, 4vw, 20px);
    --mobile-header: 64px;
    --mobile-tap: 44px;
    --mobile-icon: 24px;
  }

  html {
    width: 100%;
    min-width: 320px;
    overflow-x: clip;
    scroll-padding-top: calc(var(--mobile-header) + env(safe-area-inset-top, 0px) + 10px);
  }

  body {
    width: 100%;
    min-width: 320px;
    min-height: 100dvh;
    overflow-x: clip;
    overscroll-behavior-x: none;
  }

  #view,
  main,
  main.map-full {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  button,
  a,
  [role="button"] {
    -webkit-tap-highlight-color: transparent;
  }

  button:active,
  [role="button"]:active {
    transition-duration: .08s !important;
  }

  button > svg,
  .btn > svg,
  [role="button"] > svg {
    width: var(--mobile-icon);
    height: var(--mobile-icon);
    flex: 0 0 var(--mobile-icon);
  }

  /* App chrome: one 64px bar, with four non-overlapping touch zones. */
  .workspace-bar {
    left: 0 !important;
    right: 0;
    top: 0;
    height: calc(var(--mobile-header) + env(safe-area-inset-top, 0px)) !important;
    min-width: 0;
    padding: env(safe-area-inset-top, 0px) 10px 0 72px !important;
    gap: 8px;
    z-index: 150;
  }

  .workspace-bar > div:first-child {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: auto;
  }

  .workspace-bar > div:first-child > span,
  .workspace-bar > p {
    display: none !important;
  }

  .workspace-bar > div:first-child > b {
    display: block;
    min-width: 0;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-menu-btn {
    display: grid !important;
    grid-template-rows: repeat(3, 2px);
    place-content: center;
    gap: 5px !important;
    top: calc(9px + env(safe-area-inset-top, 0px));
    left: max(10px, env(safe-area-inset-left, 0px));
    width: 46px;
    height: 46px;
    min-width: 46px;
    min-height: 46px;
    padding: 0 !important;
    border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  }

  .mobile-menu-btn span {
    display: block !important;
    width: 20px !important;
    height: 2px !important;
    margin: 0 !important;
    border-radius: 999px;
    background: currentColor;
  }

  .account-entry {
    flex: 0 0 auto;
    min-width: 0;
    margin-left: 0 !important;
  }

  .account-login-btn,
  .account-user-btn {
    min-height: var(--mobile-tap) !important;
    padding-inline: 10px !important;
    white-space: nowrap;
  }

  .sidebar,
  .sidebar:not(.expanded) {
    width: min(88vw, 320px) !important;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    transform: translateX(-110%) !important;
    pointer-events: none;
    box-shadow: 24px 0 70px rgba(0, 0, 0, .24);
  }

  .sidebar.mobile-open,
  .sidebar:not(.expanded).mobile-open {
    transform: translateX(0) !important;
    pointer-events: auto;
  }

  .sb-nav-item {
    min-height: 48px;
  }

  .mobile-sidebar-backdrop {
    inset: 0;
    min-width: 0;
    min-height: 0;
  }

  /* Inputs stay readable when iOS opens the software keyboard. */
  input,
  textarea,
  select {
    max-width: 100%;
    font-size: 16px !important;
  }

  .auth-overlay {
    align-items: end;
    padding: max(12px, env(safe-area-inset-top, 0px)) 10px max(10px, env(safe-area-inset-bottom, 0px));
  }

  .auth-card {
    width: 100%;
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - 20px) !important;
    padding: 26px 20px 22px;
    border-radius: 22px 22px 14px 14px;
    overscroll-behavior: contain;
  }

  .auth-card input,
  .auth-card form button {
    min-height: 48px;
  }

  /* A route change must never be covered by a conversion banner. */
  .auth-nudge {
    display: none !important;
  }

  /* Course workspace: every subject is visible; chapters remain an explicit snap rail. */
  .course-workspace {
    width: 100%;
    padding: 14px var(--mobile-gutter) 40px;
  }

  .course-topline {
    min-width: 0;
    padding: 12px !important;
  }

  .course-topline > div {
    min-width: 0;
  }

  .course-topline > div b {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .course-subject-switcher {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  .course-subject-switcher button {
    min-width: 0 !important;
    min-height: 72px;
    grid-template-columns: 30px minmax(0, 1fr) !important;
    grid-template-rows: auto auto;
    gap: 2px 8px;
    padding: 10px !important;
  }

  .course-subject-switcher i {
    grid-row: 1 / 3;
    width: 30px !important;
    height: 30px !important;
  }

  .course-subject-switcher span,
  .course-subject-switcher b {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .course-subject-switcher em {
    display: none;
  }

  .course-shell > .chapter-rail {
    overflow: hidden;
  }

  .course-stage {
    min-height: 0 !important;
    background: #f6fbfe !important;
  }

  .course-shell > .chapter-rail .chapter-rail-list {
    display: flex !important;
    gap: 8px;
    overflow-x: auto !important;
    padding: 10px 12px 14px;
    scroll-padding-inline: 12px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }

  .course-shell > .chapter-rail .chapter-rail-list button {
    flex: 0 0 min(74vw, 280px);
    min-width: 0;
    min-height: 58px;
    scroll-snap-align: start;
  }

  .course-subject-intro {
    min-height: 0 !important;
    padding: 46px 24px 50px !important;
  }

  .course-subject-intro h1 {
    max-width: 100%;
    font-size: clamp(38px, 12vw, 52px) !important;
    line-height: 1.12;
  }

  .course-subject-intro > p {
    font-size: 16px !important;
  }

  .subject-intro-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    margin: 28px 0;
  }

  .subject-intro-stats div {
    min-width: 0;
    padding: 14px 10px;
  }

  .subject-intro-stats b {
    font-size: clamp(20px, 7vw, 26px);
  }

  .subject-intro-action {
    width: 100%;
    padding: 18px;
  }

  /* Quiz hub and progress dashboard use one density and one icon scale. */
  .quiz-page,
  .profile-page {
    width: 100%;
    max-width: 100%;
    padding-inline: var(--mobile-gutter) !important;
  }

  .quiz-entry-section > header > span,
  .qs-code,
  .subject-progress-list button > i {
    display: grid;
    place-items: center;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px;
    min-height: 40px;
    font-size: 11px !important;
    line-height: 1;
  }

  .quiz-entry-section > header.no-num {
    display: block !important;
  }

  .quiz-entry-section > header.no-num > div {
    width: 100%;
    min-width: 0;
  }

  .quiz-entry-section > header.no-num b {
    display: block;
    font-size: 18px;
  }

  .quiz-entry-section > header.no-num p {
    margin-top: 4px;
    font-size: 13px;
  }

  .quiz-version-bar > header {
    grid-template-columns: 72px minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  .quiz-version-bar > header > .qv-tag {
    width: 72px !important;
    min-width: 72px;
    padding-inline: 6px;
    font-size: 10px !important;
    white-space: nowrap;
  }

  .quiz-version-bar > header > div {
    min-width: 0;
  }

  .quiz-subjects,
  .progress-kpis,
  .me-dashboard-grid {
    min-width: 0;
  }

  .qs-item {
    width: 100%;
    min-width: 0;
    min-height: 92px;
  }

  .management-panel {
    min-width: 0;
  }

  .management-panel > header span,
  .management-panel > header small,
  .progress-kpis article > span,
  .progress-kpis article > small,
  .subject-progress-list span,
  .week-chart span,
  .debt-list small,
  .activity-panel > p,
  .data-control-panel span {
    font-size: 11px;
    line-height: 1.5;
  }

  .panel-action,
  .data-control-panel .btn,
  .map-type-switch button,
  .map-base-options button,
  .map-traffic-toggle,
  .ln-tab {
    min-height: var(--mobile-tap) !important;
  }

  .data-control-panel .flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  /* Long landing/dashboard pages only lay out near-viewport sections. */
  .landing-page > section:not(:first-child),
  .profile-page > section,
  .profile-page > .management-panel {
    content-visibility: auto;
    contain-intrinsic-size: 600px;
  }

  /* Maps fill the dynamic viewport and controls remain thumb-sized. */
  body[data-view="map"] main,
  body[data-view="map"] #view,
  body[data-view="map"] .homemap-canvas {
    min-height: 100dvh;
  }

  body[data-view="map"] :is(.map-type-switch, .map-layer-switch, .map-base-options) button,
  body[data-view="map"] .map-traffic-toggle {
    min-height: var(--mobile-tap) !important;
  }
}

@media (max-width: 370px) {
  .workspace-bar {
    gap: 5px;
    padding-right: 7px !important;
  }

  .workspace-bar > div:first-child > b {
    font-size: 13px;
  }

  .account-login-btn,
  .account-user-btn {
    padding-inline: 8px !important;
    font-size: 10px !important;
  }
}

@media (max-width: 768px) and (orientation: landscape) and (max-height: 480px) {
  :root { --mobile-header: 56px; }

  .workspace-bar {
    padding-left: 66px !important;
  }

  .mobile-menu-btn {
    top: calc(5px + env(safe-area-inset-top, 0px));
  }

  .auth-card {
    max-width: 620px;
    border-radius: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
}

/* ===== B08 merged from assets/css/mobile-appfeel.css ===== */
/* ============================================================
   手机端"类 App 体验"层(收口层,最后加载)
   约定:交互壳层规则只作用于 ≤768px 或触屏特性查询；紧凑首页的
   组件样式会跨断点保留，避免窗口放大后整套页面样式消失。
   ============================================================ */

/* ---------- 阶段 1:底部标签栏 ---------- */
#jxTabbar{display:none}

@media (max-width:768px){
  #jxTabbar{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:1440;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    height:calc(54px + env(safe-area-inset-bottom,0px));
    padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px);
    background:rgba(250,253,253,.96);
    border-top:1px solid rgba(91,128,139,.2);
    box-shadow:0 -10px 28px rgba(18,61,70,.12);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }
  .jx-tab{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:54px;
    min-width:44px;
    color:#52778e;background:none;border:0;
    font-size:10.5px;letter-spacing:.02em;
    -webkit-tap-highlight-color:transparent;
    user-select:none;-webkit-user-select:none;
    touch-action:manipulation;
    transition:transform .12s ease;
  }
  .jx-tab-ic{display:grid;place-items:center;height:24px}
  .jx-tab svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .jx-tab-name{line-height:1}
  .jx-tab:active{transform:scale(.92)}

  /* 激活态:由 body[data-view] 驱动,与 go() 的 dataset.view 天然同步 */
  body[data-view="home"] .jx-tab[data-tab="home"],
  body[data-view="quiz"] .jx-tab[data-tab="quiz"],
  body[data-view="map-home"] .jx-tab[data-tab="map-home"],
  body[data-view="map"] .jx-tab[data-tab="map-home"],
  body[data-view="me"] .jx-tab[data-tab="me"]{color:#167f88;font-weight:700}

  /* 做题沉浸页有自己的底部操作栏;地图主页保留标签栏,其余全屏沉浸模式隐藏 */
  body.quiz-answering #jxTabbar,
  body.on-home:not([data-view="map-home"]) #jxTabbar{display:none}

  /* 普通视图主内容避让标签栏(做题页/全屏页各有自己的避让逻辑) */
  body:not(.quiz-answering):not(.on-home) #view{
    padding-bottom:calc(54px + env(safe-area-inset-bottom,0px) + 10px);
  }
  /* 地图主页:标签栏悬浮于地图之上,抬高底部浮动控件避让 */
  body[data-view="map-home"] .layer-nav-fab{
    bottom:calc(66px + env(safe-area-inset-bottom,0px));
  }
  body[data-view="map-home"] .layer-nav{
    padding-bottom:calc(54px + env(safe-area-inset-bottom,0px));
  }
  .fab{bottom:calc(66px + env(safe-area-inset-bottom,0px))}

  /* PWA 安装引导件避开标签栏(pwa.js 内联样式 bottom:60px) */
  #jx-install-btn{bottom:calc(66px + env(safe-area-inset-bottom,0px))!important}
  #jx-ios-guide{bottom:calc(66px + env(safe-area-inset-bottom,0px))!important}
}

/* P0：手机首页核心备考路径 */
@media (max-width:768px){
  .mhome-syllabus,.mhome-subject-sec{margin-top:18px}
  .mhome-section-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:0 2px 10px}
  .mhome-section-head h2{margin:3px 0 0;font-size:18px;letter-spacing:-.02em}
  .mhome-kicker{display:block;color:#16808b;font-size:10px;font-weight:800;letter-spacing:.12em}
  .mhome-count-note{flex:0 0 auto;color:#66818b;font-size:11px}
  .mhome-province-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:6px 12px 6px 14px;border:1px solid rgba(13,89,108,.14);border-radius:13px;background:var(--card,#fff);color:inherit}
  .mhome-province-picker span{font-size:13px;font-weight:700}
  .mhome-province-picker select{min-width:116px;min-height:44px;padding:0 28px 0 10px;border:1px solid rgba(13,89,108,.18);border-radius:9px;background:#f5fafb;color:#145e6a;font:700 13px var(--font-ui,system-ui);text-align:left}
  .mhome-syllabus:focus{outline:2px solid rgba(22,127,136,.35);outline-offset:3px}
  .mhome-prov-empty{margin:8px 0 0;padding:12px 14px;border:1px dashed rgba(13,89,108,.2);border-radius:11px;color:#5a7780;background:rgba(240,248,249,.76);font-size:12px;line-height:1.55}
  .mhome-prov-current{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:12px 14px;border:1px solid rgba(22,127,136,.2);border-radius:13px;background:linear-gradient(115deg,rgba(22,127,136,.1),rgba(255,255,255,.8));color:inherit}
  .mhome-prov-current div{display:grid;gap:3px;min-width:0}
  .mhome-prov-current div span{overflow:hidden;color:#52727c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
  .mhome-prov-current div b{color:#167f88;font-size:15px}
  .mhome-prov-current a{display:flex;align-items:center;min-height:44px;padding:0 11px;border-radius:9px;background:#167f88;color:#fff;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
  .mhome-prov-current a i{margin-left:4px;font-style:normal;font-size:14px}
  .mhome-prov-directory .mhome-prov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}
  .mhome-prov-item{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:52px;padding:6px 9px;border:1px solid rgba(13,89,108,.1);border-radius:10px;background:var(--card,#fff);color:inherit;text-decoration:none}
  .mhome-prov-item>span{display:grid;min-width:0;gap:2px}
  .mhome-prov-item b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
  .mhome-prov-item small{overflow:hidden;color:#69838b;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
  .mhome-prov-item em{flex:0 0 auto;padding:3px 5px;border-radius:5px;font-size:9px;font-style:normal;font-weight:800}
  .mhome-prov-item.is-ready em{color:#176d5b;background:rgba(38,157,119,.12)}
  .mhome-prov-item.is-pending em{color:#8b641c;background:rgba(219,169,73,.16)}
}

/* 横屏矮屏:压低标签栏高度,保留图标与文字 */
@media (max-width:768px) and (max-height:480px){
  #jxTabbar{height:calc(44px + env(safe-area-inset-bottom,0px))}
  .jx-tab{min-height:44px;gap:1px}
  .jx-tab-ic{height:20px}
  .jx-tab svg{width:19px;height:19px}
  .jx-tab-name{font-size:9.5px}
}

/* ---------- 阶段 2:视图切换动画 + 触感细节 ---------- */
@media (max-width:768px){
  /* 推入式视图切换(View Transitions API,JS 侧仅在支持时启用) */
  :root[data-navdir="fwd"]::view-transition-old(root){animation:jxVtOutFwd .26s cubic-bezier(.4,0,.2,1) both}
  :root[data-navdir="fwd"]::view-transition-new(root){animation:jxVtInFwd .32s cubic-bezier(.22,1,.36,1) both}
  :root[data-navdir="back"]::view-transition-old(root){animation:jxVtOutBack .26s cubic-bezier(.4,0,.2,1) both}
  :root[data-navdir="back"]::view-transition-new(root){animation:jxVtInBack .32s cubic-bezier(.22,1,.36,1) both}

  /* 切换瞬间让入场动画立即到位,保证新视图快照不是半透明起点 */
  html.jx-vt main,html.jx-vt main *{animation-duration:0s!important;animation-delay:0s!important;transition-duration:0s!important}

  /* App 化滚动行为:关掉整页下拉刷新与橡皮筋(内部滚动容器自有 contain) */
  html,body{overscroll-behavior-y:none}

  /* 导航类 UI 禁选中(正文内容不受影响) */
  .sidebar,.workspace-bar,#jxTabbar,.mobile-menu-btn{user-select:none;-webkit-user-select:none}
  .sb-nav-item:active{transform:scale(.97)}
}
@keyframes jxVtInFwd{from{opacity:.5;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes jxVtOutFwd{from{opacity:1;transform:translateX(0)}to{opacity:.6;transform:translateX(-18px) scale(.985)}}
@keyframes jxVtInBack{from{opacity:.5;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes jxVtOutBack{from{opacity:1;transform:translateX(0)}to{opacity:.6;transform:translateX(18px) scale(.985)}}

/* 按需加载 bundle 时的轻量提示(仅手机端会出现该 DOM) */
#jxBundleLoading{
  position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);
  z-index:15000;
  padding:8px 16px;border-radius:99px;
  background:rgba(11,26,33,.92);color:#d9eeee;
  font:600 13px var(--font-ui);
  box-shadow:0 8px 22px rgba(0,0,0,.25);
}


/* ---------- 阶段 3:刷题页手机重排(按用户反馈修订) ----------
   对齐手机刷题软件:苹果系统字体、单行会话头、满宽选项行、圆形字母徽标;
   隐藏悬浮 logo 栏(退出入口保留在会话头);护眼豆沙绿底色,昼夜主题统一;
   收紧纵向间距,保证常规题目 4 个选项完整露出底栏之上。 */
@media (max-width:768px){
  /* 顶部悬浮 logo 栏:手机端隐藏——它悬浮叠在会话头上,且退出练习在会话头已有 */
  body[data-view="quiz"].quiz-answering .immersive-nav{display:none!important}

  /* 会话头压成单行:退出 | 标题 | 得分 */
  body[data-view="quiz"].quiz-answering .quiz-session-head{
    grid-template-columns:auto minmax(0,1fr) auto!important;
    align-items:center;
    gap:8px;
    padding:2px 2px 8px!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-session-head>button{
    grid-column:auto;
    min-height:36px;
    padding:0 10px;
    white-space:nowrap;
    text-align:center;
  }
  body[data-view="quiz"].quiz-answering .quiz-session-head>div:nth-child(2){min-width:0}
  body[data-view="quiz"].quiz-answering .quiz-session-head h2{
    font-size:15px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  body[data-view="quiz"].quiz-answering .quiz-session-head>div:nth-child(2)>span{font-size:10px;opacity:.8}
  body[data-view="quiz"].quiz-answering .practice-score{padding:5px 8px;gap:6px}/* 护眼豆沙绿底:昼夜主题统一为浅护眼色(夜间不再变深)——仅限答题态 */
  body[data-view="quiz"].quiz-answering main{
    background-image:linear-gradient(180deg,#eaf3e5 0%,#e0ebd9 100%)!important;
  }
  /* 答题态内把 --lt-* 主题变量重置为日间值:
     夜间的浅色文字变量在强制浅底下会"浅底浅字",一次性归位。 */
  body[data-view="quiz"].quiz-answering{
    --lt-bg:#edf2f1;--lt-surface:#ffffff;--lt-surface-2:#f5f8f7;--lt-surface-3:#e8efed;
    --lt-line:rgba(31,75,82,.16);--lt-line-strong:rgba(24,132,129,.42);
    --lt-text:#11272c;--lt-text-2:#52676b;--lt-text-3:#7b8d91;
    --lt-accent:#177f7d;--lt-accent-2:#126a69;--lt-amber:#a96d1c;--lt-danger:#b94e45;
  }
  /* learning-terminal 的选项状态由下方浅底规则统一覆盖。 */
  /* 水印:浅底上恢复可见,并稍加强 */
  body[data-view="quiz"].quiz-answering .practice-stage::before{
    color:rgba(23,94,88,.055)!important;
  }/* 题卡:白底半透明(水印隐约透出),
收紧内距 */
  body[data-view="quiz"].quiz-answering .practice-card{
    background:rgba(252,254,250,.93)!important;
    border-color:rgba(46,94,70,.14)!important;
    border-radius:14px!important;
    padding:14px 12px 12px!important;
    box-shadow:0 12px 30px rgba(38,72,58,.08)!important;
  }
  body[data-view="quiz"].quiz-answering .practice-meta{
    margin-bottom:10px!important;
    padding-bottom:8px!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-stem{
    grid-template-columns:30px minmax(0,1fr);
    gap:9px;
    margin-bottom:12px;
  }/* 题干与会话标题:系统无衬线,
深绿字(昼夜一致) */
  body[data-view="quiz"].quiz-answering .quiz-q,
body[data-view="quiz"].quiz-answering .quiz-session-head h2{
    font-family:var(--font-ui)!important;
    letter-spacing:0!important;
  }body[data-view="quiz"].quiz-answering .quiz-q{
    color:#1e3b33!important;
    font-size:17px!important;
    line-height:1.6!important;
    font-weight:600!important;
  }body[data-view="quiz"].quiz-answering .quiz-session-head h2{
    color:#1e4b46!important;
    font-weight:700!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-session-head>button{
    color:#2c6a5e!important;
  }
  /* 题号徽标:30px 正圆 */
  body[data-view="quiz"].quiz-answering .quiz-stem>i{
    border-radius:50%!important;
    display:grid;place-items:center;
    font-family:var(--font-ui)!important;
    font-size:12.5px!important;font-weight:700!important;
  }/* 选项行:单列满宽、白底深绿字、圆形字母徽标 */
  body[data-view="quiz"].quiz-answering .quiz-options .opt{
    min-height:52px!important;
    padding:12px 12px!important;
    gap:10px!important;
    border-radius:12px!important;
    background:#fff!important;
    color:#25493f!important;
    border-color:rgba(52,102,82,.2)!important;
    box-shadow:0 3px 10px rgba(38,72,58,.04)!important;
    font-family:var(--font-ui)!important;
    font-size:16px!important;
    line-height:1.5!important;
    transition:transform .12s ease;
  }
  body[data-view="quiz"].quiz-answering .quiz-options{gap:9px}body[data-view="quiz"].quiz-answering .quiz-options .opt .k{
    flex:0 0 30px!important;
    width:30px!important;height:30px!important;
    display:grid;place-items:center;
    border-radius:50%!important;
    color:#1c7a6d!important;
    background:#e3f0e8!important;
    font-family:var(--font-ui)!important;
    font-size:13px!important;font-weight:700!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-options .opt-copy{font-size:16px!important}
  body[data-view="quiz"].quiz-answering .quiz-options .opt-state{
    font-family:var(--font-ui)!important;
    font-size:12px!important;
  }/* 选中态(提交前)与按压反馈 */
  body[data-view="quiz"].quiz-answering .practice-stage .opt.selected{
    border-color:#1c8a72!important;
    background:#e8f5ee!important;
    box-shadow:inset 4px 0 #1c8a72!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-options .opt:active{transform:scale(.985)}
  /* 触屏去掉桌面 hover 位移,避免"粘滞高亮" */
  @media (hover:none){
    body[data-view="quiz"].quiz-answering .quiz-options .opt:hover{
      transform:none!important;
      box-shadow:0 3px 10px rgba(38,72,58,.04)!important;
    }
  }
  body[data-view="quiz"].quiz-answering .practice-progress{border-radius:99px!important}/* 解析与结果区:系统字体、护眼浅底 */
  body[data-view="quiz"].quiz-answering .quiz-exp,
body[data-view="quiz"].quiz-answering .quiz-result,
body[data-view="quiz"].quiz-answering .answer-reveal,
body[data-view="quiz"].quiz-answering .result-title{
    font-family:var(--font-ui)!important;
    color:#2b4a41!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-exp{
    font-size:14px!important;line-height:1.75!important;
    background:#f3f8f0!important;
  }
  body[data-view="quiz"].quiz-answering .answer-reveal{font-size:13px!important}
  /* 底部操作栏：夜间也使用与护眼题卡一致的浅色表面。 */
  body[data-view="quiz"].quiz-answering .quiz-mobile-actionbar{
    background:rgba(250,253,250,.97);
    border-color:rgba(52,102,82,.18);
  }
}

/* ---------- 阶段 6:移动端字体统一 ----------
   用户要求全站手机端使用系统默认字体(苹果栈):
   桌面端的宋体/Georgia 编辑风衬线只在大屏保留,手机端一律继承 body 系统字体。
   代码等宽场景(pre/code/kbd/samp)保留;图标全部是内联 SVG,不受影响。 */
@media (max-width:768px){
  body *:not(pre):not(code):not(kbd):not(samp){
    font-family:inherit!important;
  }
}

/* 字体统一的补丁:quiz-editorial 的衬线用了高特异性+!important,
   通配规则压不住,这里逐个对位覆盖(仅手机端)。 */
@media (max-width:768px){
  body[data-view="quiz"] .quiz-editorial-hero h1,
  body[data-view="quiz"] .qs-code,
  body[data-view="quiz"] .qs-count,
  body[data-view="quiz"] .quiz-entry-section>header.no-num b{
    font-family:var(--font-ui)!important;
  }
}

/* ---------- 阶段 7:手机端考点地图交互 ----------
   底部两档弹层(景点详情/省题库)、省份下钻胶囊栏、图集横滑、图例避让。 */
@media (max-width:768px){
  /* ---- 底部弹层骨架:背板不拦地图手势,弹层本体接管触摸 ---- */
  .jx-m-sheet-backdrop{
    position:fixed;inset:0;z-index:1600;
    pointer-events:none;
    background:linear-gradient(180deg,transparent 30%,rgba(8,25,32,.18));
    opacity:1;transition:opacity .22s ease;
  }
  .jx-m-sheet-backdrop.closing{opacity:0}
  .jx-m-sheet{
    position:absolute;left:0;right:0;bottom:0;
    height:46vh;
    display:flex;flex-direction:column;
    pointer-events:auto;
    background:var(--bg2,#f7fbff);
    border-radius:18px 18px 0 0;
    box-shadow:0 -14px 40px rgba(10,40,52,.22);
    transition:height .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1);
    overflow:hidden;
  }
  .jx-m-sheet-grip{
    position:relative;
    display:grid;place-items:center;
    height:32px;flex:0 0 auto;
    touch-action:none;
    cursor:grab;
  }
  .jx-m-sheet-grip:active{cursor:grabbing}
  .jx-m-sheet-bar{width:44px;height:5px;border-radius:99px;background:rgba(120,150,158,.65)}
  .jx-m-sheet-x{
    position:absolute;right:10px;top:50%;transform:translateY(-50%);
    width:34px;height:34px;border-radius:50%;
    border:0;background:rgba(120,150,158,.16);
    font-size:18px;line-height:1;color:inherit;
  }
  .jx-m-sheet-scroll{
    flex:1;min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  /* ---- 景点详情在弹层内的手机版式 ---- */
  .jx-m-sheet .sd-card{display:block}
  .jx-m-sheet .sd-hero{width:100%;height:29vh;min-height:170px}
  .jx-m-sheet .sd-hero img{width:100%;height:100%;object-fit:cover}
  .jx-m-sheet .sd-body{padding:14px 16px calc(20px + env(safe-area-inset-bottom,0px))}
  .jx-m-sheet .sd-record-type{font-size:11px;opacity:.75}
  .jx-m-sheet .sd-title{font-size:21px;margin:4px 0 6px}
  .jx-m-sheet .spot-progress-status{padding:6px 10px;border-radius:10px;font-size:12px}
  .jx-m-sheet .sd-tags{gap:6px;margin:8px 0}
  .jx-m-sheet .sd-tagline{font-size:13px}
  .jx-m-sheet .sd-addr{font-size:11px}
  /* 图集:横滑缩略图行 */
  .jx-m-sheet .sd-gallery{
    display:flex;gap:8px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding-bottom:4px;
  }
  .jx-m-sheet .sd-gallery button{flex:0 0 118px;scroll-snap-align:start}
  .jx-m-sheet .sd-gallery img{
    width:118px;height:84px;
    scroll-snap-align:start;
    border-radius:10px;object-fit:cover;
  }
  /* 弹窗内的做题按钮吸底 */
  .jx-m-sheet .sd-actions{
    position:sticky;bottom:0;
    display:flex;gap:8px;
    padding:10px 0 calc(8px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(transparent,var(--bg2,#f7fbff) 34%);
  }
  .jx-m-sheet .sd-actions .btn{flex:1;min-height:44px}
  .jx-m-sheet .spot-card-question-group{
    box-sizing:border-box;width:100%;min-width:0;
    padding:16px 18px calc(28px + env(safe-area-inset-bottom,0px));
  }
  .jx-m-sheet .spot-card-question-group .spot-inline-head{
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:8px;
  }
  .jx-m-sheet .spot-card-question-subject{
    display:inline-block;margin-right:7px;padding:2px 6px;
    color:#145c90;background:#e4f2fc;border-radius:5px;font-size:11px;
  }
  /* 半屏态的做题快捷按钮 */
  .jx-m-spot-cta{
    position:absolute;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));
    min-height:46px;border:0;border-radius:13px;
    background:#167f88;color:#fff;
    font-size:16px;font-weight:700;
    box-shadow:0 8px 20px rgba(22,127,136,.32);
  }
  .jx-m-sheet-backdrop.at-full .jx-m-spot-cta{display:none}
  /* 弹层内景点练习题:与刷题页重排同风格 */
  .jx-m-sheet .spot-inline-stem{font-size:16px;line-height:1.6}
  .jx-m-sheet .spot-inline-options button{
    min-height:52px;padding:12px;border-radius:12px;
    font-size:16px;line-height:1.5;text-align:left;
  }

  /* ---- 景点知识图谱/考点档案在弹层内的手机版式(阶段10:修复超边界/显示不完整) ---- */
  /* 知识图谱入口卡:桌面 188px 高+大衬线字,手机压缩 */
  .jx-m-sheet .spot-poster-teaser{min-height:118px;margin:12px 0 10px;border-radius:14px}
  .jx-m-sheet .spot-poster-copy{min-height:118px;width:min(86%,480px);padding:14px 16px}
  .jx-m-sheet .spot-poster-copy small{font-size:8px;letter-spacing:.12em}
  .jx-m-sheet .spot-poster-copy b{margin:5px 0 4px;font-size:18px;line-height:1.3}
  .jx-m-sheet .spot-poster-copy em{font-size:10px;line-height:1.5}
  .jx-m-sheet .spot-poster-teaser>i{right:10px;bottom:9px;padding:4px 8px;font-size:9px}
  /* 考点档案:分组标题取消省略号改自然换行;头部 30px 大数字缩号;间距压缩 */
  .jx-m-sheet .spot-profile{margin:12px 0 0;padding:13px;border-radius:14px}
  .jx-m-sheet .spot-profile-head{gap:10px;padding-bottom:10px}
  .jx-m-sheet .spot-profile-head h3{font-size:15px;line-height:1.4}
  .jx-m-sheet .spot-profile-head strong{font-size:20px}
  .jx-m-sheet .spot-profile-head strong small{margin-top:3px;font-size:9px}
  .jx-m-sheet .spot-profile-summary{padding:9px 0;font-size:11px;line-height:1.6}
  .jx-m-sheet .spot-profile-groups{gap:8px}
  .jx-m-sheet .spot-profile-groups article{padding:10px 11px;border-radius:10px}
  .jx-m-sheet .spot-profile-groups header{gap:7px}
  .jx-m-sheet .spot-profile-groups header span{padding:2px 5px;font-size:9px}
  .jx-m-sheet .spot-profile-groups header b{overflow:visible;font-size:12px;line-height:1.45;text-overflow:clip;white-space:normal}
  .jx-m-sheet .spot-profile-groups header em{font-size:9px}
  .jx-m-sheet .spot-profile-groups ul{margin-top:8px;padding-left:16px;font-size:11px;line-height:1.65}
  .jx-m-sheet .spot-profile-essentials{gap:6px;margin:10px 0 12px}
  .jx-m-sheet .spot-profile-essentials li{padding:8px;grid-template-columns:24px 1fr;gap:7px}
  /* 知识图谱海报:桌面是绝对定位拼版(图上叠标题+右侧39%宽节点列,节点多时溢出被裁);
     手机改纵向文档流:主图限高+节点单列平铺,内容完整可滚动 */
  .jx-m-sheet .knowledge-poster{padding:14px}
  .jx-m-sheet .knowledge-poster>header{margin-bottom:12px}
  .jx-m-sheet .knowledge-poster>header h2{font-size:20px}
  .jx-m-sheet .knowledge-poster-stage{position:static;display:flex;flex-direction:column;gap:10px;min-height:0;padding:12px;overflow:visible;border-radius:14px}
  .jx-m-sheet .knowledge-poster-stage>img{position:static;width:100%;height:auto;max-height:44vh;object-fit:contain;object-position:center;border-radius:10px}
  .jx-m-sheet .knowledge-poster-stage.poster-is-portrait>img{object-position:center}
  .jx-m-sheet .knowledge-poster-title{position:static;padding:10px 12px;margin:0}
  .jx-m-sheet .knowledge-poster-title b{font-size:22px}
  .jx-m-sheet .knowledge-poster-stage ol{position:static;bottom:auto;width:auto;display:grid;gap:8px}
  .jx-m-sheet .knowledge-poster-stage li{grid-template-columns:26px 1fr;gap:8px;padding:9px 11px}
  .jx-m-sheet .knowledge-poster-stage li p{font-size:11px;line-height:1.55}
  .jx-m-sheet .knowledge-poster-stage li p small{display:block;margin-top:2px;font-size:9px;opacity:.75}
  .jx-m-sheet .knowledge-poster>footer{flex-direction:column;gap:3px;padding-top:10px}
  /* 长图海报:禁用桌面放大态 1728px 定宽(手机上横向超界的根源),最大撑满弹层宽 */
  .jx-m-sheet .knowledge-poster-image{padding:12px}
  .jx-m-sheet .knowledge-poster-image img{max-height:none}
  .jx-m-sheet .knowledge-poster-image.is-long.is-zoomed img{width:100%;max-width:100%}
  .jx-m-sheet .knowledge-poster-bundle{min-height:0}
  .jx-m-sheet .poster-coverage-supplement{padding:14px}
  .jx-m-sheet .poster-coverage-supplement h3{font-size:17px}
  .jx-m-sheet .poster-coverage-supplement header p{font-size:11px}
  .jx-m-sheet .poster-coverage-supplement ol{gap:8px;margin-top:12px}
  .jx-m-sheet .poster-coverage-supplement li{padding:10px;border-radius:10px;grid-template-columns:30px 1fr}
  .jx-m-sheet .poster-coverage-supplement li p{font-size:11px}

  /* ---- 省题库在弹层内的手机版式 ---- */
  .jx-m-sheet .province-practice-header{padding:4px 0 10px}
  .jx-m-sheet .province-practice-header h2{font-size:18px}
  .jx-m-sheet .province-question-card h3{font-size:16px;line-height:1.6}
  .jx-m-sheet .province-question-options button{
    min-height:52px;padding:12px 14px;border-radius:12px;
    font-size:16px;line-height:1.5;text-align:left;
  }
  .jx-m-sheet .province-question-submit{min-height:46px;border-radius:12px;font-size:16px}
  .jx-m-sheet .province-question-result{font-size:14px;line-height:1.7}
  .jx-m-sheet .province-knowledge-identity img{width:84px;height:84px;border-radius:12px}
  .jx-m-sheet .province-essentials{font-size:14px;line-height:1.75}

  /* ---- 省份下钻胶囊栏 ---- */
  .jx-map-chip{
    position:fixed;
    top:calc(env(safe-area-inset-top,0px) + 70px);
    left:12px;right:12px;
    z-index:1500;
    display:flex;align-items:center;gap:8px;
    padding:8px 8px 8px 14px;
    border-radius:99px;
    background:rgba(11,26,33,.9);
    color:#d9eeee;
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    box-shadow:0 10px 26px rgba(0,0,0,.28);
    font-size:13px;
  }
  .jx-map-chip b{font-size:15px;white-space:nowrap}
  .jx-map-chip-meta{flex:1;min-width:0;color:#9fc3c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .jx-map-chip-quiz{
    flex:0 0 auto;height:34px;padding:0 14px;border:0;border-radius:99px;
    background:#1fa39b;color:#fff;font-size:13px;font-weight:700;
  }
  .jx-map-chip-x{
    flex:0 0 auto;width:34px;height:34px;border:0;border-radius:50%;
    background:rgba(255,255,255,.14);color:#d9eeee;font-size:17px;line-height:1;
  }

  /* ---- 地图图例避开底部标签栏 ---- */
  body[data-view="map-home"] .home-legend,
  body[data-view="map"] .home-legend{
    bottom:calc(66px + env(safe-area-inset-bottom,0px));
    max-width:calc(100% - 24px);
    font-size:11px;
  }
}

/* ---------- 阶段 8:紧凑型 App 首页 + 汉堡宫格菜单 ----------
   首页模式在首次载入时锁定，因此这些组件样式不能随 viewport 消失。 */
  /* ---- App 式首页(任务优先修订版) ---- */
  .mhome{padding:8px 12px calc(20px + env(safe-area-inset-bottom,0px))}
  .mhome-top{
    display:flex;align-items:center;justify-content:space-between;
    padding:10px 14px 10px 58px;border-radius:14px;
    background:linear-gradient(120deg,#0d596c,#1c8a92);
    color:#eafcfb;
  }
  .mhome-top b{font-size:16px;letter-spacing:.05em}
  .mhome-count-pill{
    display:flex;align-items:baseline;gap:3px;
    padding:5px 12px;border-radius:99px;
    background:rgba(255,255,255,.16);font-size:12px;
  }
  .mhome-count-pill b{font-size:18px}
  #mhomeDateInput{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
  .mhome-progress{
    display:flex;align-items:center;gap:10px;
    margin:10px 2px;padding:10px 12px;border-radius:12px;
    background:var(--card,#fff);color:inherit;font-size:12px;
  }
  .mhome-progress-top{flex:0 0 auto;display:grid;gap:1px}
  .mhome-progress-top b{font-size:14px}
  .mhome-progress-bar{flex:1;height:6px;border-radius:99px;background:rgba(120,150,158,.2);overflow:hidden}
  .mhome-progress-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1c8a92,#63c9b4);transition:width .4s ease}
  /* 今日任务卡 */
  .mhome-tasks{display:grid;gap:8px;margin:4px 0 6px}
  .mhome-task{
    display:flex;align-items:center;gap:12px;
    padding:13px 14px;border-radius:13px;border:1px solid rgba(13,89,108,.1);
    background:var(--card,#fff);color:inherit;text-align:left;
  }
  .mhome-task:active{opacity:.7}
  .mhome-task-ic{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:18px}
  .mhome-task-ic.hot{background:rgba(230,120,90,.14)}
  .mhome-task-ic.go{background:rgba(28,138,146,.12)}
  .mhome-task-ic.review{background:rgba(240,185,92,.16)}
  .mhome-task-body{flex:1;min-width:0;display:grid;gap:2px}
  .mhome-task-body b{font-size:15px}
  .mhome-task-body span{font-size:11.5px;opacity:.66}
  .mhome-task-go{flex:0 0 auto;padding:8px 14px;border:0;border-radius:99px;background:#167f88;color:#fff;font-size:13px;font-weight:700}
  .mhome-task[data-empty]{opacity:.55}
  .mhome-task[data-empty] .mhome-task-go{background:rgba(120,150,158,.3)}
  /* 快速入口:只放标签栏之外的功能 */
  .mhome-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
    margin:8px 0 4px;padding:8px 4px;
    background:var(--card,#fff);border-radius:16px;
  }
  .mhome-cell{display:grid;justify-items:center;gap:6px;min-height:72px;padding:9px 4px;background:none;border:0;color:inherit}
  .mhome-cell-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(13,89,108,.08);color:#0d596c;font-size:19px}
  .mhome-cell-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mhome-cell-name{font-size:11.5px}
  .mhome-cell:active{opacity:.6}
  .mhome-sec h3{font-size:15px;margin:16px 2px 10px}
  /* 四科是同级主入口，不使用会隐藏内容的横向轮播。 */
  .mhome-subjects{display:grid;grid-template-columns:1fr;gap:8px;overflow:visible;padding:0}
  .mhome-sub{
    width:100%;max-width:none;min-height:82px;
    display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 14px;
    padding:13px 15px;border-radius:14px;border:1px solid rgba(13,89,108,.14);
    background:var(--card,#fff);color:inherit;text-align:left;
  }
  .mhome-sub b,.mhome-sub span{grid-column:1;min-width:0}
  .mhome-sub b{font-size:15px}
  .mhome-sub span{font-size:12px;opacity:.72;line-height:1.5}
  .mhome-sub em{grid-column:2;grid-row:1/3;align-self:center;white-space:nowrap;font-style:normal;font-size:12px;color:#167f88;font-weight:700}
  .mhome-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
  .mhome-stats>div{display:grid;justify-items:center;gap:2px;padding:12px 6px;border-radius:12px;background:var(--card,#fff)}
  .mhome-stats b{font-size:17px}
  .mhome-stats span{font-size:11px;opacity:.66}
  .mhome-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}
  .mhome-links a{padding:8px 13px;border-radius:99px;font-size:12px;background:rgba(13,89,108,.07);color:#116e80;text-decoration:none}
  .mhome-foot{text-align:center;font-size:10px;opacity:.5;letter-spacing:.08em}

  /* ---- 汉堡宫格菜单 ---- */
  .mmenu{padding:6px 16px calc(18px + env(safe-area-inset-bottom,0px))}
  .mmenu-head{font-size:16px;font-weight:800;margin:4px 0 12px}
  .mmenu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
  .mmenu-cell{
    position:relative;
    display:grid;justify-items:center;gap:7px;
    min-height:80px;padding:12px 4px;
    background:none;border:0;color:inherit;
  }
  .mmenu-cell-ic{
    display:grid;place-items:center;width:46px;height:46px;border-radius:15px;
    background:rgba(13,89,108,.08);color:#0d596c;
  }
  .mmenu-cell-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mmenu-cell-name{font-size:11.5px}
  .mmenu-cell:active{opacity:.6}
  .mmenu-badge{
    position:absolute;top:6px;right:50%;margin-right:-34px;
    padding:2px 6px;border-radius:99px;
    background:#f0b95c;color:#5d4310;
    font-style:normal;font-size:9px;font-weight:800;letter-spacing:.06em;
  }
  .mmenu-row{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin:14px 0 12px;
  }
  .mmenu-login{
    height:40px;padding:0 18px;border:0;border-radius:99px;
    background:#167f88;color:#fff;font-size:13px;font-weight:700;
  }
  .mmenu-contact{
    display:flex;align-items:center;justify-content:center;gap:14px;
    padding-top:12px;border-top:1px solid rgba(120,150,158,.18);
    font-size:12px;
  }
  .mmenu-qr{
    height:36px;padding:0 14px;border:1px solid rgba(120,150,158,.3);border-radius:99px;
    background:none;color:inherit;font-size:12px;
  }
  .mmenu-contact a{color:#167f88;text-decoration:none}

/* 手机宽度首次进入后再放大窗口：保留同一任务首页，以桌面留白重新编排，
   不切换成营销长页，也不让移动专属样式突然失效。 */
@media (min-width:769px){
  html[data-home-layout="compact"] body[data-view="home"] main{
    min-height:100vh;
    padding:98px clamp(28px,5vw,72px) 72px!important;
    background:
      radial-gradient(circle at 82% 8%,rgba(39,169,200,.1),transparent 28%),
      #f4f7f9!important;
  }
  html[data-home-layout="compact"] .mhome{
    width:min(760px,100%);
    margin:0 auto;
    padding:0;
  }
  html[data-home-layout="compact"] .mhome-top{padding:20px 24px;border-radius:20px}
  html[data-home-layout="compact"] .mhome-top b{font-size:20px}
  html[data-home-layout="compact"] .mhome-progress{margin:14px 0;padding:15px 18px}
  html[data-home-layout="compact"] .mhome-tasks{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  html[data-home-layout="compact"] .mhome-task{min-height:92px;padding:17px}
  html[data-home-layout="compact"] .mhome-task:last-child:nth-child(odd){grid-column:1/-1}
  html[data-home-layout="compact"] .mhome-grid{margin:14px 0;padding:12px}
  html[data-home-layout="compact"] .mhome-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  html[data-home-layout="compact"] .mhome-sub{max-width:none;min-height:128px}
}

/* ---------- 深度审计修订(全站排查轮) ---------- */
@media (max-width:768px){
  /* 课程学习首屏:压缩 hero,让四科入口当屏可见 */
  body[data-view="learn"] .learn-masthead{padding:10px 0 16px}
  body[data-view="learn"] .learn-masthead h1{font-size:26px;margin:6px 0 8px}
  body[data-view="learn"] .learn-masthead p{font-size:13px;line-height:1.6;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  body[data-view="learn"] .vision-hero{padding:16px 16px 18px!important}
  body[data-view="learn"] .vision-hero h1{font-size:24px!important}
  body[data-view="learn"] .vision-hero p{font-size:13px!important;line-height:1.6;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

  /* 地图全国态引导(配合 mobile-map.js 的 #jxMapHint) */
  #jxMapHint{
    position:fixed;
    top:calc(env(safe-area-inset-top,0px) + 70px);
    left:50%;transform:translateX(-50%);
    z-index:1490;
    display:flex;align-items:center;gap:6px;
    padding:8px 16px;border-radius:99px;
    background:rgba(11,26,33,.88);color:#d9eeee;
    font-size:12.5px;
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    box-shadow:0 8px 22px rgba(0,0,0,.25);
    transition:opacity .3s ease;
  }
  #jxMapHint.hide{opacity:0;pointer-events:none}
}

/* ---------- 触摸实测修订:答题态滚动解锁 + 标签栏保留 ---------- */
@media (max-width:768px){
  /* 修复:design-system 给答题态 body 设 overflow-x:hidden 会让视口滚动锁死
     (与 html/body 的 clip 组合后触摸无法滚动页面),换成 clip 即恢复。 */
  body[data-view="quiz"].quiz-answering{overflow-x:clip}

  /* 做题时保留底部标签栏:题目操作栏上移并压薄,两栏共存 */
  body.quiz-answering #jxTabbar{display:grid!important}
  body[data-view="quiz"].quiz-answering{
    --quiz-actionbar-height:62px;
    padding-bottom:calc(62px + 54px + env(safe-area-inset-bottom,0px)*2 + 8px)!important;
  }
  body[data-view="quiz"].quiz-answering .quiz-mobile-actionbar{
    bottom:calc(54px + env(safe-area-inset-bottom,0px));
    min-height:62px;
    padding:6px 10px;
    grid-template-columns:40px 54px minmax(0,1fr);
    z-index:1460;
  }
  /* 安装引导层级高于答题操作栏；做题期间先让位，离开题流后自动恢复。 */
  body[data-view="quiz"].quiz-answering #jx-install-btn,
  body[data-view="quiz"].quiz-answering #jx-install-close,
  body[data-view="quiz"].quiz-answering #jx-ios-guide{display:none!important}
  body[data-view="quiz"].quiz-answering .quiz-mobile-prev{width:40px;height:40px;font-size:20px}
  body[data-view="quiz"].quiz-answering .quiz-mobile-progress b{font-size:15px}
  body[data-view="quiz"].quiz-answering .quiz-mobile-actions button{min-height:40px;padding:0 12px}
}
@media (max-width:768px) and (max-height:480px){
  body[data-view="quiz"].quiz-answering .quiz-mobile-actionbar{
    bottom:calc(44px + env(safe-area-inset-bottom,0px));
  }
}

/* PM 走查修订:首页完成感 + 新用户引导 */
  .mhome-progress-top{display:flex;gap:10px}
  .mhome-welcome{
    display:block;margin:10px 2px 2px;padding:11px 14px;
    border-radius:12px;text-decoration:none;
    background:linear-gradient(90deg,rgba(240,185,92,.16),rgba(240,185,92,.05));
    border:1px dashed rgba(240,185,92,.5);
    color:#8a6116;font-size:13px;font-weight:600;
  }

/* PROTOTYPE — 手机首页变体评估样式(采纳后删除) */
  #mhomeProtoBar{
    position:fixed;left:50%;transform:translateX(-50%);
    bottom:calc(70px + env(safe-area-inset-bottom,0px));
    z-index:2000;
    display:flex;align-items:center;gap:10px;
    padding:7px 12px;border-radius:99px;
    background:#1a1a1a;color:#ffd75e;
    font-size:12px;font-weight:700;
    box-shadow:0 6px 20px rgba(0,0,0,.4);
  }
  #mhomeProtoBar button{width:30px;height:30px;border:0;border-radius:50%;background:rgba(255,215,94,.16);color:#ffd75e;font-size:12px}
  /* 变体 B:进度仪表盘 */
  .mhome-b{padding:12px 14px}
  .mb-head{display:flex;align-items:center;gap:18px;padding:16px;border-radius:16px;background:linear-gradient(130deg,#0d596c,#1c8a92);color:#fff}
  .mb-ring{width:104px;height:104px;flex:0 0 auto}
  .mb-head-side{display:grid;gap:5px;font-size:12px}
  .mb-head-side b{font-size:19px}
  .mb-head-side span{opacity:.85}
  .mb-subjects h3{font-size:14px;margin:16px 2px 8px}
  .mb-sub{display:grid;grid-template-columns:38px 1fr 52px;align-items:center;gap:10px;width:100%;padding:12px 12px;margin-bottom:8px;border-radius:12px;border:1px solid rgba(13,89,108,.12);background:var(--card,#fff);color:inherit;text-align:left}
  .mb-sub b{font-size:13px}
  .mb-sub-bar{height:7px;border-radius:99px;background:rgba(120,150,158,.18);overflow:hidden}
  .mb-sub-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1c8a92,#63c9b4)}
  .mb-sub em{font-style:normal;font-size:11px;opacity:.6;text-align:right}
  .mb-review{width:100%;min-height:50px;border:0;border-radius:13px;background:#167f88;color:#fff;font-size:15px;font-weight:800;margin-top:6px}
  .mb-review.is-empty{background:rgba(120,150,158,.25)}
  /* 变体 C:极简三键 */
  .mhome-c{padding:26px 16px;display:flex;flex-direction:column;min-height:calc(100dvh - 140px)}
  .mc-top{display:flex;justify-content:space-between;align-items:baseline;margin:0 4px 26px}
  .mc-top b{font-size:20px}
  .mc-top span{font-size:12px;opacity:.6}
  .mc-actions{display:grid;gap:12px;flex:1}
  .mc-btn{display:flex;align-items:center;gap:16px;padding:22px 18px;border-radius:18px;border:1px solid rgba(13,89,108,.1);background:var(--card,#fff);color:inherit;text-align:left;min-height:78px}
  .mc-btn i{font-style:normal;font-size:26px}
  .mc-btn b{display:block;font-size:19px;margin-bottom:4px}
  .mc-btn span{font-size:12px;opacity:.6}
  .mc-hot{background:linear-gradient(120deg,#0d596c,#1c8a92);color:#fff;border:0}
  .mc-hot span{opacity:.85}
  .mc-foot{text-align:center;font-size:11px;opacity:.5;margin-top:14px}

/* ---------- 用户反馈第七轮:顶栏移除/五页签/笔试首页压缩/看图压缩 ---------- */
@media (max-width:768px){
  /* 顶部栏整体移除(登录在"我的"与菜单、主题在菜单、标题由各页自带头部承担) */
  .workspace-bar{display:none!important}
  body[data-view="home"] main{padding-top:0!important}
  #view{padding-top:calc(env(safe-area-inset-top,0px) + 6px)}
  /* 汉堡改为浮于内容左上 */
  .mobile-menu-btn{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:10px;z-index:200}

  /* 底部导航第 5 个"功能"页签 */
  #jxTabbar{grid-template-columns:repeat(5,1fr)}
  .jx-tab-menu svg{fill:currentColor;stroke:none}

  /* 首页:各省大纲目录 */
  .mhome-prov-dir{margin:14px 2px 0;border-top:1px solid rgba(120,150,158,.16);padding:10px 0 2px}
  .mhome-prov-dir summary{font-size:13px;font-weight:700;color:#116e80;cursor:pointer;padding:4px 0}
  .mhome-prov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
  .mhome-prov-grid a{padding:8px 4px;border-radius:8px;background:rgba(13,89,108,.06);color:inherit;font-size:11.5px;text-align:center;text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mhome-prov-grid a.ref{opacity:.55}

  /* 我的页:登录卡 */
  .me-login-card{display:flex;flex-direction:column;gap:4px;align-items:flex-start;width:100%;padding:14px 16px;margin:0 0 12px;border:0;border-radius:14px;background:#167f88;color:#fff;text-align:left}
  .me-login-card b{font-size:16px}
  .me-login-card span{font-size:11.5px;opacity:.85}

  /* 笔试首页压缩:hero 变小,科目大卡变紧凑行,当屏放下四科+专项 */
  body[data-view="quiz"] .quiz-editorial-hero{min-height:0!important;padding:16px 14px 46px!important;border-radius:16px 16px 34px 16px!important}
  body[data-view="quiz"] .quiz-editorial-hero h1{font-size:22px!important;line-height:1.2!important}
  body[data-view="quiz"] .quiz-editorial-hero p{font-size:12px!important;margin-top:6px!important}
  body[data-view="quiz"] .quiz-hero-stats{left:14px!important;bottom:13px!important;gap:11px!important}
  body[data-view="quiz"] .quiz-hero-seal{display:none}
  body[data-view="quiz"] .quiz-page:not(.is-answering){padding:calc(env(safe-area-inset-top,0px) + 10px) 11px 40px!important}
  body[data-view="quiz"] .quiz-stats{gap:10px!important;padding:10px 12px!important}
  body[data-view="quiz"] .quiz-stats>div b{font-size:16px!important}
  body[data-view="quiz"] .quiz-entry-section{margin-top:12px!important}
  body[data-view="quiz"] .quiz-entry-section>header b{font-size:15px!important}
  body[data-view="quiz"] .quiz-entry-section>header{margin-bottom:8px!important}
  .qs-item{min-height:0!important;padding:10px 11px!important;grid-template-columns:42px minmax(0,1fr) auto!important;gap:10px!important;margin-bottom:7px!important}
  .qs-code{width:42px!important;height:42px!important;border-radius:11px!important;font-size:12.5px!important}
  .qs-info b{font-size:14px!important}
  .qs-sub{display:none!important}
  .qs-progress{font-size:10px!important;margin-top:3px!important}
  .qs-count{font-size:14px!important}
  .quiz-specialty-entries{gap:7px!important}
  .quiz-specialty-entries>button,
  .quiz-review-entry,
  .quiz-custom-start,
  .visual-specialty-entry{min-height:0!important;padding:10px 12px!important}
  .quiz-specialty-entries>button em{font-size:10.5px!important}

  /* 看图懂考点:压掉题目区上方的大空间(图限高、标题紧凑、边距收窄) */
  body[data-view="quiz"] .quiz-context-bar{padding:7px 9px!important;margin:0 0 8px!important;gap:6px!important}
  body[data-view="quiz"] .quiz-context-bar b{font-size:13px!important}
  body[data-view="quiz"] .quiz-context-bar em{font-size:9.5px!important}
  .visual-practice-top{margin-bottom:8px!important}
  .visual-practice-top h2{font-size:17px!important;margin:0 0 4px!important}
  .visual-question{gap:0!important}
  .visual-question-media{max-height:32vh;overflow:hidden}
  .visual-question-media img{height:100%!important;min-height:0!important;aspect-ratio:auto!important;object-fit:cover!important}
  .visual-question-copy{padding:11px 11px 9px!important}
  .visual-question-copy h3{margin:8px 0 10px!important;font-size:16px!important}
  .visual-q-meta span{font-size:9px!important}
  .visual-memory-badge,.visual-media-stamp{font-size:8.5px!important;padding:3px 7px!important}
}

/* 弹层全屏档不遮底部标签栏;关闭走手势(内容下拉/背景点击/把手拖动),不再用"×"(电脑逻辑) */
@media (max-width:768px){
  .jx-m-sheet{
    max-height:calc(100dvh - 118px);
    bottom:calc(54px + env(safe-area-inset-bottom,0px))!important;
  }
  .jx-m-sheet-grip{z-index:6}
  .jx-m-sheet-x{display:none}
}

/* 类似情况排查收尾:课程学习 hero 再压一档,四科入口完整露出首屏 */
@media (max-width:768px){
  body[data-view="learn"] .vision-hero{padding:10px 14px 12px!important;margin:0!important}
  body[data-view="learn"] .vision-hero h1{font-size:20px!important;margin:4px 0 6px!important}
  body[data-view="learn"] .vision-hero .vision-eyebrow{font-size:9px!important;margin-bottom:2px!important}
  body[data-view="learn"] .learn-home-vision{gap:10px!important}
  body[data-view="learn"] .vision-hero .vision-hero-copy{padding:0!important}
  body[data-view="learn"] .learn-masthead{padding:4px 0 8px!important}
}

/* 课程学习页"类似情况"修复:hero 去 560px 最小高(顺带省 2.4MB 背景图)、
   地图宣传块手机隐藏(地图已在底部标签栏)、工具区两列化 */
@media (max-width:768px){
  body[data-view="learn"] .vision-hero{
    min-height:0!important;
    display:block!important;
    padding:12px 14px 14px!important;
    background-image:none!important;
  }
  body[data-view="learn"] .vision-hero::before{display:none!important}
  body[data-view="learn"] .vision-map-feature{display:none!important}
  body[data-view="learn"] .vision-tools{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:9px!important;
    padding-top:18px!important;
  }
  body[data-view="learn"] .vision-tools>button{min-height:0!important;padding:12px!important}
  body[data-view="learn"] .vision-tools>button p{display:none!important}
  body[data-view="learn"] .vision-tools>button div b{font-size:13px!important}
  body[data-view="learn"] .vision-start{padding-top:18px!important}
}

/* 课程学习 hero 最终压缩:文案内距/路径条/证明行 */
@media (max-width:768px){
  body[data-view="learn"] .vision-hero-copy{padding:12px 14px 14px!important}
  body[data-view="learn"] .vision-hero-path{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    margin-top:10px!important;padding:8px!important;
  }
  body[data-view="learn"] .vision-hero-path>div{min-height:44px!important}
  body[data-view="learn"] .vision-hero-path>div:not(:last-child){border-right:0!important}
  body[data-view="learn"] .vision-proof{margin-top:10px!important;gap:8px 14px!important}
  body[data-view="learn"] .vision-actions{margin-top:10px!important}
}

/* 课程学习 hero 收尾:路径条与证明行与下方功能重复,手机隐藏 */
@media (max-width:768px){
  body[data-view="learn"] .vision-hero-path{display:none!important}
  body[data-view="learn"] .vision-proof{display:none!important}
}

/* ===== 阶段 9 · 手机端可读性下限(体验测试修复) =====
   我的页学习终端面板在桌面是密排数据屏,8px/9px 在手机上不可读;
   解析行距、弹层抓手对比度、夜间次要文字一并在手机端抬到可读下限。桌面不受影响。 */
@media (max-width:768px){
  /* 我的页:信息文字 ≥10.5px,装饰性英文 kicker ≥9px */
  body[data-view="me"] .rank-copy>span{font-size:10.5px;letter-spacing:.12em}
  body[data-view="me"] .rank-copy p{font-size:11px;line-height:1.6}
  body[data-view="me"] .rank-copy small{font-size:10.5px;line-height:1.5}
  body[data-view="me"] .rank-kpis span{font-size:10.5px;letter-spacing:.04em}
  body[data-view="me"] .rank-kpis small{font-size:10px}
  body[data-view="me"] .progress-ring span{font-size:10px}
  body[data-view="me"] .management-panel>header span{font-size:9px;letter-spacing:.14em}
  body[data-view="me"] .management-panel>header small{font-size:10px}
  body[data-view="me"] .subject-progress-list b{font-size:11px}
  body[data-view="me"] .subject-progress-list span{font-size:10px;line-height:1.45}
  body[data-view="me"] .ai-diagnosis-body span,
  body[data-view="me"] .ai-diagnosis-body p{font-size:10px;line-height:1.55}
  body[data-view="me"] .diagnosis-evidence{font-size:10px}
  body[data-view="me"] .debt-list span,
  body[data-view="me"] .debt-list b,
  body[data-view="me"] .debt-list small{font-size:10px}
  body[data-view="me"] .activity-panel>p{font-size:10px}
  body[data-view="me"] .rank-ladder b{font-size:9px}
  body[data-view="me"] .rank-ladder span{font-size:8.5px}

  /* 解析区块:行距与段落呼吸感(视觉走查反馈"排版紧凑") */
  body[data-view="quiz"].quiz-answering .quiz-exp{line-height:1.78}
  body[data-view="quiz"].quiz-answering .quiz-exp>div{margin-bottom:6px}
  body[data-view="quiz"].quiz-answering .quiz-exp>div:last-child{margin-bottom:0}
  body[data-view="quiz"].quiz-answering .quiz-exp b{font-weight:700}
}

/* 登录卡桌面兜底:样式原本只在 ≤768px 定义,游客也会看到这张卡,桌面给它最小可用样式 */
@media (min-width:769px){
  .me-login-card{display:inline-flex;flex-direction:column;gap:4px;align-items:flex-start;padding:14px 18px;margin:0 0 14px;border:0;border-radius:10px;background:#167f88;color:#fff;text-align:left;cursor:pointer}
  .me-login-card b{font-size:15px}
  .me-login-card span{font-size:12px;opacity:.85}
  .me-login-card:hover{background:#116e80}
}

/* ===== 阶段 12 · 答题情境卡手机端重排(用户反馈 2026-08-17) =====
   ① 情境卡(地方坐标/园林手法/宗教辨识等)移到选项下方,题干+选项一眼可见(渲染顺序由 app.js 控制)
   ② 答完后收起,解析直接顶上来(.is-answered 由判分时打上)
   ③ 深底白字改为浅色卡:答题页手机端是护眼豆沙绿底,深色块突兀且白字发虚 */
@media (max-width:768px){
  html[data-theme] body[data-view="quiz"].quiz-answering .question-context{
    background-image:none!important;   /* 清掉 learning-terminal 深色渐变与日间主题渐变 */
    background:rgba(255,255,255,.72)!important;
    border:1px solid rgba(13,89,108,.14)!important;
    color:#33413b!important;
  }
  body[data-view="quiz"].quiz-answering .question-context>span{color:#0d596c}
  body[data-view="quiz"].quiz-answering .question-context b{color:#22332d}
  body[data-view="quiz"].quiz-answering .question-context small{color:#5a6b64}
  body[data-view="quiz"].quiz-answering .question-context p{color:#4c5c55}
  body[data-view="quiz"].quiz-answering .region-context button{
    border:1px solid #167f88;background:#167f88;color:#fff;border-radius:99px;padding:8px 13px;
  }
  body[data-view="quiz"].quiz-answering .garden-methods i,
  body[data-view="quiz"].quiz-answering .faith-cards i{
    background:rgba(13,89,108,.06);color:#3d4c46;border:1px solid rgba(13,89,108,.1);
  }
  body[data-view="quiz"].quiz-answering .garden-methods i.on,
  body[data-view="quiz"].quiz-answering .faith-cards i.on{
    background:rgba(230,82,63,.12);color:#8c3125;border-color:rgba(230,82,63,.4);
  }
  body[data-view="quiz"].quiz-answering .garden-methods b{color:#22332d}
  body[data-view="quiz"].quiz-answering .mini-timeline b{color:#5a6b64}
  body[data-view="quiz"].quiz-answering .mini-timeline i.on b{color:#8c3125}
  body[data-view="quiz"].quiz-answering .context-chips i{color:#3d4c46}
  body[data-view="quiz"].quiz-answering .person-relation-tags i{color:#3d4c46}
  /* 照片上的文字(党史长卷/建筑图)不在此列——白字压深色照片仍最可读 */
}

/* ===== B08 merged from assets/css/mobile-journal-pilot.css ===== */
/*
 * Mobile visual-system pilot: 行旅札记
 * URL opt-in only: ?mobileDesign=journal
 * Deliberately isolated from production until the pilot is accepted.
 */
@media (max-width: 768px) {
  html.mobile-design-journal {
    --mj-paper: #f3f0e7;
    --mj-paper-raised: #fbfaf5;
    --mj-ink: #183c3a;
    --mj-ink-2: #315653;
    --mj-muted: #6b7772;
    --mj-rule: #cbc6b8;
    --mj-rule-dark: #9ea89f;
    --mj-cinnabar: #b84b38;
    --mj-brass: #aa7d35;
    --mj-safe-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    color-scheme: light;
    background: var(--mj-paper);
  }

  html.mobile-design-journal body {
    color: var(--mj-ink);
    background-color: var(--mj-paper) !important;
    background-image:
      radial-gradient(circle at 12% 4%, rgba(170, 125, 53, .06), transparent 28%),
      repeating-linear-gradient(0deg, rgba(24, 60, 58, .018) 0 1px, transparent 1px 6px) !important;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;
  }

  html.mobile-design-journal :is(h1, h2, h3, .mhome-brand, .vision-hero h1, .quiz-editorial-hero h1, .view-head h2) {
    font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
    letter-spacing: .02em;
  }

  html.mobile-design-journal :focus-visible {
    outline: 2px solid var(--mj-cinnabar) !important;
    outline-offset: 3px;
  }

  html.mobile-design-journal :is(button, a, [role="button"]) {
    -webkit-tap-highlight-color: rgba(184, 75, 56, .14);
  }

  /* Shared surfaces: remove the generic floating-card language. */
  html.mobile-design-journal :is(.mhome, .learn-home, .quiz-page, .me-page, .me-overview) {
    color: var(--mj-ink);
    background: transparent !important;
  }

  html.mobile-design-journal :is(.mhome, .learn-home-vision, .quiz-page, .me-page, .me-overview) {
    padding-bottom: calc(var(--mj-safe-bottom) + 22px) !important;
  }

  html.mobile-design-journal :is(.mhome, .learn-home-vision, .quiz-page, .profile-page) {
    box-sizing: border-box;
    width: calc(100% + 28px) !important;
    max-width: none !important;
    margin-left: -14px !important;
    margin-right: -14px !important;
  }

  /* Bottom navigation */
  html.mobile-design-journal #jxTabbar {
    height: calc(64px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 3px 8px env(safe-area-inset-bottom, 0px) !important;
    border-top: 1px solid var(--mj-rule-dark) !important;
    background: rgba(251, 250, 245, .98) !important;
    box-shadow: 0 -5px 18px rgba(24, 60, 58, .06) !important;
    backdrop-filter: none !important;
  }

  html.mobile-design-journal #jxTabbar .jx-tab {
    min-width: 44px;
    min-height: 56px;
    color: var(--mj-muted) !important;
    gap: 1px !important;
    border-radius: 0 !important;
    position: relative;
  }

  html.mobile-design-journal #jxTabbar .jx-tab::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 18px;
    height: 2px;
    background: transparent;
    transform: translateX(-50%);
  }

  html.mobile-design-journal #jxTabbar .jx-tab.active,
  html.mobile-design-journal #jxTabbar .jx-tab[aria-current="page"] {
    color: var(--mj-cinnabar) !important;
  }

  html.mobile-design-journal #jxTabbar .jx-tab.active::before,
  html.mobile-design-journal #jxTabbar .jx-tab[aria-current="page"]::before {
    background: var(--mj-cinnabar);
  }

  html.mobile-design-journal #jxTabbar .jx-tab-ic {
    width: 24px !important;
    height: 24px !important;
    font-size: 21px !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal #jxTabbar .jx-tab-name {
    font-size: 10px !important;
    font-weight: 650 !important;
    letter-spacing: .08em;
  }

  /* Function menu */
  html.mobile-design-journal :is(.jx-m-sheet, .mmenu) {
    color: var(--mj-ink) !important;
    background: var(--mj-paper-raised) !important;
    border: 1px solid var(--mj-rule) !important;
    border-bottom: 0 !important;
    border-radius: 10px 10px 0 0 !important;
    box-shadow: 0 -12px 36px rgba(24, 60, 58, .14) !important;
  }

  html.mobile-design-journal .mmenu-head {
    padding-bottom: 12px !important;
    border-bottom: 2px solid var(--mj-ink) !important;
  }

  html.mobile-design-journal .mmenu-head::after {
    content: "全部功能 · 行囊";
    color: var(--mj-brass);
    font: 600 11px/1.2 -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
    letter-spacing: .16em;
  }

  html.mobile-design-journal .mmenu-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;
    border-top: 1px solid var(--mj-rule) !important;
    border-left: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .mmenu-cell {
    min-height: 88px !important;
    padding: 14px 6px !important;
    background: transparent !important;
    border-radius: 0 !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mmenu-cell-ic {
    color: var(--mj-ink) !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mmenu-cell-name { color: var(--mj-ink) !important; }
  html.mobile-design-journal .mmenu-badge { background: var(--mj-cinnabar) !important; }
  html.mobile-design-journal :is(.mmenu-login, .mmenu-contact) {
    border-color: var(--mj-rule) !important;
    border-radius: 4px !important;
    background: transparent !important;
  }

  /* Home: one continuous study sheet, with task-first hierarchy. */
  html.mobile-design-journal .mhome {
    width: 100%;
    padding: calc(12px + env(safe-area-inset-top, 0px)) 15px calc(var(--mj-safe-bottom) + 26px) !important;
  }

  html.mobile-design-journal .mhome-top {
    min-height: 82px !important;
    margin: 0 0 12px !important;
    padding: 10px 0 14px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 3px solid var(--mj-ink) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-top::before {
    content: "2026 · 全国导游资格考试";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    color: var(--mj-brass);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .14em;
  }

  html.mobile-design-journal .mhome-brand {
    color: var(--mj-ink) !important;
    font-size: 27px !important;
    font-weight: 800 !important;
    letter-spacing: .06em !important;
  }

  html.mobile-design-journal .mhome-top :is(.mhome-countdown, .mhome-days, .mhome-date) {
    color: var(--mj-cinnabar) !important;
  }

  html.mobile-design-journal #mhomeDateInput {
    min-height: 44px;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule-dark) !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .mhome-progress {
    margin: 0 0 16px !important;
    padding: 8px 0 14px !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-progress :is(.bar, .progress-bar, [class*="track"]) {
    background: #d8d5ca !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .mhome-progress :is(.fill, [class*="fill"]) {
    background: var(--mj-cinnabar) !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .mhome-welcome {
    margin: 0 0 12px !important;
    padding: 10px 12px !important;
    color: var(--mj-ink) !important;
    background: rgba(170, 125, 53, .07) !important;
    border: 0 !important;
    border-left: 3px solid var(--mj-brass) !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .mhome-tasks {
    display: grid !important;
    gap: 8px !important;
    margin: 0 0 18px !important;
  }

  html.mobile-design-journal .mhome-task {
    min-height: 74px !important;
    padding: 11px 10px !important;
    color: var(--mj-ink) !important;
    background: var(--mj-paper-raised) !important;
    border: 1px solid var(--mj-rule) !important;
    border-left: 4px solid var(--mj-ink) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-task:first-child { border-left-color: var(--mj-cinnabar) !important; }
  html.mobile-design-journal .mhome-task-ic {
    display: grid !important;
    width: 34px !important;
    height: 34px !important;
    place-items: center;
    color: transparent !important;
    font-size: 0 !important;
    background: transparent !important;
    border: 1px solid var(--mj-rule-dark) !important;
    border-radius: 50% !important;
  }

  html.mobile-design-journal .mhome-task-ic::after {
    content: "阅";
    color: var(--mj-cinnabar);
    font: 700 15px/1 "Songti SC", serif;
  }

  html.mobile-design-journal .mhome-task + .mhome-task .mhome-task-ic::after { content: "续"; color: var(--mj-ink); }
  html.mobile-design-journal .mhome-task-go {
    min-width: 48px !important;
    min-height: 44px !important;
    padding: 0 11px !important;
    color: #fffaf0 !important;
    background: var(--mj-cinnabar) !important;
    border: 0 !important;
    border-radius: 2px !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    margin: 0 0 22px !important;
    padding: 8px 0 !important;
    border-top: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .mhome-grid::before,
  html.mobile-design-journal .mhome-grid::after { display: none !important; }

  html.mobile-design-journal .mhome-cell {
    min-height: 72px !important;
    padding: 8px 4px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-cell:last-child { border-right: 0 !important; }
  html.mobile-design-journal .mhome-cell :is(.mhome-cell-ic, [class*="icon"]) {
    color: var(--mj-ink) !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-sec {
    margin: 0 0 24px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-sec > :is(h2, h3, .mhome-sec-title) {
    margin: 0 0 9px !important;
    padding: 0 0 8px !important;
    border-bottom: 2px solid var(--mj-ink) !important;
    color: var(--mj-ink) !important;
  }

  html.mobile-design-journal .mhome-subjects {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }

  html.mobile-design-journal .mhome-sub {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 88px !important;
    margin: 0 !important;
    padding: 13px 8px 13px 54px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    position: relative;
  }

  html.mobile-design-journal .mhome-sub::before {
    content: counter(mj-sub, decimal-leading-zero);
    counter-increment: mj-sub;
    position: absolute;
    left: 7px;
    top: 15px;
    color: var(--mj-cinnabar);
    font: 800 18px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  }

  html.mobile-design-journal .mhome-subjects { counter-reset: mj-sub; }
  html.mobile-design-journal .mhome-sub :is(.mhome-sub-go, button) { min-height: 44px; }

  html.mobile-design-journal .mhome-stats {
    margin: 0 0 18px !important;
    padding: 14px 0 !important;
    background: transparent !important;
    border-top: 1px solid var(--mj-rule-dark) !important;
    border-bottom: 1px solid var(--mj-rule-dark) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .mhome-stats > * + * { border-left: 1px solid var(--mj-rule) !important; }
  html.mobile-design-journal :is(.mhome-prov-dir, .mhome-links, .mhome-foot) {
    color: var(--mj-muted) !important;
    background: transparent !important;
    border-color: var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  /* Learning: turn the marketing stack into a compact route briefing. */
  html.mobile-design-journal .learn-home-vision {
    padding: calc(14px + env(safe-area-inset-top, 0px)) 15px calc(var(--mj-safe-bottom) + 26px) !important;
  }

  html.mobile-design-journal .vision-hero {
    min-height: 0 !important;
    margin: 0 0 18px !important;
    padding: 22px 2px 18px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-top: 4px solid var(--mj-ink) !important;
    border-bottom: 1px solid var(--mj-rule-dark) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-eyebrow {
    color: var(--mj-cinnabar) !important;
    letter-spacing: .16em !important;
  }

  html.mobile-design-journal .vision-hero h1 {
    max-width: 9em;
    margin: 8px 0 !important;
    color: var(--mj-ink) !important;
    font-size: clamp(30px, 9vw, 39px) !important;
    line-height: 1.12 !important;
  }

  html.mobile-design-journal .vision-hero-copy { width: 100% !important; }
  html.mobile-design-journal .vision-hero-art { display: none !important; }
  html.mobile-design-journal .vision-hero-path {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    margin: 18px 0 14px !important;
    border-top: 1px solid var(--mj-rule) !important;
    border-left: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .vision-hero-path > * {
    min-width: 0 !important;
    padding: 9px !important;
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-actions { gap: 8px !important; }
  html.mobile-design-journal .vision-actions :is(a, button) {
    min-height: 46px !important;
    padding: 0 16px !important;
    color: #fffaf0 !important;
    background: var(--mj-ink) !important;
    border: 1px solid var(--mj-ink) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-actions :is(a, button):last-child {
    color: var(--mj-ink) !important;
    background: transparent !important;
  }

  html.mobile-design-journal .vision-proof { color: var(--mj-muted) !important; }
  html.mobile-design-journal :is(.vision-today, .vision-map-feature, .vision-tools) {
    margin: 0 0 22px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-today {
    padding: 16px 12px !important;
    color: var(--mj-ink) !important;
    background: var(--mj-paper-raised) !important;
    border: 1px solid var(--mj-rule) !important;
    border-top: 3px solid var(--mj-cinnabar) !important;
  }

  html.mobile-design-journal .vision-today button {
    min-height: 46px !important;
    color: #fffaf0 !important;
    background: var(--mj-ink) !important;
    border: 1px solid var(--mj-ink) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-map-feature {
    padding: 20px 16px !important;
    color: #f5f0e4 !important;
    background: var(--mj-ink) !important;
    border: 0 !important;
  }

  html.mobile-design-journal .vision-map-feature * { color: inherit; }
  html.mobile-design-journal .vision-map-feature :is(a, button) {
    min-height: 44px;
    color: var(--mj-ink) !important;
    background: #f5f0e4 !important;
    border-radius: 2px !important;
  }

  html.mobile-design-journal .vision-tools {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  html.mobile-design-journal .vision-section-head {
    padding-bottom: 9px !important;
    border-bottom: 2px solid var(--mj-ink) !important;
  }

  html.mobile-design-journal .vision-tool-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    border-left: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .vision-tool-grid > * {
    min-height: 116px !important;
    padding: 14px 11px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-tools > button {
    min-height: 108px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .vision-footer {
    color: var(--mj-muted) !important;
    background: transparent !important;
    border-top: 1px solid var(--mj-rule) !important;
  }

  /* Quiz entry: editorial index. The actual answering state is styled by quiz-journal-pilot.css. */
  html.mobile-design-journal .quiz-page {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  html.mobile-design-journal .quiz-editorial-hero {
    margin: 0 0 18px !important;
    padding: calc(24px + env(safe-area-inset-top, 0px)) 17px 22px !important;
    color: #f8f2e5 !important;
    background: var(--mj-ink) !important;
    border: 0 !important;
    border-bottom: 5px solid var(--mj-cinnabar) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .quiz-editorial-hero::before {
    content: "题册 · 每日一练";
    display: block;
    margin-bottom: 8px;
    color: #d7b36e;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .2em;
  }

  html.mobile-design-journal .quiz-editorial-hero * { color: inherit; }
  html.mobile-design-journal .quiz-entry-section {
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .quiz-subjects {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    border-top: 2px solid var(--mj-ink) !important;
  }

  html.mobile-design-journal body[data-view="quiz"] .quiz-entry-section .qs-item {
    min-height: 82px !important;
    margin: 0 !important;
    padding: 12px 8px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal body[data-view="quiz"] .quiz-entry-section .qs-item::after {
    height: 2px !important;
    background: linear-gradient(90deg, var(--mj-cinnabar) 0 var(--subject-progress, 0%), var(--mj-rule) var(--subject-progress, 0%)) !important;
  }

  html.mobile-design-journal body[data-view="quiz"] .qs-code {
    color: var(--mj-cinnabar) !important;
    background: transparent !important;
    border: 1px solid var(--mj-cinnabar) !important;
    border-radius: 50% !important;
  }

  html.mobile-design-journal body[data-view="quiz"] .qs-info { color: var(--mj-ink) !important; }
  html.mobile-design-journal body[data-view="quiz"] .qs-count {
    color: var(--mj-muted) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .quiz-entry-section :is(button, .btn) { min-height: 44px; }
  html.mobile-design-journal body[data-view="quiz"] :is(.quiz-specialty-entries button, .quiz-review-entry, .quiz-custom-start, .quiz-version-bar) {
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  /* Progress: command board, but no dashboard-card pile. */
  html.mobile-design-journal :is(.me-page, .me-overview) {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  html.mobile-design-journal .me-login-card,
  html.mobile-design-journal .me-identity-card {
    margin: 0 0 16px !important;
    padding: 16px !important;
    color: #f8f2e5 !important;
    background: var(--mj-ink) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .me-login-card * ,
  html.mobile-design-journal .me-identity-card * { color: inherit; }

  html.mobile-design-journal .view-head.me-head {
    margin: 0 0 12px !important;
    padding: calc(12px + env(safe-area-inset-top, 0px)) 0 11px !important;
    border-bottom: 3px solid var(--mj-ink) !important;
  }

  html.mobile-design-journal .view-head.me-head h2 {
    color: var(--mj-ink) !important;
    font-size: 30px !important;
  }

  html.mobile-design-journal .rank-command {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    gap: 10px 14px !important;
    margin: 0 0 20px !important;
    padding: 16px 0 !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule-dark) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .rank-seal {
    width: 66px !important;
    height: 66px !important;
    color: var(--mj-cinnabar) !important;
    background: transparent !important;
    border: 2px solid var(--mj-cinnabar) !important;
    border-radius: 50% !important;
    box-shadow: inset 0 0 0 3px var(--mj-paper), inset 0 0 0 4px var(--mj-cinnabar) !important;
  }

  html.mobile-design-journal .rank-copy { min-width: 0; }
  html.mobile-design-journal .rank-track {
    grid-column: 1 / -1;
    height: 5px !important;
    background: #d8d5ca !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .rank-track > * {
    background: var(--mj-cinnabar) !important;
    border-radius: 0 !important;
  }

  html.mobile-design-journal .rank-kpis {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    border-top: 1px solid var(--mj-rule) !important;
    border-left: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .rank-kpis > * {
    padding: 10px !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .me-dashboard-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  html.mobile-design-journal .management-panel {
    margin: 0 !important;
    padding: 0 0 14px !important;
    color: var(--mj-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-top: 2px solid var(--mj-ink) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .management-panel > :is(h2, h3, header) {
    padding-top: 10px !important;
  }

  html.mobile-design-journal .memory-terminal-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    border-top: 1px solid var(--mj-rule) !important;
    border-left: 1px solid var(--mj-rule) !important;
  }

  html.mobile-design-journal .memory-terminal-grid > * {
    min-height: 80px !important;
    padding: 11px !important;
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid var(--mj-rule) !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal :is(.subject-progress-list, .activity-list, .debt-list) > * {
    padding: 12px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--mj-rule) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.mobile-design-journal .view-head.data-heading {
    margin-top: 26px !important;
    padding-bottom: 9px !important;
    border-bottom: 2px solid var(--mj-ink) !important;
  }

  html.mobile-design-journal .data-control-panel {
    padding: 14px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  /* Map: preserve canvas and gestures; only restyle the chrome above it. */
  html.mobile-design-journal .home-fullscreen { background: #d9ddd4 !important; }
  html.mobile-design-journal :is(.home-toolbar, .layer-nav, .map-layer-switcher, .home-legend, .layer-nav-fab) {
    color: var(--mj-ink) !important;
    background: rgba(251, 250, 245, .97) !important;
    border: 1px solid var(--mj-rule-dark) !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 14px rgba(24, 60, 58, .12) !important;
    backdrop-filter: none !important;
  }

  html.mobile-design-journal .home-toolbar {
    top: calc(10px + env(safe-area-inset-top, 0px)) !important;
    left: 10px !important;
    right: 10px !important;
    min-height: 48px !important;
  }

  html.mobile-design-journal .home-toolbar :is(button, a),
  html.mobile-design-journal .layer-nav-fab,
  html.mobile-design-journal .map-layer-switcher :is(button, [role="button"]) {
    min-width: 44px;
    min-height: 44px;
    color: var(--mj-ink) !important;
    border-radius: 2px !important;
  }

  html.mobile-design-journal .layer-nav-fab {
    color: #f8f2e5 !important;
    background: var(--mj-ink) !important;
    border-color: var(--mj-ink) !important;
  }

  html.mobile-design-journal .home-legend { font-size: 11px !important; }
}

@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
  html.mobile-design-journal *,
  html.mobile-design-journal *::before,
  html.mobile-design-journal *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ===== B08 merged from assets/css/typography-system.css ===== */
/* 导游学霸 Typography System
   Calm study interface inspired by Apple China's SF Pro SC hierarchy.
   Apple fonts are referenced as local candidates only; no font files are bundled. */
:root{
  --jx-font-text:"SF Pro SC","SF Pro Text","PingFang SC","Helvetica Neue","Segoe UI Variable","Noto Sans CJK SC","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;
  --jx-font-display:"SF Pro SC","SF Pro Display","PingFang SC","Helvetica Neue","Segoe UI Variable Display","Noto Sans CJK SC","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;
  --jx-font-metric:"SF Pro SC","SF Pro Display","DIN Alternate","PingFang SC","Helvetica Neue","Segoe UI Variable Display","Microsoft YaHei UI",Arial,sans-serif;
  --jx-font-mono:"SFMono-Regular","SF Mono","Cascadia Code","Roboto Mono","Noto Sans Mono CJK SC",ui-monospace,Menlo,Monaco,Consolas,monospace;
  --jx-font-serif:"Songti SC","STSong","Source Han Serif SC","Noto Serif CJK SC",serif;

  /* Legacy aliases: existing modules inherit one coherent vocabulary. */
  --font-ui:var(--jx-font-text);
  --font-display:var(--jx-font-display);
  --font-metric:var(--jx-font-metric);
  --font-mono:var(--jx-font-mono);
  --font-serif:var(--jx-font-serif);
  --ds-sans:var(--jx-font-text);
  --ds-serif:var(--jx-font-display);
  --sans:var(--jx-font-text);
  --serif:var(--jx-font-display);
}

html,
body{
  font-family:var(--jx-font-text)!important;
  font-optical-sizing:auto;
  font-kerning:normal;
  letter-spacing:0;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

button,
input,
textarea,
select,
option{
  font-family:var(--jx-font-text)!important;
  letter-spacing:0;
}

button{font-weight:500!important}

/* Reset historical per-component stacks before assigning semantic roles below. */
body :where(*:not(pre):not(code):not(kbd):not(samp)){
  font-family:inherit!important;
}

body :where(b,strong){
  font-weight:600!important;
}

/* Display type is reserved for hierarchy, never for long-form reading. */
h1,
h2,
h3,
h4,
h5,
h6,
.view-head h1,
.section-heading h2,
.panel-heading h2,
.tile-headline,
.hero-title,
.page-title,
.modal-title{
  font-family:var(--jx-font-display)!important;
  font-style:normal;
  font-weight:600!important;
  letter-spacing:0!important;
}

h1{line-height:1.12}
h2{line-height:1.18}
h3,h4,h5,h6{line-height:1.28}

/* UI emphasis stays quieter than legacy 700/800/900-heavy styling. */
:where(.btn,.button,[class*="-button"],[class*="-action"],[class*="-enter"]){
  font-weight:600!important;
}

:where([class*="-badge"],[class*="-tag"],[class*="-label"]){
  font-weight:600!important;
}

:where(.eyebrow,.page-kicker,.route-kicker,[class*="-eyebrow"],[class*="-kicker"],[class*="-overline"]){
  font-family:var(--jx-font-text)!important;
  font-weight:600!important;
  letter-spacing:.08em!important;
}

/* Questions and answers are reading content, not poster headlines. */
:where(.quiz-q,.question-text,.question-context,.quiz-exp,.opt,.option,.answer-reveal){
  font-family:var(--jx-font-text)!important;
}

:where(.quiz-q,.question-text){
  font-weight:500!important;
  letter-spacing:0!important;
}

:where(.quiz-options .opt,.options .option){
  font-weight:400!important;
  letter-spacing:0!important;
}

/* Numbers keep Apple-like alignment without turning the whole UI monospace. */
:where(.big-num,.proof-num,.metric-value,.metric-grid strong,.signal-strip strong,
  .user-summary strong,.progress-kpis article>strong,.practice-score b,.qs-count,
  .answer-letters,.rank-kpis b,.device-donut b,.today-stats b,.funnel-row b,
  [class*="-metric"],[class*="-number"],[class*="-count"]){
  font-family:var(--jx-font-metric)!important;
  font-weight:600!important;
  font-variant-numeric:tabular-nums lining-nums;
  letter-spacing:0!important;
}

code,
pre,
kbd,
samp,
.checksum,
.axis-label,
.question-id,
[class*="-code"]{
  font-family:var(--jx-font-mono)!important;
  font-variant-numeric:tabular-nums;
}

/* Serif remains an intentional cultural accent, never the default UI voice. */
blockquote,
.rank-seal,
.party-cinema :is(h1,h2),
.type-serif,
[data-typography="serif"]{
  font-family:var(--jx-font-serif)!important;
}

.rank-seal{font-weight:700!important}

html:lang(zh-CN) :where(p,li,dd,dt,td,th,label,summary,h1,h2,h3,h4,h5,h6){
  letter-spacing:0;
}

@media(max-width:735px){
  h1{line-height:1.16}
  h2{line-height:1.22}
}

