.app-shell{min-height:100dvh;padding-top:env(safe-area-inset-top);flex:1;display:flex}.app-main{flex:1;justify-content:center;min-height:100dvh;display:flex}.sidebar{display:none}@media (width>=769px){.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);z-index:100;flex-direction:column;gap:2rem;padding:1.5rem 1rem;display:flex;position:fixed;top:0;bottom:0;left:0}.app-main{margin-left:var(--sidebar-width)}}.sidebar-brand{flex-direction:column;gap:2px;padding:.25rem .5rem;display:flex}.sidebar-title{font-size:1.1rem!important}.sidebar-subtitle{font-size:.68rem!important}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-link{color:var(--text-muted);background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:.88rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.sidebar-link:hover{background:var(--surface-hover);color:var(--text)}.sidebar-link.active{background:var(--accent-dim);color:var(--accent);font-weight:600}.sidebar-link .anticon{font-size:16px}.sidebar-footer{flex-direction:column;justify-content:center;align-items:center;width:100%;margin-top:auto;padding-top:.5rem;display:flex}.sidebar-version{color:#71717a;text-align:center;font-size:11px}.bottom-nav{display:none}@media (width<=768px){.bottom-nav{background:var(--surface);border-top:1px solid var(--border);padding:4px 0;padding-bottom:calc(4px + env(safe-area-inset-bottom));z-index:100;-webkit-backdrop-filter:blur(12px);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.app-main{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom))}}.bottom-nav-item{color:var(--text-muted);-webkit-tap-highlight-color:transparent;border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:6px 20px;font-size:.6rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.bottom-nav-item .anticon{font-size:20px;transition:transform .15s}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active .anticon{transform:scale(1.1)}.desktop-only{display:none}.mobile-only{display:block}@media (width>=769px){.desktop-only{display:block}.mobile-only{display:none!important}}.app{width:100%;min-width:340px;max-width:100%;min-height:100dvh;padding:1.5rem 1rem}@media (width>=769px){.app{max-width:640px;padding:2.5rem 2rem}}@media (width>=1200px){.app{max-width:700px}}@media (width<=768px){.app>.panel{flex:1}.app--fit{min-height:0;height:calc(100dvh - var(--bottom-nav-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100dvh - var(--bottom-nav-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.app--fit .import-textarea{resize:none;flex:1}}.m-0{margin:0!important}.font-mono{font-family:Space Mono,monospace}.spacer{flex-shrink:0;width:24px}.app-title{font-family:Space Mono,monospace;margin:0!important}@media (width>=769px){.app-page-title{display:none}}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:12px;width:100%;padding:1.25rem;animation:.2s fadeIn;display:flex}.panel-header{justify-content:space-between;align-items:center;display:flex}.panel-header--sticky{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;margin:-1.25rem -1.25rem 0;padding:.75rem 1.25rem;position:sticky;top:0}@media (width>=769px){.panel-header--sticky{top:-1.25rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.card-wrapper{perspective:900px;cursor:pointer;flex:1;min-height:220px}.card-wrapper.slide-left{animation:.25s forwards slideLeft}.card-wrapper.slide-right{animation:.25s forwards slideRight}@keyframes slideLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-30px)}}@keyframes slideRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(30px)}}.card{width:100%;height:220px;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.card.flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.75rem 1.5rem;transition:box-shadow .3s;display:flex;position:absolute;inset:0}@media (width>=769px){.card{height:260px}.card-wrapper{min-height:260px}.card-face:hover{box-shadow:0 0 20px #a78bfa14}}.card-back{background:linear-gradient(135deg, var(--surface) 0%, #a78bfa0f 100%);transform:rotateY(180deg)}.lang-badge{letter-spacing:.08em;color:var(--accent);background:var(--accent-dim);border-radius:6px;padding:.2rem .5rem;font-family:Space Mono,monospace;font-size:.65rem;font-weight:700;position:absolute;top:.75rem;left:.75rem}.result-badge{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.card-text{text-align:center;color:var(--text);font-size:1.35rem;font-weight:500;line-height:1.5}@media (width>=769px){.card-text{font-size:1.5rem}}.card-back .card-text{color:var(--accent)}.hint{font-size:.7rem}.card-bottom-row{justify-content:center;align-items:center;display:flex;position:absolute;bottom:.75rem;left:.75rem;right:.75rem}.phonetic-text{font-family:Space Mono,monospace;font-size:.72rem}.pos-label{font-size:.6rem;font-style:italic}.audio-btn{width:22px!important;min-width:22px!important;height:22px!important;color:var(--accent)!important;font-size:.7rem!important}.examples-btn{opacity:.6;transition:opacity .2s;position:absolute;top:.75rem;right:.75rem;width:22px!important;min-width:22px!important;height:22px!important;color:var(--accent)!important;font-size:.7rem!important}.examples-btn:hover{opacity:1}.examples-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;padding:.75rem 1rem;animation:.2s fadeIn}.examples-title{letter-spacing:.04em;font-size:.7rem;font-weight:600}.examples-text{font-size:.8rem}.examples-list{flex-direction:column;gap:4px;margin:0;padding-left:1.2em;display:flex}.examples-list li{color:var(--text-secondary,#a1a1aa);line-height:1.5}.examples-list li::marker{color:var(--accent)}.typing-card,.quiz-card,.cloze-card,.audio-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;min-height:220px;padding:1.75rem 1.5rem;display:flex;position:relative}@media (width>=769px){.typing-card,.quiz-card,.cloze-card,.audio-card{min-height:260px}}.typing-input{text-align:center;font-family:Space Mono,monospace;font-size:.85rem}.feedback-correct-text{color:#4ade80;font-weight:600}.feedback-wrong-text{color:#f87171;font-size:.85rem}.feedback-answer{color:#4ade80;font-size:.95rem;font-weight:600}.option-btn{text-align:left;white-space:normal;word-break:break-word;padding:8px 14px;font-family:Space Mono,monospace;font-size:.82rem;height:auto!important}@media (width<=768px){.option-btn{padding:12px 14px;font-size:.85rem}}.option-btn.correct{color:#4ade80;background:#4ade8018;border-color:#4ade80}.option-btn.wrong{color:#f87171;background:#f8717118;border-color:#f87171}.option-btn.faded{opacity:.3}.option-index{opacity:.4;margin-right:8px;font-size:.7rem}.audio-play-btn{transition:transform .15s;width:56px!important;min-width:56px!important;height:56px!important;color:var(--accent)!important;border-color:var(--accent)!important;font-size:1.5rem!important}.audio-play-btn:hover{transform:scale(1.08)}.audio-play-btn:active{transform:scale(.95)}.audio-error-text{font-size:.75rem}.audio-instruction{font-size:.7rem}.btn-correct{color:#4ade80;border-color:#4ade8044}.btn-skip{color:#fbbf24;border-color:#fbbf2444}.btn-wrong{color:#f87171;border-color:#f8717144}@media (width<=768px){.btn-correct,.btn-skip,.btn-wrong{min-height:40px;font-size:.85rem}}.deck-tab-bar{scrollbar-width:none;align-items:center;gap:4px;width:100%;padding:2px 0;display:flex;overflow-x:auto}.deck-tab-bar::-webkit-scrollbar{display:none}.deck-tab{cursor:pointer;font-size:13px;font-family:var(--font-sans);letter-spacing:.01em;white-space:nowrap;color:#a1a1aa;background:0 0;border:1.5px solid #0000;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-weight:400;transition:all .2s;display:inline-flex;position:relative}@media (width<=768px){.deck-tab{padding:7px 14px;font-size:13px}}.deck-tab.active{font-weight:600}.deck-tab.has-delete{padding-right:22px}.deck-tab-ring{flex-shrink:0}.deck-tab-ring circle.progress{transition:stroke-dasharray .3s}.deck-tab-count{opacity:.6;font-size:11px;font-weight:400}.deck-tab-delete{color:#71717a;opacity:.5;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;padding:0;font-size:8px;transition:opacity .15s;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.deck-tab-delete:hover{opacity:1}.create-deck-btn{color:#71717a;cursor:pointer;background:0 0;border:1.5px dashed #3f3f46;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-left:2px;font-size:12px;transition:all .2s;display:inline-flex}.color-picker-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0;transition:border-color .15s}.color-picker-dot.selected{border-color:#fff}.progress-text{white-space:nowrap;font-family:Space Mono,monospace;font-size:.75rem}.import-textarea{font-family:Space Mono,monospace;font-size:.75rem}@media (width<=768px){.import-textarea,.import-textarea textarea{flex:1!important;height:auto!important}}.import-deck-label{font-size:.78rem}.import-feedback-alert.ant-alert{border-radius:var(--radius-sm);padding:12px 14px}@media (width<=768px){.import-feedback-alert.ant-alert{padding:14px 16px}}@media (width>=769px){.import-textarea{font-size:.8rem}}.stats-panel{flex:1;max-height:none;overflow-y:visible}@media (width>=769px){.stats-panel{max-height:720px;overflow-y:auto}}.stats-section{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.stats-section--compact{border:1px solid var(--border);border-radius:10px;padding:10px 14px}.stat-value{margin-left:auto;font-family:Space Mono,monospace}.stat-time{font-family:Space Mono,monospace;font-size:.9rem}.stat-label{font-size:.62rem}.stat-icon{color:var(--text-muted);font-size:14px}.icon-correct{color:#4ade80}.icon-wrong{color:#f87171}.icon-skip{color:#fbbf24}.icon-unseen{color:#ffffff26}.icon-accent{color:#a78bfa}.icon-blue{color:#60a5fa}.section-title{font-size:.85rem}.section-subtitle{font-size:.78rem}.section-note{font-size:.68rem}.heatmap-grid{grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.heatmap-cell{aspect-ratio:1;border-radius:6px;justify-content:center;align-items:center;font-family:Space Mono,monospace;font-size:.62rem;transition:background .2s;display:flex}.heatmap-cell.today{outline:1.5px solid #a78bfa;font-weight:700}.mastery-bar{border-radius:9px;height:18px;margin-top:8px;display:flex;overflow:hidden}.mastery-segment{min-width:4px;transition:width .3s}.mastery-avg{margin-top:4px;font-size:.62rem;display:block}.cefr-level-tag{text-align:center;width:32px;margin:0;font-size:.65rem;font-weight:700}.cefr-pct{text-align:right;min-width:36px;font-family:Space Mono,monospace;font-size:.7rem;font-weight:600}.cefr-current-tag{margin:0;padding:1px 8px;font-size:.8rem;font-weight:700}.cefr-insight{font-size:.65rem}.cefr-assessing{font-size:.8rem}.filter-tag{cursor:pointer;margin:0;padding:2px 8px;font-size:.68rem;transition:all .15s}@media (width<=768px){.filter-tag{padding:4px 10px;font-size:.72rem}}.word-group{margin-top:8px}.word-group-title{font-family:Space Mono,monospace;font-size:.78rem}.word-group-list{margin-top:4px}.word-item-en{font-family:Space Mono,monospace;font-size:.78rem}.mastery-icon{font-size:.6rem}.level-tag{margin:0;padding:0 4px;font-size:.55rem}.score-tag{margin:0;padding:0 6px;font-size:.65rem}.mode-stat-card{border-radius:8px;flex-direction:column;flex:1;gap:2px;min-width:110px;padding:8px 10px;display:flex}.mode-stat-value{font-family:Space Mono,monospace;font-size:1rem}.mode-stat-label{font-size:.68rem}.mode-stat-detail{font-size:.6rem}.retention-value{font-family:Space Mono,monospace;font-size:.8rem}.retention-label{font-size:.75rem}.retention-note{font-size:.6rem}.no-results-msg{text-align:center;margin-top:12px;font-size:.78rem;display:block}kbd{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:.1rem .35rem;font-family:Space Mono,monospace;font-size:.6rem}.keyboard-hints{text-align:center;font-size:.65rem}@media (width<=768px){.keyboard-hints{display:none}}.version-footer{text-align:center;color:#71717a;width:100%;margin-top:auto;padding:16px 0;font-size:11px}@media (width>=769px){.version-footer{display:none}}@media (width<=768px){.version-footer{padding-bottom:calc(16px + var(--bottom-nav-height) + env(safe-area-inset-bottom));margin-top:0}}.word-item{border:none!important;padding:6px 8px!important}.error-message{word-break:break-word;max-width:400px;font-size:.75rem}@media (width<=768px){.app{max-width:100%;padding:1.25rem 1rem}.panel{padding:1rem}.card-face,.typing-card,.quiz-card,.cloze-card,.audio-card{padding:1.5rem 1.25rem}}@media (width<=480px){.app{padding:1rem .75rem}.card{height:200px}.card-wrapper{min-height:200px}.card-text{font-size:1.15rem}.card-face{padding:1.25rem 1rem}.typing-card,.quiz-card,.cloze-card,.audio-card{min-height:200px;padding:1.25rem 1rem}.examples-panel{padding:.5rem .75rem}}@media (width<=375px){.app{padding:.75rem .5rem}.card{height:180px}.card-wrapper{min-height:180px}.card-text{font-size:1rem}.card-face{gap:.5rem;padding:1rem .75rem}.typing-card,.quiz-card,.cloze-card,.audio-card{gap:.5rem;min-height:180px;padding:1rem .75rem}.panel{border-radius:var(--radius-sm);gap:10px;padding:.75rem}.lang-badge{padding:.15rem .4rem;font-size:.58rem;top:.5rem;left:.5rem}.result-badge{width:20px;height:20px;font-size:.6rem;top:.5rem;left:50%;transform:translate(-50%)}.examples-btn{top:.5rem;right:.5rem}.hint{font-size:.62rem}.card-bottom-row{bottom:.5rem;left:.5rem;right:.5rem}}[data-theme=light] .icon-unseen{color:#0000001f}[data-theme=light] .color-picker-dot.selected{border-color:#7c3aed}[data-theme=light] .create-deck-btn{border-color:var(--border)}[data-theme=light] .deck-tab{color:#52525b}.comic-overlay{z-index:9999;cursor:pointer;opacity:0;background:#000000b3;flex-direction:column;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.comic-overlay--visible{opacity:1}.comic-overlay__image{object-fit:contain;border-radius:12px;max-width:80vw;max-height:70vh}.comic-overlay__progress{background:#fff3;border-radius:2px;width:min(300px,60vw);height:4px;margin-top:16px;overflow:hidden}.comic-overlay__progress-bar{transform-origin:0;background:#ffffffb3;border-radius:2px;width:100%;height:100%;transform:scaleX(1)}.comic-overlay__progress-bar--active{transition:transform 3s linear;transform:scaleX(0)}.welcome-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:100dvh;padding:2rem;display:flex}.welcome-icon{margin-bottom:8px;font-size:64px;line-height:1}.welcome-description{max-width:280px;margin-bottom:16px;line-height:1.5;display:block}.welcome-cta{max-width:300px;height:48px!important;font-size:16px!important;font-weight:600!important}.tutorial-overlay{z-index:9998;cursor:pointer;background:#000000d1;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.tutorial-content{cursor:default;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:360px;padding:32px;display:flex}.tutorial-hints{flex-direction:column;gap:20px;width:100%;display:flex}.tutorial-hint{align-items:center;gap:14px;display:flex}.tutorial-hint-icon{text-align:center;background:#a78bfa33;border:1px solid #a78bfa66;border-radius:10px;flex-shrink:0;min-width:52px;padding:10px 14px;font-size:18px}.tutorial-hint-icon--marks{font-size:14px}.tutorial-dismiss-btn{margin-top:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0f11;--surface:#17181c;--surface-hover:#1e2025;--border:#2a2b30;--text:#e4e4e7;--text-muted:#71717a;--accent:#a78bfa;--accent-dim:#a78bfa1f;--radius:16px;--radius-sm:10px;--font-sans:"DM Sans", system-ui, sans-serif;--font-mono:"Space Mono", monospace;--sidebar-width:220px;--bottom-nav-height:56px}[data-theme=light]{--bg:#f5f6fa;--surface:#fff;--surface-hover:#f0f1f5;--border:#e4e4e7;--text:#18181b;--text-muted:#71717a;--accent:#7c3aed;--accent-dim:#7c3aed1a}html,body{height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#root{flex-direction:column;min-height:100dvh;display:flex}@media (width<=768px){.ant-message{bottom:calc(var(--bottom-nav-height) + 12px + env(safe-area-inset-bottom,0px));width:100%;max-width:100vw;padding-inline:max(16px, env(safe-area-inset-left,0px)) max(16px, env(safe-area-inset-right,0px));box-sizing:border-box;flex-direction:column;align-items:center;padding-top:0;padding-bottom:0;display:flex;inset-inline:0;top:auto!important}.ant-message .ant-message-notice-wrapper{justify-content:center;width:100%;max-width:min(420px,100%);display:flex}.ant-message .ant-message-notice{text-align:center;width:100%;max-width:min(420px,100%)}.ant-message .ant-message-notice-content{box-sizing:border-box;text-align:left;border-radius:12px;justify-content:center;align-items:flex-start;gap:8px;width:100%;padding:12px 16px;display:inline-flex}.ant-modal-root .ant-modal-wrap{padding-inline:max(12px, env(safe-area-inset-left,0px)) max(12px, env(safe-area-inset-right,0px));padding-block:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-bottom,0px));box-sizing:border-box}.ant-modal-root .ant-modal{max-width:calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));margin:0 auto;padding-bottom:0}.ant-modal-root .ant-modal-content{border-radius:14px;padding:20px 18px}.ant-modal-root .ant-modal-header{margin-bottom:12px}.ant-modal-root .ant-modal-footer{margin-top:16px}}
