:root{--bg: #f4f1ea;--surface: #fffdf8;--surface-2: #faf7f0;--surface-3: #f2ede3;--ink: #221f1a;--ink-2: #4a4438;--muted: #857c6d;--line: #e4ded1;--line-strong: #d3cabb;--green: #2e6b56;--green-2: #3f8a6f;--green-soft: #e6efe9;--clay: #b25f3c;--clay-soft: #f8e9df;--blue: #3d6485;--blue-soft: #e8eef4;--gold: #a9853f;--gold-soft: #f6eeda;--danger: #b3413a;--danger-soft: #f9e7e4;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(34, 31, 26, .04), 0 8px 24px -12px rgba(34, 31, 26, .12);--serif: "Songti SC", "Noto Serif SC", "STSong", "SimSun", serif;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background-image:radial-gradient(circle at 8% 2%,rgba(169,133,63,.07),transparent 30%),radial-gradient(circle at 92% 10%,rgba(46,107,86,.06),transparent 28%);background-attachment:fixed}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4{margin:0;font-weight:600}p{margin:0}ul{margin:0;padding:0;list-style:none}::selection{background:#d8e6de}.app{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;padding:22px 14px 18px;background:#fbf9f3db;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 20px}.brand-seal{width:36px;height:36px;border-radius:11px;background:var(--green);color:#f8f5ec;display:grid;place-items:center;font-family:var(--serif);font-size:20px;line-height:1;box-shadow:inset 0 0 0 1px #ffffff29}.brand-name{font-family:var(--serif);font-size:18px;letter-spacing:1px}.brand-sub{font-size:10px;color:var(--muted);letter-spacing:1.4px;text-transform:uppercase;margin-top:1px}.nav-label{font-size:10px;letter-spacing:1.6px;color:var(--muted);padding:10px 12px 6px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:var(--ink-2);font-size:13.5px;transition:background .16s ease,color .16s ease;position:relative}.nav-item:hover{background:#2e6b560f}.nav-item.active{background:var(--green-soft);color:var(--green);font-weight:600}.nav-item svg{width:18px;height:18px;flex:none;opacity:.85}.nav-item span{white-space:nowrap}.nav-item .nav-badge{margin-left:auto;font-size:10px;min-width:18px;height:18px;border-radius:9px;background:var(--clay);color:#fff;display:grid;place-items:center;padding:0 5px;font-weight:600}.nav-item.active .nav-badge{background:var(--clay)}.sidebar-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--line)}.ai-pill{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;background:var(--line-strong)}.dot.on{background:var(--green-2);box-shadow:0 0 0 3px #3f8a6f1f}.sidebar-foot a{color:var(--green);margin-left:auto;font-size:11.5px}.main{margin-left:232px;flex:1;padding:30px 38px 72px;max-width:1220px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-title{font-family:var(--serif);font-size:29px;letter-spacing:.5px;line-height:1.25}.page-sub{color:var(--muted);font-size:13px;margin-top:7px}.page-actions{display:flex;gap:9px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px 22px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.card-title .sub{color:var(--muted);font-weight:400;font-size:12px}.grid{display:grid;gap:16px}.grid>*{min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.today-split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}.settings-split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;align-items:start}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 15px;border-radius:10px;border:1px solid transparent;font-size:13.5px;font-weight:500;line-height:1.2;transition:transform .1s ease,background .16s ease,border-color .16s ease,opacity .16s;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn svg{width:16px;height:16px}.btn-primary{background:var(--green);color:#fdfbf5}.btn-primary:hover{background:#275c4a}.btn-soft{background:var(--green-soft);color:var(--green)}.btn-soft:hover{background:#d9e8df}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-2)}.btn-ghost:hover{background:var(--surface-2);border-color:var(--muted)}.btn-clay{background:var(--clay);color:#fff}.btn-clay:hover{background:#a0522f}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:8px}.btn-lg{padding:12px 22px;font-size:15px;border-radius:12px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-block{width:100%}.icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;display:grid;place-items:center;color:var(--muted)}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.icon-btn svg{width:16px;height:16px}.input,.select,.textarea{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--line-strong);background:#fff;font-size:13.5px;outline:none;transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px #3f8a6f1f}.textarea{resize:vertical;min-height:92px;line-height:1.7}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:12px;color:var(--muted);font-weight:500}.field .hint{font-size:11.5px;color:var(--muted);line-height:1.5}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;background:var(--surface-3);color:var(--ink-2);white-space:nowrap}.tag.green{background:var(--green-soft);color:var(--green)}.tag.clay{background:var(--clay-soft);color:var(--clay)}.tag.blue{background:var(--blue-soft);color:var(--blue)}.tag.gold{background:var(--gold-soft);color:var(--gold)}.tag.red{background:var(--danger-soft);color:var(--danger)}.tag.line{background:transparent;border:1px solid var(--line-strong);color:var(--muted)}.seg{display:inline-flex;background:var(--surface-3);border-radius:10px;padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:6px 13px;border-radius:8px;font-size:12.5px;color:var(--muted);font-weight:500;transition:all .16s}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000014}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}.tabs button{border:0;background:transparent;padding:10px 14px 12px;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button.on{color:var(--green);border-bottom-color:var(--green);font-weight:600}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:11px}.serif{font-family:var(--serif)}.strong{font-weight:600}.row{display:flex;align-items:center;gap:8px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.divider{height:1px;background:var(--line);margin:16px 0}.hello{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}.hello h1{font-family:var(--serif);font-size:32px;letter-spacing:.6px}.hello .date{color:var(--muted);font-size:13px;margin-top:6px}.streak{display:flex;align-items:center;gap:10px;padding:9px 15px;background:var(--surface);border:1px solid var(--line);border-radius:999px}.streak b{font-family:var(--serif);font-size:21px;color:var(--clay);line-height:1}.streak span{font-size:12px;color:var(--muted)}.stat{padding:18px 20px;position:relative;overflow:hidden}.stat .label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.stat .value{font-family:var(--serif);font-size:34px;line-height:1.15;margin-top:8px;letter-spacing:-.5px}.stat .value small{font-size:13px;color:var(--muted);font-family:var(--sans);margin-left:4px;letter-spacing:0}.stat .foot{font-size:11.5px;color:var(--muted);margin-top:4px}.stat.accent-green{background:linear-gradient(160deg,#f3f8f4,var(--surface) 65%)}.stat.accent-clay{background:linear-gradient(160deg,#fbf1ea,var(--surface) 65%)}.stat.accent-gold{background:linear-gradient(160deg,#faf5e8,var(--surface) 65%)}.stat.accent-blue{background:linear-gradient(160deg,#eff4f8,var(--surface) 65%)}.plan{display:flex;flex-direction:column}.plan-item{display:flex;gap:14px;padding:15px 0;border-bottom:1px dashed var(--line);align-items:center}.plan-item:last-child{border-bottom:0;padding-bottom:2px}.plan-num{width:26px;height:26px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-size:12px;color:var(--muted);flex:none;font-weight:600}.plan-item.done .plan-num{background:var(--green);color:#fff}.plan-body{flex:1;min-width:0}.plan-title{font-size:14px;font-weight:500}.plan-desc{font-size:12px;color:var(--muted);margin-top:2px}.bars{display:flex;align-items:flex-end;gap:8px;height:76px}.bars .bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}.bars .bar-fill{width:100%;max-width:26px;background:var(--green-soft);border-radius:5px 5px 2px 2px;min-height:4px;transition:height .4s}.bars .bar.today .bar-fill{background:var(--green)}.bars .bar-label{font-size:10px;color:var(--muted)}.kp-list{display:flex;flex-direction:column;gap:11px}.kp-line{display:flex;align-items:center;gap:10px;min-width:0}.kp-name{font-size:12.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kp-bar{flex:1;height:5px;background:var(--surface-3);border-radius:3px;overflow:hidden}.kp-bar>i{display:block;height:100%;background:var(--clay);border-radius:3px}.kp-count{font-size:11px;color:var(--muted)}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick{padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;transition:transform .16s,border-color .16s,box-shadow .16s}.quick:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow)}.quick-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.quick-icon svg{width:17px;height:17px}.quick b{font-size:13.5px;font-weight:600}.quick span{font-size:11.5px;color:var(--muted);line-height:1.45}.grade-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px;align-items:start}.drop{border:1.5px dashed var(--line-strong);border-radius:18px;background:var(--surface);min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px;text-align:center;transition:all .18s;cursor:pointer;position:relative;overflow:hidden}.drop:hover,.drop.over{border-color:var(--green-2);background:#fbfdfb}.drop.has-image{padding:0;border-style:solid}.drop img{width:100%;height:100%;max-height:520px;object-fit:contain;background:#efece4}.drop .drop-icon{width:54px;height:54px;border-radius:16px;background:var(--green-soft);color:var(--green);display:grid;place-items:center}.drop .drop-icon svg{width:26px;height:26px}.drop b{font-size:15px;font-weight:600}.drop span{font-size:12px;color:var(--muted)}.drop .change{position:absolute;right:12px;bottom:12px;background:#221f1a9e;color:#fff;padding:5px 11px;border-radius:8px;font-size:11.5px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.scan{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:12px;background:var(--green-soft);color:var(--green);font-size:13px}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(46,107,86,.22);border-top-color:var(--green);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.score-hero{display:flex;align-items:center;gap:20px;padding:22px}.ring{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;flex:none;position:relative}.ring:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:50%;background:var(--surface)}.ring-inner{position:relative;z-index:1;text-align:center}.ring-inner b{font-family:var(--serif);font-size:26px;line-height:1;display:block}.ring-inner span{font-size:10px;color:var(--muted)}.score-hero h3{font-size:17px;margin-bottom:4px}.encouragement{font-size:12.5px;color:var(--clay);background:var(--clay-soft);padding:5px 10px;border-radius:8px;display:inline-block;margin-top:8px}.item-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:16px 18px;margin-bottom:12px}.item-card.wrong{border-left:3px solid var(--clay)}.item-card.right{border-left:3px solid var(--green-2)}.item-top{display:flex;align-items:flex-start;gap:10px}.badge-seq{width:24px;height:24px;border-radius:7px;background:var(--surface-3);font-size:11.5px;display:grid;place-items:center;flex:none;color:var(--muted);font-weight:600;margin-top:1px}.item-stem{font-size:14px;line-height:1.65;flex:1}.result-mark{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;flex:none}.result-mark.ok{background:var(--green-soft);color:var(--green)}.result-mark.no{background:var(--clay-soft);color:var(--clay)}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.answer-box{background:var(--surface-2);border-radius:9px;padding:9px 12px;font-size:12.5px}.answer-box .lbl{font-size:10.5px;color:var(--muted);display:block;margin-bottom:2px;letter-spacing:.5px}.answer-box.wrong-answer{background:var(--clay-soft)}.answer-box.right-answer{background:var(--green-soft)}.analysis{margin-top:12px;padding:11px 13px;background:#fbf8f1;border-radius:9px;font-size:12.5px;line-height:1.75;color:var(--ink-2);border:1px dashed var(--line)}.analysis b{color:var(--green);font-weight:600}.item-actions{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}.recent{display:flex;flex-direction:column;gap:9px}.recent-row{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 0;border-bottom:1px dashed var(--line);font-size:12.5px}.recent-row:last-child{border-bottom:0}.recent-row .mini{width:34px;height:34px;border-radius:8px;object-fit:cover;background:var(--surface-3);flex:none}.filter-bar{display:flex;gap:9px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filter-bar .search{flex:1;min-width:180px;position:relative}.filter-bar .search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}.filter-bar .search .input{padding-left:33px}.q-card{padding:16px 18px;border-bottom:1px solid var(--line);transition:background .14s}.q-card:last-child{border-bottom:0}.q-card:hover{background:var(--surface-2)}.q-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.q-stem{font-size:14px;line-height:1.75}.q-stem .blank{color:var(--muted)}.q-answer-preview{margin-top:9px;font-size:12.5px;color:var(--green)}.q-detail{background:var(--surface-2);border-radius:10px;padding:14px;margin-top:12px;font-size:13px;line-height:1.8}.option{padding:4px 0}.option.correct{color:var(--green);font-weight:600}.pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 0 4px}.mistake{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:16px 18px}.mistake-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mastery{width:100%;height:5px;border-radius:3px;background:var(--surface-3);margin-top:8px;overflow:hidden}.mastery>i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--clay),var(--gold));transition:width .4s}.mastery.high>i{background:linear-gradient(90deg,var(--green-2),var(--green))}.mistake-actions{display:flex;gap:7px;margin-top:13px;flex-wrap:wrap}.overview{display:flex;gap:26px;align-items:center;padding:18px 22px;flex-wrap:wrap}.overview .num{font-family:var(--serif);font-size:27px;line-height:1}.overview .lbl{font-size:11px;color:var(--muted);margin-top:5px}.unit-scroll{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px}.unit-chip{flex:0 0 auto}.unit-chip{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:9px 13px;display:flex;flex-direction:column;gap:1px;min-width:118px;text-align:left;transition:all .15s}.unit-chip:hover{border-color:var(--green-2)}.unit-chip.on{border-color:var(--green);background:var(--green-soft)}.unit-chip b{font-size:12px;font-weight:600}.unit-chip span{font-size:10.5px;color:var(--muted)}.unit-chip .u-bar{height:3px;border-radius:2px;background:var(--line);margin-top:6px;overflow:hidden}.unit-chip .u-bar i{display:block;height:100%;background:var(--green-2)}.word-table{width:100%;border-collapse:collapse}.word-table th{text-align:left;font-size:10.5px;color:var(--muted);font-weight:500;letter-spacing:.8px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}.word-table td{padding:12px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}.word-table tr:last-child td{border-bottom:0}.word-table tr:hover td{background:var(--surface-2)}.word-en{font-family:var(--serif);font-size:15.5px;font-weight:600;letter-spacing:.2px}.word-phon{font-size:11px;color:var(--muted);margin-top:1px}.word-meaning{color:var(--ink-2)}.word-example{font-size:11.5px;color:var(--muted);margin-top:2px;font-style:italic}.flash-wrap{display:flex;flex-direction:column;align-items:center;gap:18px;padding:10px 0}.flashcard{width:min(560px,100%);min-height:300px;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:34px;text-align:center;cursor:pointer;position:relative;transition:transform .2s}.flashcard:hover{transform:translateY(-2px)}.flashcard .word-big{font-family:var(--serif);font-size:46px;letter-spacing:1px;line-height:1.1}.flashcard .phon{font-family:var(--serif);font-size:15px;color:var(--muted)}.flashcard .meaning-big{font-size:24px;font-weight:600}.flashcard .ex{font-size:13px;color:var(--ink-2);max-width:420px;line-height:1.8}.flashcard .ex i{color:var(--muted);font-size:12px;display:block;margin-top:4px}.flashcard .flip-hint{position:absolute;bottom:16px;font-size:10.5px;color:var(--muted);letter-spacing:.5px}.flashcard .speak{position:absolute;top:14px;right:14px}.flash-progress{width:min(560px,100%);height:3px;background:var(--line);border-radius:2px;overflow:hidden}.flash-progress i{display:block;height:100%;background:var(--green);transition:width .3s}.quiz-card{max-width:720px;margin:0 auto}.quiz-prompt{text-align:center;padding:34px 20px 22px}.quiz-prompt .q-label{font-size:10.5px;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase}.quiz-prompt .q-main{font-family:var(--serif);font-size:34px;margin-top:10px;line-height:1.3}.quiz-prompt .q-phon{color:var(--muted);font-family:var(--serif);margin-top:4px}.quiz-prompt .q-hint{font-size:12px;color:var(--muted);margin-top:8px;letter-spacing:2px}.option-btn{width:100%;text-align:left;padding:13px 16px;border-radius:11px;border:1px solid var(--line-strong);background:var(--surface);font-size:14px;margin-bottom:9px;transition:all .14s;display:flex;gap:10px;align-items:center}.option-btn:hover{border-color:var(--green-2);background:var(--green-soft)}.option-btn .key{width:22px;height:22px;border-radius:6px;background:var(--surface-3);display:grid;place-items:center;font-size:11px;color:var(--muted);flex:none}.option-btn.right{border-color:var(--green);background:var(--green-soft)}.option-btn.wrong{border-color:var(--clay);background:var(--clay-soft)}.quiz-foot{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--line);margin-top:14px;font-size:12px;color:var(--muted)}.chinese-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.list-pane{display:flex;flex-direction:column;gap:7px;max-height:calc(100vh - 210px);overflow:auto;padding-right:4px}.list-item{text-align:left;padding:12px 14px;border-radius:11px;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;gap:3px;transition:background .14s,border-color .14s}.list-item:hover{background:var(--surface-2)}.list-item.on{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}.list-item b{font-size:13.5px;font-weight:600}.list-item span{font-size:11px;color:var(--muted)}.essay-body,.passage{font-family:var(--serif);font-size:16.5px;line-height:2.05;color:#2b2720}.essay-body p,.passage p{text-indent:2em;margin-bottom:10px}.passage{max-height:560px;overflow:auto;padding-right:8px}.classic-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}.classic-cols.one{grid-template-columns:1fr}.classic-original{font-family:var(--serif);font-size:17.5px;line-height:2.2;white-space:pre-wrap;letter-spacing:.5px}.classic-original p{margin-bottom:6px}.translation{font-size:14px;line-height:2;color:var(--ink-2);white-space:pre-wrap}.note-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.note-item{display:flex;gap:8px;padding:8px 11px;background:var(--surface-2);border-radius:8px;font-size:12.5px}.note-item b{font-family:var(--serif);color:var(--green);flex:none}.qa{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.qa:first-child{border-top:0;margin-top:0;padding-top:0}.qa .q{font-size:13.5px;font-weight:500;line-height:1.7}.qa .a{margin-top:8px;padding:11px 13px;background:var(--green-soft);border-radius:9px;font-size:13px;line-height:1.8;color:#264f41}.annotation{display:flex;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.annotation:last-child{border-bottom:0}.annotation .n{width:20px;height:20px;border-radius:50%;background:var(--clay-soft);color:var(--clay);font-size:10.5px;display:grid;place-items:center;flex:none;margin-top:2px}.annotation b{font-size:12px;display:block}.annotation span{font-size:12px;color:var(--muted);line-height:1.6}.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.provider{text-align:left;padding:13px 15px;border-radius:12px;border:1px solid var(--line);background:var(--surface);transition:all .15s}.provider:hover{border-color:var(--line-strong)}.provider.on{border-color:var(--green);background:var(--green-soft)}.provider b{font-size:13px;display:flex;align-items:center;gap:6px}.provider span{font-size:11px;color:var(--muted);display:block;margin-top:3px;line-height:1.5}.notice{display:flex;gap:10px;padding:12px 15px;border-radius:11px;font-size:12.5px;line-height:1.65}.notice.info{background:var(--blue-soft);color:#2f5473}.notice.warn{background:var(--gold-soft);color:#7a5e23}.notice.ok{background:var(--green-soft);color:#25523f}.notice.err{background:var(--danger-soft);color:#8c332d}.notice svg{width:16px;height:16px;flex:none;margin-top:2px}.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:12.5px}.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--muted)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#221f1a61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:22px;z-index:100;animation:fade .16s ease}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border-radius:18px;width:100%;max-width:680px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 60px -20px #00000059;animation:pop .18s ease}@keyframes pop{0%{transform:translateY(8px) scale(.99);opacity:0}}.modal.wide{max-width:880px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-head h3{font-size:16px}.modal-body{padding:20px 22px;overflow:auto}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid var(--line)}.empty{text-align:center;padding:44px 20px;color:var(--muted)}.empty .e-icon{width:46px;height:46px;border-radius:14px;background:var(--surface-3);display:grid;place-items:center;margin:0 auto 12px}.empty .e-icon svg{width:22px;height:22px;opacity:.5}.empty b{display:block;font-size:13.5px;color:var(--ink-2);font-weight:500;margin-bottom:4px}.empty span{font-size:12px}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,#f7f3ea 50%,var(--surface-3) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:8px}@keyframes shimmer{to{background-position:-200% 0}}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:var(--ink);color:#f8f5ec;padding:10px 18px;border-radius:10px;font-size:13px;z-index:200;box-shadow:0 10px 30px #00000038;animation:pop .18s ease}.toast.err{background:var(--danger)}@media (max-width: 1080px){.grid-4{grid-template-columns:repeat(2,1fr)}.grade-layout{grid-template-columns:1fr}.chinese-grid{grid-template-columns:220px minmax(0,1fr)}}@media (max-width: 860px){.classic-cols{grid-template-columns:1fr}.sidebar{position:fixed;inset:auto 0 0 0;width:100%;height:62px;flex-direction:row;align-items:center;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));gap:0;overflow:visible;border-right:0;border-top:1px solid var(--line);border-bottom:0;background:#fcfaf5f7;z-index:60}.brand,.nav-label,.sidebar-foot{display:none}.nav-item{flex:1;flex-direction:column;gap:3px;padding:4px 1px;font-size:9.5px;border-radius:9px;justify-content:center;color:var(--muted)}.nav-item svg{width:19px;height:19px}.nav-item .nav-badge{position:absolute;top:1px;right:50%;margin-right:-22px;margin-left:0;height:15px;min-width:15px;font-size:9px;padding:0 4px}.nav-item.active{background:transparent;color:var(--green);font-weight:600}.nav-item.active svg{stroke-width:2}.app{flex-direction:column}.main{margin-left:0;padding:20px 16px 84px}.today-split,.settings-split{grid-template-columns:minmax(0,1fr)}.page-title{font-size:24px}.hello h1{font-size:26px}.grid-3,.grid-2{grid-template-columns:minmax(0,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}.chinese-grid{grid-template-columns:1fr}.list-pane{max-height:220px}.form-row,.provider-grid,.note-grid,.answer-grid{grid-template-columns:1fr}.modal-body{padding:16px}.word-table th:nth-child(3),.word-table td:nth-child(3){display:none}}@media (max-width: 520px){.grid-4{grid-template-columns:1fr 1fr}.stat .value{font-size:27px}.flashcard{min-height:260px;padding:24px}.flashcard .word-big{font-size:36px}.quiz-prompt .q-main{font-size:27px}}@media print{.sidebar,.page-actions,.tabs,.filter-bar,.item-actions,.mistake-actions,.pager{display:none!important}.main{margin:0;padding:0;max-width:none}body{background:#fff}.card,.item-card{box-shadow:none;break-inside:avoid}}.update-banner{position:sticky;top:10px;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:14px;border-radius:12px;background:var(--gold-soft);border:1px solid #e8d9b5;color:#6f5520;font-size:13px;box-shadow:var(--shadow)}.page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.page-thumb{position:relative;aspect-ratio:3 / 4;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--surface-3)}.page-thumb img{width:100%;height:100%;object-fit:cover;display:block}.page-no{position:absolute;left:7px;top:7px;width:20px;height:20px;border-radius:50%;background:#221f1aad;color:#fff;font-size:10.5px;display:grid;place-items:center}.page-del{position:absolute;right:6px;top:6px;width:22px;height:22px;border-radius:50%;border:0;background:#221f1aad;color:#fff;font-size:15px;line-height:1;display:grid;place-items:center;cursor:pointer}.page-add{aspect-ratio:3 / 4;border:1.5px dashed var(--line-strong);border-radius:12px;background:var(--surface-2);color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:11px}.page-add:hover{border-color:var(--green-2);color:var(--green)}.archive-group{margin-bottom:18px}.archive-date{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:8px}.archive-date b{color:var(--ink-2);font-weight:600}.archive-row{display:flex;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:8px;cursor:pointer;transition:border-color .15s,transform .15s}.archive-row:hover{border-color:var(--line-strong);transform:translateY(-1px)}.archive-thumb{width:54px;height:68px;object-fit:cover;border-radius:8px;background:var(--surface-3);flex:none}.archive-meta{flex:1;min-width:0}.archive-score{text-align:right;flex:none}.archive-score b{font-family:var(--serif);font-size:19px}.archive-score span{display:block;font-size:10.5px;color:var(--muted)}.report-hero{display:flex;gap:30px;align-items:center;padding:22px;flex-wrap:wrap}.report-rate{font-family:var(--serif);font-size:52px;line-height:1}.report-rate small{font-size:17px}.report-kpis{display:flex;gap:24px;flex-wrap:wrap}.report-kpis .num{font-size:20px;font-weight:600}.report-kpis .lbl{font-size:11px;color:var(--muted)}.subject-report{border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--surface)}.subject-report .rate-bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden;margin:10px 0 8px}.subject-report .rate-bar i{display:block;height:100%;border-radius:3px;background:var(--green-2)}.subject-report .rate-bar.warn i{background:var(--clay)}@media (max-width: 520px){.page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-hero{gap:18px}.report-rate{font-size:42px}}.task-check{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);color:#fff;display:grid;place-items:center;flex:none;transition:all .15s}.task-check:hover{border-color:var(--green-2)}.task-check.on{background:var(--green);border-color:var(--green)}.plan-task.done .plan-title{text-decoration:line-through;color:var(--muted)}.plan-task.done .plan-desc{opacity:.55}.plan-task{align-items:center}.plan-task .plan-body{min-width:0}.nav-short{display:none}.prose{font-size:14.5px;line-height:1.95;color:var(--ink-2)}.prose h1{font-family:var(--serif);font-size:26px;color:var(--ink);margin:4px 0 14px;letter-spacing:.5px}.prose h2{font-size:18px;color:var(--ink);margin:26px 0 10px;padding-bottom:7px;border-bottom:1px solid var(--line)}.prose h3{font-size:15.5px;color:var(--ink);margin:18px 0 8px}.prose p{margin:8px 0}.prose ul,.prose ol{padding-left:20px;margin:8px 0}.prose li{list-style:disc;margin:4px 0}.prose ol li{list-style:decimal}.prose strong{color:var(--ink);font-weight:600}.prose code{background:var(--surface-3);padding:1px 5px;border-radius:5px;font-size:12.5px}.prose blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--green-2);background:var(--surface-2);color:var(--ink-2)}.prose hr{border:0;border-top:1px solid var(--line);margin:22px 0}.prose table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12.5px;display:block;overflow-x:auto;white-space:nowrap}.prose th,.prose td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}.prose th{background:var(--surface-2);font-weight:600;color:var(--ink)}.prose input[type=checkbox]{margin-right:5px}.prose a{color:var(--green);text-decoration:underline}@media (max-width: 860px){.nav-full{display:none}.nav-short{display:inline}.prose table{white-space:normal}.prose{font-size:14px}}
