:root{--bg-primary: #090d16;--bg-secondary: #0f172a;--bg-surface: #1e293b;--bg-card: rgba(15, 23, 42, .94);--bg-card-border: rgba(51, 65, 85, .7);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-cyan: #38bdf8;--accent-emerald: #10b981;--accent-amber: #f59e0b;--accent-rose: #f43f5e;--accent-purple: #8b5cf6;--accent-blue: #3b82f6;--border-color: #1e293b;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .6);--shadow-glow-cyan: 0 0 18px rgba(56, 189, 248, .3);--shadow-glow-emerald: 0 0 18px rgba(16, 185, 129, .3);--shadow-glow-amber: 0 0 18px rgba(245, 158, 11, .3);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--anim-fast: .15s;--anim-normal: .3s;--anim-slow: .5s;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--glass-bg: rgba(15, 23, 42, .72);--glass-border: rgba(56, 189, 248, .15);--glass-blur: 16px}*{margin:0;padding:0;box-sizing:border-box;font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html,body{background-color:var(--bg-primary);color:var(--text-primary);width:100vw;height:100vh;height:100dvh;overflow:hidden;position:fixed;display:flex;flex-direction:column}.hidden{display:none!important}#appRoot{width:100%;height:100%;position:relative;overflow:hidden;display:flex}#appRoot.route-fading{animation:routeFadeIn var(--anim-normal) var(--ease-out-expo) forwards}@keyframes routeFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.55}}@keyframes pulseGlow{0%,to{box-shadow:0 0 6px #38bdf84d}50%{box-shadow:0 0 16px #38bdf899}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes heroGradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes tabIndicatorSlide{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes correctPop{0%{transform:scale(1)}40%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes wrongShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes scoreRingDraw{0%{stroke-dashoffset:283}}@keyframes floatParticle{0%,to{transform:translateY(0) rotate(0);opacity:.4}50%{transform:translateY(-12px) rotate(180deg);opacity:.8}}.app-toast{position:fixed;top:max(20px,env(safe-area-inset-top,20px));left:50%;transform:translate(-50%) translateY(-20px);background:#0f172af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);color:var(--text-primary);font-size:12px;font-weight:600;padding:8px 18px;border-radius:var(--radius-lg);z-index:9999;opacity:0;pointer-events:none;transition:all var(--anim-normal) var(--ease-out-expo);box-shadow:0 8px 24px #00000080}.app-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.home-page-wrapper{width:100%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(14px,env(safe-area-inset-top,14px)) 14px calc(28px + var(--safe-area-bottom));display:flex;flex-direction:column;gap:14px;animation:fadeIn var(--anim-normal) var(--ease-out-expo)}.home-top-nav{display:flex;align-items:center;justify-content:space-between;padding:4px 2px;flex-shrink:0;position:relative;z-index:10}.home-brand{display:flex;align-items:center;gap:8px}.brand-logo-badge{background:linear-gradient(135deg,#0284c7,#10b981);color:#fff;font-weight:800;font-size:11px;padding:3px 10px;border-radius:var(--radius-sm);letter-spacing:.5px;box-shadow:0 0 12px #38bdf866;animation:pulseGlow 3s ease-in-out infinite}.brand-name{font-size:13px;font-weight:700;color:#fff}.curriculum-count-badge{font-size:10px;background:#1e293b;color:var(--accent-cyan);padding:2px 8px;border-radius:12px;border:1px solid rgba(56,189,248,.3)}.home-hero-banner{background:linear-gradient(135deg,#0f172af2,#022c2299,#38bdf814);background-size:200% 200%;animation:heroGradientShift 8s ease-in-out infinite;border:1px solid rgba(56,189,248,.25);border-radius:var(--radius-lg);padding:16px 14px;box-shadow:0 8px 28px #00000080,var(--shadow-glow-cyan);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;overflow:hidden;isolation:isolate;flex-shrink:0}.home-hero-banner>*{position:relative;z-index:1}.home-hero-banner:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(56,189,248,.04) 0%,transparent 70%);animation:heroGradientShift 12s ease-in-out infinite reverse;pointer-events:none;z-index:0}.home-badge{display:inline-flex;align-items:center;gap:5px;background:#f59e0b2e;color:#fbbf24;border:1px solid rgba(245,158,11,.45);font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;margin-bottom:8px;width:fit-content;position:relative;z-index:2;line-height:1.3}.home-hero-title{font-size:16px;font-weight:800;color:#fff;line-height:1.35;margin-bottom:4px}.home-hero-sub{display:block;font-size:12px;color:var(--accent-cyan);margin-top:2px;font-weight:600}.home-hero-text{font-size:11px;color:#cbd5e1;line-height:1.4;margin-top:4px}.grade-filter-bar{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.grade-filter-bar::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;background:#1e293b;border:1px solid var(--bg-card-border);color:#94a3b8;font-size:11px;font-weight:600;padding:5px 12px;border-radius:20px;cursor:pointer;transition:all var(--anim-normal) var(--ease-spring)}.filter-chip:active{transform:scale(.93)}.filter-chip.active{background:linear-gradient(135deg,#0284c7,#2563eb);color:#fff;border-color:#38bdf899;box-shadow:0 3px 12px #38bdf859;transform:scale(1.02)}.curriculum-section{display:flex;flex-direction:column;gap:14px}.grade-group{display:flex;flex-direction:column;gap:8px}.grade-group-header{display:flex;align-items:center;justify-content:space-between;padding:0 2px}.grade-title-box{display:flex;align-items:center;gap:6px}.grade-name{font-size:13px;font-weight:800;color:#f8fafc}.grade-theme-badge{font-size:9px;background:#38bdf81f;color:var(--accent-cyan);padding:1px 5px;border-radius:4px;border:1px solid rgba(56,189,248,.25)}.grade-item-count{font-size:10px;color:#64748b}.curriculum-list{display:flex;flex-direction:column;gap:8px}.course-card{background:#0f172aeb;border:1px solid var(--bg-card-border);border-radius:var(--radius-md);display:flex;align-items:center;padding:10px;gap:10px;cursor:pointer;transition:all var(--anim-normal) var(--ease-out-expo);box-shadow:0 4px 12px #0000004d;position:relative;overflow:hidden}.course-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;opacity:0;background:linear-gradient(135deg,rgba(56,189,248,.06),transparent);transition:opacity var(--anim-normal);pointer-events:none}.course-card:hover:after,.course-card:active:after{opacity:1}.course-card:active{transform:scale(.98);border-color:var(--accent-cyan)}.course-card.active-course{border-color:#38bdf859;background:linear-gradient(135deg,#0f172af2,#06b6d414)}.course-card.active-course .card-left-badge{animation:pulseGlow 2.5s ease-in-out infinite}.course-card.card-anim{animation:fadeInUp var(--anim-slow) var(--ease-out-expo) backwards}.course-card.card-shake{animation:shake .4s ease}.card-left-badge{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #00000059;transition:transform var(--anim-normal) var(--ease-spring)}.course-card:active .card-left-badge{transform:scale(.92)}.course-num{font-size:12px;font-weight:900;color:#fff;text-align:center;letter-spacing:.5px}.card-content{flex:1;display:flex;flex-direction:column;gap:3px;overflow:hidden}.card-header-row{display:flex;align-items:center;justify-content:space-between}.course-name{font-size:13px;font-weight:700;color:#fff}.status-badge{font-size:9px;padding:1px 5px;border-radius:4px;background:#1e293b;color:#94a3b8}.status-badge.live{background:#10b98133;color:#6ee7b7;border:1px solid rgba(16,185,129,.4);font-weight:700;animation:breathe 2s ease-in-out infinite}.status-badge.preview{background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.3)}.course-desc{font-size:11px;color:#94a3b8;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.desc-focus{color:#cbd5e1;font-weight:600}.course-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.tag-chip{font-size:9px;background:#1e293bd9;color:#94a3b8;padding:1px 5px;border-radius:3px;border:1px solid rgba(51,65,85,.5)}.card-arrow{font-size:13px;font-weight:700;color:var(--accent-cyan);flex-shrink:0}.topic-view-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.topic-top-header{height:46px;min-height:46px;background:#0f172afa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 10px;z-index:30}.topic-back-btn{background:#1e293b;border:1px solid var(--bg-card-border);color:#cbd5e1;font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--anim-fast) var(--ease-smooth)}.topic-back-btn:active{transform:scale(.93);background:#38bdf826;border-color:var(--accent-cyan);color:var(--accent-cyan)}.topic-header-title-wrap{display:flex;align-items:center;gap:6px}.topic-header-badge{background:var(--accent-cyan);color:#0f172a;font-size:9px;font-weight:800;padding:2px 7px;border-radius:4px;transition:all var(--anim-normal) var(--ease-spring);letter-spacing:.3px}.topic-header-title{font-size:13px;font-weight:700;color:#fff}.topic-action-btn{background:#f59e0b33;border:1px solid rgba(245,158,11,.4);color:#fbbf24;font-size:10px;font-weight:700;padding:3px 7px;border-radius:var(--radius-sm);cursor:pointer}.topic-workspace{flex:1;position:relative;overflow:hidden;display:flex;background:#000}.view-pane{flex:1;height:100%;position:relative;display:flex;flex-direction:column}.pane-header{position:absolute;top:6px;left:6px;right:6px;display:flex;align-items:center;justify-content:space-between;z-index:20;pointer-events:none}.pane-title-badge{background:#0f172ae0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--bg-card-border);padding:3px 6px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;color:var(--text-primary);pointer-events:auto}.pane-controls{display:flex;align-items:center;gap:4px;pointer-events:auto}.mini-toggle-btn{background:#0f172ae0;border:1px solid var(--bg-card-border);color:#94a3b8;font-size:9px;padding:2px 5px;border-radius:3px;cursor:pointer}.mini-toggle-btn.active{color:var(--accent-cyan);border-color:var(--accent-cyan);font-weight:700}.canvas-container{flex:1;width:100%;height:100%;position:relative;overflow:hidden;touch-action:none}.canvas-container canvas{width:100%;height:100%;display:block;touch-action:none}.camera-view-picker{position:absolute;top:10px;right:10px;background:#0f172ae0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--bg-card-border);padding:3px;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:3px;z-index:20}.view-btn{background:#1e293bb3;border:1px solid transparent;color:#cbd5e1;font-size:10px;padding:3px 6px;border-radius:3px;cursor:pointer}.view-btn.active{background:var(--accent-cyan);color:#0f172a;font-weight:700}.profile-dual-pane{display:flex;flex-direction:column;height:100%;width:100%;background:#090d16}.profile-top-map{flex:1.1;position:relative;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.profile-pane-banner{height:26px;background:#0f172af2;display:flex;align-items:center;justify-content:space-between;padding:0 8px;font-size:10px;color:#94a3b8;border-bottom:1px solid var(--border-color);z-index:10}.profile-coords{color:var(--accent-cyan);font-weight:700;font-family:monospace}.profile-bottom-chart{flex:.9;position:relative;background:#0f172a;display:flex;flex-direction:column;overflow:hidden}.profile-chart-header{height:24px;background:#1e293b;display:flex;align-items:center;justify-content:space-between;padding:0 8px;font-size:10px;color:#f8fafc}.profile-stats{font-size:9px;color:var(--accent-cyan)}.profile-canvas-wrap{flex:1;position:relative;overflow:hidden}.profile-canvas-wrap canvas{width:100%;height:100%;display:block}.quiz-view-pane{display:flex;align-items:center;justify-content:center;padding:12px;overflow-y:auto;background:radial-gradient(circle at 50% 30%,rgba(30,41,59,.5) 0%,var(--bg-primary) 80%)}.embedded-quiz-card{width:100%;max-width:520px;background:#0f172af5;border:1px solid var(--bg-card-border);border-radius:var(--radius-lg);padding:14px;box-shadow:0 10px 30px #0009,var(--shadow-glow-cyan)}.quiz-question-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.quiz-q-badge{background:var(--accent-cyan);color:#0f172a;font-size:10px;font-weight:800;padding:2px 6px;border-radius:4px}.quiz-q-progress{font-size:11px;color:#94a3b8}.quiz-question-title{font-size:11px;color:var(--accent-amber);font-weight:700;margin-bottom:4px}.quiz-question-stem{font-size:13px;font-weight:700;color:#fff;line-height:1.45;margin-bottom:12px}.quiz-options-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.quiz-opt-btn{background:#1e293b;border:1px solid #334155;border-radius:var(--radius-md);padding:10px 12px;display:flex;align-items:center;gap:10px;color:#f8fafc;font-size:12px;cursor:pointer;text-align:left;transition:all var(--anim-normal) var(--ease-smooth)}.quiz-opt-btn:active{transform:scale(.985)}.quiz-opt-btn.correct{background:#10b98133;border-color:var(--accent-emerald);color:#6ee7b7;font-weight:700;animation:correctPop var(--anim-normal) var(--ease-spring)}.quiz-opt-btn.wrong{background:#ef444433;border-color:var(--accent-rose);color:#fca5a5;animation:wrongShake var(--anim-normal) ease}.opt-badge{background:#0f172a;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;flex-shrink:0}.opt-content{flex:1}.quiz-analysis-card{background:#0ea5e91f;border:1px solid rgba(56,189,248,.35);border-radius:var(--radius-md);padding:12px;margin-top:8px;display:flex;flex-direction:column;gap:6px;animation:slideInUp var(--anim-normal) var(--ease-out-expo)}.analysis-tag{font-size:11px;font-weight:700;color:var(--accent-cyan)}.analysis-text{font-size:11px;color:#e2e8f0;line-height:1.45}.quiz-next-btn{align-self:flex-end;background:linear-gradient(135deg,#0284c7,#2563eb);border:none;color:#fff;font-size:11px;font-weight:700;padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 2px 10px #38bdf84d;transition:all var(--anim-fast) var(--ease-spring)}.quiz-next-btn:active{transform:scale(.95)}.quiz-summary-card{text-align:center;padding:14px 0;display:flex;flex-direction:column;align-items:center;gap:10px;animation:scaleIn var(--anim-slow) var(--ease-out-expo)}.summary-score-circle{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,#38bdf826,#10b98126);border:3px solid var(--accent-cyan);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:pulseGlow 2s ease-in-out infinite}.summary-score-val{font-size:26px;font-weight:900;color:var(--accent-cyan)}.summary-score-unit{font-size:10px;color:#94a3b8}.summary-title{font-size:14px;font-weight:700;color:#fff}.summary-desc{font-size:11px;color:#94a3b8;line-height:1.45;max-width:90%}.summary-actions{display:flex;gap:10px;margin-top:6px}.summary-btn{padding:8px 16px;border-radius:var(--radius-md);font-size:11px;font-weight:700;cursor:pointer}.summary-btn.retry{background:#1e293b;border:1px solid #475569;color:#fff;transition:all var(--anim-fast) var(--ease-spring)}.summary-btn.retry:active{transform:scale(.95)}.summary-btn.review{background:linear-gradient(135deg,#0284c7,#10b981);border:none;color:#fff;transition:all var(--anim-fast) var(--ease-spring);box-shadow:0 2px 10px #10b9814d}.summary-btn.review:active{transform:scale(.95)}.topic-control-dock{background:#0f172afa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border-color);padding:7px 12px;z-index:40}.dock-module-panel{display:flex;flex-direction:column;gap:6px;animation:slideInUp var(--anim-normal) var(--ease-out-expo)}.dock-row-title{font-size:10px;font-weight:700;color:#94a3b8;flex-shrink:0}.dock-lift-row{display:flex;align-items:center;gap:6px;background:#1e293bbf;border:1px solid rgba(56,189,248,.25);border-radius:var(--radius-md);padding:4px 8px}.lift-title-wrap{display:flex;align-items:center;gap:4px;flex-shrink:0}.lift-label{font-size:11px;font-weight:700;color:var(--accent-cyan)}.lift-val-badge{font-size:9px;font-weight:700;color:#fff;background:#0ea5e959;padding:1px 4px;border-radius:3px;min-width:32px;text-align:center}.lift-slider-container{flex:1;display:flex;align-items:center;min-width:70px}.lift-slider{-webkit-appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(90deg,#38bdf84d,#334155);outline:none;transition:background var(--anim-fast)}.lift-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--accent-cyan),#0ea5e9);box-shadow:0 0 10px #38bdf880,0 2px 6px #0006;border:2px solid rgba(255,255,255,.2);cursor:grab;transition:transform var(--anim-fast) var(--ease-spring)}.lift-slider:active::-webkit-slider-thumb{transform:scale(1.2);cursor:grabbing}.lift-quick-actions{display:flex;align-items:center;gap:3px;flex-shrink:0}.lift-quick-btn{background:#334155d9;border:1px solid rgba(148,163,184,.2);color:#cbd5e1;font-size:9px;padding:3px 7px;border-radius:4px;cursor:pointer;transition:all var(--anim-fast) var(--ease-spring)}.lift-quick-btn:active{transform:scale(.92)}.lift-quick-btn.active{background:var(--accent-cyan);color:#0f172a;font-weight:700;box-shadow:0 0 8px #38bdf84d}.dock-tools-row{display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:none}.dock-tools-row::-webkit-scrollbar{display:none}.tool-toggle-btn{background:#1e293bcc;border:1px solid var(--border-color);color:var(--text-secondary);font-size:10px;font-weight:500;padding:4px 9px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;cursor:pointer;transition:all var(--anim-fast) var(--ease-smooth)}.tool-toggle-btn:active{transform:scale(.94)}.tool-toggle-btn.active{background:#0ea5e940;border-color:var(--accent-cyan);color:var(--accent-cyan);font-weight:700}.landmark-selector-row{display:flex;align-items:center;gap:6px;overflow:hidden}.dock-landmarks-scroll{display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.dock-landmarks-scroll::-webkit-scrollbar{display:none}.lm-nav-btn{background:#1e293bb3;border:1px solid rgba(71,85,105,.5);color:#cbd5e1;font-size:10px;font-weight:500;padding:3px 8px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;cursor:pointer}.lm-nav-btn.active{background:#0284c7;color:#fff;border-color:#38bdf8;font-weight:700}.inline-landmark-card{background:#0f172aeb;border:1px solid var(--bg-card-border);border-radius:var(--radius-md);padding:6px 8px;display:flex;flex-direction:column;gap:4px}.inline-lm-header{display:flex;align-items:center;justify-content:space-between}.inline-lm-left{display:flex;align-items:center;gap:6px}.inline-lm-badge{font-size:11px;font-weight:700;padding:1px 5px;border-radius:4px}.inline-lm-elev{font-size:10px;color:#94a3b8}.inline-lm-focus-btn{background:#1e293b;border:1px solid #334155;color:var(--accent-cyan);font-size:9px;padding:2px 6px;border-radius:3px;cursor:pointer}.inline-lm-mnemonic{background:linear-gradient(135deg,#ef444426,#f59e0b26);border-left:3px solid #ef4444;padding:3px 6px;border-radius:2px;font-size:11px;color:#fef08a}.m-fire{color:#f87171;font-weight:700}.inline-lm-grid{display:flex;flex-direction:column;gap:2px;font-size:10px;color:#cbd5e1}.inline-lm-item{line-height:1.35}.inline-lm-item.highlight{color:#7dd3fc}.i-label{color:#94a3b8;font-weight:700}.flow-principle-card{background:#0ea5e91a;border:1px solid rgba(56,189,248,.3);border-radius:var(--radius-sm);padding:4px 6px;display:flex;flex-direction:column;gap:3px}.principle-item{display:flex;align-items:center;gap:6px;font-size:10px}.p-badge{background:#1e293b;color:#fff;font-weight:700;font-size:9px;padding:1px 5px;border-radius:3px;flex-shrink:0}.p-text{color:#cbd5e1}.quiz-dock-bar{display:flex;align-items:center;justify-content:space-between;padding:2px 0}.quiz-dock-tip{font-size:10px;color:#94a3b8}.quiz-restart-mini-btn{background:#1e293b;border:1px solid var(--bg-card-border);color:#cbd5e1;font-size:10px;padding:3px 8px;border-radius:var(--radius-sm);cursor:pointer}.topic-bottom-tabbar{height:50px;min-height:50px;background:#0f172afa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-around;padding:0 4px calc(var(--safe-area-bottom));z-index:50;position:relative}.topic-tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);font-size:10px;font-weight:600;gap:2px;cursor:pointer;transition:all var(--anim-normal) var(--ease-spring);padding:4px 0;position:relative}.topic-tab-item:active{transform:scale(.9)}.topic-tab-icon{font-size:15px;transition:all var(--anim-normal) var(--ease-spring)}.topic-tab-item.active{color:var(--accent-cyan)}.topic-tab-item.active:after{content:"";position:absolute;bottom:0;left:25%;width:50%;height:2.5px;background:var(--accent-cyan);border-radius:2px;animation:tabIndicatorSlide var(--anim-normal) var(--ease-out-expo);box-shadow:0 0 8px #38bdf880}.topic-tab-item.active .topic-tab-icon{transform:scale(1.18);filter:drop-shadow(0 0 8px rgba(56,189,248,.7))}.not-found-page-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(circle at 50% 30%,rgba(30,41,59,.6) 0%,var(--bg-primary) 70%);animation:fadeIn var(--anim-slow) var(--ease-out-expo);position:relative;overflow:hidden}.not-found-page-wrapper:before,.not-found-page-wrapper:after{content:"";position:absolute;border-radius:50%;background:#38bdf80f;pointer-events:none}.not-found-page-wrapper:before{width:200px;height:200px;top:15%;left:10%;animation:floatParticle 6s ease-in-out infinite}.not-found-page-wrapper:after{width:120px;height:120px;bottom:20%;right:15%;animation:floatParticle 8s ease-in-out infinite reverse}.not-found-card{width:100%;max-width:420px;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:28px 20px;text-align:center;box-shadow:0 16px 40px #0009,var(--shadow-glow-cyan);display:flex;flex-direction:column;align-items:center;gap:14px;animation:scaleIn var(--anim-slow) var(--ease-out-expo)}.not-found-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.not-found-glitch{font-size:58px;font-weight:900;letter-spacing:3px;background:linear-gradient(135deg,#38bdf859,#6366f140,#10b98133);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:heroGradientShift 4s ease-in-out infinite}.not-found-icon{position:absolute;font-size:32px;animation:pulseRotate 4s ease-in-out infinite}@keyframes pulseRotate{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(15deg)}}.not-found-title{font-size:17px;font-weight:800;color:#fff}.not-found-path-badge{background:#1e293bd9;border:1px dashed rgba(56,189,248,.4);padding:4px 10px;border-radius:6px;font-size:11px;color:#94a3b8}.not-found-path-badge code{color:var(--accent-cyan);font-weight:700}.not-found-desc{font-size:12px;color:#cbd5e1;line-height:1.6;margin:4px 0 8px}.highlight-text{color:var(--accent-cyan);font-weight:700}.not-found-actions{width:100%;display:flex;flex-direction:column;gap:8px}.not-found-btn{width:100%;padding:12px;font-size:12px;font-weight:700;border-radius:var(--radius-md);cursor:pointer;transition:all var(--anim-normal) var(--ease-spring)}.not-found-btn.primary{background:linear-gradient(135deg,#0284c7,#10b981);border:none;color:#fff;box-shadow:0 4px 16px #10b98159}.not-found-btn.primary:active{transform:scale(.97);box-shadow:0 2px 8px #10b98180}.not-found-btn.secondary{background:#1e293b;border:1px solid var(--bg-card-border);color:#94a3b8}.not-found-btn.secondary:active{transform:scale(.97);border-color:var(--accent-cyan);color:var(--accent-cyan)}.d2-orbit-hud{position:absolute;top:10px;left:10px;background:#0f172ae6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.35);border-radius:var(--radius-md);padding:6px 10px;display:flex;flex-direction:column;gap:4px;z-index:25;box-shadow:0 4px 16px #00000080;pointer-events:none}.hud-season-row{display:flex;align-items:center;gap:6px}.hud-badge{font-size:10px;font-weight:800;color:#0f172a;background:#f59e0b;padding:1px 6px;border-radius:4px}.hud-date{font-size:10px;color:#94a3b8;font-weight:600}.hud-detail-grid{display:flex;flex-direction:column;gap:2px}.hud-item{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.h-label{color:#64748b}.h-val{color:#f8fafc;font-weight:700}.h-val.highlight{color:var(--accent-cyan)}.d2-shared-timeline-bar{display:flex;flex-direction:column;gap:5px;padding-bottom:5px;border-bottom:1px solid rgba(51,65,85,.4)}.solstice-quick-bar{display:flex;align-items:center;gap:4px;overflow:hidden}.solstice-btn-group{display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none}.solstice-btn-group::-webkit-scrollbar{display:none}.solstice-btn{background:#1e293bd9;border:1px solid rgba(71,85,105,.6);color:#cbd5e1;font-size:10px;font-weight:600;padding:3px 8px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;cursor:pointer;transition:all .15s}.solstice-btn.active{background:linear-gradient(135deg,#0284c7,#2563eb);color:#fff;border-color:var(--accent-cyan);box-shadow:0 0 10px #38bdf866}.daynight-analysis-card{background:#0f172af0;border:1px solid var(--bg-card-border);border-radius:var(--radius-md);padding:6px 8px;display:flex;flex-direction:column;gap:5px}.daynight-header-row{display:flex;align-items:center;justify-content:space-between}.dn-title{font-size:11px;color:#f8fafc}.dn-title b.long-day{color:#fbbf24}.dn-title b.short-day{color:#60a5fa}.dn-title b.polar-day{color:#f43f5e}.dn-title b.polar-night{color:#818cf8}.dn-title b.equal{color:#34d399}.dn-stats{font-size:9px;color:#94a3b8}.daynight-bar-wrap{display:flex;height:18px;width:100%;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}.dn-bar.day{background:linear-gradient(90deg,#f59e0b,#eab308);color:#451a03;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;transition:width .25s ease}.dn-bar.night{background:linear-gradient(90deg,#1e293b,#0f172a);color:#94a3b8;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;transition:width .25s ease}.mnemonic-banner{background:linear-gradient(135deg,#f59e0b26,#ef444426);border-left:3px solid #f59e0b;padding:3px 6px;border-radius:2px;display:flex;align-items:center;gap:6px}.m-badge{font-size:9px;font-weight:800;color:#f87171;background:#ef444433;padding:1px 4px;border-radius:2px;flex-shrink:0}.m-text{font-size:10px;color:#fef08a}.altitude-calc-card{background:#0f172af0;border:1px solid var(--bg-card-border);border-radius:var(--radius-md);padding:6px 8px}.alt-calc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.alt-calc-item{background:#1e293b99;border:1px solid rgba(71,85,105,.4);border-radius:var(--radius-sm);padding:4px 6px;display:flex;flex-direction:column;gap:2px}.alt-label{font-size:9px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alt-val{font-size:14px;font-weight:900;color:#f8fafc}.alt-val.highlight{color:var(--accent-amber)}.alt-sub{font-size:8px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.d3-weather-hud{position:absolute;top:10px;left:10px;right:10px;max-width:440px;background:#0f172ae0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.35);border-radius:var(--radius-md);padding:8px 10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 24px #0000008c;z-index:10;pointer-events:auto}.hud-mode-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.hud-mode-tag{font-size:11px;font-weight:800;color:#38bdf8;background:#38bdf826;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid rgba(56,189,248,.3);letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-raycast-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);background:#ef444433;color:#fca5a5;border:1px solid rgba(239,68,68,.4);white-space:nowrap}.hud-raycast-badge.active{background:#10b98133;color:#6ee7b7;border-color:#10b98166}.hud-stations-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}@media(max-width:480px){.hud-stations-grid{grid-template-columns:repeat(2,1fr)}}.hud-st-item{background:#1e293ba6;border:1px solid rgba(71,85,105,.4);border-radius:var(--radius-sm);padding:3px 5px;display:flex;flex-direction:column;gap:1px}.hud-st-item.danger{border-color:#ef444499;background:#ef44441f}.hud-st-item.warning{border-color:#f59e0b99;background:#f59e0b1f}.st-top{display:flex;align-items:center;justify-content:space-between}.st-name{font-size:9px;font-weight:700;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.st-temp{font-size:10px;font-weight:900;font-family:monospace}.st-temp.cold{color:#38bdf8}.st-temp.warm{color:#f97316}.st-cond{font-size:8px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.d3-mnemonic-card{background:#0f172aeb;border-radius:var(--radius-md);padding:6px 10px;display:flex;flex-direction:column;gap:3px;border-left:3px solid #38bdf8}.d3-mnemonic-card.cold{border-left-color:#38bdf8;background:linear-gradient(135deg,#38bdf81f,#0f172af0)}.d3-mnemonic-card.warm{border-left-color:#f97316;background:linear-gradient(135deg,#f973161f,#0f172af0)}.d3-mnemonic-card .m-header{display:flex;align-items:center;gap:6px}.d3-mnemonic-card .m-badge{font-size:9px;font-weight:800;color:#f87171;background:#ef444433;padding:1px 5px;border-radius:2px}.d3-mnemonic-card .m-title{font-size:11px;color:#fef08a}.d3-mnemonic-card .m-desc{font-size:10px;color:#cbd5e1;line-height:1.4}.d3-terrain-grid-card{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}.t-col{background:#1e293bb3;border:1px solid rgba(71,85,105,.5);border-radius:var(--radius-sm);padding:5px 6px;display:flex;flex-direction:column;gap:2px}.t-col.west{border-top:2px solid #38bdf8}.t-col.central{border-top:2px solid #10b981}.t-col.east{border-top:2px solid #a855f7}.t-badge{font-size:8px;font-weight:800;color:#94a3b8}.t-title{font-size:10px;font-weight:800;color:#f8fafc}.t-desc{font-size:8px;color:#cbd5e1;line-height:1.3}.analysis-mnemonic{background:#f59e0b26;border-left:3px solid #f59e0b;padding:4px 8px;border-radius:2px;font-size:11px;color:#fde047;margin:4px 0 6px}
