:root {
  --ink: #18344a;
  --ink-2: #2c5068;
  --paper: #f5f7f8;
  --white: #ffffff;
  --mist: #e7edf0;
  --muted: #6f7f89;
  --red: #cf5545;
  --red-soft: #f9e9e6;
  --green: #2e8064;
  --green-soft: #e5f3ed;
  --gold: #d89b34;
  --shadow: 0 14px 40px rgba(24, 52, 74, .10);
  --radius: 18px;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--paper);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}
button { font: inherit; }
button:focus-visible { outline: 3px solid rgba(207,85,69,.35); outline-offset: 3px; }
.shell { min-height: 100vh; padding-bottom: 92px; }
.topbar {
  height: 68px; display: flex; align-items: center; justify-content: space-between;
  width: 100%; max-width: 760px; margin: auto; padding: 0 20px;
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: .08em; }
.seal { width: 31px; height: 31px; border-radius: 9px; display: grid; place-items: center; background: var(--red); color: white; font-family: STKaiti, KaiTi, serif; }
.streak { display: flex; align-items: center; gap: 7px; font-weight: 700; font-size: 14px; color: var(--red); white-space: nowrap; flex-shrink: 0; }
.page { width: 100%; max-width: 720px; margin: auto; padding: 8px 20px 36px; }
.hero { background: var(--ink); color: white; border-radius: 24px; padding: 26px; position: relative; overflow: hidden; box-shadow: var(--shadow); }
.mode-switch { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 14px; }
.mode-btn { border: 1px solid #dce5e9; background: white; color: var(--ink); border-radius: 14px; padding: 12px; text-align: left; cursor: pointer; }
.mode-btn strong { display: block; font-size: 13px; margin-bottom: 4px; }
.mode-btn small { display: block; color: var(--muted); font-size: 10px; line-height: 1.45; }
.mode-btn.active { background: var(--ink); border-color: var(--ink); color: white; }
.mode-btn.active small { color: #cbd7df; }
.hero::after { content: "文"; position: absolute; right: -10px; bottom: -58px; font-family: STSong, SimSun, serif; font-size: 160px; color: rgba(255,255,255,.055); }
.eyebrow { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; opacity: .7; font-weight: 700; }
.hero h1 { margin: 9px 0 8px; font-family: STSong, SimSun, serif; font-size: 30px; font-weight: 700; }
.hero p { margin: 0; color: #cbd7df; line-height: 1.7; font-size: 14px; max-width: 480px; }
.hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-top: 24px; }
.progress-wrap { flex: 1; }
.progress-label { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 8px; color: #d7e0e6; }
.progress { height: 8px; background: rgba(255,255,255,.14); border-radius: 99px; overflow: hidden; }
.progress > i { display: block; height: 100%; background: var(--gold); border-radius: inherit; transition: width .35s ease; }
.primary, .secondary, .option, .chip, .nav-btn, .text-link { border: 0; cursor: pointer; }
.primary { background: var(--red); color: white; border-radius: 13px; padding: 13px 18px; font-weight: 800; box-shadow: 0 6px 16px rgba(207,85,69,.25); }
.primary:hover { background: #bd493b; transform: translateY(-1px); }
.primary:disabled { opacity: .38; cursor: not-allowed; transform: none; }
.secondary { background: var(--mist); color: var(--ink); border-radius: 13px; padding: 12px 16px; font-weight: 700; }
.section-title { margin: 28px 2px 14px; display: flex; align-items: end; justify-content: space-between; }
.section-title h2 { margin: 0; font: 700 21px STSong, SimSun, serif; }
.section-title small { color: var(--muted); }
.chapter { background: white; border: 1px solid #dfe6ea; border-radius: 20px; margin-bottom: 14px; overflow: hidden; }
.chapter-head { padding: 18px 18px 14px; display: flex; justify-content: space-between; align-items: center; }
.chapter-title { display: flex; gap: 12px; align-items: center; }
.chapter-no { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--mist); font: 700 18px STSong, SimSun, serif; }
.chapter h3 { margin: 0 0 4px; font-size: 16px; }
.chapter p { margin: 0; color: var(--muted); font-size: 12px; }
.chapter-status { font-size: 12px; font-weight: 700; color: var(--green); }
.mixed-zone { margin: 0 18px 18px; padding: 15px; background: #f3f6f8; border-radius: 14px; }
.mixed-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.mixed-head strong { font-size: 13px; }
.mixed-head span { font-size: 11px; color: var(--muted); }
.mixed-levels { display: flex; gap: 7px; }
.mixed-level { width: 38px; height: 38px; border: 0; border-radius: 11px; background: white; color: var(--muted); font-weight: 800; cursor: pointer; box-shadow: inset 0 0 0 1px #dbe4e8; }
.mixed-level.current { color: white; background: var(--red); box-shadow: none; }
.mixed-level.done { color: white; background: var(--green); box-shadow: none; }
.mixed-level:disabled { cursor: not-allowed; opacity: .42; }
.term-label { padding: 0 18px 8px; font-size: 11px; color: var(--muted); font-weight: 700; letter-spacing: .08em; }
.chapter.locked { opacity: .68; }
.path { display: flex; gap: 4px; padding: 5px 18px 20px; overflow-x: auto; align-items: center; }
.path-line { width: 24px; height: 2px; background: var(--mist); flex: 0 0 auto; }
.node { width: 72px; flex: 0 0 72px; text-align: center; cursor: pointer; background: transparent; border: 0; color: var(--ink); padding: 0; }
.node-orb { width: 48px; height: 48px; margin: auto; border-radius: 50%; display: grid; place-items: center; background: var(--mist); border: 3px solid white; box-shadow: 0 0 0 2px #dce5e9; font: 700 16px STSong, SimSun, serif; transition: .2s; }
.node:hover .node-orb { transform: translateY(-2px); }
.node.active .node-orb { background: var(--red); color: white; box-shadow: 0 0 0 3px var(--red-soft); }
.node.mastered .node-orb { background: var(--green); color: white; box-shadow: 0 0 0 3px var(--green-soft); }
.node.locked-node { cursor: not-allowed; opacity: .4; }
.node-name { display: block; margin-top: 8px; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.stars { font-size: 10px; color: var(--gold); letter-spacing: -1px; height: 12px; }
.bottom-nav { position: fixed; z-index: 20; bottom: 0; left: 0; right: 0; height: 74px; background: rgba(255,255,255,.94); backdrop-filter: blur(12px); border-top: 1px solid #dfe6ea; display: flex; justify-content: center; gap: 50px; padding: 8px 20px; }
.nav-btn { background: none; color: var(--muted); font-size: 11px; min-width: 58px; }
.nav-btn b { display: block; font-size: 20px; margin-bottom: 2px; }
.nav-btn.active { color: var(--red); font-weight: 800; }
.lesson { min-height: 100vh; background: white; }
.lesson-top { max-width: 680px; margin: auto; padding: 20px; display: flex; gap: 14px; align-items: center; }
.close { width: 38px; height: 38px; border: 0; background: var(--mist); border-radius: 12px; color: var(--ink); cursor: pointer; font-size: 18px; }
.lesson-progress { flex: 1; height: 9px; border-radius: 99px; background: var(--mist); overflow: hidden; }
.lesson-progress i { display: block; height: 100%; border-radius: inherit; background: var(--red); transition: width .35s; }
.lesson-stage { max-width: 620px; margin: 4vh auto 0; padding: 20px; }
.level-tag { display: inline-flex; align-items: center; gap: 7px; color: var(--red); background: var(--red-soft); font-size: 12px; font-weight: 800; padding: 7px 10px; border-radius: 99px; }
.lesson h1 { font: 700 28px/1.35 STSong, SimSun, serif; margin: 18px 0 8px; }
.prompt { color: var(--muted); line-height: 1.7; margin: 0 0 25px; }
.clue-card { background: var(--paper); border-left: 4px solid var(--ink-2); padding: 20px; border-radius: 4px 14px 14px 4px; line-height: 1.85; margin-bottom: 22px; font-family: STSong, SimSun, serif; font-size: 17px; }
.options { display: grid; gap: 11px; }
.option { text-align: left; padding: 16px 17px; background: white; border: 2px solid var(--mist); border-radius: 14px; color: var(--ink); font-weight: 700; transition: .15s; }
.option:hover { border-color: #b8c8d1; }
.option.selected { border-color: var(--ink-2); background: #edf3f6; }
.option.correct { border-color: var(--green); background: var(--green-soft); color: #21674f; }
.option.wrong { border-color: var(--red); background: var(--red-soft); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { border: 2px solid var(--mist); background: white; color: var(--ink); border-radius: 99px; padding: 11px 15px; }
.chip.selected { background: var(--ink); color: white; border-color: var(--ink); }
.chip.correct { background: var(--green-soft); color: var(--green); border-color: var(--green); }
.chip.wrong { background: var(--red-soft); color: var(--red); border-color: var(--red); }
.sort-list { display: grid; gap: 9px; }
.sort-item { display: flex; align-items: center; gap: 13px; padding: 14px; background: var(--paper); border: 2px solid transparent; border-radius: 13px; cursor: pointer; text-align: left; }
.sort-item .num { width: 27px; height: 27px; display: grid; place-items: center; background: white; border-radius: 8px; color: var(--muted); font-size: 12px; flex: 0 0 auto; }
.sort-item.selected { border-color: var(--ink-2); background: #edf3f6; }
.sort-item.placed { opacity: .45; }
.answer-line { min-height: 65px; border: 2px dashed #cad5da; border-radius: 14px; padding: 11px; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.answer-piece { background: var(--ink); color: white; padding: 8px 11px; border-radius: 9px; font-size: 13px; cursor: pointer; }
.error-text { font: 17px/2 STSong, SimSun, serif; background: var(--paper); padding: 20px; border-radius: 14px; }
.error-word { display: inline; padding: 3px 6px; border-radius: 7px; cursor: pointer; border: 1px dashed #9cafb9; }
.error-word.selected { background: var(--red-soft); border-color: var(--red); color: var(--red); }
.recall-box { width: 100%; min-height: 170px; resize: vertical; border: 2px solid var(--mist); border-radius: 15px; padding: 16px; font: 16px/1.75 STSong, SimSun, serif; color: var(--ink); }
.recall-box:focus { outline: none; border-color: var(--ink-2); }
.recall-cues { display: grid; gap: 8px; grid-template-columns: repeat(2,1fr); margin-bottom: 14px; }
.recall-cue { background: var(--paper); border-radius: 11px; padding: 10px 12px; font-size: 12px; color: var(--ink-2); }
.keyword-preview { margin-top: 12px; color: var(--muted); font-size: 12px; }
.lesson-actions { max-width: 620px; margin: 28px auto; padding: 0 20px; display: flex; justify-content: flex-end; gap: 10px; }
.feedback { position: fixed; z-index: 10; left: 0; right: 0; bottom: 0; background: var(--green-soft); border-top: 1px solid #c8e5d8; padding: 18px 20px; }
.feedback.wrong { background: var(--red-soft); border-color: #efcbc5; }
.feedback-inner { max-width: 620px; margin: auto; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.feedback h3 { margin: 0 0 5px; color: var(--green); }
.feedback.wrong h3 { color: var(--red); }
.feedback p { margin: 0; color: var(--ink-2); font-size: 13px; line-height: 1.5; }
.result { max-width: 540px; margin: 8vh auto; text-align: center; padding: 24px; }
.result-mark { width: 84px; height: 84px; margin: auto; border-radius: 50%; display: grid; place-items: center; background: var(--green-soft); color: var(--green); font-size: 38px; }
.result h1 { font: 700 31px STSong, SimSun, serif; margin-bottom: 8px; }
.result p { color: var(--muted); line-height: 1.7; }
.result-card { background: var(--paper); padding: 18px; border-radius: 16px; margin: 24px 0; text-align: left; }
.result-card strong { display: block; margin-bottom: 8px; }
.score-ring { width: 94px; height: 94px; margin: 22px auto; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--green) var(--score), var(--mist) 0); position: relative; }
.score-ring::after { content: ''; position: absolute; inset: 9px; border-radius: 50%; background: white; }
.score-ring b { position: relative; z-index: 1; font-size: 22px; }
.result-actions { display: flex; justify-content: center; gap: 10px; }
.library-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.term-card { background: white; border: 1px solid #dfe6ea; padding: 17px; border-radius: 16px; cursor: pointer; }
.term-card h3 { font: 700 18px STSong, SimSun, serif; margin: 0 0 8px; }
.term-card p { margin: 0; font-size: 12px; color: var(--muted); }
.mastery-bar { margin-top: 13px; display: flex; gap: 3px; }
.mastery-bar i { height: 4px; flex: 1; background: var(--mist); border-radius: 9px; }
.mastery-bar i.on { background: var(--gold); }
.empty { text-align: center; color: var(--muted); padding: 70px 20px; }
.toast { position: fixed; left: 50%; bottom: 92px; transform: translateX(-50%); background: var(--ink); color: white; border-radius: 99px; padding: 11px 16px; font-size: 13px; z-index: 30; animation: toast .25s ease; }
@keyframes toast { from { transform: translate(-50%,8px); opacity: 0; } }
@media (max-width: 560px) {
  .topbar { height: 60px; }
  .streak { display: none; }
  .page { padding-left: 14px; padding-right: 14px; }
  .hero { padding: 22px 20px; border-radius: 20px; }
  .hero h1 { font-size: 25px; }
  .mode-switch { grid-template-columns: 1fr; }
  .mode-btn { display: flex; align-items: center; gap: 10px; }
  .mode-btn strong { min-width: 70px; margin: 0; }
  .hero-row { align-items: stretch; flex-direction: column; }
  .hero-row .primary { width: 100%; }
  .library-grid { grid-template-columns: 1fr; }
  .mixed-levels { justify-content: space-between; }
  .lesson-stage { margin-top: 1vh; }
  .feedback-inner { align-items: stretch; flex-direction: column; }
  .feedback-inner .primary { width: 100%; }
}

/* v3 home and chapter system */
.v3-shell{min-height:100dvh;padding-bottom:82px;background:#f7faf9}.v3-header{height:64px;max-width:720px;margin:auto;padding:0 18px;display:flex;align-items:center;justify-content:space-between}.v3-brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:18px}.v3-brand span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--jade);color:#fff;font-family:STKaiti,KaiTi,serif;box-shadow:0 4px 0 var(--jade-dark)}.v3-streak{font-weight:850;color:#f39c12}.v3-page{width:100%;max-width:680px;margin:auto;padding:4px 16px 28px}.v3-tabs{position:fixed;z-index:20;left:0;right:0;bottom:0;height:72px;padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;gap:42px;background:rgba(255,255,255,.97);border-top:1px solid var(--line)}.v3-tabs button{width:68px;border:0;background:none;color:#92a0a5;font-weight:750;font-size:11px}.v3-tabs b{display:block;font-size:21px;margin-bottom:3px}.v3-tabs button.on{color:var(--jade)}
.countdown{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;margin-bottom:12px;border-radius:20px;background:#173f37;color:#fff;box-shadow:0 5px 0 #0d2b25}.countdown div{display:flex;align-items:baseline;gap:6px}.countdown span{font-size:13px;color:#b8d7cc}.countdown strong{font-size:38px;line-height:1}.countdown em{font-size:14px;font-style:normal}.exam-date{width:118px;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;padding:8px;font-size:11px;color-scheme:dark}.today-card,.mode-card,.settings-card,.overall-card{background:#fff;border:1px solid #e2e9eb;border-radius:20px;padding:18px;margin-bottom:12px}.today-card{box-shadow:0 7px 22px rgba(29,70,57,.08)}.today-card.complete{border-color:#99dfbd;background:#f3fcf7}.today-top,.section-row{display:flex;align-items:center;justify-content:space-between}.today-top small{font-weight:800;color:var(--jade)}.today-top h1{margin:4px 0 0;font-size:22px}.task-ring{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--jade) var(--p),#e6ecee 0);position:relative}.task-ring:after{content:'';position:absolute;inset:7px;border-radius:50%;background:#fff}.task-ring b{z-index:1;font-size:13px}.daily-progress,.overall-bar{height:9px;margin:15px 0;border-radius:99px;background:#e7edef;overflow:hidden}.daily-progress i,.overall-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--jade),#46c9a0);transition:width .3s}.task-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.task-actions button{min-height:78px;border:0;border-radius:16px;padding:12px;display:flex;align-items:center;gap:10px;text-align:left;color:#fff;cursor:pointer}.study-btn{background:var(--jade);box-shadow:0 5px 0 var(--jade-dark)}.review-btn{background:var(--sky);box-shadow:0 5px 0 #167cae}.task-actions button.done{background:#aebbc0;box-shadow:0 5px 0 #8e9ba0}.task-actions button>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.2);font-weight:900}.task-actions b{display:block;font-size:15px}.task-actions small{display:block;margin-top:4px;color:rgba(255,255,255,.8);font-size:10px}.section-row h2{margin:0;font-size:16px}.section-row>span,.overall-card small{color:var(--muted);font-size:11px}.mode-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.mode-pills button{border:2px solid var(--line);border-bottom-width:4px;background:#fff;border-radius:13px;padding:10px 4px;font-size:12px;font-weight:800;color:#66777e}.mode-pills button.on{border-color:var(--jade);background:var(--jade-soft);color:var(--jade-dark)}.step-row{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:10px;margin-top:14px}.step-row label{font-size:12px;font-weight:800}.stepper{display:flex;align-items:center;justify-content:space-between;background:#f3f6f7;border-radius:12px;padding:3px}.stepper button{width:31px;height:31px;border:0;border-radius:9px;background:#fff;color:var(--jade);font-size:18px;font-weight:900}.stepper b{font-size:13px}.overall-card .section-row strong{color:var(--jade)}
.page-title{padding:10px 3px 18px}.page-title h1{margin:0 0 4px;font-size:27px}.page-title p{margin:0;color:var(--muted);font-size:13px}.era-card{background:#fff;border:1px solid #e1e8ea;border-radius:17px;margin-bottom:10px;overflow:hidden}.era-head{width:100%;border:0;background:#fff;padding:15px;display:flex;align-items:center;gap:12px;text-align:left;color:var(--text)}.era-no{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--jade-soft);color:var(--jade-dark);font-weight:900}.era-head div{flex:1}.era-head b,.era-head small{display:block}.era-head small{margin-top:4px;color:var(--muted);font-size:11px}.chev{font-size:20px;transition:transform .2s}.era-card.open .chev{transform:rotate(180deg)}.era-terms{border-top:1px solid #edf1f2;padding:5px 10px 10px}.term-row{width:100%;min-height:58px;border:0;border-bottom:1px solid #eef2f3;background:#fff;display:flex;align-items:center;gap:10px;text-align:left;color:var(--text);padding:9px 5px}.tier-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.term-row>div:first-of-type{width:150px}.term-row b,.term-row small{display:block}.term-row b{font-size:14px}.term-row small{font-size:10px;color:var(--muted);margin-top:3px}.mini-progress{flex:1;height:6px;border-radius:99px;background:#e6ecee;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--jade)}.tier-legend{display:flex;gap:13px;margin-bottom:15px;font-size:11px;color:var(--muted)}.tier-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.library-list h3{margin:23px 3px 7px;font-size:15px}.library-list .term-row{padding:10px 12px;border:1px solid #e4eaec;border-radius:13px;margin-bottom:7px}.question-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px}.question-meta span,.question-meta b{border-radius:99px;padding:5px 9px;font-size:11px}.question-meta span{background:color-mix(in srgb,var(--tier) 15%,white);color:var(--tier);font-weight:850}.question-meta b{background:#fff0d8;color:#d98300}.feedback strong{font-weight:900;color:inherit}.result-v3{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;background:#fff}.result-badge{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:var(--jade-soft);color:var(--jade);font-size:48px;font-weight:900}.result-v3 h1{margin:20px 0 6px}.result-v3 p{margin:0;color:var(--muted)}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;width:100%;max-width:480px;margin:25px 0}.result-stats div{background:#f3f7f6;border-radius:14px;padding:15px 7px}.result-stats b,.result-stats span{display:block}.result-stats b{font-size:22px;color:var(--jade)}.result-stats span{font-size:10px;color:var(--muted);margin-top:4px}.result-home{width:100%;max-width:480px;min-height:52px}
@media(max-width:460px){.task-actions{grid-template-columns:1fr}.task-actions button{min-height:66px}.step-row{grid-template-columns:auto 1fr}.countdown{padding:16px}.countdown strong{font-size:34px}.v3-page{padding-left:12px;padding-right:12px}.today-card,.mode-card,.settings-card,.overall-card{padding:15px}.term-row>div:first-of-type{width:135px}}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* v4 — calmer study dashboard and memory rhythm */
.v4-shell{min-height:100dvh;padding-bottom:84px;background:linear-gradient(180deg,#f8fbfa 0,#f3f7f6 100%)}
.v4-header{height:68px;max-width:700px;margin:auto;padding:0 16px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.v4-brand{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:900;letter-spacing:.08em}.v4-brand>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#17664f;color:#fff;font:700 19px STKaiti,KaiTi,serif;box-shadow:0 3px 0 #0e4938}
.mode-trigger,.streak-button{border:0;background:transparent;display:flex;align-items:center;cursor:pointer;color:#48625a}.mode-trigger{justify-self:start;gap:7px;padding:7px 9px 7px 5px;border-radius:12px}.mode-trigger:hover{background:#eaf3ef}.mode-trigger>span{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#e0f2ea;color:#17664f;font-size:12px;font-weight:900}.mode-trigger b{font-size:12px}.mode-trigger i{font-style:normal;color:#8aa098}.streak-button{justify-self:end;gap:5px;padding:7px}.streak-button b{font-size:14px;color:#e46b3f}
.flame{position:relative;width:22px;height:27px;display:block;background:linear-gradient(145deg,#ffb63e,#ef5f3a);border-radius:60% 45% 55% 55%;transform:rotate(4deg);clip-path:polygon(52% 0,83% 32%,100% 65%,83% 94%,48% 100%,15% 88%,0 56%,22% 28%,31% 54%)}.flame u{position:absolute;left:8px;bottom:3px;width:8px;height:12px;border-radius:50%;background:#ffd861;text-decoration:none}
.v4-page{width:100%;max-width:660px;margin:auto;padding:3px 14px 30px}.exam-card{background:linear-gradient(140deg,#143d33,#1a5d49);border-radius:24px;padding:21px;color:#fff;box-shadow:0 8px 24px rgba(16,62,49,.14);overflow:hidden;position:relative}.exam-card:after{content:'';position:absolute;width:170px;height:170px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-60px;top:-90px}.exam-top{display:flex;align-items:center;justify-content:space-between}.exam-top>div>span{font-size:12px;color:#a8cbbf;font-weight:700}.exam-top p{margin:3px 0 0;font-size:14px}.exam-top p strong{font-size:42px;line-height:1;letter-spacing:-.04em}.calendar-open{position:relative;z-index:1;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);border-radius:13px;color:#d7e9e3;padding:9px 11px;display:flex;align-items:center;gap:7px;font-size:11px}.calendar-open i{width:16px;height:15px;border:2px solid currentColor;border-radius:4px;position:relative}.calendar-open i:before{content:'';position:absolute;left:-2px;right:-2px;top:3px;border-top:2px solid currentColor}
.exam-progress{margin-top:18px;padding-top:15px;border-top:1px solid rgba(255,255,255,.12)}.exam-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#bfd8d0}.exam-progress strong{color:#fff}.exam-progress b{color:#fff;font-size:13px}.progress-track{height:8px!important;margin-top:9px;border-radius:99px;background:rgba(255,255,255,.13);overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#72dfad,#55cbea);border-radius:inherit}.exam-progress small{display:block;margin-top:7px;font-size:10px;color:#8db5a8}
.daily-card,.quantity-card,.rhythm-card{margin-top:13px;background:#fff;border:1px solid #e3ebe8;border-radius:21px;padding:18px;box-shadow:0 5px 17px rgba(31,75,61,.045)}.daily-card.is-complete{background:linear-gradient(145deg,#fff,#f4fbf7);border-color:#cfe8db}.daily-heading{display:flex;align-items:center;justify-content:space-between}.daily-heading span{font-size:11px;color:#27966a;font-weight:850}.daily-heading h1{margin:5px 0 0;font-size:21px;letter-spacing:-.02em}.daily-medal{width:48px;height:48px;border-radius:16px;background:#eef3f1;display:grid;place-items:center}.daily-medal i{width:20px;height:20px;border:3px solid #a6b7b0;border-radius:50%;position:relative}.daily-medal i:after{content:'';position:absolute;width:7px;height:12px;border-right:3px solid #a6b7b0;border-bottom:3px solid #a6b7b0;transform:rotate(45deg);left:7px;top:-1px;opacity:0}.daily-medal.done{background:#ddf5e8}.daily-medal.done i{border-color:#22a66b}.daily-medal.done i:after{border-color:#22a66b;opacity:1}
.start-today{width:100%;min-height:70px;margin-top:17px;border:0;border-radius:16px;background:#22a66b;color:#fff;box-shadow:0 5px 0 #13794b;padding:12px 14px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.start-today:active,.after-actions button:active{transform:translateY(3px);box-shadow:0 2px 0 #13794b}.start-today>div{flex:1}.start-today b,.start-today small{display:block}.start-today b{font-size:16px}.start-today small{margin-top:4px;color:#d4f2e3;font-size:11px}.start-today>i{font-style:normal;font-size:27px}.play-mark{width:37px;height:37px;border-radius:50%;background:rgba(255,255,255,.18);position:relative}.play-mark:after{content:'';position:absolute;left:15px;top:11px;border-left:10px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}
.after-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.after-actions button{min-height:68px;border:0;border-radius:16px;display:flex;align-items:center;gap:10px;text-align:left;color:#fff;padding:11px;cursor:pointer}.learn-again{background:#22a66b;box-shadow:0 4px 0 #13794b}.review-again{background:#278fc0;box-shadow:0 4px 0 #176d96}.after-actions>button>i{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.17);display:grid;place-items:center;font-style:normal;font-size:20px}.after-actions b,.after-actions span{display:block}.after-actions b{font-size:14px}.after-actions span{font-size:9px;margin-top:4px;color:rgba(255,255,255,.8)}
.quantity-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:15px 18px}.quantity-card h2{font-size:15px;margin:0}.quantity-card>div>span{display:block;margin-top:3px;color:#84948e;font-size:9px}.quantity-card label{font-size:10px;font-weight:800;color:#657770;white-space:nowrap}.quantity-card .stepper{margin-left:5px}.stepper{display:inline-flex;align-items:center;gap:7px;background:#f0f5f3;border-radius:10px;padding:3px}.stepper button{width:27px;height:27px;border:0;background:#fff;border-radius:8px;color:#1a8b5c;font-size:17px;font-weight:900}.stepper b{min-width:14px;text-align:center;font-size:12px;color:#29473d}
.rhythm-card{display:flex;align-items:center;gap:11px;padding:14px 16px}.rhythm-icon{width:38px;height:38px;border-radius:12px;background:#e7f4fb;display:grid;place-items:center}.rhythm-icon i{width:20px;height:15px;border:2px solid #2697c9;border-radius:50%;position:relative}.rhythm-icon i:before,.rhythm-icon i:after{content:'';position:absolute;width:4px;height:4px;background:#2697c9;border-radius:50%;top:4px}.rhythm-icon i:before{left:3px}.rhythm-icon i:after{right:3px}.rhythm-card>div:nth-child(2){flex:1}.rhythm-card span,.rhythm-card b{display:block}.rhythm-card span{font-size:9px;color:#2791bd;font-weight:850}.rhythm-card b{margin-top:3px;font-size:12px}.rhythm-card>small{font-size:9px;color:#8a9a94;white-space:nowrap}
.v4-tabs{position:fixed;z-index:20;left:0;right:0;bottom:0;height:72px;padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;gap:56px;background:rgba(255,255,255,.97);border-top:1px solid #e6ecea}.v4-tabs button{width:62px;border:0;background:none;color:#95a39e;font-weight:750;font-size:10px}.v4-tabs button i{display:block;width:21px;height:20px;margin:0 auto 4px;position:relative}.v4-tabs button.on{color:#168c5b}.tab-home:before{content:'';position:absolute;left:2px;top:6px;width:17px;height:13px;border:3px solid currentColor;border-top:0;border-radius:3px}.tab-home:after{content:'';position:absolute;left:4px;top:1px;width:13px;height:13px;border-left:3px solid currentColor;border-top:3px solid currentColor;transform:rotate(45deg)}.tab-list:before{content:'';position:absolute;inset:1px 0;border:2px solid currentColor;border-radius:4px;box-shadow:inset 0 5px transparent}.tab-list:after{content:'≡';position:absolute;inset:-5px 0;font-size:25px}.tab-book:before,.tab-book:after{content:'';position:absolute;top:2px;width:9px;height:17px;border:2px solid currentColor}.tab-book:before{left:1px;border-radius:4px 0 0 4px}.tab-book:after{right:1px;border-radius:0 4px 4px 0}
.modal-layer{position:fixed;z-index:60;inset:0;background:rgba(16,37,30,.38);display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px);animation:fadeIn .18s ease}.mode-sheet,.calendar-sheet{width:min(100%,560px);background:#fff;border-radius:25px 25px 0 0;padding:13px 17px max(22px,env(safe-area-inset-bottom));box-shadow:0 -18px 55px rgba(10,40,30,.18);animation:sheetUp .24s ease}.sheet-handle{width:42px;height:5px;border-radius:99px;background:#dce5e1;margin:0 auto 18px}.mode-sheet h2{font-size:20px;margin:0 0 13px}.mode-sheet>button{width:100%;min-height:67px;border:1px solid #e3eae7;border-radius:15px;background:#fff;padding:10px 13px;margin:7px 0;display:flex;align-items:center;gap:12px;text-align:left;color:#29433a}.mode-sheet>button>i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eef5f2;color:#28775b;font-style:normal;font-weight:900}.mode-sheet>button>div{flex:1}.mode-sheet b,.mode-sheet span{display:block}.mode-sheet b{font-size:14px}.mode-sheet span{font-size:10px;color:#86958f;margin-top:3px}.mode-sheet u{width:18px;height:18px;border:2px solid #cdd8d4;border-radius:50%}.mode-sheet button.selected{border-color:#83cfac;background:#f1faf5}.mode-sheet button.selected u{border:5px solid #22a66b}
.calendar-layer{align-items:center;padding:16px}.calendar-sheet{position:relative;border-radius:24px;padding:23px;width:min(100%,470px)}.modal-close{position:absolute;right:14px;top:14px;width:32px;height:32px;border:0;border-radius:50%;background:#f0f4f2;color:#819089;font-size:20px}.calendar-title{display:flex;align-items:center;gap:13px}.calendar-emblem{width:48px;height:48px;border-radius:15px;background:#fff0df;display:grid;place-items:center}.calendar-title span{font-size:10px;color:#8c9994}.calendar-title h2{margin:3px 0 0;font-size:19px}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.calendar-week{margin:22px 0 8px;color:#9aa7a2;font-size:9px}.calendar-grid>span,.calendar-grid>i{height:35px;display:grid;place-items:center;border-radius:11px;font-size:11px;position:relative}.calendar-grid span.missed{color:#aab5b1;background:#f2f5f4}.calendar-grid span.checked{color:#fff;background:#28a96e;font-weight:900}.calendar-grid span.today{box-shadow:0 0 0 2px #f0ae3a}.calendar-grid span u{position:absolute;width:5px;height:5px;border-radius:50%;background:#d9ffeb;bottom:3px}.calendar-legend{display:flex;justify-content:center;gap:16px;margin-top:19px;padding-top:15px;border-top:1px solid #edf1ef}.calendar-legend span{font-size:9px;color:#73837d;display:flex;align-items:center;gap:5px}.calendar-legend i{width:9px;height:9px;border-radius:3px}.calendar-legend .start{box-shadow:0 0 0 2px #f0ae3a;background:#fff}.calendar-legend .ok{background:#28a96e}.calendar-legend .no{background:#edf1ef}
.question-meta em{font-style:normal;border-radius:99px;padding:5px 9px;background:#eef4f2;color:#678078;font-size:11px;font-weight:800}.v4-lesson .lesson-stage{max-width:680px}.v4-lesson h1{font-size:clamp(26px,6.8vw,34px)}.v4-lesson .clue-card{font-size:18px;line-height:1.7;padding:19px}.v4-lesson .option{font-size:17px;line-height:1.45;min-height:60px}.v4-lesson .chip{font-size:16px;line-height:1.45;padding:12px 14px}.tolerance-note{font-size:14px;color:#71847d;margin:0 0 14px}.answer-basket{min-height:74px;border:2px dashed #cddbd6;border-radius:16px;padding:9px;margin-bottom:13px;display:flex;flex-direction:column;gap:6px}.answer-basket span{padding:8px 10px;border-radius:9px;background:#e8f6ef;color:#176f4d;font-size:14px;line-height:1.45}.answer-basket .empty{background:transparent;color:#9ba8a3;text-align:center;padding-top:17px}.sort-item{font-size:15px!important;line-height:1.5!important}.sort-item.selected{border-color:#2baa71;background:#edf9f3;color:#176f4d}.analysis-card{padding:14px 15px!important}.analysis-label{font-size:12px!important;margin-bottom:7px!important}.analysis-card p{font-size:16px!important;line-height:1.72!important}.answer-card p{font-size:15px!important}.feedback{max-height:62dvh}.feedback h3{font-size:23px}.recall-box{font-size:17px!important;line-height:1.65}.recall-cue{font-size:14px}.voice-btn i{display:inline-block;width:10px;height:15px;border:2px solid currentColor;border-radius:7px;margin-right:6px;vertical-align:-3px;position:relative}.voice-btn i:after{content:'';position:absolute;left:2px;right:2px;bottom:-6px;border-bottom:2px solid currentColor}
.result-v4{min-height:100dvh;background:linear-gradient(180deg,#f3fbf7,#fff 62%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;overflow:hidden;position:relative}.result-emblem{width:92px;height:92px;border-radius:29px;background:#dff6e9;display:grid;place-items:center;transform:rotate(-4deg);box-shadow:0 7px 0 #b9e7ce}.result-emblem i{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#25aa6d;color:#fff;font-size:30px;font-style:normal;font-weight:900}.result-kicker{margin-top:27px;color:#269964;font-size:12px;font-weight:900}.result-v4 h1{margin:7px 0 0;font-size:27px}.result-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;width:100%;max-width:470px;margin:25px 0 13px}.result-numbers div{background:#fff;border:1px solid #e3ebe8;border-radius:16px;padding:15px 6px;box-shadow:0 4px 14px rgba(25,72,56,.05)}.result-numbers b,.result-numbers span{display:block}.result-numbers b{font-size:23px;color:#198e5c}.result-numbers span{font-size:10px;color:#84938d;margin-top:4px}.result-v4>p{font-size:12px;color:#7d8d87}.result-actions{width:100%;max-width:470px;margin-top:18px}.result-actions button{width:100%;min-height:52px;margin-top:9px}.secondary{border:2px solid #dfe7e4;border-bottom-width:4px;border-radius:15px;background:#fff;color:#60746d;font-weight:850}.celebrate>*{position:absolute;border-radius:4px;background:#f2b63c;animation:floatDown 1.8s ease-out infinite}.celebrate i{left:17%;top:12%;width:8px;height:20px;transform:rotate(25deg)}.celebrate span{right:18%;top:18%;width:11px;height:11px;background:#48bfe3;animation-delay:.3s}.celebrate b{left:28%;top:28%;width:8px;height:8px;background:#ef6d59;animation-delay:.6s}@keyframes floatDown{50%{transform:translateY(18px) rotate(110deg);opacity:.5}}
@keyframes fadeIn{from{opacity:0}}
@media(max-width:520px){.v4-header{padding:0 12px}.mode-trigger b{display:none}.v4-page{padding-left:11px;padding-right:11px}.exam-card{padding:18px}.quantity-card{grid-template-columns:1fr 1fr}.quantity-card>div{grid-column:1/-1}.quantity-card label{display:flex;align-items:center;justify-content:space-between}.rhythm-card>small{display:none}.v4-tabs{gap:34px}.feedback{max-height:66dvh}.v4-lesson .lesson-stage{padding-left:16px;padding-right:16px}.analysis-card p{font-size:15px!important}}

/* Mobile-first learning experience */
:root {
  --jade: #20a66a;
  --jade-dark: #147c4d;
  --jade-soft: #dff7eb;
  --sky: #28a9e8;
  --sky-soft: #e2f4fc;
  --coral: #f05b4f;
  --coral-dark: #c84137;
  --coral-soft: #ffebe8;
  --sun: #f5b82e;
  --line: #dce5e8;
  --text: #26383f;
}
body { color: var(--text); background: #f7faf9; }
.seal { background: var(--jade); box-shadow: 0 4px 0 var(--jade-dark); }
.primary {
  background: var(--jade); border-radius: 15px; box-shadow: 0 5px 0 var(--jade-dark);
  text-transform: none; transition: transform .12s, box-shadow .12s, background .12s;
}
.primary:hover { background: #1b9760; }
.primary:active { transform: translateY(3px); box-shadow: 0 2px 0 var(--jade-dark); }
.primary:disabled { background: #dce3e5; color: #9ca9ae; box-shadow: 0 5px 0 #cbd4d7; opacity: 1; }
.hero { background: linear-gradient(145deg,#153d35,#176449); }
.hero .primary { background: #fff; color: var(--jade-dark); box-shadow: 0 5px 0 rgba(0,0,0,.18); }
.progress > i { background: #6ee7a8; }
.mode-btn.active { background: var(--jade); border-color: var(--jade); box-shadow: 0 4px 0 var(--jade-dark); }
.mixed-level.current { background: var(--jade); }
.mixed-level.done { background: var(--sky); }
.node.active .node-orb { background: var(--jade); box-shadow: 0 0 0 3px var(--jade-soft); }
.node.mastered .node-orb { background: var(--sky); box-shadow: 0 0 0 3px var(--sky-soft); }
.nav-btn.active { color: var(--jade); }

.lesson { min-height: 100dvh; height: 100dvh; overflow: hidden; background: white; display: flex; flex-direction: column; }
.lesson-top { width: 100%; padding: max(16px,env(safe-area-inset-top)) 18px 10px; flex: 0 0 auto; }
.close { background: transparent; color: #91a0a6; font-size: 25px; font-weight: 800; }
.lesson-progress { height: 14px; background: #e5ebed; }
.lesson-progress i { background: linear-gradient(90deg,#22c67b,#38b7e9); box-shadow: inset 0 -3px 0 rgba(0,0,0,.08); }
.lesson-top strong { min-width: 42px; text-align: right; color: #809097; }
.lesson-stage {
  width: 100%; max-width: 620px; margin: 0 auto; padding: 10px 20px 120px;
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
}
.level-tag { background: var(--sky-soft); color: #1686ba; padding: 6px 10px; }
.lesson h1 { font-family: inherit; font-size: clamp(23px,6.3vw,31px); line-height: 1.25; margin: 15px 0 7px; font-weight: 850; letter-spacing: -.02em; }
.prompt { margin-bottom: 16px; line-height: 1.45; font-size: 14px; }
.clue-card { padding: 16px 17px; margin-bottom: 16px; font-size: 16px; line-height: 1.6; background: #f4f8f7; border-left-color: var(--jade); }
.options { gap: 9px; }
.option {
  min-height: 54px; padding: 12px 15px; border: 2px solid var(--line); border-bottom-width: 5px;
  border-radius: 15px; font-size: 15px; background: #fff;
}
.option:hover { border-color: #b9c9ce; }
.option:active { transform: translateY(2px); border-bottom-width: 3px; }
.option.selected { border-color: var(--sky); background: var(--sky-soft); color: #126e98; }
.chips { gap: 8px; }
.chip { padding: 9px 12px; border-bottom-width: 4px; border-radius: 13px; font-size: 14px; }
.chip.selected { background: var(--sky-soft); color: #126e98; border-color: var(--sky); }
.answer-line { min-height: 56px; padding: 8px; margin-bottom: 12px; }
.sort-list { gap: 7px; }
.sort-item { padding: 10px 12px; line-height: 1.35; }
.answer-piece { font-size: 12px; background: var(--sky); }
.error-text { padding: 16px; font-size: 16px; line-height: 2.15; }
.recall-cues { gap: 6px; margin-bottom: 10px; }
.recall-cue { padding: 8px 10px; }
.recall-box { min-height: 130px; padding: 14px; font-size: 15px; border-bottom-width: 4px; }
.voice-row { display: flex; align-items: center; gap: 9px; margin-top: 10px; }
.voice-btn { border: 0; border-radius: 13px; background: var(--sky-soft); color: #147da9; padding: 11px 14px; font-weight: 800; cursor: pointer; box-shadow: 0 3px 0 #b7ddea; }
.voice-btn.listening { background: var(--coral-soft); color: var(--coral); box-shadow: 0 3px 0 #efc1bb; animation: breathe 1s infinite; }
.voice-status { font-size: 12px; color: var(--muted); }
.lesson-actions {
  position: fixed; z-index: 9; left: 0; right: 0; bottom: 0; max-width: none; margin: 0;
  padding: 13px max(20px,calc((100vw - 620px)/2)) max(16px,env(safe-area-inset-bottom));
  background: rgba(255,255,255,.97); border-top: 1px solid #edf1f2;
}
.lesson-actions .primary { width: 100%; max-width: 580px; margin: auto; min-height: 51px; font-size: 17px; }
.feedback {
  bottom: 0; max-height: 48dvh; overflow-y: auto; padding: 16px max(20px,calc((100vw - 620px)/2)) max(16px,env(safe-area-inset-bottom));
  background: var(--jade-soft); border: 0; box-shadow: 0 -10px 30px rgba(19,64,47,.12); animation: sheetUp .22s ease-out;
}
.feedback.wrong { background: var(--coral-soft); }
.feedback-inner { display: block; max-width: 580px; }
.feedback-head { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.feedback-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--jade); color: white; font-weight: 900; font-size: 19px; }
.feedback.wrong .feedback-icon { background: var(--coral); }
.feedback h3 { margin: 0; font-size: 21px; color: var(--jade-dark); }
.feedback.wrong h3 { color: var(--coral-dark); }
.analysis-card { background: rgba(255,255,255,.72); border-radius: 13px; padding: 11px 13px; margin-bottom: 12px; }
.analysis-label { display: block; font-size: 11px; font-weight: 850; color: #718187; margin-bottom: 4px; }
.analysis-card p { font-size: 13px; line-height: 1.55; color: var(--text); }
.feedback .primary { width: 100%; min-height: 49px; }
.feedback.wrong .primary { background: var(--coral); box-shadow: 0 5px 0 var(--coral-dark); }
.question-pop { animation: questionIn .24s ease-out; }
.success-burst { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 8; }
.success-burst i { position: absolute; left: var(--x); top: 45%; width: 8px; height: 14px; border-radius: 4px; background: var(--c); animation: confetti .65s ease-out forwards; }
@keyframes sheetUp { from { transform: translateY(100%); } }
@keyframes questionIn { from { opacity: 0; transform: translateX(14px); } }
@keyframes breathe { 50% { transform: scale(1.04); } }
@keyframes confetti { to { transform: translate(var(--dx),var(--dy)) rotate(260deg); opacity: 0; } }

@media (max-width: 560px) {
  .lesson-stage { padding: 8px 16px 118px; }
  .lesson h1 { margin-top: 12px; }
  .prompt { margin-bottom: 13px; }
  .clue-card { max-height: 25dvh; overflow-y: auto; }
  .options { grid-template-columns: 1fr; }
  .option { min-height: 50px; }
  .feedback { max-height: 53dvh; }
}

/* v4 final precedence */
.v4-lesson h1{font-size:clamp(26px,6.8vw,34px);line-height:1.28}
.v4-lesson .clue-card{font-size:18px;line-height:1.7;padding:19px}
.v4-lesson .option{font-size:17px;line-height:1.48;min-height:60px}
.v4-lesson .chip{font-size:16px;line-height:1.5;padding:12px 14px}
.v4-lesson .sort-item{font-size:16px!important;line-height:1.55!important;padding:12px 13px}
.v4-lesson .analysis-card{padding:14px 15px!important}
.v4-lesson .analysis-label{font-size:12px!important;margin-bottom:7px!important}
.v4-lesson .analysis-card p{font-size:16px!important;line-height:1.72!important}
.v4-lesson .answer-card p{font-size:15px!important}
.v4-lesson .feedback{max-height:62dvh}
.v4-lesson .feedback h3{font-size:23px}
@media(max-width:520px){.quantity-card{grid-template-columns:minmax(68px,1fr) auto auto;gap:7px;padding:14px 12px}.quantity-card>div{grid-column:auto}.quantity-card>div>span{display:none}.quantity-card label{display:flex;align-items:center;gap:3px;font-size:9px}.quantity-card .stepper{margin-left:2px}.stepper{gap:4px}.stepper button{width:25px;height:25px}.v4-lesson .analysis-card p{font-size:16px!important}.v4-lesson .feedback{max-height:66dvh}}

/* v4 polish, rewards and memory drawer */
.v4-header{grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr)}
.mode-trigger{border:1px solid #dce8e3;background:#fff;box-shadow:0 2px 8px rgba(27,70,55,.04);max-width:145px}.mode-trigger b{white-space:nowrap}.header-rewards{justify-self:end;display:flex;align-items:center;gap:5px;color:#537067}.header-rewards>b{font-size:11px}.xp-mark{width:15px;height:18px;display:inline-block;background:linear-gradient(160deg,#47bced,#218dc4);clip-path:polygon(50% 0,100% 28%,90% 82%,50% 100%,10% 82%,0 28%);box-shadow:inset 0 -3px rgba(0,0,0,.12)}.header-rewards .streak-button{padding:5px;margin-left:4px}.header-rewards .flame{width:17px;height:21px}
.memory-card{width:100%;margin-top:13px;min-height:80px;border:1px solid #e2ebe7;border-radius:21px;background:#fff;box-shadow:0 5px 17px rgba(31,75,61,.045);padding:13px 15px;display:grid;grid-template-columns:1fr 1px 1fr auto;align-items:center;gap:12px;text-align:left;color:#29433a;cursor:pointer;transition:transform .15s,box-shadow .15s}.memory-card:hover{box-shadow:0 8px 22px rgba(31,75,61,.08)}.memory-card:active{transform:scale(.99)}.memory-metric{display:grid;grid-template-columns:32px 1fr auto;grid-template-rows:1fr 1fr;align-items:center;column-gap:9px}.memory-metric>i{grid-row:1/3;width:32px;height:32px;border-radius:10px;background:#e3f6ed;position:relative}.memory-metric>i:before{content:'';position:absolute;left:9px;top:7px;width:12px;height:15px;border:2px solid #1e9b65;border-radius:3px}.memory-metric>i:after{content:'';position:absolute;left:13px;top:4px;width:6px;height:5px;background:#e3f6ed;border:2px solid #1e9b65;border-radius:3px}.memory-metric.due>i{background:#e6f3fa}.memory-metric.due>i:before{border-color:#268fbd;border-radius:50%;height:12px;top:9px}.memory-metric.due>i:after{width:2px;height:7px;border:0;border-left:2px solid #268fbd;background:transparent;left:15px;top:10px;transform:rotate(-25deg);transform-origin:bottom}.memory-metric span{font-size:9px;color:#83938d}.memory-metric b{grid-column:3;grid-row:1/3;font-size:24px;color:#1b8058}.memory-metric.due b{color:#237fa7}.memory-divider{height:35px;background:#e8eeeb}.memory-arrow{color:#9aaba4;font-size:25px}
.memory-layer{align-items:flex-end}.memory-sheet{width:min(100%,620px);max-height:84dvh;overflow:auto;background:#f8faf9;border-radius:26px 26px 0 0;padding:13px 17px max(24px,env(safe-area-inset-bottom));box-shadow:0 -18px 55px rgba(10,40,30,.18);animation:sheetUp .24s ease}.memory-title{display:flex;align-items:center;justify-content:space-between;position:relative}.memory-title span{font-size:10px;color:#278f63;font-weight:850}.memory-title h2{margin:3px 0 0;font-size:22px}.memory-title .modal-close{position:static}.memory-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.memory-tabs span{border-radius:14px;padding:12px;background:#e8f7ef;color:#277758;font-size:11px}.memory-tabs span:last-child{background:#e8f4fa;color:#28799d}.memory-tabs b{font-size:20px;margin-right:5px}.memory-sheet>h3{margin:20px 4px 8px;font-size:12px;color:#74877f}.memory-term{background:#fff;border:1px solid #e3ebe8;border-radius:14px;margin-bottom:7px;overflow:hidden}.memory-term>button{width:100%;min-height:59px;border:0;background:#fff;padding:10px 12px;display:flex;align-items:center;text-align:left;color:#29433a}.memory-term>button>div{flex:1}.memory-term>button span,.memory-term>button small{display:block}.memory-term>button span{font-size:14px;font-weight:850}.memory-term>button small{font-size:9px;color:#84948e;margin-top:4px}.memory-term>button i{font-style:normal;color:#9aa9a3;transition:transform .2s}.memory-term.open>button i{transform:rotate(180deg)}.memory-detail{padding:0 12px 13px;border-top:1px solid #eef2f0}.memory-detail p{font-size:13px;line-height:1.65;margin:11px 0}.memory-detail p strong{color:#147f53}.memory-detail>div{height:7px;border-radius:99px;background:#e8eeeb;overflow:hidden}.memory-detail>div span{display:block;width:var(--w);height:100%;background:linear-gradient(90deg,#27a76d,#54c998)}.memory-detail>small{display:block;margin-top:7px;color:#7d8d87;font-size:9px}.memory-empty{padding:20px;border:1px dashed #d8e2de;border-radius:14px;text-align:center;color:#94a29d;font-size:11px}
.compare-card{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:11px}.compare-card>div{background:rgba(255,255,255,.78);border-radius:13px;padding:13px}.compare-card span{display:block;font-size:11px;font-weight:850;color:#718187;margin-bottom:7px}.compare-card p{font-size:14px;line-height:1.65;margin:0;color:#30453e}.hit-points{display:flex;flex-direction:column;gap:5px}.hit-points b,.hit-points em{font-size:12px;font-style:normal;padding:5px 7px;border-radius:7px}.hit-points b{background:#e0f5e9;color:#17774d}.hit-points em{background:#fff1e7;color:#b55d32}.reward-strip{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;padding:8px 13px;border-radius:99px;background:#fff;border:1px solid #e1eae6;box-shadow:0 4px 14px rgba(25,72,56,.05)}.reward-strip b{font-size:11px;color:#3b6657}.reward-strip>i{width:14px;height:14px;background:linear-gradient(145deg,#f4c24c,#e99429);transform:rotate(45deg);border-radius:4px;margin-left:6px}.result-emblem{animation:rewardPop .5s cubic-bezier(.2,1.5,.4,1)}@keyframes rewardPop{from{transform:scale(.55) rotate(-16deg);opacity:0}to{transform:scale(1) rotate(-4deg);opacity:1}}
@media(max-width:520px){.v4-header{grid-template-columns:minmax(108px,1fr) auto minmax(78px,1fr)}.mode-trigger{max-width:128px;padding-right:6px}.mode-trigger b{display:block;font-size:10px}.v4-brand{font-size:0}.v4-brand>span{font-size:18px}.header-rewards>b{display:none}.memory-card{gap:7px;padding:12px 11px}.memory-metric{grid-template-columns:29px 1fr auto;column-gap:6px}.memory-metric>i{width:29px;height:29px}.memory-metric b{font-size:20px}.compare-card{grid-template-columns:1fr}.memory-sheet{max-height:88dvh}}

/* Expandable term library */
.library-term{background:#fff;border:1px solid #e2eae7;border-radius:15px;margin-bottom:8px;overflow:hidden;transition:border-color .18s,box-shadow .18s}.library-term.open{border-color:#b7ddca;box-shadow:0 7px 20px rgba(25,80,59,.07)}.library-term-head{width:100%;min-height:62px;border:0;background:#fff;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;color:#283f37;cursor:pointer}.library-term-head>div{flex:1}.library-term-head b,.library-term-head small{display:block}.library-term-head b{font-size:14px}.library-term-head small{font-size:9px;color:#82928c;margin-top:4px}.library-term-head .pass-count{font-size:9px;color:#258a60;background:#e8f6ef;border-radius:99px;padding:5px 8px;white-space:nowrap}.library-term-head>i{font-style:normal;color:#92a29c;transition:transform .2s}.library-term.open .library-term-head>i{transform:rotate(180deg)}.library-term-detail{border-top:1px solid #edf2ef;padding:14px;background:#fbfdfc;animation:detailOpen .2s ease}.library-term-detail>p{font-size:14px;line-height:1.75;margin:0;color:#344941}.library-term-detail>p strong{color:#137d51}.point-cloud{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.point-cloud span{padding:5px 8px;border-radius:8px;background:#eaf5f0;color:#32725a;font-size:10px}.record-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:13px 0}.record-row span{padding:9px 5px;border:1px solid #e3ebe8;border-radius:10px;background:#fff;text-align:center;color:#7a8a84;font-size:9px}.record-row b{display:block;color:#1f8e5e;font-size:17px;margin-bottom:2px}.library-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.library-actions button{min-height:58px;border:0;border-radius:13px;padding:9px;display:flex;align-items:center;gap:8px;text-align:left;color:#fff;cursor:pointer}.library-actions button:first-child{background:#22a66b;box-shadow:0 4px 0 #147b4e}.library-actions button:last-child{background:#278fc0;box-shadow:0 4px 0 #176e97}.library-actions button:active{transform:translateY(2px);box-shadow:none}.library-actions i{width:31px;height:31px;border-radius:9px;background:rgba(255,255,255,.17);display:grid;place-items:center;font-style:normal;font-weight:900}.library-actions b,.library-actions span{display:block}.library-actions b{font-size:12px}.library-actions span{font-size:8px;color:rgba(255,255,255,.8);margin-top:3px}@keyframes detailOpen{from{opacity:0;transform:translateY(-5px)}}
@media(max-width:420px){.library-term-head{padding:9px}.library-term-head .pass-count{padding:4px 6px}.library-term-detail{padding:12px}.library-actions{grid-template-columns:1fr}.library-actions button{min-height:54px}}

/* Learning-plan editor */
.quota-layer{align-items:flex-end}
.quota-sheet{width:min(100%,620px);max-height:92dvh;overflow:auto;background:#f8fbf9;border-radius:28px 28px 0 0;padding:12px 22px max(24px,env(safe-area-inset-bottom));box-shadow:0 -18px 60px rgba(12,45,34,.2);animation:sheetUp .26s cubic-bezier(.16,1,.3,1)}
.quota-sheet>header{display:flex;align-items:flex-start;justify-content:space-between;margin:4px 0 18px}
.quota-sheet h2{margin:0;font-size:24px;letter-spacing:-.02em;color:#18382c}
.quota-sheet header p{margin:5px 0 0;font-size:12px;color:#667d73}
.quota-sheet .modal-close{position:static;flex:none}
.forecast-panel{background:#164f3e;color:#fff;border-radius:20px;padding:20px;display:grid;grid-template-columns:1fr 1.35fr;gap:20px;align-items:center;box-shadow:0 8px 24px rgba(20,79,62,.14)}
.forecast-panel>div>span{display:block;color:#b9d6cb;font-size:11px}
.forecast-panel strong{display:block;margin-top:4px;font-size:45px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.forecast-panel strong small{font-size:14px;margin-left:4px;letter-spacing:0}
.forecast-panel dl{margin:0;border-left:1px solid rgba(255,255,255,.16);padding-left:20px}
.forecast-panel dl>div{display:flex;align-items:center;justify-content:space-between;padding:5px 0}
.forecast-panel dt{font-size:11px;color:#a9cabe}.forecast-panel dd{margin:0;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.quota-controls{margin-top:17px;background:#fff;border:1px solid #dde8e2;border-radius:18px;padding:0 16px}
.quota-controls article{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px}
.quota-controls article+article{border-top:1px solid #e5ede9}
.quota-controls article>div{min-width:0}.quota-controls article b,.quota-controls article span{display:block}.quota-controls article b{font-size:16px;color:#263e34}.quota-controls article>div>span{font-size:11px;color:#71847b;margin-top:5px}
.quota-sheet .stepper{display:grid;grid-template-columns:42px 54px 42px;gap:3px;align-items:center;background:#edf3f0;border-radius:14px;padding:4px;flex:none}
.quota-sheet .stepper button{width:42px;height:42px;border-radius:11px;font-size:22px;background:#fff;color:#168555;box-shadow:0 1px 3px rgba(21,72,53,.07)}
.quota-sheet .stepper b{text-align:center;font-size:19px;font-variant-numeric:tabular-nums;color:#1e4737}
.quota-presets{display:flex;align-items:center;gap:7px;margin:15px 0 19px}
.quota-presets>span{margin-right:auto;font-size:11px;color:#71847b}
.quota-presets button{min-height:44px;padding:5px 13px;border:1px solid #dce7e2;border-radius:10px;background:#fff;color:#415c50;font-size:11px;font-weight:700;cursor:pointer;display:grid;place-content:center;gap:1px}
.quota-presets button b{font-size:12px}.quota-presets button small{font-size:9px;color:#82928a;font-variant-numeric:tabular-nums}
.quota-presets button:hover{border-color:#58aa82;color:#14764b;background:#f0f8f4}
.quota-presets button.on{border-color:#249465;background:#e7f5ed;color:#14764b;box-shadow:inset 0 0 0 1px #249465}
.quota-done{width:100%;min-height:52px;border:0!important;border-radius:14px!important;background:#198b59!important;color:#fff;font-size:15px;font-weight:850;box-shadow:0 5px 14px rgba(25,139,89,.2)!important}

/* Weighted mastery */
.library-term-head .mastery-pill{min-width:66px;text-align:right;color:#6b7f76;font-size:9px;line-height:1.25}
.library-term-head .mastery-pill b{display:block;color:#247b58;font-size:14px;font-variant-numeric:tabular-nums}
.library-term-head .mastery-pill.mastered b{color:#198b59}
.mastery-panel{margin:0 0 16px;padding:14px 15px;background:#edf7f2;border-radius:14px}
.mastery-panel>div:first-child{display:flex;align-items:center;justify-content:space-between}
.mastery-panel span{font-size:12px;color:#537066}.mastery-panel strong{font-size:21px;color:#168555;font-variant-numeric:tabular-nums}
.mastery-track{height:8px!important;margin:10px 0 8px;background:#d9e8e0!important;border-radius:99px;overflow:hidden}
.mastery-track i{display:block;height:100%;border-radius:inherit;background:#22a66b}
.mastery-panel small{font-size:10px;color:#667d73}
@media(max-width:520px){.quota-sheet{padding-left:16px;padding-right:16px}.forecast-panel{grid-template-columns:1fr 1.2fr;padding:17px;gap:15px}.forecast-panel strong{font-size:39px}.forecast-panel dl{padding-left:15px}.quota-controls{padding:0 12px}.quota-controls article{gap:10px}.quota-controls article>div>span{max-width:135px}.quota-sheet .stepper{grid-template-columns:38px 42px 38px}.quota-sheet .stepper button{width:38px;height:38px}.quota-presets button{padding:0 10px}.library-term-head .mastery-pill{min-width:55px}}
.lesson-stage h1 strong{color:#176b4b;font-weight:900}
.knowledge-tag{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;margin:2px 0 18px;border-radius:999px;background:#e9f5ef;color:#287257;font-size:12px;font-weight:800;letter-spacing:.04em}

/* Refined elevation for primary actions */
.start-today,.study-btn,.learn-again,.library-actions button:first-child{box-shadow:0 7px 18px rgba(20,121,76,.2)}
.review-btn,.review-again,.library-actions button:last-child{box-shadow:0 7px 18px rgba(23,110,151,.18)}
.start-today:active,.after-actions button:active,.library-actions button:active{transform:translateY(1px);box-shadow:0 3px 9px rgba(20,80,58,.14)}
/* Shared SVG controls: one grid, one stroke weight. */
.ui-icon{display:block;width:24px;height:24px;flex:none;overflow:visible}
.v4-header{display:flex;justify-content:space-between;gap:12px;height:76px}
.mode-trigger{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;max-width:none;border-radius:12px}
.mode-trigger b{display:block;font-size:13px;line-height:1}.mode-trigger .ui-icon{width:16px;height:16px}
.v4-brand{font-size:17px;letter-spacing:.04em}.streak-button{min-height:44px;gap:5px;color:#b65220}.streak-button .ui-icon{width:24px;height:28px;fill:#fff0d5;stroke:#d56c26}.streak-button span{font-size:12px;color:#765842}
.v4-tabs{height:78px;gap:48px;align-items:center}.v4-tabs button{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:12px}.v4-tabs .ui-icon{width:24px;height:24px}.v4-tabs button.on{color:#137a50}.v4-tabs button.on .ui-icon{fill:#e9f6ef}
.daily-medal .ui-icon{width:25px;height:25px;color:#4e7263}.daily-medal.done .ui-icon{color:#178651;stroke-width:2.5}.daily-medal{border-radius:50%}
.calendar-open{min-height:44px;font-size:12px}.calendar-open .ui-icon{width:19px;height:19px}
.quantity-summary{display:flex;align-items:center;gap:10px;width:100%;margin-top:16px;padding:14px 2px;min-height:52px;background:transparent;border:0;border-bottom:1px solid #dce6e0;text-align:left;color:#465e53;cursor:pointer}.quantity-summary>.ui-icon{width:20px;height:20px}.quantity-summary span{font-size:13px}.quantity-summary b{margin-left:auto;font-size:12px;font-weight:500}.quantity-summary>.ui-icon:last-child{width:15px;height:15px;transform:rotate(-90deg)}
.memory-links{display:grid;grid-template-columns:1fr 1fr;margin-top:8px}.memory-links button{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;border:0;background:transparent;min-height:80px;padding:15px 10px;color:#244c3b;cursor:pointer}.memory-links button+button{border-left:1px solid #dce6e0}.memory-links span{font-size:13px;text-align:left}.memory-links b{font-size:23px;font-variant-numeric:tabular-nums}.memory-links button:last-child{color:#316e87}
.settings-sheet label{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid #e5ede8;font-size:16px}.settings-sheet .stepper{gap:18px}.settings-sheet .stepper button{width:44px;height:44px}.settings-sheet>.primary{display:block;text-align:center;margin-top:24px;min-height:48px;background:#198b59;color:white;font-weight:700}
.memory-title{margin-bottom:20px}.memory-title h2{font-size:22px}.memory-title h2 small{font-size:13px;color:#61786c;font-weight:400}.memory-term>button{min-height:85px}.memory-term>button small{font-size:12px;color:#586f64;line-height:1.65}.memory-term>button span{font-size:16px}.memory-term .ui-icon{width:18px;height:18px;transition:transform .18s}.memory-term.open .ui-icon{transform:rotate(180deg)}.memory-detail p{font-size:16px;color:#304b3e}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #3898bf;outline-offset:3px}::selection{background:#ccebdc;color:#163c2c}textarea{caret-color:#198b59}body{scrollbar-color:#b8cbc0 #f5f8f6}
.library-term-head small,.term-row small{font-size:12px;color:#5a7065}.library-term-detail>p{font-size:16px}.point-cloud span{font-size:12px}.library-actions span{font-size:11px}.record-row span{font-size:12px}.v4-page{padding-bottom:35px}.exam-card{box-shadow:0 7px 22px rgba(16,62,49,.1)}
@media(max-width:520px){.v4-header{gap:8px}.mode-trigger b{font-size:12px}.v4-brand{font-size:15px;gap:6px}.v4-brand>span{width:28px;height:28px}.memory-links button{gap:7px;padding:14px 7px}.memory-links span{font-size:12px}.memory-links b{font-size:21px}.memory-links .ui-icon{width:22px;height:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.calendar-emblem .ui-icon{color:#d56c26;fill:#ffe5b5;width:27px;height:30px}.era-head>.ui-icon,.library-term-head>.ui-icon{width:18px;height:18px;color:#647c70}.era-card.open .era-head>.ui-icon,.library-term.open .library-term-head>.ui-icon{transform:rotate(180deg)}.v4-lesson .clue-card{border:1px solid #e0eae4}
/* v5: account, collection and answer feedback */
.v4-tabs{grid-template-columns:repeat(4,1fr)}
.profile-button{border:0;background:transparent;display:flex;align-items:center;gap:7px;color:#42645b;font-weight:750;min-width:66px;justify-content:flex-end}
.profile-button .ui-icon{width:23px}.profile-button i,.account-id>i,.friend-card>i,.desk-people i{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#dff6eb;color:#087950;font-style:normal;font-weight:850}
.profile-button span{max-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.favorite-detail{float:right;border:1px solid #d9e9e2;background:#fff;color:#47645c;border-radius:12px;padding:8px 11px;display:flex;align-items:center;gap:6px}.favorite-detail .ui-icon{width:17px}.favorite-detail.on,.feedback-favorite.on{color:#0d9464;background:#e6f8ef}
.collection-tabs{display:grid;grid-template-columns:1fr 1fr;background:#e9f1ee;border-radius:16px;padding:4px;margin:18px 0}.collection-tabs button{border:0;background:transparent;border-radius:13px;padding:12px;color:#71847e;font-weight:800}.collection-tabs button.on{background:#fff;color:#145a47;box-shadow:0 2px 8px #274c3d14}.collection-tabs b{margin-left:4px;color:#16a471}
.collection-list{display:grid;gap:12px}.collection-list article{background:#fff;border:1px solid #e2ece8;border-radius:19px;padding:17px;display:grid;grid-template-columns:1fr auto;gap:9px;box-shadow:0 4px 15px #29493e0a}.collection-list article div{grid-row:span 2}.collection-list article span,.collection-list article small{font-size:12px;color:#82918c}.collection-list article h3{margin:5px 0;font-size:18px}.collection-list article button{border:0;border-radius:11px;padding:8px 11px;font-weight:750;background:#e7f7f0;color:#087950}.collection-list article button:last-child{background:#128d62;color:#fff}.empty-collection{min-height:45vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#83928d;gap:10px}.empty-collection .ui-icon{width:38px;height:38px;color:#b7c9c2}.empty-collection b{font-size:18px;color:#526760}.empty-collection span{font-size:13px}
.feedback-head{position:relative}.feedback-favorite{margin-left:auto;border:0;background:#edf3f0;border-radius:12px;width:42px;height:42px;color:#698078;display:grid;place-items:center}.feedback-favorite .ui-icon{width:21px}.feedback .answer-card{order:0;background:#fff;border:2px solid #b9e8d1}.feedback .answer-card p{font-size:16px;line-height:1.72;color:#263d36;margin-top:8px}.feedback .answer-card strong{color:#087950;font-weight:850}.feedback-inner{scroll-padding-top:12px}
.account-sheet{width:min(94vw,520px);max-height:90dvh;overflow:auto;background:#fff;border-radius:28px 28px 0 0;padding:16px 22px calc(24px + env(safe-area-inset-bottom));position:absolute;bottom:0}.account-sheet>.modal-close{position:absolute;right:18px;top:18px}.account-hero{text-align:center;padding:26px 15px 18px}.account-hero>i{display:grid;place-items:center;margin:auto;width:64px;height:64px;border-radius:22px;background:#daf7e9;color:#09885b}.account-hero .ui-icon{width:30px}.account-hero h2{margin:16px 0 7px}.account-hero p{color:#71847e;font-size:14px;line-height:1.55}.account-sheet>input,.friend-search input{width:100%;box-sizing:border-box;border:1.5px solid #dbe8e3;background:#f8fbfa;border-radius:14px;padding:14px;font-size:16px;outline:none}.account-sheet>.primary,.wechat-login{width:100%;margin-top:12px}.wechat-login{border:1px solid #dbe8e3;background:#fff;border-radius:14px;padding:13px;font-weight:800;color:#24433a}.wechat-login span{display:inline-grid;place-items:center;background:#11af5d;color:#fff;width:25px;height:25px;border-radius:8px;margin-right:7px}.social-message{font-size:12px;color:#d65a4a;text-align:center;line-height:1.5}.account-id{display:flex;align-items:center;gap:12px;padding:22px 4px 16px}.account-id>i{width:48px;height:48px;border-radius:16px}.account-id h2{margin:0;font-size:21px}.account-id p{margin:4px 0 0;color:#7b8d87;font-size:12px}.social-sheet>h3{font-size:15px;margin:21px 0 9px}.social-sheet>h3 small{color:#879991}
.friend-search{display:flex;gap:8px;margin:16px 0}.friend-search button,.friend-card button,.desk-card>button{border:0;border-radius:12px;padding:0 14px;background:#118b61;color:#fff;font-weight:800}.friend-card{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #ecf2ef}.friend-card div{min-width:0;flex:1;display:flex;flex-direction:column}.friend-card span,.friend-card small{color:#84938e;font-size:11px}.friend-card button{padding:9px 10px}.desk-empty,.desk-card{background:linear-gradient(145deg,#e6f8ef,#f3fbf7);border:1px solid #cdebdc;border-radius:19px;padding:17px;display:flex;flex-direction:column;gap:7px}.desk-empty span{font-size:13px;color:#668078;line-height:1.5}.desk-title{display:flex;justify-content:space-between}.desk-title span{color:#6b8179;font-size:12px}.desk-title b{color:#07875b}.desk-people{display:flex;align-items:center;justify-content:center;gap:22px;padding:13px}.desk-people>div{display:flex;flex-direction:column;align-items:center;gap:4px}.desk-people i{width:43px;height:43px}.desk-people span{font-size:11px;color:#72857e}.desk-people em{font-style:normal;color:#9bb2aa}.desk-progress{display:flex;justify-content:space-between;font-size:12px;color:#537168}.desk-card>button{padding:11px;margin-top:5px}
@media(max-width:500px){.feedback{max-height:72dvh}.feedback .answer-card p{font-size:15px}.v4-tabs button span{font-size:11px}.profile-button span{display:none}.mode-trigger{min-width:104px}}
.reset-entry{display:block;width:100%;border:0;background:transparent;color:#d1554d;font-weight:750;padding:16px 8px 5px;margin-top:8px}.reset-layer{z-index:120}.reset-sheet{width:min(88vw,420px);box-sizing:border-box;background:#fff;border-radius:24px;padding:27px 24px;text-align:center;box-shadow:0 24px 80px #132a2240}.reset-warning{display:grid;place-items:center;margin:0 auto 14px;width:52px;height:52px;border-radius:18px;background:#fff0ee;color:#df5148;font-size:29px;font-weight:900}.reset-sheet h2{font-size:22px;margin:0 0 10px}.reset-sheet p{color:#697b75;line-height:1.6;font-size:14px;margin:0}.reset-sheet>strong{display:block;color:#d84239;margin:10px 0 20px}.reset-sheet label{display:block;text-align:left;color:#667a73;font-size:12px;font-weight:700;margin-bottom:7px}.reset-sheet input{width:100%;box-sizing:border-box;border:1.5px solid #d7e2de;border-radius:13px;padding:13px;text-align:center;font-size:16px;outline:none}.reset-sheet input:focus{border-color:#e26961}.danger-reset,.cancel-reset{width:100%;border:0;border-radius:13px;padding:13px;margin-top:11px;font-size:15px;font-weight:850}.danger-reset{background:#da4c44;color:#fff;box-shadow:0 4px 0 #ad342e}.danger-reset:disabled{background:#e7e9e8;color:#a3aaa7;box-shadow:none}.cancel-reset{background:#f0f4f2;color:#4d625b}
.auth-fields{display:grid;gap:10px}.auth-fields input{width:100%;box-sizing:border-box;border:1.5px solid #dbe8e3;background:#f8fbfa;border-radius:14px;padding:14px;font-size:16px;outline:none}.auth-fields input:focus{border-color:#20a777;background:#fff}.auth-switch{display:block;width:100%;border:0;background:transparent;color:#16865f;font-weight:750;padding:14px}.logout-button{margin-left:auto;border:0;background:#f1f5f3;color:#6b7c76;border-radius:10px;padding:8px 11px;font-weight:750}
.unknown-choice{display:block;margin:15px auto 0;border:0;background:transparent;color:#71847e;font-size:15px;font-weight:800;padding:10px 22px}.unknown-choice.used{color:#16865f}.question-hint{margin:8px 0 0;border:1px solid #cce9dc;background:#f0fbf6;border-radius:16px;padding:14px 16px;animation:hint-in .22s ease-out}.question-hint span{font-size:12px;font-weight:850;color:#118c61}.question-hint p{margin:6px 0 0;color:#405a51;font-size:14px;line-height:1.6}.resume-session{width:100%;border:1px solid #bee6d4;background:linear-gradient(135deg,#e6faf0,#f7fcf9);color:#146c50;border-radius:17px;padding:13px 16px;margin-bottom:14px;display:flex;align-items:center;gap:8px;text-align:left}.resume-session span{font-weight:850}.resume-session b{margin-left:auto;font-size:13px}.resume-session i{font-style:normal;font-size:22px}@keyframes hint-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.definition-reviewing{display:block;color:#7b5b1b;background:#fff8e8;border:1px solid #f1ddb0;border-radius:12px;padding:12px 14px;font-weight:700}.library-actions.pending button{opacity:.45;filter:grayscale(.35);cursor:not-allowed}
.input-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:#7a8b85;font-size:12px}.input-hint span:before{content:'⌨';margin-right:6px;color:#16865f}.input-hint b{font-weight:800;color:#557068;white-space:nowrap}

.forecast-panel .forecast-formula{display:block;margin-top:9px;color:#a9cabe;font-size:10px;line-height:1.45}.forecast-panel dd{white-space:nowrap}
