:root{--paper: #fbf8ee;--panel: #fffdf6;--panel-strong: #f5efe2;--ink: #281715;--muted: #75675f;--line: #ded4c4;--blue: #78c9f2;--blue-deep: #2c86b5;--mint: #c8ead8;--peach: #ffbf91;--lavender: #d8dcff;--rose: #efb2a7;--green: #67b982;--shadow: 0 18px 60px rgba(52, 34, 27, .12);--radius: 22px;--coin-border: rgba(40, 23, 21, .78);--coin-highlight: radial-gradient(circle at 34% 28%, rgba(255, 253, 246, .95) 0 11%, transparent 12%);--coin-blue: var(--coin-highlight), linear-gradient(145deg, #bdeaff, #78c9f2 58%, #5bb4de);--coin-peach: var(--coin-highlight), linear-gradient(145deg, #ffd3b4, #ffb987 58%, #f7a56f);--coin-mint: var(--coin-highlight), linear-gradient(145deg, #d8f5e5, #a6e1bd 58%, #7bcfa0);--coin-lavender: var(--coin-highlight), linear-gradient(145deg, #edf0ff, #c8cff8 58%, #aeb8ef);--coin-rose: var(--coin-highlight), linear-gradient(145deg, #ffd7d0, #efb2a7 58%, #dc9285);--coin-shadow: inset 0 1px 0 rgba(255, 255, 255, .78), 0 2px 0 rgba(40, 23, 21, .84), 0 7px 12px rgba(52, 34, 27, .09);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--ease-snap: cubic-bezier(.2, .9, .2, 1);--ease-overshoot: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .16s;--dur-normal: .3s;--dur-slow: .6s;--dur-cascade: .9s;--app-padding: clamp(10px, 1.25vw, 18px);--app-gap: clamp(8px, 1vw, 14px);--overlay-padding: clamp(8px, 2vw, 24px);--content-panel-height: min(780px, calc(100dvh - clamp(7rem, 18dvh, 12.5rem)) );--overlay-panel-height: calc(100dvh - (var(--overlay-padding) * 2))}*{box-sizing:border-box}html{min-height:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:hidden}body,#app{min-height:100dvh}body{margin:0;overflow-x:hidden;overflow-y:auto;background:linear-gradient(#fbf8eee6,#fbf8eef7),url(/assets/learning-atlas.png) center / cover no-repeat,var(--paper);color:var(--ink);font-family:Manrope,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*,*:before,*:after{font-family:Manrope,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif!important}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.58}svg{width:18px;height:18px;stroke-width:2.35;flex:0 0 auto}h1,h2,h3,p{margin-top:0}html.is-render-update .animate-cascade,html.is-render-update .animate-bounce-slow,html.is-render-update .course-leftbar,html.is-render-update .course-card,html.is-render-update .lesson-hero,html.is-render-update .lm-overlay-shell,html.is-render-update .mindmap-node,html.is-render-update .lesson-node{animation:none!important}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:var(--app-padding);gap:var(--app-gap)}.site-footer{text-align:center;font-size:.72rem;color:var(--muted);opacity:.6;padding:8px 0 0}.topbar{width:min(1440px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{border:0;background:transparent;display:inline-flex;align-items:center;gap:10px;font-weight:850;font-size:1rem}.brand-mark{width:24px;height:24px;border-radius:47% 53% 42% 58%/55% 39% 61% 45%;background:var(--ink);box-shadow:7px 1px 0 var(--peach),-5px 8px 0 var(--blue)}.nav-actions,.action-row,.sheet-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.icon-text-button,.primary-button,.icon-button,.wide-soft-button{border:1.5px solid var(--ink);border-radius:13px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;background:#fffdf6b8;padding:0 14px;box-shadow:0 3px #28171533;transform:translateY(0) rotate(0);transition:transform .14s var(--ease-snap),box-shadow .14s var(--ease-snap),background-color .18s var(--ease-out-quart)}.icon-text-button:hover,.primary-button:hover,.icon-button:hover,.wide-soft-button:hover,.chip-row button:hover,.lesson-node:hover,.bite-sequence-grid button:hover{transform:translateY(-2px) rotate(-.35deg)}.icon-text-button:active,.primary-button:active,.icon-button:active,.wide-soft-button:active,.chip-row button:active,.lesson-node:active,.bite-sequence-grid button:active{transform:translateY(2px) scale(.985) rotate(.25deg);box-shadow:0 1px #28171538}.primary-button{background:var(--blue);box-shadow:0 5px #4e91b2;white-space:nowrap}.primary-button.is-loading{opacity:1;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 38%),var(--coin-blue);cursor:progress}.primary-button.is-disabled,.primary-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.primary-button.is-loading svg{animation:spin .9s linear infinite}.primary-button.is-loading:hover,.primary-button.is-loading:active{transform:translateY(0) rotate(0);box-shadow:0 5px #4e91b2}.wide-soft-button{width:100%;border-color:#28171547;box-shadow:none;background:#fff9}.icon-button{width:42px;padding:0}.icon-button.mini{min-height:28px;width:28px;border-radius:9px}main{min-height:0;width:min(1440px,100%);margin:0 auto}.experience-main,.home-main{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.home-main.is-generating{align-items:start}.home-layout{height:100%;min-height:0;display:grid;grid-template-columns:260px minmax(0,1fr);gap:10px;padding:clamp(6px,1.5vh,18px) 0 clamp(16px,4vh,40px)}.lm-sidebar{background:#fffdf6e0;border:1px solid rgba(40,23,21,.1);border-radius:var(--radius);box-shadow:var(--shadow);padding:0;overflow-y:auto;overscroll-behavior:contain;min-height:0;animation:block-reveal .46s var(--ease-out-quint) 70ms both;height:var(--content-panel-height);max-height:var(--content-panel-height);min-height:min(400px,var(--content-panel-height));display:flex;flex-direction:column}.lm-sidebar-content{display:flex;flex-direction:column;height:100%}.lm-sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:10px 8px;border-bottom:1px solid rgba(40,23,21,.06);flex-shrink:0}.lm-nav-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;border-radius:10px;font-size:.78rem;font-weight:700;color:#4f423abf;cursor:pointer;transition:background .12s,color .12s;-webkit-tap-highlight-color:transparent;position:relative}.lm-nav-btn:hover{background:#78c9f214}.lm-nav-btn.active{background:#f5cb4926;color:#281715e6}.lm-nav-icon{font-size:1rem;width:22px;text-align:center;flex-shrink:0}.lm-nav-badge{margin-left:auto;background:#78c9f240;color:#281715b3;font-size:.65rem;font-weight:800;padding:2px 7px;border-radius:10px;min-width:18px;text-align:center}.lm-nav-badge--warn{background:#ef53502e;color:#c62828}.lm-sidebar-panel{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:10px;display:flex;flex-direction:column;gap:6px}.lm-panel-header{font-size:.74rem;font-weight:850;color:#4f423acc;padding:4px 4px 6px;margin-bottom:2px}.lm-sidebar-empty{font-size:.72rem;color:#75675f80;text-align:center;padding:20px 0}.lm-sidebar-grade{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:10px 12px;border:1.5px solid rgba(120,201,242,.2);border-radius:14px;background:linear-gradient(135deg,#78c9f20f,#c8ead80f);cursor:pointer;transition:background .12s,box-shadow .12s;-webkit-tap-highlight-color:transparent;text-align:left;font-family:inherit}.lm-sidebar-grade:hover{background:linear-gradient(135deg,#78c9f21f,#c8ead81a);box-shadow:0 2px 8px #34221b0f}.lm-sidebar-diagnosis{border:1.5px solid rgba(255,190,144,.25);background:linear-gradient(135deg,#ffbe901a,#78c9f20f)}.lm-sidebar-diagnosis:hover{background:linear-gradient(135deg,#ffbe902e,#78c9f21a)}.lm-sidebar-grade strong{font-size:.82rem;font-weight:850;color:#281715e6}.lm-sidebar-grade-stats{font-size:.66rem;font-weight:700;color:#75675fa6}.lm-grade-selector{margin-top:4px;gap:5px}.lm-grade-selector .diagnosis-grade-chip{padding:4px 12px;font-size:.72rem}.lm-sidebar-panel .lm-grade-selector{padding:4px 0;gap:4px}.lm-sidebar-panel .lm-grade-selector .diagnosis-grade-chip{padding:3px 10px;font-size:.68rem}.lm-sidebar-progress{height:4px;border-radius:2px;background:#2817150f;margin:2px 2px 8px;overflow:hidden}.lm-sidebar-progress-bar{height:100%;border-radius:2px;background:linear-gradient(90deg,#66bb6a,#43a047);transition:width .4s ease}.lm-sidebar-units{display:flex;flex-direction:column;gap:3px}.lm-sidebar-unit{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:none;background:none;border-radius:8px;font-family:inherit;font-size:.72rem;font-weight:700;color:#4f423acc;cursor:pointer;transition:background .1s;-webkit-tap-highlight-color:transparent;text-align:left}.lm-sidebar-unit:hover{background:#78c9f20f}.lm-sidebar-unit-icon{font-size:.9rem;width:20px;text-align:center;flex-shrink:0}.lm-sidebar-unit-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lm-sidebar-unit-progress{font-size:.64rem;font-weight:750;color:#75675f8c;flex-shrink:0}.lm-unit-weak-dot{color:#c62828;font-size:.6rem}.lm-task-card{background:#fffdf6b3;border:1px solid rgba(40,23,21,.08);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}.lm-task-card.high{border-left:3px solid #ef5350}.lm-task-card.medium{border-left:3px solid #fdd835}.lm-task-card.low{border-left:3px solid #66bb6a}.lm-task-card-header{display:flex;align-items:center;justify-content:space-between}.lm-task-priority{font-size:.6rem;font-weight:800;padding:1px 6px;border-radius:6px}.lm-task-title{font-size:.74rem;font-weight:800;color:#281715e6;line-height:1.2}.lm-task-reason{font-size:.64rem;color:#75675fa6;margin:0}.lm-task-points{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.lm-task-point-tag{font-size:.6rem;font-weight:700;color:#4f423ab3;background:#78c9f21a;padding:2px 6px;border-radius:6px}.lm-weak-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#fffdf6b3;border:1px solid rgba(40,23,21,.08);border-radius:10px}.lm-weak-card-left{display:flex;align-items:center;gap:8px;min-width:0}.lm-weak-card-left strong{font-size:.74rem;font-weight:800;color:#281715e6;display:block;line-height:1.2}.lm-weak-card-left small{font-size:.6rem;color:#75675f8c}.lm-weak-emoji{font-size:1.2rem;flex-shrink:0}.lm-weak-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.lm-weak-badge{font-size:.58rem;font-weight:800;padding:2px 6px;border-radius:6px}.lm-weak-badge.rescue{background:#ef535026;color:#c62828}.lm-weak-badge.focus{background:#fdd83533;color:#f57f17}.lm-weak-start-btn{font-size:.64rem;font-weight:800;padding:4px 12px;border:none;border-radius:8px;background:linear-gradient(135deg,#f5cb49,#dea21c);color:#281715d9;cursor:pointer;-webkit-tap-highlight-color:transparent}.lm-wrong-card{background:#fffdf6b3;border:1px solid rgba(40,23,21,.08);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}.lm-wrong-card-top{display:flex;align-items:center;gap:6px}.lm-wrong-emoji{font-size:.9rem}.lm-wrong-unit-label{font-size:.68rem;font-weight:750;color:#4f423acc;flex:1}.lm-wrong-count{font-size:.6rem;font-weight:800;color:#c62828;background:#ef53501a;padding:1px 6px;border-radius:6px}.lm-wrong-question{font-size:.68rem;color:#4f423ad9;margin:0;line-height:1.3}.lm-wrong-answers{display:flex;gap:10px;font-size:.62rem}.lm-wrong-my{color:#c62828}.lm-wrong-correct{color:#2e7d32}.lm-wrong-date{font-size:.58rem;color:#75675f73}.home-content{display:grid;justify-items:center;align-items:center;min-height:0;overflow-y:auto}.prompt-home{position:relative;width:min(820px,100%);display:grid;gap:18px;margin:auto 0}.home-main.is-generating .prompt-home{margin:0}.home-section{padding:0 4px}.home-section-title{font-size:1rem;font-weight:650;margin-bottom:10px;color:var(--muted)}.recent-cards{display:flex;flex-wrap:wrap;gap:8px}.recent-card{display:flex;flex-direction:column;gap:2px;padding:10px 28px 10px 14px;border:1px solid rgba(40,23,21,.1);border-radius:10px;background:#ffffffa3;cursor:pointer;transition:background .15s;position:relative}.recent-card:hover{background:#ffffffe6}.recent-card strong{font-size:.88rem;font-weight:650;line-height:1.3}.recent-card span{font-size:.72rem;color:var(--muted)}.recent-card-del{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s,background .15s;flex-shrink:0}.recent-card:hover .recent-card-del{opacity:.5}.recent-card-del:hover{opacity:1!important;background:#ffd8cf;color:var(--rose)}.recent-card-del svg{width:11px;height:11px}.prompt-box{background:#fffdf6e0;border:1px solid rgba(40,23,21,.1);border-radius:28px;box-shadow:var(--shadow);padding:clamp(20px,4vw,42px);display:grid;gap:14px}.prompt-box h1{margin-bottom:2px;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.15;letter-spacing:-.01em}.prompt-box .topic-input-wrap{margin-top:6px;min-height:68px;border-radius:22px}.prompt-box input{font-size:1.05rem}.generating-strip{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;border:1px solid rgba(40,23,21,.12);border-radius:20px;padding:13px;background:linear-gradient(135deg,#78c9f229,#c8ead81f),#fffdf6b3;box-shadow:0 12px 28px #34221b14;animation:generation-rise .32s var(--ease-out-quint) both}.spinner-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow)}.spinner-dot svg{animation:spin 1s linear infinite}.generating-strip strong,.generating-strip span{display:block}.generating-strip span{margin-top:3px;color:var(--muted);font-size:.86rem;line-height:1.4}.generating-chunks{margin-top:10px;padding:10px 12px;border:1px solid rgba(40,23,21,.08);border-radius:12px;background:#fff6}.generating-chunks-label{font-size:.78rem;color:var(--muted);margin:0 0 6px}.generating-chunk{display:inline-block;padding:3px 10px;margin:2px 4px 2px 0;border:1px solid var(--brand-soft, rgba(163, 94, 40, .15));border-radius:8px;background:#a35e280d;font-size:.8rem;color:var(--brand, #a35e28)}.progress-steps{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}.progress-steps li{position:relative;overflow:hidden;border:1px solid rgba(40,23,21,.12);border-radius:15px;background:#ffffff8c;padding:9px 10px;opacity:.68;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;animation:progress-line-in .36s var(--ease-out-quint) both;animation-delay:calc(var(--step) * 55ms)}.progress-steps li.running,.progress-steps li.done{opacity:1}.progress-steps li.done{background:#c8ead87a}.progress-steps li.running{border-color:#2c86b56b;background:linear-gradient(90deg,#78c9f22e,#fffdf69e),#78c9f224;animation:progress-line-in .36s var(--ease-out-quint) both,pulseWiggle 4s ease-in-out 1s infinite;box-shadow:inset 0 0 0 1px #78c9f21f}.progress-steps li:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);transform:translate(-100%);animation:sweep 2.8s ease-in-out infinite;animation-delay:calc(var(--step) * .22s);pointer-events:none}.progress-steps li.waiting:after,.progress-steps li.done:after{display:none}.progress-steps .step-marker{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#fffdf6cc;border:1px solid rgba(40,23,21,.2);color:var(--muted);box-shadow:inset 0 1px #ffffffdb}.progress-steps li.done .step-marker{background:var(--coin-mint);border:1.5px solid var(--coin-border);color:var(--ink);box-shadow:var(--coin-shadow)}.progress-steps li.running .step-marker{background:var(--coin-blue);border:1.5px solid var(--coin-border);color:var(--ink);box-shadow:var(--coin-shadow)}.progress-steps li.running .step-marker svg{animation:spin 1s linear infinite}.progress-steps b,.progress-steps small,.progress-steps em{position:relative;display:block}.progress-steps b{font-size:.8rem}.progress-steps small{margin-top:3px;color:var(--muted);font-size:.72rem;line-height:1.28}.progress-steps em{justify-self:end;color:var(--muted);font-size:.62rem;font-style:normal;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.progress-steps li.running em{color:#245f79}.progress-steps li.done em{color:#376847}.analysis-checkpoint{margin-top:10px;border:1px solid rgba(40,23,21,.12);border-radius:13px;padding:10px;background:#ffffff9e}.analysis-checkpoint p{margin:5px 0 8px;color:var(--muted);font-size:.82rem;line-height:1.38}.generation-list{background:#fffdf6ad;border:1px solid rgba(40,23,21,.08);border-radius:22px;padding:14px;box-shadow:0 12px 34px #34221b14}.outline-draft{border:1px solid rgba(40,23,21,.12);border-radius:18px;background:#ffffff9e;padding:20px;display:grid;gap:16px;animation:generation-rise .26s var(--ease-out-quint) both}.outline-draft-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.outline-draft-head>:not(button){flex:1}.outline-draft h2{margin:0 0 6px;font-size:1.08rem;line-height:1.3}.outline-draft-head p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.42}.outline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.outline-card{display:flex;gap:12px;padding:14px;border-radius:12px;background:#ffffff8c;border:1px solid rgba(40,23,21,.08);cursor:default;transition:box-shadow .16s,transform .16s}.outline-card:hover{box-shadow:0 2px 8px #28171512;transform:translateY(-1px)}.outline-card-num{flex-shrink:0;width:24px;height:24px;border-radius:8px;background:var(--brand-soft, rgba(163, 94, 40, .1));color:var(--brand, #a35e28);font-size:.72rem;font-weight:750;display:flex;align-items:center;justify-content:center}.outline-card-body{display:grid;gap:4px;min-width:0}.outline-card-title{font-weight:650;font-size:.88rem;line-height:1.35;outline:none;border-radius:4px;padding:2px 4px;margin:-2px -4px}.outline-card-title:focus{background:#fffc;box-shadow:0 0 0 2px var(--brand-soft, rgba(163, 94, 40, .2))}.outline-card-desc{color:var(--muted);font-size:.78rem;line-height:1.4;outline:none;border-radius:4px;padding:2px 4px;margin:-2px -4px}.outline-card-desc:focus{background:#fffc;box-shadow:0 0 0 2px var(--brand-soft, rgba(163, 94, 40, .2))}.planning-state{text-align:center;padding:32px 20px}.planning-state .outline-draft-head{justify-content:center}.planning-state h2{text-align:center}.loading-mascot{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0}.mascot-body{font-size:2.8rem;animation:mascotBounce 1.2s ease-in-out infinite;line-height:1}.mascot-dots{display:flex;gap:5px}.mascot-dots span{width:7px;height:7px;border-radius:50%;background:var(--brand, #a35e28);animation:dotBounce 1.4s ease-in-out infinite}.mascot-dots span:nth-child(2){animation-delay:.16s}.mascot-dots span:nth-child(3){animation-delay:.32s}.mascot-hint{color:var(--muted);font-size:.84rem;text-align:center;animation:fadeSwitch 2s ease-in-out infinite}@keyframes mascotBounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-8px) scale(1.08)}60%{transform:translateY(2px) scale(.96)}}@keyframes dotBounce{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:1}}@keyframes fadeSwitch{0%,to{opacity:1}50%{opacity:.5}}.generating-strip .mascot-body{font-size:2.2rem}.generating-hint{color:var(--muted);font-size:.84rem;animation:fadeSwitch 2s ease-in-out infinite}.outline-actions{padding:0}.generation-list.empty{text-align:center;color:var(--muted)}.generation-list.empty p{margin:0}.list-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.generation-cards{display:grid;gap:8px;max-height:260px;overflow:auto}.generation-card{width:100%;position:relative;border:1px solid rgba(40,23,21,.12);border-radius:16px;background:#ffffff94;display:grid;grid-template-columns:1fr;align-items:center;gap:5px}.generation-card:hover{border-color:#28171557;background:#fffc}.generation-open{border:0;background:transparent;text-align:left;padding:12px;display:grid;gap:5px;color:inherit;text-decoration:none;cursor:pointer}.generation-open>span{width:fit-content;border-radius:999px;padding:4px 8px;background:var(--mint);color:#315642;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.generation-card.generating .generation-open>span{background:var(--lavender);color:#44405f}.generation-card.resume .generation-open>span{background:var(--peach);color:#6f3d21}.generation-card.failed .generation-open>span{background:#ffd8cf;color:#7d342c}.generation-card.new .generation-open>span{background:var(--mint);color:#315642}.generation-card.continue .generation-open>span{background:var(--blue);color:#18485f}.generation-card.finished .generation-open>span{background:#e6e0d6;color:#5b5149}.generation-card strong{font-size:.98rem}.generation-card small{color:var(--muted);line-height:1.35}.generation-card-del{position:absolute;top:8px;right:8px;width:24px;height:24px;border:none;border-radius:50%;background:#2817150f;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.4;transition:opacity .15s,background .15s}.generation-card-del:hover{opacity:1;background:#ffd8cf;color:var(--rose)}.generation-card-del svg{width:12px;height:12px}.course-header{min-height:0;background:#fffdf6d1;border:1px solid rgba(40,23,21,.1);border-radius:18px;box-shadow:0 10px 34px #34221b14;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;animation:block-reveal .42s var(--ease-out-quint) both}.course-header h1{margin-bottom:2px;font-size:clamp(1rem,1.25vw,1.22rem);line-height:1.15;font-weight:850}.course-header p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.25}.course-title-copy{min-width:0}.course-title-actions{display:flex;align-items:center;gap:8px}.dive-deeper-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(135deg,#73c8f4,#5db7e8);color:#fff;margin-top:3px;vertical-align:middle}.composer{min-height:0;background:#fffdf6d4;border:1px solid rgba(40,23,21,.1);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(280px,.74fr) minmax(420px,1fr);gap:24px;align-items:end;padding:28px}.composer.compact{padding:16px;grid-template-columns:minmax(280px,.75fr) minmax(420px,1fr);box-shadow:0 10px 34px #34221b14}.kicker{margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:850}.composer h1{margin-bottom:8px;font-size:clamp(1.5rem,2.2vw,2.6rem);line-height:1.15;letter-spacing:-.01em}.composer.compact h1{font-family:Manrope,sans-serif;font-size:clamp(1.05rem,1.5vw,1.42rem);line-height:1.15;font-weight:850}.composer p{margin-bottom:0;color:var(--muted);line-height:1.48;font-size:.92rem;max-width:680px}.error-line{margin-top:8px;color:#9b382d!important;font-weight:750}.topic-form{display:grid;gap:10px}.topic-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px;border:1px solid var(--line);border-radius:18px;background:#ffffff9e}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:12px;background:#ffffffb8;color:var(--ink);padding:11px 12px;outline:none;font-size:1rem}.topic-input-wrap input{border:0;background:transparent;min-width:0}input:focus,textarea:focus,select:focus{border-color:var(--blue-deep);box-shadow:0 0 0 4px #78c9f238}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip-row button{border:0;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:850;background:var(--lavender)}.chip-row button:nth-child(2){background:var(--mint)}.chip-row button:nth-child(3){background:var(--peach)}.chip-row button:nth-child(4){background:var(--rose)}.experience{height:100%;min-height:0;overflow:visible;display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:12px}.course-leftbar,.path-panel,.lesson-lobby,.memory-panel,.sheet,.map-shell,.practice-shell,.player-shell,.assistant-drawer{background:#fffdf6e0;border:1px solid rgba(40,23,21,.1);border-radius:var(--radius);box-shadow:var(--shadow)}.course-leftbar,.course-card{height:var(--content-panel-height);max-height:var(--content-panel-height);min-height:min(400px,var(--content-panel-height))}.course-leftbar,.path-panel,.memory-panel{min-height:0;overflow:auto;padding:16px}.course-leftbar{animation:block-reveal .46s var(--ease-out-quint) 70ms both}.panel-heading{display:flex;align-items:center;gap:8px;margin-bottom:13px;font-weight:850}.leftbar-tabs{display:flex;gap:4px;margin-bottom:13px;border-bottom:1.5px solid rgba(40,23,21,.08);padding-bottom:8px}.leftbar-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 8px;border-radius:10px;font-size:.75rem;font-weight:800;color:#28171573;background:transparent;border:none;cursor:pointer;transition:background .15s,color .15s}.leftbar-tab:hover{background:#2817150a}.leftbar-tab.active{color:#281715d9;background:#ffffffb3;box-shadow:0 1px 3px #2817150f}.leftbar-tab svg{width:14px;height:14px}.path-section+.path-section{margin-top:18px}.path-section h3{margin-bottom:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem}.lesson-node{width:100%;border:1px solid rgba(40,23,21,.13);background:#ffffff85;border-radius:16px;padding:10px;display:grid;grid-template-columns:34px 1fr;gap:10px;text-align:left;margin-bottom:8px;transform-origin:18px 50%;transition:transform .15s var(--ease-snap),background-color .18s var(--ease-out-quart),outline-color .18s var(--ease-out-quart),box-shadow .15s var(--ease-snap)}.lesson-node>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow);font-size:.78rem;font-weight:850}.lesson-node:nth-of-type(2n)>span{background:var(--coin-lavender)}.lesson-node:nth-of-type(3n)>span{background:var(--coin-mint)}.lesson-node.active>span{background:var(--coin-peach)}.lesson-node.active{outline:3px solid rgba(120,201,242,.62);background:#ffffffd1;animation:select-tick .36s var(--ease-out-quint) both}.lesson-node.completed>span{background:#34d399;color:#fff}.lesson-node.completed{opacity:.85}.lesson-node strong{display:block;font-size:.9rem;line-height:1.22}.lesson-node small{color:var(--muted);font-weight:700}.lesson-node--sub{margin-left:20px;margin-bottom:4px;padding:8px 10px;border-color:#28171514;background:#ffffff61;border-radius:12px;grid-template-columns:auto 1fr;gap:8px;position:relative}.lesson-node--sub:before{content:"";position:absolute;left:-18px;top:50%;width:14px;height:1px;background:#28171526}.lesson-node--sub>span{width:auto;height:auto;background:none;border:none;box-shadow:none;font-size:.82rem;color:var(--muted)}.lesson-node--sub strong{font-size:.84rem;font-weight:600}.lesson-node--sub small{font-size:.68rem;color:var(--green);font-weight:700}.lesson-node--sub.active{outline-color:#67b98280;background:#c8ead840}.lesson-lobby{min-height:0;display:flex;flex-direction:column;overflow:hidden}.course-card{position:relative;background:linear-gradient(135deg,#fffdf6f0,#f5efe2bd),var(--panel);animation:block-reveal .5s var(--ease-out-quint) .12s both}.course-card-scroll{flex:1 1 0;min-height:0;overflow:auto;padding:14px 14px 120px;display:grid;gap:12px}.lesson-hero{padding:clamp(18px,2.4vw,26px);border:1px solid rgba(40,23,21,.1);border-radius:22px;background:linear-gradient(135deg,#d8dcff6b,#c8ead84d);animation:card-pop .38s var(--ease-out-quint) .19s both}.prereq-banner{padding:10px 14px;border:1px solid rgba(120,201,242,.25);border-radius:14px;background:#78c9f214;display:flex;flex-direction:column;gap:6px;animation:card-pop .38s var(--ease-out-quint) .1s both}.prereq-label{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.prereq-label svg{width:14px;height:14px}.prereq-tags{display:flex;flex-wrap:wrap;gap:6px}.prereq-tag{border:1px solid rgba(40,23,21,.1);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:700;background:#fff9;color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s}.prereq-tag:hover{background:#d8dcff66;border-color:#28171533}.lesson-gate{display:grid;align-content:start}.lesson-label{color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.lesson-hero h2{margin:8px 0 10px;font-size:clamp(1.25rem,1.55vw,1.8rem);line-height:1.12;letter-spacing:-.01em;max-width:780px}.lesson-hero p{color:#5b4d45;font-size:.96rem;line-height:1.48;max-width:720px}.bite-sequence{min-height:0;padding:2px 4px 12px;animation:block-reveal .38s var(--ease-out-quint) .25s both}.bite-sequence-grid{margin-top:10px;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.bite-sequence-grid button{min-height:118px;border:1px solid rgba(40,23,21,.12);border-radius:18px;background:#ffffff94;padding:12px;text-align:left;display:grid;align-content:start;gap:8px;transform-origin:18px 18px;transition:transform .15s var(--ease-snap),box-shadow .16s var(--ease-snap),border-color .18s var(--ease-out-quart),filter .18s var(--ease-out-quart);animation:bite-card-reveal .42s var(--ease-out-quint) both}.bite-sequence-grid button:nth-child(1){animation-delay:.32s}.bite-sequence-grid button:nth-child(2){animation-delay:.38s}.bite-sequence-grid button:nth-child(3){animation-delay:.44s}.bite-sequence-grid button:nth-child(4){animation-delay:.5s}.bite-sequence-grid button:hover{border-color:#28171547;box-shadow:0 10px 22px #34221b1a;filter:saturate(1.05)}.bite-sequence-grid button:nth-child(1){background:#d8dcff6b}.bite-sequence-grid button:nth-child(2){background:#c8ead86b}.bite-sequence-grid button:nth-child(3){background:#78c9f22e}.bite-sequence-grid button:nth-child(4){background:#ffbf9152}.bite-sequence-grid button>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow);font-weight:850;font-size:.76rem}.bite-sequence-grid button:nth-child(1)>span{background:var(--coin-lavender)}.bite-sequence-grid button:nth-child(2)>span{background:var(--coin-mint)}.bite-sequence-grid button:nth-child(4)>span{background:var(--coin-peach)}.bite-sequence-grid i{color:#4d5d64}.bite-sequence-grid strong{font-size:.92rem}.bite-sequence-grid small{color:var(--muted);font-size:.8rem;line-height:1.35}.course-card-cta{position:sticky;bottom:0;z-index:2;flex:0 0 auto;border-top:1px solid rgba(40,23,21,.1);background:#fffdf6f0;box-shadow:0 -18px 32px #34221b14;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:dock-rise .42s var(--ease-out-quint) .56s both}.course-card-cta>span{color:var(--muted);font-size:.78rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.course-card-cta .action-row{margin:0;flex-wrap:wrap}.page-visual{min-width:0;overflow:visible}.visual-composition{display:grid;gap:12px}.structured-visual{display:flex;flex-direction:column;align-items:stretch;min-height:360px;border:1px solid rgba(40,23,21,.1);border-radius:20px;background:#fdfcf8;box-shadow:0 2px 10px #34221b0d;overflow:hidden}.v-title{text-align:center;font-size:1.35rem;font-weight:800;color:#20100f;padding:18px 20px 6px;letter-spacing:.01em;line-height:1.2;flex-shrink:0}.v-canvas{position:relative;flex:1;min-height:300px;margin:12px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#ffffff70,#ffffff14),#fffdf670}.v-canvas--process{background:linear-gradient(90deg,#78c9f21a,#e8b42514 50%,#62cbbd1a),#fffdf66b}.v-canvas--concept_map{background:radial-gradient(circle at 50% 50%,rgba(255,230,123,.22),transparent 26%),radial-gradient(circle at 20% 24%,rgba(120,201,242,.18),transparent 22%),radial-gradient(circle at 82% 76%,rgba(200,234,216,.2),transparent 24%),#fffdf666}.v-canvas--comparison{background:linear-gradient(90deg,rgba(120,201,242,.12),rgba(120,201,242,.04) 40%,transparent 40%,transparent 60%,rgba(255,191,145,.04) 60%,rgba(255,191,145,.12)),#fffdf66b}.v-canvas--cause_effect{background:linear-gradient(90deg,#d8dcff1f,#ffe67b14 50%,#c8ead81f),#fffdf66b}.v-canvas--timeline{background:linear-gradient(180deg,transparent 48%,rgba(40,23,21,.06) 49%,rgba(40,23,21,.06) 51%,transparent 52%),#fffdf66b}.v-canvas--hierarchy{background:linear-gradient(180deg,rgba(255,230,123,.1),transparent 30%),#fffdf66b}.v-canvas--classification{background:#fffdf680}.v-canvas--experiment{background:linear-gradient(180deg,#d8dcff1a,#c8ead81a),#fffdf66b}.v-canvas--mechanism{background:radial-gradient(circle at 50% 45%,rgba(232,180,37,.12),transparent 30%),linear-gradient(90deg,rgba(120,201,242,.08),transparent 30%,transparent 70%,rgba(98,203,189,.08)),#fffdf66b}.v-canvas--cycle{background:radial-gradient(circle at 50% 50%,rgba(216,220,255,.18),transparent 30%),radial-gradient(circle at 20% 30%,rgba(255,230,123,.12),transparent 22%),radial-gradient(circle at 80% 70%,rgba(200,234,216,.14),transparent 24%),#fffdf666}.v-canvas--input_output{background:linear-gradient(90deg,rgba(120,201,242,.08),transparent 30%,transparent 70%,rgba(98,203,189,.08)),#fffdf66b}.v-canvas--formula_explanation{background:#fffdf680}.mastery-red{background:linear-gradient(180deg,#ffebee,#ffcdd2 70%,#ef9a9a);border-color:#c6282880}.mastery-yellow{background:linear-gradient(180deg,#fffde7,#fff9c4 70%,#fff176);border-color:#f5b40080}.mastery-green{background:linear-gradient(180deg,#e8f5e9,#c8e6c9 70%,#a5d6a7);border-color:#2e7d3280}.mastery-unlearned{background:linear-gradient(180deg,#f5f5f5,#e0e0e0 70%,#bdbdbd);border-color:#75757559;opacity:.55}.mastery-unlearned strong,.mastery-unlearned small{color:#757575b3}.kg-container{position:relative;border-radius:22px;min-height:0;max-height:100%;display:flex;flex-direction:column;overflow:hidden}.kg-viewport{position:relative;overflow:auto;border-radius:22px;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;flex:1;min-height:0}.kg-world{transform-origin:center top;transition:transform .18s ease-out;will-change:transform;width:100%}.kg-controls{position:absolute;bottom:14px;right:14px;display:flex;gap:6px;z-index:10}.kg-zoom-btn{width:36px;height:36px;border-radius:12px;border:1.5px solid rgba(40,23,21,.18);background:#fffdf6f0;box-shadow:0 2px 8px #34221b14;font-size:1.1rem;font-weight:700;color:#281715b3;cursor:pointer;display:grid;place-items:center;line-height:1;-webkit-tap-highlight-color:transparent}.kg-zoom-btn:active{background:#f5cb492e;transform:scale(.94)}.kg-detail-panel{position:absolute;top:12px;right:12px;width:240px;max-height:80%;background:#fffdf6f7;border:1.5px solid rgba(40,23,21,.16);border-radius:18px;box-shadow:0 12px 32px #34221b1f;z-index:20;overflow-y:auto;overscroll-behavior:contain}.kg-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;border-bottom:1px solid rgba(40,23,21,.06)}.kg-detail-title{font-size:.88rem;font-weight:850;line-height:1.2;overflow-wrap:anywhere}.kg-detail-close{width:26px;height:26px;border:none;background:none;font-size:1.2rem;color:#75675f99;cursor:pointer;border-radius:8px;display:grid;place-items:center}.kg-detail-close:hover{background:#2817150f}.kg-detail-body{padding:10px 14px 14px;display:grid;gap:10px}.kg-detail-mastery{display:flex;align-items:center;gap:7px}.kg-detail-mastery-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(40,23,21,.12);flex-shrink:0}.kg-detail-mastery-dot.mastery-dot-red{background:#ef5350}.kg-detail-mastery-dot.mastery-dot-yellow{background:#fdd835}.kg-detail-mastery-dot.mastery-dot-green{background:#66bb6a}.kg-detail-mastery-dot.mastery-dot-gray{background:#bdbdbd}.kg-detail-mastery-text{font-size:.74rem;font-weight:750;color:#4f423ae6}.kg-detail-desc{font-size:.78rem;line-height:1.4;color:#4f423ad9;margin:0;overflow-wrap:anywhere}.kg-detail-prereqs{font-size:.68rem;color:#75675fcc;line-height:1.3}.kg-detail-prereqs strong{font-weight:800;color:#4f423ad9;display:block;margin-bottom:2px}.kg-detail-learn-btn{width:100%;padding:10px;border:none;border-radius:12px;background:linear-gradient(135deg,#f5cb49,#dea21c);color:#281715eb;font-size:.82rem;font-weight:850;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 3px #2817151a,0 6px 14px #34221b14}.kg-detail-learn-btn:active{transform:translateY(1px);box-shadow:0 1px #2817151a,0 3px 8px #34221b0f}.kg-layer-bg,.kg-layer-label{pointer-events:none}.kg-node{transition:transform .12s ease,box-shadow .12s ease}.kg-node:hover{box-shadow:0 0 0 3px #a35e281f,0 8px 18px #34221b1a}.kg-node--dim{opacity:.25;pointer-events:none}.kg-sidebar-content{display:flex;flex-direction:column;gap:10px}.kg-sidebar-grade{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:14px;background:linear-gradient(135deg,#78c9f21a,#c8ead814);border:1px solid rgba(40,23,21,.06);cursor:pointer;transition:background .15s;text-align:left;width:100%}.kg-sidebar-grade:hover{background:linear-gradient(135deg,#78c9f229,#c8ead81f)}.kg-sidebar-grade strong{font-size:.88rem;font-weight:850}.kg-sidebar-grade-stats{font-size:.68rem;font-weight:750;color:#4f423aa6}.kg-sidebar-chapters{display:flex;flex-direction:column;gap:2px}.kg-sidebar-chapter{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-radius:12px;border:none;background:#ffffff73;cursor:pointer;text-align:left;width:100%;transition:background .12s}.kg-sidebar-chapter:hover{background:#ffffffbf}.kg-sidebar-chapter-name{font-size:.78rem;font-weight:750;color:#281715cc}.kg-sidebar-chapter-progress{font-size:.65rem;font-weight:700;color:#4f423a80;white-space:nowrap}.v-canvas--knowledge_graph{background:linear-gradient(180deg,rgba(120,201,242,.06) 0%,transparent 15%,transparent 85%,rgba(200,234,216,.06) 100%),#fffdf670;min-height:600px;overflow:visible}@media (max-width: 640px){.kg-detail-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:55dvh;border-radius:22px 22px 0 0}.kg-viewport,.kg-container{border-radius:0}}.lm-overlay-shell{width:100%;max-width:940px;height:min(740px,var(--overlay-panel-height));max-height:var(--overlay-panel-height);background:linear-gradient(180deg,#fffdf6fa,#fcfaf2fa);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:26px;box-shadow:0 12px 48px #34221b29;display:flex;flex-direction:column;overflow:hidden;animation:block-reveal .32s var(--ease-out-quint) 50ms both}.lm-container{position:relative;border-radius:16px;min-height:0;max-height:100%;display:flex;flex-direction:column;overflow:hidden;flex:1}.lm-viewport{position:relative;overflow:auto;border-radius:0 0 16px 16px;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;flex:1;min-height:0;background:radial-gradient(ellipse at 20% 15%,rgba(120,201,242,.05) 0%,transparent 55%),radial-gradient(ellipse at 75% 80%,rgba(200,234,216,.05) 0%,transparent 55%),#fcfaf240}.lm-world{transform-origin:0 0;transition:transform .18s ease-out;will-change:transform}.lm-controls{position:absolute;bottom:14px;right:14px;display:flex;gap:6px;z-index:10}.lm-zoom-btn{width:36px;height:36px;border-radius:12px;border:1.5px solid rgba(40,23,21,.14);background:#fffdf6eb;box-shadow:0 2px 8px #34221b0f;font-size:1.1rem;font-weight:700;color:#28171599;cursor:pointer;display:grid;place-items:center;line-height:1;-webkit-tap-highlight-color:transparent}.lm-zoom-btn:active{background:#f5cb4929;transform:scale(.94)}.lm-legend-bar{display:flex;gap:16px;padding:6px 16px;font-size:.64rem;font-weight:750;color:#4f423ab3;flex-wrap:wrap;align-items:center;flex-shrink:0;border-bottom:1px solid rgba(40,23,21,.04);background:#78c9f206}.lm-legend-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.lm-legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.lm-island{pointer-events:none;display:flex;align-items:flex-start;justify-content:center}.lm-island-label{font-size:.68rem;font-weight:850;color:#4f423a66;letter-spacing:.04em;padding-top:8px;white-space:nowrap}.lm-zone{pointer-events:none}.lm-node{transition:transform .18s ease,box-shadow .18s ease,opacity .25s ease;position:relative}.lm-node:hover{transform:scale(1.08)!important;box-shadow:0 0 0 4px #a35e2824,0 8px 22px #34221b24!important;z-index:15!important}.lm-node--dim{opacity:.18;pointer-events:none}.lm-node--locked{opacity:.5}.lm-node--locked:hover{transform:scale(1.02)!important;cursor:default}.lm-node--next{animation:lm-beacon 2.2s ease-in-out infinite;z-index:12!important}@keyframes lm-beacon{0%,to{box-shadow:0 0 0 5px #ff980040,0 4px 18px #34221b1f}50%{box-shadow:0 0 0 12px #ff98001a,0 6px 28px #34221b29}}.lm-node-emoji{font-size:1.35rem;line-height:1}.lm-node-name{font-size:.68rem;font-weight:750;text-align:center;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90%}.lm-node-bar{width:52px;height:4px;border-radius:2px;background:#0000000f;margin-top:1px;overflow:hidden}.lm-node-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}.lm-badge{position:absolute;top:-9px;right:-9px;font-weight:800;white-space:nowrap;z-index:5;line-height:1.3}.lm-badge--ok{font-size:.82rem;padding:0;background:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}.lm-badge--lock{font-size:.7rem;padding:0;background:none;opacity:.5}.lm-badge--alert{font-size:.72rem;padding:0;background:none;filter:drop-shadow(0 1px 3px rgba(239,83,80,.3));animation:lm-blink 1.8s ease-in-out infinite}@keyframes lm-blink{0%,to{opacity:1}50%{opacity:.55}}.lm-badge--next{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;font-size:.56rem;padding:2px 8px;border-radius:9px;box-shadow:0 2px 8px #ff980059;animation:lm-next-glow 2.2s ease-in-out infinite}@keyframes lm-next-glow{0%,to{box-shadow:0 2px 8px #ff980059}50%{box-shadow:0 2px 14px #ff98008c}}.lm-detail-panel{position:absolute;top:12px;right:12px;width:268px;max-height:calc(100% - 70px);background:#fffdf6fb;border:1.5px solid rgba(40,23,21,.14);border-radius:20px;box-shadow:0 12px 36px #34221b24;z-index:20;overflow-y:auto;overscroll-behavior:contain;animation:lm-slide-in .22s ease-out}@keyframes lm-slide-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.lm-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;border-bottom:1px solid rgba(40,23,21,.05)}.lm-detail-title{font-size:.88rem;font-weight:850;line-height:1.2;overflow-wrap:anywhere}.lm-detail-close{width:26px;height:26px;border:none;background:none;font-size:1.2rem;color:#75675f80;cursor:pointer;border-radius:8px;display:grid;place-items:center}.lm-detail-close:hover{background:#2817150d}.lm-detail-body{padding:10px 14px 14px;display:grid;gap:10px}.lm-detail-status-row{display:flex;align-items:center;gap:7px}.lm-detail-status-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(40,23,21,.1);flex-shrink:0}.lm-detail-status-text{font-size:.74rem;font-weight:750;color:#4f423ad9;flex:1}.lm-detail-mastery-pct{font-size:.82rem;font-weight:850;color:#4f423acc}.lm-detail-desc{font-size:.76rem;line-height:1.4;color:#4f423acc;margin:0;overflow-wrap:anywhere}.lm-detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lm-detail-stat{background:#78c9f20d;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.lm-detail-stat-label{font-size:.6rem;font-weight:700;color:#75675f8c}.lm-detail-stat-value{font-size:.74rem;font-weight:800;color:#281715d9}.lm-detail-prereqs{font-size:.68rem;color:#75675fbf;line-height:1.3}.lm-detail-prereqs strong{font-weight:800;color:#4f423ad9;display:block;margin-bottom:4px}.lm-prereq-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.lm-prereq-tag{font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:8px;border:1px solid;cursor:pointer;transition:opacity .12s,transform .1s;-webkit-tap-highlight-color:transparent;font-family:inherit}.lm-prereq-tag:hover{opacity:.8;transform:scale(1.03)}.lm-prereq-tag:active{transform:scale(.97)}.lm-detail-recommend{font-size:.68rem;color:#4f423acc;line-height:1.3;display:flex;flex-direction:column;gap:3px}.lm-detail-recommend strong{font-weight:800;font-size:.7rem}.lm-detail-learn-btn{width:100%;padding:10px;border:none;border-radius:12px;background:linear-gradient(135deg,#f5cb49,#dea21c);color:#281715e6;font-size:.82rem;font-weight:850;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 3px #28171514,0 6px 14px #34221b12;transition:transform .1s,box-shadow .1s}.lm-detail-learn-btn:active{transform:translateY(1px);box-shadow:0 1px #28171514,0 3px 8px #34221b0d}.lm-empty{padding:48px;text-align:center;font-size:.85rem;font-weight:700;color:#75675f73}.lp-container{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.lp-banner{flex-shrink:0;padding:12px 18px;background:linear-gradient(135deg,#78c9f214,#c8ead814);border-bottom:1px solid rgba(40,23,21,.06)}.lp-banner-text{font-size:.78rem;font-weight:650;color:#4f423ad9;line-height:1.5}.lp-banner-text strong{color:#281715f2;font-weight:800}.lp-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:16px}.lp-current-section{display:flex;flex-direction:column;gap:12px}.lp-section-header{display:flex;align-items:center;gap:8px}.lp-section-icon{font-size:1.2rem}.lp-section-title{font-size:.88rem;font-weight:850;color:#281715e6}.lp-full-map-btn{margin-left:auto;font-size:.68rem;font-weight:700;color:#78c9f2d9;background:#78c9f214;border:1px solid rgba(120,201,242,.2);border-radius:8px;padding:4px 10px;cursor:pointer;transition:background .12s}.lp-full-map-btn:hover{background:#78c9f229}.lp-back-btn{font-size:.68rem;font-weight:700;color:#78c9f2d9;background:#78c9f214;border:1px solid rgba(120,201,242,.2);border-radius:8px;padding:3px 10px;cursor:pointer;transition:background .12s;white-space:nowrap}.lp-back-btn:hover{background:#78c9f229}.lp-path-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:8px}.lp-path{display:flex;align-items:center;gap:0;min-width:max-content;padding:14px 4px 8px}.lp-node{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:88px;min-height:80px;padding:10px 6px 8px;border-radius:16px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;flex-shrink:0;background:#fafafad9;border:2px solid #e0e0e0}.lp-node:hover{transform:scale(1.06);box-shadow:0 4px 16px #34221b1a;z-index:5}.lp-node--current{width:100px;min-height:92px;padding-top:16px;background:#fff8e1f2;border:2.5px solid #ff9800;box-shadow:0 0 0 5px #ff98002e,0 4px 18px #34221b1a;animation:lp-pulse 2.4s ease-in-out infinite}@keyframes lp-pulse{0%,to{box-shadow:0 0 0 5px #ff98002e,0 4px 18px #34221b1a}50%{box-shadow:0 0 0 10px #ff980014,0 6px 28px #34221b24}}.lp-node-label{position:absolute;top:-9px;left:50%;transform:translate(-50%);font-size:.58rem;font-weight:800;color:#e65100;background:#ff980026;padding:2px 8px;border-radius:6px;white-space:nowrap;z-index:10}.lp-node--done{width:72px;min-height:64px;background:#e8f5e9e6;border:1.5px solid #81c784;opacity:.85}.lp-node--done .lp-node-emoji{font-size:1.05rem}.lp-node--done .lp-node-name{font-size:.6rem}.lp-node--locked{background:#fafafa99;border:1.5px dashed #e0e0e0;opacity:.5;cursor:default}.lp-node--locked:hover{transform:scale(1.02);box-shadow:none}.lp-node-lock{font-size:.7rem}.lp-node-emoji{font-size:1.3rem;line-height:1}.lp-node-name{font-size:.66rem;font-weight:750;color:#281715d9;text-align:center;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-node--locked .lp-node-name{color:#ccc}.lp-node-check{font-size:.7rem}.lp-node-bar{width:42px;height:3px;border-radius:2px;background:#0000000f;overflow:hidden}.lp-node-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}.lp-connector{width:24px;height:2px;background:#c8c3b940;flex-shrink:0;position:relative}.lp-connector--done{background:#66bb6a66}.lp-other-section{display:flex;flex-direction:column;gap:6px}.lp-chapter-card{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:#fffdf6b3;border:1.5px dashed rgba(40,23,21,.08);border-radius:14px;cursor:pointer;transition:background .12s,border-color .12s;text-align:left;-webkit-tap-highlight-color:transparent}.lp-chapter-card:hover{background:#fffdf6f2;border-color:#78c9f240}.lp-chapter-card-icon{font-size:1.1rem;flex-shrink:0}.lp-chapter-card-info{flex:1;min-width:0}.lp-chapter-card-name{font-size:.76rem;font-weight:750;color:#281715d9;display:block}.lp-chapter-card-progress{display:flex;align-items:center;gap:8px;margin-top:4px}.lp-chapter-card-bar{flex:1;height:4px;border-radius:2px;background:#0000000d;overflow:hidden}.lp-chapter-card-bar-fill{height:100%;border-radius:2px;background:#66bb6a;transition:width .5s ease}.lp-chapter-card-stats{font-size:.62rem;font-weight:700;color:#75675fa6;white-space:nowrap}.lp-chapter-card-arrow{font-size:1.1rem;color:#75675f59;flex-shrink:0}.lp-path-empty{font-size:.72rem;color:#75675f80;padding:16px;text-align:center}@media (max-width: 640px){.lm-detail-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:55dvh;border-radius:22px 22px 0 0}.lm-viewport,.lm-container,.lm-overlay-shell{border-radius:0}.lm-legend-bar{padding:5px 10px;gap:10px;font-size:.6rem}}.v-aspect-label{position:absolute;transform:translate(-50%,-50%);text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);background:#fffdf6d9;padding:2px 8px;border-radius:6px;z-index:2}.v-dim-cell{position:absolute;transform:translate(-50%,-50%);text-align:center;font-size:.78rem;padding:6px 10px;border-radius:8px;z-index:2;background:#fffdf6e6;border:1.5px solid rgba(40,23,21,.08)}.v-phase-bg{position:absolute;top:8%;height:84%;border-radius:10px;z-index:0;font-size:.68rem;font-weight:700;text-align:center;padding-top:6px;color:#2817152e;letter-spacing:.05em}.v-phase-input{background:#78c9f20f}.v-phase-transform{background:#e8b4250f}.v-phase-output{background:#62cbbd0f}.v-group-box{position:absolute;border:1.5px solid rgba(40,23,21,.1);border-radius:12px;background:#fffdf699;padding:8px;z-index:1;overflow:hidden}.v-group-header{font-size:.82rem;font-weight:700;margin-bottom:4px;color:#281715b3;border-bottom:1px solid rgba(40,23,21,.06);padding-bottom:4px}.v-group-item{font-size:.78rem;padding:3px 0}.v-group-item small{display:block;color:var(--muted);font-size:.7rem}.v-criterion-label{position:absolute;bottom:6%;left:50%;transform:translate(-50%);font-size:.72rem;color:var(--muted);font-weight:600;z-index:2}.v-system-box{position:absolute;border:2px solid rgba(40,23,21,.15);border-radius:12px;background:#fffdf6d9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;padding:10px}.v-system-box strong{font-size:.88rem}.v-system-box small{font-size:.72rem;color:var(--muted);text-align:center}.v-formula-bar{position:absolute;left:10%;width:80%;top:8%;text-align:center;font-size:1.3rem;font-weight:800;letter-spacing:.03em;color:#281715cc;background:#fffdf6e6;border:1.5px solid rgba(40,23,21,.08);border-radius:10px;padding:10px 16px;z-index:2}.v-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.v-caption{text-align:center;color:#5a4d45;font-size:.84rem;line-height:1.38;padding:6px 20px 16px;flex-shrink:0}.v-header{padding:14px 16px 0}.v-title-wrap{max-width:88%}.v-kind{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.v-node{position:absolute;transform:translate(-50%,-50%);min-width:112px;max-width:172px;min-height:58px;padding:10px 12px;border-radius:18px;border:1.5px solid rgba(40,23,21,.68);background:#fffdf6eb;box-shadow:0 4px #2817151a,0 14px 26px #34221b12;display:grid;justify-items:start;align-content:center;gap:4px;text-align:left;font:inherit;z-index:3;cursor:pointer;-webkit-tap-highlight-color:transparent}.mindmap-node{-webkit-tap-highlight-color:transparent}.visual-link-layer path.highlighted{stroke:var(--brand, #a35e28);stroke-width:2.5;opacity:1}.visual-note[data-action=select-node]{cursor:pointer}.visual-note.selected{background:#a35e2814;border-left:3px solid var(--brand, #a35e28);padding-left:9px}.visual-note-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 2px}.visual-note{display:grid;grid-template-columns:24px 1fr;align-items:start;gap:5px 10px;border-top:1px solid rgba(40,23,21,.13);padding:9px 2px 0}.visual-note span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--coin-border);background:var(--coin-blue);box-shadow:var(--coin-shadow);color:#20100f;font-size:.68rem;font-weight:850;align-self:center}.visual-note:nth-child(2n) span{background:var(--coin-lavender)}.visual-note:nth-child(3n) span{background:var(--coin-mint)}.visual-note strong{align-self:center;font-size:.7rem;line-height:1.1}.content-page .visual-note p,.visual-note p{grid-column:2;margin:0;color:var(--muted);line-height:1.34;font-size:.72rem}.visual-expand-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.visual-expand-header strong{font-size:.82rem;color:var(--ink)}.visual-expand-close{background:none;border:none;font-size:1.1rem;color:var(--muted);cursor:pointer;padding:0 4px;line-height:1;border-radius:4px}.visual-expand-close:hover{background:#2817150f;color:var(--ink)}.visual-expand-card{background:#6c90ef0f;border-radius:10px;padding:10px 12px;margin-bottom:8px}.visual-expand-section{margin-bottom:6px}.visual-expand-section:last-child{margin-bottom:0}.visual-expand-label{display:inline-block;font-size:.62rem;font-weight:700;color:var(--coin-blue-text, #4a5fa8);background:#6c90ef1f;padding:1px 6px;border-radius:4px;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px}.visual-expand-section p{margin:0;font-size:.74rem;color:var(--ink);line-height:1.4}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.memory-panel{display:flex;flex-direction:column;gap:10px}.knowledge-card{position:relative;border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#ffffff8a;padding:0;perspective:600px;cursor:pointer}.knowledge-card .card-inner{position:relative;width:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.knowledge-card.flipped .card-inner{transform:rotateY(180deg)}.knowledge-card .card-front,.knowledge-card .card-back{padding:13px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.knowledge-card .card-front{position:relative}.knowledge-card .card-back{position:absolute;top:0;left:0;width:100%;min-height:100%;box-sizing:border-box;transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:space-between;background:#ffffff8a;border-radius:16px;pointer-events:none;overflow:hidden}.knowledge-card.flipped .card-back{pointer-events:auto}.knowledge-card.flipped .card-front{pointer-events:none;visibility:hidden}.knowledge-card .card-flip-btn{margin-top:8px;padding:4px 12px;border:1px solid rgba(40,23,21,.15);border-radius:8px;background:#ffffff80;font-size:.78rem;color:var(--muted);cursor:pointer;transition:background .2s}.knowledge-card .card-flip-btn:hover{background:#ffffffe6}.knowledge-card .card-recall{display:flex;gap:8px;margin-top:10px}.knowledge-card .card-recall button{flex:1;padding:6px 0;border:1px solid rgba(40,23,21,.12);border-radius:8px;background:#fff9;font-size:.8rem;cursor:pointer;transition:background .2s,border-color .2s}.knowledge-card .card-recall button:hover{background:#ffffffe6}.knowledge-card .card-recall-hint{color:var(--muted);font-size:.8rem;opacity:.7;margin-bottom:4px}.missed-review{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(40,23,21,.15)}.missed-review-label{font-size:.82rem;font-weight:600;color:#f87171;margin-bottom:8px}.knowledge-card.recall-got .card-front{border-color:#34d399}.knowledge-card.recall-miss .card-front{border-color:#f87171}.knowledge-card.recall-got:after,.knowledge-card.recall-miss:after{position:absolute;top:8px;right:10px;font-size:.85rem}.knowledge-card.recall-got:after{content:"✓";color:#34d399}.knowledge-card.recall-miss:after{content:"✗";color:#f87171}.knowledge-card h3{margin-bottom:7px;font-size:.95rem}.knowledge-card p,.knowledge-card small{color:var(--muted);line-height:1.42;font-size:.84rem}.knowledge-card p{margin-bottom:8px}.provider-note{margin-top:auto;padding-top:10px;color:var(--muted);border-top:1px solid rgba(40,23,21,.1);font-size:.84rem;line-height:1.45}.learn-more-link{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:.78rem;font-weight:700;font-family:inherit;color:var(--blue-deep);border:1px solid rgba(40,23,21,.12);border-radius:8px;padding:4px 10px;background:#ffffff80;cursor:pointer;transition:background .2s,border-color .2s}.learn-more-link:hover{background:#ffffffe6;border-color:#28171540}.learn-more-link svg{width:12px;height:12px}.learn-more-section{margin-top:16px;padding-top:14px;border-top:1px dashed rgba(40,23,21,.12)}.learn-more-heading{font-size:.78rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.learn-more-chips{display:flex;flex-wrap:wrap;gap:8px}.learn-more-chip{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid rgba(40,23,21,.1);border-radius:12px;background:#d8dcff3d;font-family:inherit;color:inherit;cursor:pointer;text-align:left;transition:background .2s,border-color .2s,box-shadow .2s}.learn-more-chip:hover{background:#d8dcff6b;border-color:#28171533;box-shadow:0 4px 12px #34221b0f}.learn-more-chip-term{font-size:.82rem;font-weight:800;color:var(--ink)}.learn-more-chip-def{font-size:.72rem;color:var(--muted);line-height:1.35}.provider-note strong,.provider-note span{display:block}.tool-plan{border:1px solid rgba(40,23,21,.1);border-radius:16px;background:#78c9f21a;padding:13px}.tool-plan .panel-heading{margin-bottom:8px}.tool-plan p,.tool-plan li{color:var(--muted);font-size:.82rem;line-height:1.38}.tool-plan p{margin-bottom:9px}.tool-plan ul{margin:9px 0 0;padding-left:18px}.tool-tags{display:flex;flex-wrap:wrap;gap:6px}.tool-tags span{border-radius:999px;padding:5px 7px;background:#ffffffb3;color:#4d5d64;font-size:.7rem;font-weight:850}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;min-height:100dvh;padding:var(--overlay-padding);overflow:auto;background:#2c26207a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.player-shell,.map-shell,.practice-shell{width:min(1160px,100%);height:min(820px,var(--overlay-panel-height));max-height:var(--overlay-panel-height);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden}.player-top,.player-bottom{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(40,23,21,.1)}.player-bottom{border-top:1px solid rgba(40,23,21,.1);border-bottom:0}.progress-dots{display:flex;gap:8px;align-items:center}.progress-dots span{width:12px;height:12px;border-radius:50%;border:1px solid rgba(40,23,21,.22);background:#fffdf6cc;box-shadow:inset 0 1px #ffffffe6}.progress-dots span.filled{background:var(--coin-blue);border-color:var(--coin-border);box-shadow:inset 0 1px #ffffffc7,0 1px #281715c7,0 4px 8px #34221b14}.player-page{min-height:0;overflow:auto;padding:clamp(18px,3vw,42px)}.hook-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vh,48px) clamp(16px,3vw,40px)}.hook-content{max-width:600px;text-align:center}.hook-content .lesson-label{margin-bottom:12px}.hook-page h2{font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.25;letter-spacing:-.01em;margin-bottom:16px}.hook-body{font-size:.95rem;line-height:1.6;color:#281715b8;margin-bottom:20px}.hook-hints{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px;align-items:center}.hook-hints-label{color:var(--muted);font-size:.78rem;font-weight:600}.hook-hint-tag{border:1px solid rgba(40,23,21,.1);border-radius:999px;background:#ffffff8c;padding:4px 12px;color:#281715b8;font-size:.78rem;font-weight:500}.hook-hint-btn{border:1px solid rgba(40,23,21,.12);border-radius:999px;background:#ffffff8c;padding:6px 14px;color:var(--ink);font-size:.8rem;font-weight:550;cursor:pointer;transition:all .14s}.hook-hint-btn:hover{background:var(--mint);border-color:#28171533}.content-page{min-height:100%;display:grid;grid-template-columns:minmax(280px,.68fr) minmax(420px,1.12fr);align-items:start;align-content:start;gap:clamp(22px,4vw,56px);padding-right:clamp(10px,2vw,28px);padding-top:clamp(6px,1.5vh,18px)}.content-page.no-visual{grid-template-columns:1fr minmax(120px,.35fr);max-width:920px}.content-page h2,.cards-page h2,.sheet h2,.map-shell h2{margin-bottom:12px;font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.2;letter-spacing:-.01em}.content-page h2{margin-bottom:10px;font-size:clamp(1.45rem,2.15vw,2.55rem);line-height:1.06}.content-page p{color:#51443e;font-size:.96rem;line-height:1.56}.explanation-steps{display:grid;gap:10px}.step-block{padding:16px 18px;border:1px solid rgba(40,23,21,.07);border-radius:14px;background:#ffffff80;animation:stepFadeIn .35s ease-out}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.step-block .step-content p{margin:0}.step-block .step-point{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--ink, #281614);line-height:1.35}.step-body{display:flex;flex-direction:column;gap:5px}.step-block .step-why{font-size:.9rem;line-height:1.55;color:var(--ink, #281614);opacity:.88}.step-block .step-how{margin-top:6px;padding:6px 10px;border-left:3px solid var(--brand-soft, rgba(163, 94, 40, .2));background:linear-gradient(135deg,#a35e280d,#a35e2805);border-radius:0 10px 10px 0;font-size:.88rem;line-height:1.5}.step-how-label{font-weight:650;color:var(--brand, #a35e28);opacity:.7}.step-label{font-weight:650;color:var(--brand, #a35e28);opacity:.7;margin-right:4px}.step-def{font-size:.92rem;line-height:1.5;padding:6px 10px;background:#a35e280f;border-radius:8px;border-left:3px solid var(--brand, #a35e28)}.step-analogy{font-size:.86rem;line-height:1.45;color:var(--muted);font-style:italic}.step-time{font-size:.88rem;color:var(--brand, #a35e28);font-weight:650}.step-side{font-size:.88rem;line-height:1.45;padding:4px 10px;border-radius:8px;background:#73c8f414}.step-label-a{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--brand, #a35e28);color:#fff;font-size:.7rem;font-weight:700;margin-right:6px}.step-label-b{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--mint);color:#20100f;font-size:.7rem;font-weight:700;margin-right:6px}.step-block.pending{opacity:.2;animation:none}.step-block.pending .step-num{display:none}.step-reveal-btn{border:1.5px solid var(--brand, #a35e28);border-radius:10px;background:#fdfcf8f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:10px 22px;color:var(--brand, #a35e28);font-size:.84rem;font-weight:650;cursor:pointer;transition:all .14s;box-shadow:0 4px 16px #34221b1a}.page-nav-side{position:sticky;top:40%;align-self:start;display:flex;justify-content:center}.step-reveal-btn:hover{background:#a35e2824}.inline-term{border:0;border-bottom:2px solid var(--blue-deep);background:transparent;padding:0 2px;font-weight:850}.term-row{display:flex;gap:8px;flex-wrap:wrap}.term-row button{border:1px solid rgba(40,23,21,.18);border-radius:999px;padding:7px 10px;background:var(--lavender);font-weight:850;font-size:.82rem}.term-popover{position:relative;margin-top:14px;border:1.5px solid var(--ink);border-radius:16px;background:var(--panel);padding:14px;box-shadow:0 14px 28px #34221b24}.term-popover .mini{position:absolute;right:8px;top:8px}.term-popover p{margin:8px 0 12px;font-size:.9rem}.term-popover button:last-child{border:0;background:transparent;color:var(--blue-deep);font-weight:850;padding:0}.cards-page{max-width:1040px;margin:0 auto}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sheet-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid rgba(40,23,21,.1)}.sheet-top h2{margin-bottom:0}.map-shell{grid-template-rows:auto 1fr}.map-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 320px}.mindmap-canvas{position:relative;min-height:0;overflow:hidden;background:linear-gradient(90deg,rgba(120,201,242,.1),transparent 38%),radial-gradient(circle at 18% 50%,rgba(120,201,242,.16),transparent 24%),radial-gradient(circle at 68% 28%,rgba(200,234,216,.22),transparent 28%),#fffdf673}.mindmap-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.mindmap-lines path{fill:none;stroke:#28171542;stroke-width:.5;stroke-linecap:round;stroke-dasharray:4 2;animation:flowDash 1.8s linear infinite}.mindmap-lines path.highlighted{stroke:var(--brand, #a35e28);stroke-width:1;stroke-dasharray:none;animation:none;filter:drop-shadow(0 0 2px rgba(163,94,40,.25))}.mindmap-node{position:absolute;width:min(240px,30%);min-height:72px;transform:translate(-50%,-50%);border:1.5px solid rgba(40,23,21,.72);border-radius:18px;background:var(--mint);padding:11px 12px;text-align:left;box-shadow:0 5px #2817151f;display:grid;gap:5px;animation:cascadeDropIn var(--dur-cascade, .9s) var(--ease-overshoot, cubic-bezier(.34,1.56,.64,1)) both}.mindmap-node .node-emoji{font-size:1.4rem;line-height:1;display:block}.mindmap-node.root{width:min(280px,34%);min-height:88px;border-width:2px;box-shadow:0 6px #28171526,0 12px 28px #34221b1f;z-index:2}.mindmap-node.root .node-emoji{font-size:1.8rem}.mindmap-node.root strong{font-size:1rem}.mindmap-node:nth-of-type(2n){background:var(--lavender)}.mindmap-node:nth-of-type(3n){background:var(--peach)}.mindmap-node.selected{outline:4px solid rgba(120,201,242,.68)}.mindmap-node.locked{opacity:.68}.mindmap-node.completed{border-color:#34d399}.mindmap-node.completed:after{content:"✓";position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#34d399;color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:700}.mindmap-node .node-check{display:none}.concept-done-badge{display:inline-block;padding:3px 10px;border-radius:8px;background:#d1fae5;color:#065f46;font-size:.78rem;font-weight:600;margin-bottom:6px}.mindmap-node span{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.62rem;font-weight:850}.mindmap-node strong{line-height:1.18;font-size:.9rem}.concept-emoji{font-size:2.4rem;line-height:1;margin-bottom:4px}.mindmap-canvas:before{content:"学习地图";position:absolute;left:18px;top:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.66rem;font-weight:850}.concept-detail{border-left:1px solid rgba(40,23,21,.1);padding:22px;display:flex;flex-direction:column;gap:12px;background:#f5efe294}.concept-detail h3{margin-bottom:0;font-size:1.28rem}.concept-detail p{color:var(--muted);line-height:1.5}.concept-lesson-hook{margin-top:-4px;font-size:.88rem;color:var(--ink, #281614);opacity:.72;line-height:1.45}.concept-no-detail{font-size:.85rem;color:var(--muted);opacity:.6;font-style:italic}.visual-expand-hint{font-size:.82rem;color:var(--muted);opacity:.6;font-style:italic}.practice-shell{background:#fffcf3}.practice-title{font-weight:850;color:var(--muted)}.practice-body{min-height:0;overflow:auto;padding:26px}.practice-stage{min-height:100%;display:grid;grid-template-columns:minmax(260px,.82fr) minmax(360px,1.18fr);gap:clamp(18px,4vw,46px);align-items:center}.practice-visual{border:1.5px solid rgba(40,23,21,.86);border-radius:24px;background:linear-gradient(180deg,#c8ead89e,#fffdf6e6),var(--panel);padding:18px;box-shadow:0 18px 42px #34221b1f}.practice-visual-head{display:flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--muted);font-size:.75rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.practice-model{display:grid;gap:14px}.practice-anchor{position:relative;border:1.5px solid var(--ink);border-radius:18px;background:#ffffffb8;padding:14px}.practice-anchor:after{content:"";position:absolute;left:24px;top:calc(100% + 1px);width:2px;height:14px;background:#28171538}.practice-anchor strong,.practice-model-node strong{display:block;line-height:1.2}.practice-anchor small,.practice-model-node small{display:block;margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.32}.practice-node-stack{display:grid;gap:9px}.practice-model-node{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;border:1px solid rgba(40,23,21,.12);border-radius:16px;background:#ffffff9e;padding:10px}.practice-model-node.primary{background:#d8dcff8a}.practice-model-node>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--coin-blue);border:1.5px solid var(--coin-border);box-shadow:var(--coin-shadow);font-weight:850;font-size:.78rem}.practice-model-node:nth-child(2n)>span{background:var(--coin-lavender)}.practice-model-node:nth-child(3n)>span{background:var(--coin-mint)}.practice-model-node.primary>span{background:var(--coin-peach)}.practice-question h2{max-width:820px;font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.5;letter-spacing:0;font-weight:700}.blank{display:inline-block;min-width:clamp(130px,15vw,230px);height:.88em;margin:0 .08em;padding:0 .16em;border-bottom:5px solid var(--blue);color:var(--blue-deep);vertical-align:baseline}.blank.filled{width:auto;height:auto;min-width:0;border-bottom:0;border-radius:999px;background:var(--mint);box-shadow:inset 0 0 0 1.5px #2817152e;padding:.02em .32em .08em}.feedback-box{margin-top:22px;max-width:600px;border-radius:18px;padding:14px 16px;background:var(--mint);border:1px solid rgba(40,23,21,.16)}.feedback-box.wrong{background:#ffd8cf}.feedback-box p{margin:6px 0 0;color:var(--muted);line-height:1.55;word-break:break-word}.knowledge-feedback{margin-top:10px;border-top:1px solid rgba(40,23,21,.12);padding-top:10px;display:grid;gap:4px}.knowledge-feedback span{font-weight:850}.knowledge-feedback small{color:var(--muted);line-height:1.35}.review-btn{margin-top:4px;padding:6px 14px;border:1.5px solid var(--brand, #a35e28);border-radius:999px;background:#a35e280f;color:var(--brand, #a35e28);font-size:.8rem;font-weight:650;cursor:pointer;transition:background .15s}.review-btn:hover{background:#a35e2826}.practice-options{border-top:1px solid rgba(40,23,21,.1);padding:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px}.practice-options button:not(.primary-button){border:1.5px solid rgba(40,23,21,.25);border-radius:16px;background:#ffffffa8;min-height:50px;padding:10px;font-weight:850}.practice-options button.selected{outline:3px solid rgba(120,201,242,.58)}.practice-options button.correct{background:var(--mint)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:24;background:#2c262052}.assistant-drawer{position:fixed;z-index:25;left:50%;bottom:18px;transform:translate(-50%);width:min(760px,calc(100% - 24px));overflow:hidden}.assistant-thread{padding:18px;display:grid;gap:10px}.assistant-thread p{margin-bottom:2px;color:var(--muted);line-height:1.45}.assistant-starters{display:grid;gap:10px}.assistant-starters button{text-align:left;border:1px solid rgba(40,23,21,.14);border-radius:14px;background:#ffffff9e;padding:11px 12px;font-weight:800}.assistant-messages{max-height:min(360px,48vh);overflow:auto;display:grid;gap:9px;padding-right:2px}.assistant-message{width:min(88%,580px);border:1px solid rgba(40,23,21,.12);border-radius:16px;padding:10px 12px;background:#ffffffad}.assistant-message.user{justify-self:end;background:#d8dcff94}.assistant-message.assistant{justify-self:start;background:#c8ead873}.assistant-message.loading{animation:generation-rise .26s var(--ease-out-quint) both}.assistant-message strong{display:block;margin-bottom:4px;font-size:.72rem;color:var(--muted)}.assistant-message p{margin:0;color:#51443e}.assistant-error{margin:0;color:#9b382d!important;font-size:.82rem;font-weight:750}.assistant-input{border-top:1px solid rgba(40,23,21,.1);padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px}.sheet{width:min(720px,100%);max-height:var(--overlay-panel-height);overflow:auto;padding-bottom:18px}.compact-sheet textarea{width:calc(100% - 36px);margin:18px;resize:vertical}.search-modal{max-width:520px}.search-form{flex:1}.search-form .topic-input-wrap{margin:0}.search-results{padding:8px 18px 12px;max-height:320px;overflow-y:auto}.search-results-heading{font-size:.78rem;font-weight:700;color:var(--muted);margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em}.search-result-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;font-size:.88rem;text-align:left;transition:background .15s}.search-result-item:hover{background:#78c9f21a}.search-result-item svg{width:16px;height:16px;stroke:var(--muted);flex-shrink:0}.search-empty{padding:24px 18px;text-align:center;color:var(--muted);font-size:.88rem}.search-suggestions{padding:12px 18px 18px}.search-suggestions .primary-button{width:100%}.settings-grid{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-grid label{display:grid;gap:7px}.settings-grid label span{color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.settings-grid .wide{grid-column:1 / -1}.sheet-actions{justify-content:space-between;padding:0 18px}.danger-button{border:1.5px solid #672a24;border-radius:13px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:850;background:#ffd8cf;color:#672a24;padding:0 14px}.confirm-body{padding:18px}.confirm-body p{color:var(--muted);line-height:1.48;margin:0}@keyframes sweep{0%,35%{transform:translate(-100%)}70%,to{transform:translate(100%)}}@keyframes generation-rise{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes progress-line-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes block-reveal{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-pop{0%{opacity:0;transform:translateY(10px) scale(.98) rotate(-.18deg)}72%{opacity:1;transform:translateY(-1px) scale(1.006) rotate(.08deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes bite-card-reveal{0%{opacity:0;transform:translateY(14px) scale(.97) rotate(-.45deg)}72%{opacity:1;transform:translateY(-1px) scale(1.01) rotate(.12deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes dock-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes select-tick{0%{transform:translate(0) rotate(0)}28%{transform:translate(3px) rotate(.55deg)}55%{transform:translate(-2px) rotate(-.35deg)}to{transform:translate(0) rotate(0)}}@media (max-width: 900px){.topbar{width:calc(100% - 48px)}.topic-input-wrap{grid-template-columns:1fr}.prompt-box .primary-button{width:100%}.prompt-box h1{font-size:clamp(1.8rem,7vw,3rem)}}@media (max-width: 1160px){body{overflow-x:hidden;overflow-y:auto}.nav-actions .icon-text-button{width:42px;padding:0}.nav-actions .icon-text-button span{display:none}.app-shell{min-height:0;min-height:100dvh;height:auto}.composer,.composer.compact{grid-template-columns:1fr}.course-header{grid-template-columns:auto minmax(0,1fr) auto}.lesson-lobby{min-height:0}.bite-sequence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-stage{grid-template-columns:1fr;align-items:start}}@media (max-width: 760px){body{overflow:auto}.chip-row button{min-height:36px;padding:8px 14px;font-size:.82rem}.app-shell{padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));min-height:100dvh;height:auto}.topbar{align-items:flex-start}.composer,.composer.compact{padding:14px;border-radius:18px}.topic-input-wrap{grid-template-columns:1fr}.course-header{grid-template-columns:auto minmax(0,1fr)}.course-title-actions{grid-column:1 / -1;justify-content:flex-start}.primary-button{width:100%}.course-card-cta{position:relative;bottom:auto;align-items:stretch;flex-direction:column;gap:8px}.course-card-cta .primary-button{width:auto}.experience{height:auto;overflow:visible;grid-template-columns:1fr}.course-leftbar,.course-card{height:auto;max-height:none;min-height:0}.lesson-lobby{min-height:0}.course-card-scroll{padding-bottom:14px;overflow:visible}.course-leftbar,.path-panel,.memory-panel{overflow:visible}.content-page,.map-layout{grid-template-columns:1fr}.structured-visual{min-height:280px}.visual-node{width:min(132px,42vw)}.visual-note-rail{grid-template-columns:1fr}.visual-note{grid-template-columns:24px 1fr}.visual-expand-panel{position:static;margin-top:12px}.flow-visual,.flow-visual.compare,.card-grid,.practice-options,.settings-grid,.bite-sequence-grid,.outline-grid{grid-template-columns:1fr}.player-shell,.map-shell,.practice-shell{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.player-top,.player-bottom{padding:10px 12px;flex-wrap:wrap}.player-bottom{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.player-page{padding:16px 14px}.overlay{padding:0;align-items:flex-end}.overlay .sheet,.overlay .compact-sheet,.overlay .discuss-shell{width:100%;max-height:90dvh;border-radius:22px 22px 0 0;overflow-y:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.practice-body{padding:16px}.practice-question h2{font-size:clamp(1rem,5vw,1.25rem)}.blank{min-width:130px}.course-leftbar{display:none}.home-layout{grid-template-columns:1fr;grid-template-rows:auto auto;gap:10px}.lm-sidebar{height:auto;max-height:none;min-height:0;order:2}.lm-sidebar-nav{flex-direction:row;gap:4px;padding:8px;overflow-x:auto}.lm-nav-btn{font-size:.68rem;padding:6px 8px;white-space:nowrap;flex-shrink:0}.lm-nav-btn span:first-of-type{font-size:.85rem}.lm-sidebar-units{flex-direction:row;flex-wrap:wrap;gap:4px}.lm-sidebar-unit{padding:5px 8px;border-radius:8px;background:#ffffff80;font-size:.68rem}.lm-sidebar-unit-name{font-size:.68rem}.lm-sidebar-grade{padding:8px 10px}.lm-sidebar-grade strong{font-size:.82rem}.home-content{order:1;justify-items:center;align-items:center}.lp-path-scroll{padding-bottom:12px}.lp-node{width:76px;min-height:68px}.lp-node--current{width:88px;min-height:80px}.lp-node--done{width:64px;min-height:56px}.lp-banner-text{font-size:.72rem}.recent-cards{gap:6px}.knowledge-card .card-inner{min-height:100px}.mindmap-canvas{height:400px}.mindmap-node{width:min(180px,50%);min-height:56px;padding:8px 10px}.mindmap-node strong{font-size:.82rem}.bite-sequence-grid button{min-height:90px}.hook-page{padding:20px 14px}.term-popover{position:fixed;left:10px!important;right:10px!important;top:auto!important;bottom:calc(60px + env(safe-area-inset-bottom,0px))!important;max-width:none;z-index:30}.mindmap-node.root{width:min(200px,55%);min-height:64px}.mindmap-node .node-emoji{font-size:1.1rem}.concept-emoji{font-size:1.8rem}.structured-visual{min-height:330px;border-radius:20px}.v-header{padding:14px 14px 0}.v-title-wrap{max-width:100%}.v-title{font-size:1.02rem}.v-caption{font-size:.76rem}.v-canvas{min-height:230px;margin:10px;border-radius:18px}.v-node{min-width:88px;max-width:128px;min-height:46px;padding:8px 9px;border-radius:14px}.v-node strong{font-size:.76rem}.v-node small,.v-edge-label,.visual-relation-chip small{font-size:.58rem}.visual-relation-chip{grid-template-columns:1fr;justify-items:start}.create-dialog{margin:0 10px;border-radius:22px 22px 0 0;max-height:min(88dvh,var(--overlay-panel-height));overflow-y:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}}@media (max-height: 720px){:root{--content-panel-height: calc(100dvh - 7rem) }.site-footer{display:none}.course-leftbar,.course-card,.lm-sidebar{min-height:0}.prompt-home{margin:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.onboarding-overlay{display:flex;align-items:center;justify-content:center}.onboarding-card{background:var(--panel);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:420px;width:100%;padding:36px 32px 28px;text-align:center}.onboarding-progress{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.onboarding-progress span{width:10px;height:10px;border-radius:50%;background:var(--line);transition:background .3s var(--ease-out-quart)}.onboarding-progress span.filled{background:var(--blue)}.onboarding-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--mint),var(--blue));display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.onboarding-icon svg{width:28px;height:28px;stroke:var(--ink)}.onboarding-card h2{margin-bottom:12px}.onboarding-card p{color:var(--muted);font-size:.95rem;line-height:1.6;margin-bottom:24px}.onboarding-actions{display:flex;gap:12px;justify-content:center}.discuss-fab{position:absolute;bottom:16px;right:16px;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--panel);box-shadow:0 4px 16px #34221b1a;display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease-out-quart),box-shadow .2s var(--ease-out-quart);z-index:5}.discuss-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #34221b26}.discuss-fab svg{width:20px;height:20px;stroke:var(--blue-deep)}.hook-page,.cards-page,.content-page>div:first-child{position:relative}.flag-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.knowledge-card:hover .flag-btn{opacity:1}.flag-btn svg{width:14px;height:14px;stroke:var(--muted)}.flag-btn:hover svg{stroke:var(--rose)}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.stat-card svg{width:22px;height:22px;stroke:var(--blue-deep);margin-bottom:4px}.stat-card strong{font-size:1.5rem;font-weight:800;color:var(--ink)}.stat-card span{font-size:.8rem;color:var(--muted)}.regenerate-btn{border:1px solid rgba(40,23,21,.1);border-radius:999px;background:#ffffff80;padding:5px 12px;color:var(--muted);font-size:.74rem;font-weight:600;cursor:pointer;margin-top:12px;transition:all .14s}.regenerate-btn:hover{background:var(--mint);color:var(--ink);border-color:#2817152e}.floating-tutor{position:fixed;bottom:80px;right:24px;width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;border:none;box-shadow:0 4px 16px #2c86b54d;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:100}.floating-tutor:hover{transform:scale(1.1);box-shadow:0 6px 24px #2c86b566}.floating-tutor svg{width:22px;height:22px}.discuss-shell{position:relative;max-width:540px;margin:48px auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:min(80dvh,var(--overlay-panel-height));overflow:hidden}.discuss-thread{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.discuss-msg{padding:10px 14px;border-radius:14px;max-width:85%;animation:fadeIn .2s ease-out}.discuss-msg strong{font-size:.78rem;display:block;margin-bottom:2px}.discuss-msg p{margin:0;font-size:.9rem;line-height:1.5}.discuss-msg.role-teacher{background:var(--blue);color:#fff;align-self:flex-start;border-bottom-left-radius:4px}.discuss-msg.role-teacher strong{color:#fffc}.discuss-msg.role-student-a{background:var(--mint);align-self:flex-end;border-bottom-right-radius:4px}.discuss-msg.role-student-b{background:var(--lavender);align-self:flex-end;border-bottom-right-radius:4px}.discuss-msg[role=user]{background:var(--peach);align-self:center}.discuss-loading{text-align:center;padding:24px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}.discuss-loading svg{width:28px;height:28px;animation:spin 1s linear infinite}.discuss-chips{display:flex;gap:8px;padding:0 20px 8px;flex-wrap:wrap}.discuss-chips button{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:5px 12px;font-size:.78rem;cursor:pointer;transition:all .14s}.discuss-chips button:hover{background:var(--mint);border-color:#2817152e}.quiz-type-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.quiz-type-tab{border:none;background:transparent;padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--muted);transition:all .14s}.quiz-type-tab:hover{background:#fff9}.quiz-type-tab.active{background:var(--blue);color:#fff}.order-items{display:flex;flex-direction:column;gap:8px;margin-top:12px}.order-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;transition:all .14s}.order-item:hover{border-color:var(--blue)}.order-text{flex:1;font-size:.9rem}.order-num{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.order-arrows{display:flex;flex-direction:column;gap:2px}.order-arrows button{border:none;background:transparent;cursor:pointer;font-size:.7rem;padding:2px 6px;border-radius:4px;color:var(--muted);transition:all .1s}.order-arrows button:hover{background:var(--blue);color:#fff}.order-arrows button:disabled{opacity:.3;cursor:default}.order-arrows button:disabled:hover{background:transparent;color:var(--muted)}.short-answer-input{width:100%;min-height:80px;padding:12px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:.9rem;resize:vertical;margin-top:12px;background:var(--panel)}.short-answer-input:focus{outline:none;border-color:var(--blue)}.practice-deep-explanation{margin-top:8px;padding:10px 14px;background:#ffffff80;border-radius:10px;border-left:3px solid var(--blue-deep)}.practice-deep-explanation p{margin:0;font-size:.85rem;line-height:1.6}.dive-deeper-body{padding:16px 20px}.dive-deeper-options{display:flex;gap:12px;margin-top:16px}.dive-deeper-btn{flex:1;padding:16px;border:2px solid var(--line);border-radius:16px;background:#fff9;cursor:pointer;text-align:left;transition:all .2s}.dive-deeper-btn:hover{border-color:var(--blue);background:#78c9f214}.dive-deeper-btn strong{display:block;font-size:.95rem;margin-bottom:4px}.dive-deeper-btn small{color:var(--muted);font-size:.8rem}.sandbox-shell{position:relative;max-width:540px;margin:48px auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);max-height:min(80dvh,var(--overlay-panel-height));overflow-y:auto}.sandbox-body{padding:16px 20px}.sandbox-scenario{font-size:.95rem;line-height:1.6;margin-bottom:16px}.sandbox-controls{margin-bottom:16px}.sandbox-param-label{font-weight:600;font-size:.85rem;margin-bottom:8px}.sandbox-options{display:flex;gap:8px;flex-wrap:wrap}.sandbox-opt{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:6px 16px;font-size:.85rem;cursor:pointer;transition:all .14s}.sandbox-opt:hover{border-color:var(--blue)}.sandbox-opt.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.sandbox-result{padding:14px 16px;background:#c8ead84d;border-radius:12px;border-left:3px solid var(--green)}.sandbox-result p{margin:0;font-size:.9rem;line-height:1.6}.error-report-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .14s;opacity:0}.content-page:hover .error-report-btn{opacity:1}.error-report-btn:hover{background:#efb2a733;color:var(--rose)}.error-report-btn svg{width:14px;height:14px}.profile-shell{width:min(420px,100%);max-height:var(--overlay-panel-height);background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:auto}.profile-body{padding:20px}.profile-level{display:flex;align-items:center;gap:14px;margin-bottom:20px}.profile-level-badge{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--mint));color:#fff;display:grid;place-items:center;font-weight:850;font-size:.92rem;flex-shrink:0}.profile-level-info strong{display:block;font-size:1.1rem}.profile-level-info span{color:var(--muted);font-size:.82rem}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.profile-stat{text-align:center;padding:12px 8px;background:#fff9;border:1px solid var(--line);border-radius:16px}.profile-stat strong{display:block;font-size:1.5rem;font-weight:850;color:var(--blue-deep)}.profile-stat span{display:block;font-size:.78rem;color:var(--ink);font-weight:600}.profile-stat small{display:block;font-size:.7rem;color:var(--muted);margin-top:2px}.diagnostic-body{padding:16px 20px}.diagnostic-body label{display:block;margin-bottom:16px}.diagnostic-body label>span{display:block;font-weight:600;margin-bottom:8px;font-size:.9rem}.diagnostic-options{display:flex;gap:8px;flex-wrap:wrap}.diagnostic-opt{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:8px 18px;font-size:.85rem;cursor:pointer;transition:all .14s}.diagnostic-opt:hover{border-color:var(--blue)}.diagnostic-opt.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.diagnostic-body input{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:.9rem}.diagnostic-body input:focus{outline:none;border-color:var(--blue)}.create-dialog{width:min(480px,100%);max-height:var(--overlay-panel-height);background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:auto}.create-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px}.create-dialog-steps{display:flex;align-items:center;gap:0}.create-dialog-step{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;color:var(--muted);transition:all var(--dur-normal) var(--ease-out-quart)}.create-dialog-step.active{border-color:var(--blue);background:var(--blue);color:#fff}.create-dialog-step.done{border-color:var(--green);background:var(--green);color:#fff}.create-dialog-step-line{width:32px;height:2px;background:var(--line);transition:background var(--dur-normal) var(--ease-out-quart)}.create-dialog-step-line.done{background:var(--green)}.create-dialog-body{padding:8px 24px 24px;display:flex;flex-direction:column;gap:16px}.create-dialog-question{font-size:1.3rem;font-weight:700;margin:0;line-height:1.25}.create-dialog-chips{display:flex;flex-direction:column;gap:10px}.create-dialog-chip{border:1.5px solid var(--line);border-radius:16px;background:#fff9;padding:14px 18px;display:flex;align-items:center;gap:12px;font-size:.92rem;font-weight:700;cursor:pointer;transition:all .14s;text-align:left;width:100%}.create-dialog-chip svg{width:20px;height:20px;flex-shrink:0}.create-dialog-chip:hover{border-color:var(--blue);background:#78c9f214;transform:translateY(-2px)}.create-dialog-chip:active{transform:translateY(1px)}.create-dialog-chip.selected{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 4px #4e91b2}.create-dialog-ai-response{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#78c9f21a,#c8ead814),#fffdf6cc;border:1px solid rgba(120,201,242,.2)}.create-dialog-ai-icon{width:32px;height:32px;border-radius:10px;background:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.create-dialog-ai-icon svg{width:18px;height:18px}.create-dialog-ai-text{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink)}.typewriter{overflow:hidden;animation:typewriterReveal 1.2s steps(40,end) var(--dur-normal) both;white-space:normal}@keyframes typewriterReveal{0%{max-height:0;opacity:0}30%{opacity:0}to{max-height:200px;opacity:1}}.create-dialog-confirm{width:100%;margin-top:4px}.home-dashboard{padding:12px 0}.dashboard-row{display:flex;gap:12px}.dash-stat{flex:1;text-align:center;padding:12px 8px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}.dash-stat-val{display:block;font-size:1.4rem;font-weight:800;color:var(--ink)}.dash-stat-label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-top:2px}.dash-stat-sub{display:block;font-size:.72rem;color:var(--green);margin-top:1px}.streak-calendar{display:flex;gap:6px;margin-top:10px;justify-content:center}.streak-day{width:28px;height:28px;border-radius:8px;background:#fff6;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:var(--muted)}.streak-day.active{background:var(--green);color:#fff;border-color:var(--green)}.featured-section{margin-bottom:18px}.featured-heading{font-size:.78rem;font-weight:850;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.featured-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.featured-card{position:relative;border:1px solid rgba(40,23,21,.1);border-radius:18px;padding:14px 16px;background:#ffffff8a;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s;display:flex;flex-direction:column;gap:6px;text-align:left;overflow:hidden}.featured-card-header{display:flex;align-items:center;gap:10px}.featured-card-icon{font-size:1.5rem;line-height:1;flex-shrink:0}.featured-card:hover{background:#ffffffe6;border-color:#28171533;box-shadow:0 8px 20px #34221b14}.featured-card-title{font-weight:800;font-size:.92rem;color:var(--ink)}.featured-card-desc{font-size:.74rem;color:var(--muted);line-height:1.35}.featured-card-ready{display:inline-block;font-size:.64rem;font-weight:700;color:var(--green);background:#67b9821f;padding:2px 8px;border-radius:4px;margin-top:2px;align-self:flex-start}.home-bubbles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.home-bubble{position:absolute;bottom:-20px;width:18px;height:18px;border-radius:50%;background:#78c9f22e}.diagnostic-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;font-size:.78rem;color:var(--muted);cursor:pointer;border:0;background:none;padding:0}.diagnostic-link:hover{color:var(--blue-deep)}@media (max-width: 760px){.featured-grid{grid-template-columns:1fr}.recent-card-del{width:24px;height:24px}.generation-card-del{width:32px;height:32px}}.celebration-overlay{z-index:1000}.celebration-card{position:relative;max-width:400px;margin:80px auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 24px;text-align:center;animation:celebrationPop .5s cubic-bezier(.2,.8,.3,1.2) both}.celebration-icon{font-size:3rem;margin-bottom:12px;animation:celebrationBounce .6s ease-out both}.celebration-card h2{margin:0 0 16px}.celebration-stats{display:flex;gap:16px;justify-content:center;margin-bottom:24px}.stat-item strong{display:block;font-size:1.6rem;font-weight:800;color:var(--blue-deep)}.stat-item span{font-size:.8rem;color:var(--muted)}.celebration-card-fan{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}.celebration-card-item{padding:10px 14px;background:var(--mint);border-radius:14px;text-align:left;max-width:140px}.celebration-card-item strong{display:block;font-size:.82rem;margin-bottom:4px}.celebration-card-item p{font-size:.72rem;color:var(--muted);line-height:1.3;margin:0}.celebration-level{color:var(--blue-deep);font-weight:700;font-size:.9rem;margin-bottom:20px}.celebration-phase{text-align:center}.celebration-loading{font-size:1.1rem;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px}.celebration-loading i{animation:spin 1s linear infinite}.celebration-score-grid{display:flex;justify-content:center;gap:24px;margin:20px 0}.celebration-score-item{display:flex;flex-direction:column;align-items:center;gap:4px}.celebration-score-value{font-size:2rem;font-weight:800;color:var(--blue-deep);animation:counterUp .4s var(--ease-overshoot) both}.celebration-score-label{font-size:.78rem;color:var(--muted)}.celebration-streak-row{display:flex;justify-content:center;gap:8px;margin:16px 0}.celebration-streak-day{width:32px;height:32px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:.68rem;font-weight:700;color:var(--muted)}.celebration-streak-day.active{background:var(--peach);border-color:#28171533;color:var(--ink);animation:pulseScale .4s var(--ease-overshoot)}.celebration-pack{width:80px;height:80px;margin:20px auto;border-radius:20px;background:linear-gradient(135deg,var(--lavender),var(--mint));border:2px solid rgba(40,23,21,.15);display:grid;place-items:center;font-size:2rem;position:relative}.celebration-pack.charging{animation:packChargeGlow .8s ease infinite}.celebration-pack.shaking{animation:packShake .3s ease-in-out infinite}.celebration-pack.burst{animation:packLightBurst .6s ease forwards}@keyframes packSequence{0%,30%{box-shadow:0 0 #7bcaff00;transform:scale(1)}35%{box-shadow:0 0 24px 8px #7bcaff80;transform:scale(1.05)}40%{box-shadow:0 0 40px 16px #7bcaffcc;transform:scale(1.08)}45%,55%{box-shadow:0 0 40px 16px #7bcaff99;transform:translate(-3px) rotate(-1deg) scale(1.08)}50%{transform:translate(3px) rotate(1deg) scale(1.08)}60%{transform:translate(-2px) rotate(-.5deg) scale(1.1)}65%{transform:translate(2px) rotate(.5deg) scale(1.1)}70%{transform:scale(.3);opacity:0}to{transform:scale(2.5);opacity:0}}.celebration-pack.animate-sequence{animation:packSequence 2s ease forwards}.celebration-unlock-text{font-size:1.1rem;font-weight:800;color:var(--ink);margin:12px 0 4px}.celebration-unlock-feature{font-size:.88rem;color:var(--blue-deep);font-weight:700}.celebration-dive-options{display:flex;gap:10px;justify-content:center;margin:16px 0}.celebration-dive-btn{flex:1;max-width:180px;padding:12px;border:1px solid rgba(40,23,21,.12);border-radius:16px;background:#ffffff8a;cursor:pointer;text-align:left;transition:background .2s,border-color .2s}.celebration-dive-btn:hover{background:#ffffffe6;border-color:#28171533}.celebration-dive-btn strong{display:block;font-size:.85rem;margin-bottom:4px}.celebration-dive-btn small{font-size:.74rem;color:var(--muted)}@keyframes wiggle{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.animate-celebration-wiggle{animation:wiggle 1.2s ease-in-out infinite}@keyframes cardFlyIn{0%{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebrationPop{0%{opacity:0;transform:scale(.7) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes celebrationBounce{0%{transform:scale(0)}60%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.icon-button.mini{min-height:36px;width:36px}.dive-deeper-options{flex-direction:column}.dashboard-row{gap:6px}.dash-stat{padding:8px 4px}.dash-stat-val{font-size:1.1rem}.discuss-chips{padding:0 12px 8px}.quiz-type-tabs{padding:6px 10px;overflow-x:auto}.quiz-type-tab{padding:4px 10px;font-size:.74rem;white-space:nowrap}.floating-tutor{bottom:calc(72px + env(safe-area-inset-bottom,0px));right:16px;width:42px;height:42px}.floating-tutor svg{width:18px;height:18px}.celebration-card{margin:40px 16px;padding:24px 16px}.celebration-dive-options{flex-direction:column;align-items:center}.celebration-dive-btn{max-width:100%}.celebration-score-grid{gap:16px}.celebration-score-value{font-size:1.5rem}.lesson-hero{padding:14px}.lesson-hero h2{font-size:1.15rem}.lesson-hero p{font-size:.88rem}.lesson-hero.animate-cascade{animation-delay:.1s}.bite-sequence-grid button{min-height:72px;padding:10px;gap:4px}.bite-sequence-grid strong{font-size:.78rem}.bite-sequence-grid small{font-size:.72rem}.knowledge-card .card-front,.knowledge-card .card-back{padding:10px;min-height:80px}.concept-detail{padding:14px}.discuss-shell{border-radius:22px 22px 0 0}.action-row{flex-wrap:wrap;gap:6px}.action-row .icon-text-button{flex:1;min-width:0;justify-content:center}.action-row .icon-text-button span{display:inline;font-size:.72rem}.content-page.no-visual{grid-template-columns:1fr}.page-nav-side{position:static;justify-content:flex-start;margin-top:8px}}@keyframes cascadeDropIn{0%{opacity:0;transform:translateY(-20px) scale(.85)}60%{opacity:1;transform:translateY(4px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-cascade{animation:cascadeDropIn var(--dur-cascade) var(--ease-overshoot) both}@keyframes heroReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-hero{animation:heroReveal var(--dur-slow) var(--ease-out-quint) both}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideInUp var(--dur-normal) var(--ease-out-quint)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);background-size:200% 100%;animation:shimmer 1.5s linear infinite}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-bounce-slow{animation:bounce-slow 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(3deg)}}.animate-float{animation:float 6s ease-in-out infinite}@keyframes talking{0%,to{transform:scaleY(1)}15%{transform:scaleY(.92)}30%{transform:scaleY(1.02)}45%{transform:scaleY(.95)}60%{transform:scaleY(1)}75%{transform:scaleY(.93)}90%{transform:scaleY(1.01)}}.animate-talking{animation:talking .8s ease-in-out infinite}@keyframes wiggle{0%,45%{transform:translate(0) rotate(0)}50%{transform:translate(-5px) translateY(-2px) rotate(-4deg)}55%{transform:translate(5px) translateY(-3px) rotate(4deg)}60%{transform:translate(-3px) translateY(-1px) rotate(-2deg)}65%{transform:translate(2px) rotate(2deg)}70%,to{transform:translate(0) rotate(0)}}.animate-wiggle{animation:wiggle 4s ease-in-out infinite}@keyframes pulseWiggle{0%,70%{opacity:1}73%{opacity:.5}76%{opacity:1}79%{opacity:.6}82%,to{opacity:1}72%,to{opacity:.2}}.animate-pulse-wiggle{animation:pulseWiggle 4s ease-in-out infinite}@keyframes cardFanIn{0%{transform:scale(.4) translateY(40px) rotate(0);opacity:0}60%{opacity:1;transform:scale(1.05) translateY(-4px) rotate(var(--fan-angle, 0deg))}to{opacity:1;transform:scale(1) translateY(var(--fan-y, 0px)) rotate(var(--fan-angle, 0deg))}}.animate-card-fan{animation:cardFanIn .7s var(--ease-overshoot) both}@keyframes packChargeGlow{0%{box-shadow:0 0 #7bcaff00}50%{box-shadow:0 0 24px 8px #7bcaff80}to{box-shadow:0 0 40px 16px #7bcaffcc}}.pack-charging{animation:packChargeGlow .8s ease infinite}@keyframes packShake{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-3px) rotate(-1deg)}30%{transform:translate(3px) rotate(1deg)}45%{transform:translate(-2px) rotate(-.5deg)}60%{transform:translate(2px) rotate(.5deg)}75%{transform:translate(-1px) rotate(-.3deg)}90%{transform:translate(1px) rotate(.3deg)}}.pack-shaking{animation:packShake .3s ease-in-out infinite}@keyframes packTearLeft{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(-120%) rotate(-15deg);opacity:0}}@keyframes packTearRight{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(120%) rotate(15deg);opacity:0}}.pack-tear-left{animation:packTearLeft .7s var(--ease-overshoot) forwards}.pack-tear-right{animation:packTearRight .7s var(--ease-overshoot) forwards}@keyframes packLightBurst{0%{transform:scale(.3);opacity:0}40%{opacity:1}to{transform:scale(2.5);opacity:0}}.pack-burst{animation:packLightBurst .6s ease forwards}@keyframes bubbleRise{0%{transform:translateY(0) scale(1);opacity:0}10%{opacity:.5}50%{opacity:.3}to{transform:translateY(-600px) scale(.5);opacity:0}}.animate-bubble{animation:bubbleRise 6s ease-out infinite}@keyframes holdPulse{0%,to{opacity:.6}50%{opacity:1}}.animate-hold-pulse{animation:holdPulse 2s ease-in-out infinite}@keyframes counterUp{0%{opacity:0;transform:translateY(8px)}60%{opacity:1;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.animate-counter{animation:counterUp var(--dur-normal) var(--ease-overshoot) both}@keyframes pulseScale{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.animate-pulse-scale{animation:pulseScale .4s var(--ease-overshoot)}@keyframes flowDash{to{stroke-dashoffset:-9}}.term-clickable{position:relative;overflow:hidden}.term-clickable:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--blue),transparent);background-size:200% 100%;animation:shimmer 2s linear infinite}.term-search-link{display:inline-block;margin-top:4px;font-size:.78rem;font-weight:700;font-family:inherit;color:var(--blue-deep);border:1px solid rgba(40,23,21,.1);border-radius:8px;padding:3px 10px;background:#ffffff4d;cursor:pointer;transition:background .2s}.term-search-link:hover{background:#d8dcff66}.error-extension{margin-top:14px;padding:12px 14px;border:1px solid rgba(44,134,181,.25);border-radius:14px;background:#78c9f214;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.error-extension-icon{width:28px;height:28px;border-radius:8px;background:#78c9f233;display:grid;place-items:center;flex-shrink:0}.error-extension-icon svg{width:14px;height:14px}.error-extension-text{font-size:.82rem;color:var(--ink);line-height:1.4}.error-extension-text strong{color:var(--blue-deep)}.error-extension-btn{border:1px solid rgba(40,23,21,.1);border-radius:8px;padding:4px 12px;font-size:.78rem;font-weight:700;background:#fff9;color:var(--blue-deep);cursor:pointer;transition:background .2s;animation:pulseWiggle 4s ease-in-out 3}.error-extension-btn:hover{background:#d8dcff66}.lesson-node.generating{background:#78c9f21a;border-color:#78c9f24d}.lesson-node.generating strong{background:linear-gradient(90deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);background-size:200% 100%;animation:shimmer 1.5s linear infinite;-webkit-background-clip:text;background-clip:text}.lesson-node.generating small{color:var(--blue-deep);font-size:.68rem}.feature-locked{opacity:.45;pointer-events:none;position:relative}.feature-locked:after{content:"🔒";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.7rem}.intense-mode-banner{margin-top:16px;padding:14px;border:2px solid rgba(255,191,145,.4);border-radius:18px;background:linear-gradient(135deg,#ffbf911f,#d8dcff1f);text-align:center;animation:cascadeDropIn .9s var(--ease-overshoot) both}.intense-mode-banner h3{font-size:1rem;margin-bottom:4px}.intense-mode-banner p{font-size:.82rem;color:var(--muted);margin-bottom:12px}.intense-mode-actions{display:flex;gap:8px;justify-content:center}.intense-mode-accept{padding:8px 20px;border-radius:12px;border:0;font-weight:800;font-size:.85rem;background:var(--peach);color:var(--ink);cursor:pointer;transition:transform .15s}.intense-mode-accept:hover{transform:scale(1.04)}.intense-mode-decline{padding:8px 16px;border-radius:12px;border:1px solid var(--line);font-size:.82rem;background:transparent;color:var(--muted);cursor:pointer}.toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%);padding:10px 24px;border-radius:14px;background:var(--ink);color:#fff;font-size:.84rem;font-weight:600;z-index:9999;box-shadow:0 4px 20px #0000002e;pointer-events:none;white-space:nowrap}.visual-composition{gap:14px}.structured-visual{position:relative;min-height:390px;border:1.5px solid rgba(40,23,21,.12);border-radius:26px;background:linear-gradient(180deg,#ffffffdb,#fbf8eefa),var(--panel);box-shadow:0 22px 44px #34221b14,inset 0 1px #ffffff8c;overflow:hidden}.structured-visual:before,.structured-visual:after{content:"";position:absolute;border-radius:999px;pointer-events:none;opacity:.75}.structured-visual:before{width:220px;height:220px;right:-80px;top:-90px;background:radial-gradient(circle,rgba(120,201,242,.18),transparent 68%)}.structured-visual:after{width:180px;height:180px;left:-60px;bottom:-70px;background:radial-gradient(circle,rgba(255,191,145,.18),transparent 68%)}.v-header{position:relative;z-index:2;padding:18px 20px 0}.v-title-wrap{display:grid;gap:6px;max-width:82%}.v-kind{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:4px 10px;border:1px solid rgba(40,23,21,.12);border-radius:999px;background:#fffdf6e6;color:var(--muted);font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.v-title{text-align:left;font-size:1.18rem;font-weight:850;color:#20100f;padding:0;line-height:1.2}.v-caption{text-align:left;color:#6b5d55;font-size:.83rem;line-height:1.42;padding:0}.v-canvas{position:relative;min-height:270px;margin:12px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#ffffff70,#ffffff14),#fffdf670}.v-canvas--radial{background:radial-gradient(circle at 50% 50%,rgba(255,230,123,.22),transparent 26%),radial-gradient(circle at 20% 24%,rgba(120,201,242,.18),transparent 22%),radial-gradient(circle at 82% 76%,rgba(200,234,216,.2),transparent 24%),#fffdf666}.v-canvas--tree{background:linear-gradient(90deg,rgba(120,201,242,.08),transparent 36%,rgba(255,191,145,.08)),#fffdf666}.v-canvas--compare{background:linear-gradient(90deg,rgba(120,201,242,.12),rgba(120,201,242,.04) 40%,transparent 40%,transparent 60%,rgba(255,191,145,.04) 60%,rgba(255,191,145,.12)),#fffdf66b}.v-canvas--cascade{background:linear-gradient(180deg,#ffffff4d,#fffdf614),radial-gradient(circle at 14% 74%,rgba(216,220,255,.22),transparent 20%),radial-gradient(circle at 84% 26%,rgba(200,234,216,.18),transparent 22%),#fffdf66b}.v-canvas:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(40,23,21,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(40,23,21,.03) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.26),transparent 84%);mask-image:linear-gradient(180deg,rgba(0,0,0,.26),transparent 84%);pointer-events:none}.v-lines{z-index:1}.v-lines path{stroke:#28171557;stroke-width:.7;stroke-linecap:round;stroke-dasharray:5 3}.v-lines path.relation-compare{stroke-dasharray:2.5 4}.v-lines path.relation-part-of{stroke-dasharray:none}.v-lines path.hl{stroke:#a35e28;stroke-width:1.05;stroke-dasharray:none;filter:drop-shadow(0 0 3px rgba(163,94,40,.22))}.v-edge-label{position:absolute;z-index:2;transform:translate(-50%,-50%);padding:4px 9px;border:1px solid rgba(40,23,21,.12);border-radius:999px;background:#fffdf6e6;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;box-shadow:0 6px 14px #34221b14}.v-edge-label.selected{color:#8a4d21;background:#ffeddff5;border-color:#a35e282e}.v-node{min-width:112px;max-width:172px;min-height:58px;padding:10px 12px;border-radius:18px;border:1.5px solid rgba(40,23,21,.68);background:#fffdf6eb;box-shadow:0 4px #2817151a,0 14px 26px #34221b12;display:grid;justify-items:start;align-content:center;gap:4px;text-align:left;font:inherit;z-index:3}.v-node strong{font-size:.86rem;line-height:1.18}.v-node small{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.v-node.selected{border-color:#a35e28;box-shadow:0 0 0 4px #a35e281f,0 16px 30px #34221b1a;transform:translate(-50%,-50%) scale(1.03)}.v-node.v-focus{min-width:124px;box-shadow:0 5px #2817151f,0 18px 34px #34221b1f}.visual-mode-radial .v-node.v-focus,.visual-mode-tree .v-node.v-focus{border-radius:22px}.v-node-emoji{font-size:1.12rem;line-height:1}.tone-blue{background:linear-gradient(180deg,#ecf8ff,#d9f1fe 70%,#d0ebfb)}.tone-mint{background:linear-gradient(180deg,#eefcf4,#daf2e4 70%,#d0ebdc)}.tone-lavender{background:linear-gradient(180deg,#f4f5ff,#e6e9ff 70%,#dde2ff)}.tone-peach{background:linear-gradient(180deg,#fff4ea,#ffe0ca 70%,#ffd6bb)}.tone-gold{background:radial-gradient(circle at 36% 28%,#fff2a9,#f5cb49 58%,#dea21c)}.visual-expand-panel{background:#fffdf6e0;border:1px solid rgba(40,23,21,.12);border-radius:18px;padding:15px 16px;box-shadow:0 14px 28px #34221b14}.visual-expand-detail{font-size:.8rem;line-height:1.5}.visual-expand-relations{display:grid;gap:8px;margin:10px 0 12px}.visual-relation-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#78c9f214;border:1px solid rgba(40,23,21,.08)}.visual-relation-chip small{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.visual-relation-chip strong,.visual-relation-chip em{font-style:normal;font-size:.74rem}.visual-relation-chip em{color:#8a4d21;font-weight:700}@media (max-width: 760px){.structured-visual{min-height:330px;border-radius:20px}.v-header{padding:14px 14px 0}.v-title-wrap{max-width:100%}.v-title{font-size:1.02rem}.v-caption{font-size:.76rem}.v-canvas{min-height:230px;margin:10px;border-radius:18px}.v-node{min-width:88px;max-width:128px;min-height:46px;padding:8px 9px;border-radius:14px}.v-node strong{font-size:.76rem}.v-node small,.v-edge-label,.visual-relation-chip small{font-size:.58rem}.visual-relation-chip{grid-template-columns:1fr;justify-items:start}}.diagnosis-shell{width:min(680px,100%);max-height:var(--overlay-panel-height);overflow-y:auto;background:var(--panel);border:1.5px solid var(--line);border-radius:20px;display:flex;flex-direction:column}.diagnosis-top{padding:20px 24px 12px;border-bottom:1px solid var(--line)}.diagnosis-top-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.diagnosis-progress{display:flex;align-items:center;gap:10px}.diagnosis-progress-bar-wrap{flex:1;height:8px;border-radius:999px;background:#28171514;overflow:hidden}.diagnosis-progress-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--brand));transition:width .35s ease}.diagnosis-progress-text{font-size:.78rem;font-weight:750;color:var(--muted);white-space:nowrap}.diagnosis-body{padding:20px 24px;flex:1;display:flex;flex-direction:column;gap:16px}.diagnosis-question-label{font-size:.72rem;font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.diagnosis-question-text{font-size:1.05rem;font-weight:650;line-height:1.6;color:var(--dark)}.diagnosis-question-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.diagnosis-question-meta-tag{font-size:.68rem;padding:3px 10px;border-radius:999px;background:#2817150a;color:var(--muted);font-weight:650}.diagnosis-answer-options{display:flex;flex-direction:column;gap:10px;margin-top:6px}.diagnosis-option-btn{width:100%;text-align:left;padding:14px 18px;border:1.5px solid var(--line);border-radius:14px;background:#ffffff80;font-family:inherit;font-size:.92rem;line-height:1.5;cursor:pointer;transition:all .16s;display:flex;align-items:center;gap:12px}.diagnosis-option-btn:hover:not(.disabled){border-color:var(--blue);background:#78beff14}.diagnosis-option-btn:active:not(.disabled){transform:scale(.985)}.diagnosis-option-btn.disabled{cursor:default}.diagnosis-option-letter{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#2817150f;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:.82rem;color:var(--muted)}.diagnosis-option-btn.selected{border-color:var(--blue);background:#78beff1f}.diagnosis-option-btn.selected .diagnosis-option-letter{background:var(--blue);color:#fff}.diagnosis-option-btn.correct{border-color:#4caf50;background:#4caf501a}.diagnosis-option-btn.correct .diagnosis-option-letter{background:#4caf50;color:#fff}.diagnosis-option-btn.wrong{border-color:#ef5350;background:#ef535014}.diagnosis-option-btn.wrong .diagnosis-option-letter{background:#ef5350;color:#fff}.diagnosis-feedback{padding:12px 16px;border-radius:12px;font-size:.85rem;font-weight:650;line-height:1.5;animation:diagnosisFadeIn .25s ease}.diagnosis-feedback.correct{background:#4caf501a;color:#2e7d32}.diagnosis-feedback.wrong{background:#ef535014;color:#c62828}@keyframes diagnosisFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.diagnosis-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:6px}.diagnosis-result-header{text-align:center;padding:12px 0 4px}.diagnosis-result-header .kicker{margin-bottom:4px}.diagnosis-result-header h2{margin-bottom:6px}.diagnosis-mastery-lights{display:flex;justify-content:center;gap:20px;padding:16px 0;flex-wrap:wrap}.mastery-light-card{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:70px}.mastery-light-dot{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.mastery-light-dot.green{background:#4caf5026;box-shadow:0 0 12px #4caf5040}.mastery-light-dot.yellow{background:#fdd83533;box-shadow:0 0 12px #fdd83540}.mastery-light-dot.red{background:#ef53501f;box-shadow:0 0 12px #ef535033}.mastery-light-count{font-size:1.25rem;font-weight:750;color:var(--dark)}.mastery-light-label{font-size:.72rem;font-weight:650;color:var(--muted)}.diagnosis-progress-location{text-align:center;padding:8px 0 12px}.diagnosis-progress-location .location-text{font-size:.88rem;font-weight:650;color:var(--dark);background:#2817150a;display:inline-block;padding:6px 16px;border-radius:999px}.diagnosis-section-title{font-size:.85rem;font-weight:750;color:var(--dark);margin-bottom:10px;display:flex;align-items:center;gap:8px}.diagnosis-weak-points{display:flex;flex-direction:column;gap:8px}.weak-point-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:#28171508;border:1px solid var(--line)}.weak-point-item .level-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.weak-point-item .level-indicator.red{background:#ef5350}.weak-point-item .level-indicator.yellow{background:#fdd835}.weak-point-item .point-name{flex:1;font-size:.85rem;font-weight:650;color:var(--dark)}.weak-point-item .point-status{font-size:.72rem;font-weight:650;padding:3px 10px;border-radius:999px}.weak-point-item .point-status.red{background:#ef53501a;color:#c62828}.weak-point-item .point-status.yellow{background:#fdd83526;color:#b8860b}.diagnosis-root-cause{margin-top:8px;padding:14px 18px;border-radius:12px;background:#78beff0f;border:1px solid rgba(120,190,255,.15);font-size:.82rem;line-height:1.6;color:var(--dark)}.diagnosis-root-cause strong{color:var(--blue)}.diagnosis-mini-graph{margin-top:8px;border:1px solid var(--line);border-radius:14px;overflow:hidden;max-height:320px}.diagnosis-result-actions{display:flex;gap:12px;padding:4px 0 0;flex-wrap:wrap}.diagnosis-grade-selector{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.diagnosis-grade-chip{border:1px solid var(--line);border-radius:999px;background:#fff9;padding:6px 16px;font-size:.82rem;font-family:inherit;cursor:pointer;font-weight:650;transition:all .14s}.diagnosis-grade-chip:hover{border-color:var(--blue)}.diagnosis-grade-chip.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.diagnosis-start-section{text-align:center;padding:20px 0}.diagnosis-start-section h3{font-size:1.1rem;font-weight:750;margin-bottom:6px}.diagnosis-start-section p{font-size:.82rem;color:var(--muted);margin-bottom:16px;line-height:1.5}@media (max-width: 600px){.diagnosis-shell{max-height:100dvh;border-radius:0;border:none}.diagnosis-mastery-lights{gap:12px}.mastery-light-dot{width:36px;height:36px;font-size:.95rem}.mastery-light-count{font-size:1.05rem}}.ocr-shell{background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);max-width:520px;width:100%;max-height:var(--overlay-panel-height);display:flex;flex-direction:column;overflow:hidden}.ocr-body{flex:1;overflow-y:auto;padding:16px 20px 24px}.ocr-mode-tabs{display:flex;gap:0;margin-bottom:16px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.ocr-mode-tab{flex:1;padding:10px 0;border:none;background:#ffffff80;font-size:.82rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .14s}.ocr-mode-tab.active{background:var(--blue);color:#fff}.ocr-upload-area{border:2px dashed var(--line);border-radius:14px;padding:32px 16px;text-align:center;cursor:pointer;transition:border-color .14s}.ocr-upload-area:hover{border-color:var(--blue)}.ocr-upload-area p{margin:8px 0 2px;font-weight:700;font-size:.9rem;color:var(--dark)}.ocr-upload-area small{color:var(--muted);font-size:.75rem}.ocr-loading{display:flex;align-items:center;gap:10px;padding:20px;justify-content:center;color:var(--muted);font-size:.85rem}.ocr-error{padding:12px 16px;border-radius:10px;background:#ef535014;border:1px solid rgba(239,83,80,.2);color:#c62828;font-size:.82rem;margin-top:12px}.ocr-result{margin-top:16px}.ocr-result h3{font-size:.85rem;font-weight:750;margin:12px 0 8px;color:var(--dark)}.ocr-question-box{padding:14px 16px;border-radius:12px;background:#00000008;border:1px solid var(--line)}.ocr-question-type{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--blue);color:#fff;font-size:.7rem;font-weight:700;margin-bottom:6px}.ocr-question-content{font-size:.85rem;line-height:1.6;color:var(--dark)}.ocr-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ocr-options span{padding:3px 10px;border-radius:6px;background:#0000000a;font-size:.78rem}.ocr-match-list{display:flex;flex-direction:column;gap:6px}.ocr-match-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;border:1px solid var(--line);cursor:pointer;transition:all .14s;font-size:.82rem}.ocr-match-item:hover{border-color:var(--blue)}.ocr-match-item.selected{border-color:var(--blue);background:#1976d20f}.ocr-match-name{flex:1;font-weight:650;color:var(--dark)}.ocr-match-confidence{font-size:.72rem;color:var(--muted);font-weight:700}.ocr-no-match{font-size:.8rem;color:var(--muted)}.ocr-actions{display:flex;gap:8px;margin-top:16px}.ocr-solve-result{margin-top:12px;padding:14px 16px;border-radius:12px;background:#66bb6a0f;border:1px solid rgba(102,187,106,.2);font-size:.82rem;line-height:1.6}.ocr-solve-result h3{font-size:.82rem;font-weight:750;color:#2e7d32;margin:0 0 6px}.ocr-exam-previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ocr-exam-thumb{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}.ocr-exam-thumb img{width:100%;height:100%;object-fit:cover}.ocr-exam-thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:#0000008c;color:#fff;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.ocr-exam-add{width:72px;height:72px;border-radius:10px;border:2px dashed var(--line);background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:.68rem;font-family:inherit}.ocr-exam-add:hover{border-color:var(--blue);color:var(--blue)}.ocr-exam-results{margin-top:12px}.ocr-exam-summary{display:flex;gap:12px;margin-bottom:12px;padding:10px 14px;border-radius:10px;background:#00000008}.ocr-exam-stat{font-size:.78rem;font-weight:750}.ocr-stat-correct{color:#2e7d32}.ocr-stat-wrong{color:#c62828}.ocr-stat-unknown{color:#e65100}.ocr-exam-card{padding:14px 16px;border-radius:12px;border:1px solid var(--line);margin-bottom:10px}.ocr-card-correct{border-left:4px solid #66bb6a;background:#e8f5e966}.ocr-card-wrong{border-left:4px solid #ef5350;background:#ffebee66}.ocr-card-unknown{border-left:4px solid #ffb74d;background:#fff8e166}.ocr-exam-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.ocr-exam-card-num{font-size:.78rem;font-weight:750;color:var(--dark)}.ocr-exam-card-type{padding:2px 8px;border-radius:6px;background:#0000000f;font-size:.68rem;font-weight:700}.ocr-exam-correctness-btns{display:flex;gap:4px;margin-left:auto}.ocr-cc-btn{padding:3px 10px;border-radius:6px;border:1px solid var(--line);background:#fff9;font-size:.7rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .14s}.ocr-cc-btn:hover{border-color:var(--blue)}.ocr-cc-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.ocr-exam-card-content{font-size:.82rem;line-height:1.6;color:var(--dark)}.ocr-exam-card-answer{font-size:.78rem;color:var(--muted);margin-top:4px}.ocr-exam-card-point{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.78rem}.ocr-exam-point-tag{padding:2px 8px;border-radius:6px;background:#1976d214;color:var(--blue);font-size:.72rem;font-weight:700}.ocr-exam-point-select{flex:1;padding:5px 8px;border-radius:6px;border:1px solid var(--line);font-size:.75rem;font-family:inherit;background:#fff}.ocr-exam-actions{display:flex;gap:8px;margin-top:16px}.wb-shell{background:var(--panel);border:1.5px solid var(--line);border-radius:26px;box-shadow:var(--shadow);max-width:560px;width:100%;max-height:var(--overlay-panel-height);display:flex;flex-direction:column;overflow:hidden}.wb-body{flex:1;overflow-y:auto;padding:16px 20px 24px}.wb-header-stats{font-size:.72rem;color:var(--muted);font-weight:700}.wb-weak-points{margin-bottom:16px}.wb-weak-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.wb-weak-tag{padding:4px 10px;border-radius:8px;border:1px solid var(--line);font-size:.72rem;font-weight:650;cursor:pointer;transition:all .14s;background:#ffffff80}.wb-weak-tag:hover{border-color:var(--blue)}.wb-group{margin-bottom:14px}.wb-group-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px 10px 0 0;background:#00000008;border:1px solid var(--line);border-bottom:none}.wb-group-info{flex:1;font-size:.82rem;font-weight:700;color:var(--dark)}.wb-light{font-size:.9rem}.wb-group-items{border:1px solid var(--line);border-radius:0 0 10px 10px;padding:8px}.wb-item{padding:10px 12px;border-radius:8px;background:#ffffff80;margin-bottom:6px}.wb-item:last-child{margin-bottom:0}.wb-item-content{font-size:.82rem;line-height:1.5;color:var(--dark)}.wb-item-type,.wb-item-source{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.66rem;font-weight:700;margin-right:4px}.wb-item-type{background:#1976d214;color:var(--blue)}.wb-item-source.source-ocr{background:#ff980014;color:#e65100}.wb-item-source.source-quiz{background:#9c27b014;color:#7b1fa2}.wb-item-options{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.wb-item-options span{padding:2px 6px;border-radius:4px;background:#0000000a;font-size:.72rem}.wb-item-answer{font-size:.76rem;color:#2e7d32;margin-top:4px}.wb-item-actions{display:flex;gap:6px;margin-top:8px}.wb-empty{text-align:center;padding:40px 0;color:var(--muted);font-size:.85rem}.diagnosis-fill-input-wrap{display:flex;flex-direction:column;gap:8px;margin-top:8px}.diagnosis-fill-input{width:100%;padding:12px 16px;border-radius:10px;border:2px solid var(--line);font-size:.9rem;font-family:inherit;background:#fff;color:var(--dark);transition:border-color .14s}.diagnosis-fill-input:focus{outline:none;border-color:var(--blue)}.adaptive-quiz-shell{width:min(520px,calc(100vw - 32px));height:auto;max-height:min(640px,var(--overlay-panel-height));background:#fffcf3;border-radius:var(--radius);box-shadow:var(--shadow)}.adaptive-quiz-shell .practice-body{padding:12px 20px;min-height:unset}.adaptive-quiz-shell .practice-stage{min-height:unset}.adaptive-difficulty-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:.68rem;font-weight:800;letter-spacing:.03em}.adaptive-difficulty-badge.easy{background:#e8f5e9;color:#2e7d32}.adaptive-difficulty-badge.medium{background:#fff8e1;color:#f57f17}.adaptive-difficulty-badge.hard{background:#ffebee;color:#c62828}.adaptive-progress-bar-wrap{padding:6px 20px 4px;border-top:1px solid var(--line);background:#fffcf399}.adaptive-progress-stats{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:650;color:var(--muted);margin-bottom:4px}.adaptive-progress-count,.adaptive-progress-accuracy{font-variant-numeric:tabular-nums}.adaptive-progress-source{margin-left:auto;padding:1px 7px;border-radius:6px;font-size:.62rem;font-weight:800}.adaptive-progress-source.bank{background:#e3f2fd;color:#1565c0}.adaptive-progress-source.ai{background:#f3e5f5;color:#7b1fa2}.adaptive-progress-track{height:5px;background:#e8e0d0;border-radius:3px;overflow:hidden;position:relative}.adaptive-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),#a6e1bd);border-radius:3px;transition:width .4s ease}.adaptive-progress-threshold{position:absolute;top:0;width:2px;height:100%;background:#0003}.adaptive-progress-label{font-size:.6rem;color:#9e8e7e;margin-top:2px}.adaptive-quiz-options{padding:8px 20px 16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.adaptive-quiz-options button:not(.primary-button){padding:8px 12px;border:2px solid var(--line);border-radius:10px;background:#fff;font-size:.8rem;line-height:1.3;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .12s}.adaptive-quiz-options .primary-button{grid-column:1 / -1}.adaptive-quiz-options button:not(.primary-button):hover{border-color:var(--blue)}.adaptive-quiz-options button:not(.primary-button).selected{border-color:var(--blue-deep);background:#e3f2fd}.adaptive-quiz-options button:not(.primary-button).correct{border-color:var(--green);background:#e8f5e9}.adaptive-quiz-options button:not(.primary-button).wrong{border-color:#ef5350;background:#ffebee}.adaptive-fill-wrap{padding:0}.adaptive-fill-input{width:100%;padding:10px 14px;border:2px solid var(--line);border-radius:10px;font-size:.85rem;background:#fff}.adaptive-fill-input:focus{outline:none;border-color:var(--blue)}.adaptive-mastered-notice{text-align:center;padding:20px 16px}.adaptive-mastered-icon{font-size:40px;margin-bottom:8px}.adaptive-mastered-notice h2{font-size:1.1rem;color:var(--ink)}.adaptive-mastered-notice p{font-size:.82rem;color:var(--muted);margin:6px 0 12px}.adaptive-quiz-loading{text-align:center;padding:32px;color:var(--muted);font-size:.85rem}.lm-detail-actions{display:flex;gap:8px}.lm-detail-learn-btn{flex:1}.lm-detail-quiz-btn{flex:1;padding:10px;border:2px solid #dea21c;border-radius:12px;background:#fffcf3;color:#281715e6;font-size:.82rem;font-weight:850;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s,background .15s}.lm-detail-quiz-btn:hover{background:#fff4d6}.lm-detail-quiz-btn:active{transform:translateY(1px)}.lp-node{position:relative;min-height:68px;padding-top:16px}.lp-node-label{position:absolute;top:-2px;left:50%;transform:translate(-50%);font-size:.58rem;font-weight:800;color:#e65100;background:#ff980026;padding:2px 8px;white-space:nowrap;z-index:2}.decay-warning-banner{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff8e1;border-bottom:1px solid #ffe082;font-size:13px;color:#f57f17;animation:slideDown .3s ease}.decay-warning-icon{font-size:16px}.decay-warning-text{flex:1}.decay-warning-btn{background:#ffca28;border:none;border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;color:#5d4037}.decay-warning-btn:hover{background:#ffd54f}.mastery-tooltip{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#666;padding:4px 0}.mastery-tooltip-source,.mastery-tooltip-time{color:#888}.mastery-tooltip-decay{color:#e65100;font-weight:600}.learning-plan-shell{position:relative;width:min(580px,calc(100vw - 32px));max-height:min(720px,var(--overlay-panel-height));background:#fffcf3;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.learning-plan-inline{padding:16px 24px;width:100%;max-width:100%;justify-self:stretch;align-self:start}.learning-plan-inline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.learning-plan-inline-header h2{font-size:1.1rem;font-weight:850;color:var(--ink)}.learning-plan-body{flex:1;overflow-y:auto;padding:16px}.learning-plan-progress{margin-bottom:20px}.learning-plan-progress-bar{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:6px}.learning-plan-progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:4px;transition:width .5s ease}.learning-plan-progress-text{font-size:13px;color:#666;text-align:center}.learning-plan-sessions{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.learning-plan-session-card{border:1px solid #e0e0e0;border-radius:10px;padding:14px;background:#fff;transition:all .2s ease}.learning-plan-session-card.current{border-color:var(--blue);box-shadow:0 0 0 2px #1976d226;background:#e3f2fd}.learning-plan-session-card.done{opacity:.6;background:#f5f5f5}.learning-plan-session-card.upcoming{border-style:dashed}.session-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:600}.session-card-index{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px}.learning-plan-session-card.done .session-card-index{background:#4caf50}.session-card-label{flex:1}.session-card-duration{font-size:12px;color:#888}.session-card-points{display:flex;flex-wrap:wrap;gap:6px}.session-card-point{font-size:12px;padding:3px 10px;border-radius:12px;background:#e8eaf6;color:#283593;cursor:pointer;transition:all .15s}.session-card-point:hover{background:#c5cae9}.learning-plan-config{border-top:1px solid #e0e0e0;padding-top:16px;margin-top:8px}.plan-config-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:13px}.plan-config-row label{min-width:100px;color:#555}.plan-config-row input[type=range]{flex:1;accent-color:var(--blue)}.plan-config-row span{min-width:50px;text-align:right;color:#333;font-weight:500}.lesson-runner-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#fffcf3;display:flex;flex-direction:column;width:min(640px,100%);max-width:640px;max-height:100dvh;margin:0 auto;overflow:hidden}.lesson-runner-progress-bar{padding:8px 16px;display:flex;align-items:center;gap:12px}.lesson-progress-track{flex:1;height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.lesson-progress-fill{height:100%;background:linear-gradient(90deg,#42a5f5,#66bb6a);border-radius:3px;transition:width .4s ease}.lesson-progress-text{font-size:12px;color:#888;white-space:nowrap}.lesson-runner-body{flex:1;overflow-y:auto;padding:20px 16px}.lesson-step-content{max-width:560px;margin:0 auto}.lesson-step-title{font-size:18px;margin-bottom:12px;color:#333}.lesson-step-body{font-size:15px;line-height:1.7;color:#444}.lesson-step-body p{margin-bottom:10px}.lesson-quiz-section{margin-top:16px;padding:16px;background:#f5f5f5;border-radius:10px}.lesson-quiz-question{font-size:15px;font-weight:500;margin-bottom:12px;color:#333}.lesson-quiz-options{display:flex;flex-direction:column;gap:8px}.lesson-quiz-option{padding:10px 14px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;text-align:left;font-size:14px;transition:all .15s}.lesson-quiz-option:hover{border-color:#90caf9}.lesson-quiz-option.selected{border-color:var(--blue);background:#e3f2fd}.lesson-quiz-option.correct{border-color:#4caf50;background:#e8f5e9}.lesson-quiz-option.wrong{border-color:#ef5350;background:#ffebee}.lesson-quiz-fill-input{width:100%;padding:10px 14px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px}.lesson-quiz-fill-input:focus{outline:none;border-color:var(--blue)}.lesson-quiz-feedback{margin-top:12px;padding:10px;border-radius:8px;font-size:14px;font-weight:500}.lesson-quiz-feedback.correct{background:#e8f5e9;color:#2e7d32}.lesson-quiz-feedback.wrong{background:#ffebee;color:#c62828}.lesson-quiz-actions{display:flex;gap:10px;margin-top:12px}.lesson-prereq-suggestion{margin-top:12px;padding:10px;background:#fff3e0;border-radius:8px;color:#e65100;font-size:13px}.lesson-retry-exhausted{color:#e65100;font-size:13px;margin:4px 0}.lesson-runner-actions{padding:12px 16px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.lesson-runner-loading{text-align:center;padding:40px;color:#888;font-size:15px}.lesson-complete-summary{text-align:center;padding:24px 16px}.lesson-complete-summary h3{font-size:20px;margin-bottom:16px}.lesson-complete-stats{display:flex;justify-content:center;gap:24px;margin-bottom:20px}.lesson-stat{font-size:14px;color:#555}.resume-prompt-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#fffcf3;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;width:min(480px,100%);max-height:100dvh;overflow-y:auto;max-width:480px;margin:0 auto}.resume-prompt-icon{font-size:48px;margin-bottom:16px}.resume-prompt-shell h2{font-size:22px;margin-bottom:8px}.resume-prompt-shell p{color:#666;margin-bottom:24px}.resume-prompt-warning{color:#e65100;font-weight:500;margin-top:-12px;margin-bottom:20px}.resume-prompt-actions{display:flex;gap:12px}.completion-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#fffcf3;display:flex;flex-direction:column;align-items:center;padding:24px 16px;overflow-y:auto;width:min(520px,100%);max-height:100dvh;max-width:520px;margin:0 auto}.completion-header{text-align:center;margin-bottom:24px}.completion-trophy{font-size:64px;margin-bottom:8px}.completion-header h2{font-size:24px;color:#333}.completion-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-bottom:24px}.completion-stat-card{background:#f5f5f5;border-radius:12px;padding:16px;text-align:center}.completion-stat-value{font-size:24px;font-weight:700;color:var(--blue)}.completion-stat-label{font-size:12px;color:#888;margin-top:4px}.completion-lights{text-align:center;margin-bottom:24px}.completion-lights-row{display:flex;justify-content:center;gap:16px;font-size:18px;margin-bottom:8px}.completion-lights-change{font-size:13px;color:#888}.completion-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:300px}.global-progress-bar{height:4px;background:#e0e0e0;position:relative;transition:all .3s}.global-progress-bar.low .global-progress-fill{background:#ef5350}.global-progress-bar.mid .global-progress-fill{background:#ffca28}.global-progress-bar.high .global-progress-fill{background:#66bb6a}.global-progress-fill{height:100%;transition:width .5s ease;border-radius:0 2px 2px 0}.global-progress-text{position:absolute;right:8px;top:6px;font-size:11px;color:#888;display:none}.global-progress-bar:hover .global-progress-text{display:block}.global-progress-bar:hover{height:20px}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
