:root{--font-display:"Noto Sans SC", system-ui, sans-serif;--font-body:"Noto Serif SC", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--bg:#f7f5f0;--bg-surface:#fff;--bg-surface-hover:#f0ede6;--ink:#1a1a1a;--ink-soft:#555;--ink-mute:#888;--rule-soft:#1a1a1a1f;--accent:#c41e3a;--accent-hover:#a01830;--up:#e53935;--down:#43a047;--blue:#1565c0;--warn:#f57c00;--header-h:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.7}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.layout{flex-direction:column;min-height:100vh;display:flex}.header{z-index:100;border-bottom:1px solid var(--rule-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f5f0f2;position:sticky;top:0}.header-inner{flex-wrap:wrap;align-items:center;gap:20px;max-width:1100px;margin:0 auto;padding:12px 24px;display:flex}.logo{font-family:var(--font-display);color:var(--accent);font-weight:700;text-decoration:none}.nav{flex:1;gap:16px;display:flex}.nav a{font-family:var(--font-display);color:var(--ink-soft);font-size:.9rem;text-decoration:none}.nav a.router-link-active{color:var(--accent)}.user-bar{align-items:center;gap:10px;font-size:.85rem;display:flex}.username{color:var(--ink-soft)}.badge.admin{background:var(--accent);color:#fff;border-radius:10px;padding:2px 8px;font-size:.75rem}.main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px}.footer{text-align:center;color:var(--ink-mute);border-top:1px solid var(--rule-soft);padding:20px;font-size:.85rem}.page h1{font-family:var(--font-display);margin-bottom:8px;font-size:1.6rem}.card{background:var(--bg-surface);border:1px solid var(--rule-soft);border-radius:12px;margin-bottom:20px;padding:20px 24px}.btn{font-family:var(--font-display);background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:.95rem;text-decoration:none;display:inline-block}.btn:hover{background:var(--accent-hover);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-outline{color:var(--accent);border:1px solid var(--accent);background:0 0}.btn-outline:hover{background:#c41e3a0f}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-block{width:100%}.score-bar-wrap{background:var(--rule-soft);border-radius:4px;height:8px;margin-top:12px;position:relative;overflow:hidden}.score-bar{background:linear-gradient(90deg, var(--accent), var(--warn));border-radius:4px;height:100%}.score-label{color:var(--ink-mute);margin-top:6px;font-size:.8rem;display:block}@media (width<=640px){.header-inner{padding:10px 16px}.main{max-width:100%;padding:16px;overflow-x:hidden}.page{max-width:100%;overflow-x:hidden}}.learn-page .hero{text-align:center;padding:32px 24px}.learn-page .hero-sub{color:var(--ink-soft);max-width:600px;margin:0 auto 24px;font-size:1.05rem}.learn-page .hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.progress-ring-wrap{justify-content:center;margin:24px 0;display:flex}.progress-ring{width:120px;height:120px;position:relative}.progress-ring svg{transform:rotate(-90deg)}.progress-ring-text{font-family:var(--font-display);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.progress-ring-text .num{color:var(--accent);font-size:1.8rem;font-weight:700}.progress-ring-text .label{color:var(--ink-mute);font-size:.75rem}.disclaimer{background:var(--bg-surface);border-left:4px solid var(--warn);color:var(--ink-soft);border-radius:0 8px 8px 0;padding:12px 16px;font-size:.9rem}.day-grid{gap:20px;display:grid}.day-card{background:var(--bg);border:1px solid var(--rule-soft);border-radius:12px;padding:20px 24px}.day-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.day-header h3{font-family:var(--font-display);font-size:1.1rem}.day-badge{font-family:var(--font-display);background:var(--accent);color:#fff;border-radius:20px;padding:2px 10px;font-size:.75rem;font-weight:600}.day-desc{color:var(--ink-soft);margin-bottom:16px;font-size:.95rem}.lesson-list{margin:0;padding:0;list-style:none}.lesson-list li{border-top:1px solid var(--rule-soft);align-items:center;gap:10px;padding:10px 0;display:flex}.lesson-status{border:2px solid var(--rule-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;display:flex}.lesson-status.done{background:var(--down);border-color:var(--down);color:#fff}.lesson-link{font-family:var(--font-display);color:var(--ink);flex:1;text-decoration:none}.lesson-link:hover{color:var(--accent)}.lesson-meta{color:var(--ink-mute);font-size:.8rem}.learn-table{border-collapse:collapse;width:100%;font-size:.95rem}.learn-table th,.learn-table td{border:1px solid var(--rule-soft);text-align:left;padding:8px 12px}.learn-table th{background:var(--bg-surface-hover);font-family:var(--font-display)}.lesson-content{line-height:1.8}.lesson-content h1{font-family:var(--font-display);margin-bottom:16px}.lesson-content h2{font-family:var(--font-display);margin:28px 0 12px}.lesson-content blockquote{border-left:4px solid var(--accent);color:var(--ink-soft);margin:16px 0;padding:8px 16px}.lesson-content code{font-family:var(--font-mono);background:var(--bg-surface-hover);border-radius:4px;padding:2px 6px;font-size:.88em}.lesson-content table{border-collapse:collapse;width:100%;margin:16px 0;font-size:.95rem}.lesson-content th,.lesson-content td{border:1px solid var(--rule-soft);text-align:left;padding:8px 12px}.lesson-content th{background:var(--bg-surface-hover);font-family:var(--font-display)}.lesson-nav{border-top:1px solid var(--rule-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:40px;padding-top:24px;display:flex}.lesson-nav a{font-family:var(--font-display);border:1px solid var(--rule-soft);color:var(--ink);border-radius:8px;padding:10px 16px;text-decoration:none}.quiz-section{border-top:2px solid var(--rule-soft);margin-top:48px;padding-top:32px}.quiz-section h2{font-family:var(--font-display);margin-bottom:16px;font-size:1.2rem}.quiz-stage-label{color:var(--ink-mute);margin-bottom:12px;font-size:.9rem}.quiz-question{background:var(--bg);border:1px solid var(--rule-soft);border-radius:10px;margin-bottom:16px;padding:20px}.quiz-question.answered-correct{border-color:var(--down)}.quiz-question.answered-wrong{border-color:var(--up)}.quiz-q-text{margin-bottom:12px}.quiz-options{margin:0;padding:0;list-style:none}.quiz-options label{border:1px solid var(--rule-soft);cursor:pointer;border-radius:8px;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.quiz-explanation{background:var(--bg-surface-hover);color:var(--ink-soft);border-radius:8px;margin-top:12px;padding:12px;font-size:.9rem}.glossary-search{border:1px solid var(--rule-soft);background:var(--bg-surface);width:100%;max-width:480px;color:var(--ink);border-radius:8px;margin-bottom:24px;padding:12px 16px}.glossary-filters{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filter-btn{border:1px solid var(--rule-soft);background:var(--bg-surface);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:.85rem}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.glossary-item{background:var(--bg);border:1px solid var(--rule-soft);border-radius:10px;margin-bottom:12px;padding:16px 20px}.glossary-term{font-family:var(--font-display);color:var(--accent);font-weight:700}.sim-board{color:#e0e0e0;font-family:var(--font-mono);background:#1a1d24;border-radius:12px;min-height:320px;margin-bottom:24px;padding:20px;position:relative}.sim-price{color:var(--up);font-size:2rem;font-weight:700}.hotspot{cursor:pointer;border:2px dashed #0000;border-radius:4px;position:absolute}.hotspot:hover{border-color:var(--blue);background:#64b5f626}.hotspot.found{border-color:var(--down);background:#69f0ae26}.text-up{color:var(--up)}.text-down{color:var(--down)}.mindmap-page{max-width:960px}.mindmap-sub{color:var(--ink-soft);margin-bottom:16px}.mindmap-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.mindmap-toolbar .glossary-search{flex:1;min-width:200px;margin-bottom:0}.day-tabs{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.day-tab{border:1px solid var(--rule-soft);background:var(--bg-surface);cursor:pointer;font-family:var(--font-display);color:var(--ink-soft);border-radius:20px;padding:8px 14px;font-size:.85rem}.day-tab:hover{border-color:var(--accent);color:var(--accent)}.day-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.mindmap-overview{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:28px;display:grid}.overview-chip{background:var(--bg-surface);border:1px solid var(--rule-soft);text-align:center;cursor:pointer;font-family:var(--font-display);border-radius:10px;padding:12px;font-size:.85rem}.overview-chip:hover{border-color:var(--accent)}.chip-day{color:var(--ink-mute);margin-bottom:4px;font-size:.7rem;display:block}.mindmap-root-label{font-family:var(--font-display);color:var(--accent);text-align:center;border-bottom:2px solid var(--rule-soft);margin-bottom:20px;padding-bottom:16px;font-size:1.3rem;font-weight:700}.mm-tree,.mm-tree ul{margin:0;padding:0;list-style:none}.mm-tree>li{margin-bottom:8px}.mm-node{border-radius:8px;align-items:flex-start;gap:8px;margin:2px 0;padding:8px 12px;font-size:.95rem;line-height:1.5;display:flex}.mm-node:hover{background:var(--bg-surface-hover)}.mm-node.mm-leaf{color:var(--ink-soft);padding-left:36px;font-weight:400}.mm-label.highlight{outline:1px solid var(--accent);background:#c41e3a1f;border-radius:4px}.mm-toggle{border:1px solid var(--rule-soft);background:var(--bg);cursor:pointer;text-align:center;width:22px;height:22px;color:var(--ink-soft);border-radius:4px;flex-shrink:0;padding:0;font-size:.75rem;line-height:20px}.mm-toggle.empty{visibility:hidden}.mm-label a{color:inherit;border-bottom:1px dashed var(--blue);text-decoration:none}.mm-children{border-left:2px solid var(--rule-soft);margin-left:20px;padding-left:16px}.mermaid-wrap{background:var(--bg);border:1px solid var(--rule-soft);border-radius:12px;padding:24px;overflow-x:auto}.main--lesson{max-width:none;padding:0}@media (width<=768px){.mm-children{margin-left:8px;padding-left:10px}}
