:root{--color-bg:#dcd8ee;--color-surface:#fff;--color-surface-clear:#fff0;--color-surface-sunken:#f7f6fb;--color-border:#ecebf3;--color-border-dashed:#d9d5e8;--color-border-tile-add:#dcd9e8;--color-border-dropzone:#d3cde6;--color-switch-off:#d7d3e6;--color-switch-thumb:#fff;--color-text:#1f1d2b;--color-text-muted:#5d5a6f;--color-text-faint:#9a97ab;--color-text-disabled:#cfcdd9;--color-primary:#8b6fd6;--color-primary-hover:#7656cc;--color-primary-soft:#eee9fb;--color-primary-soft-hover:#e4dcf8;--color-primary-soft-border:#ddd3f7;--color-primary-wash:#faf8ff;--color-primary-light:#b9a5f0;--color-on-primary:#fff;--color-on-primary-muted:#ffffffbf;--color-on-primary-track:#ffffff4d;--color-logo-2:#c3b2f0;--color-error:#e2546b;--color-error-soft:#fdebee;--color-error-soft-hover:#fbdbe1;--color-overlay:#1f1d2b59;--color-scrim:#1f1d2bb3;--color-lightbox:#14121ed9;--color-on-scrim:#fff;--color-glass:#ffffffbf;--color-glass-2:#ffffffb3;--color-art-shine:#ffffff29;--color-on-tile:#fff;--shadow:0 10px 30px #493a8c14;--shadow-sm:0 2px 10px #493a8c12;--shadow-lg:0 20px 60px #1f1d2b33;--shadow-menu:0 12px 34px #1f1d2b24;--shadow-primary:0 10px 24px #8b6fd659;--shadow-thumb:0 1px 3px #0003;--color-shadow-icon:#0000001f;--radius:16px;--rate-1-bg:#fdebee;--rate-1-fg:#d4405a;--rate-1-solid:#d4405a;--rate-1-on-solid:#fff;--rate-2-bg:#fdecdf;--rate-2-fg:#d77322;--rate-2-solid:#d77322;--rate-2-on-solid:#fff;--rate-3-bg:#e0f5ec;--rate-3-fg:#23966a;--rate-3-solid:#23966a;--rate-3-on-solid:#fff;--rate-4-bg:#e3f0fb;--rate-4-fg:#3283cc;--rate-4-solid:#3283cc;--rate-4-on-solid:#fff;--result-correct-bg:#e0f5ec;--result-correct-fg:#1d7a56;--result-almost-bg:#fdf4d6;--result-almost-fg:#8a6400;--result-wrong-bg:#f1ecfb;--result-wrong-fg:#5f43b3;--state-new-bg:#e3f0fb;--state-new-fg:#4e9be0;--state-learning-bg:#fdecdf;--state-learning-fg:#f08a3c;--state-review-bg:#e0f5ec;--state-review-fg:#2fae7c;--notice-warn-bg:#fdf4d6;--notice-warn-fg:#7a5b00;--folder-lavender-bg:#eee9fb;--folder-lavender:#9b7fe6;--folder-peach-bg:#fdecdf;--folder-peach:#f6a04d;--folder-sky-bg:#e3f0fb;--folder-sky:#4e9be0;--folder-mint-bg:#e0f5ec;--folder-mint:#39b886;--folder-rose-bg:#fce6f0;--folder-rose:#e26fa4;--folder-lemon-bg:#fdf4d6;--folder-lemon:#e2b11f}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:Poppins,system-ui,-apple-system,sans-serif;font-size:14px}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:500}h1{letter-spacing:-.01em;font-size:26px}h2{font-size:20px}h3{font-size:15px}.muted{color:var(--color-text-faint)}.small{font-size:12px}.shell{background:var(--color-surface);max-width:1440px;min-height:calc(100vh - 64px);box-shadow:var(--shadow);border-radius:28px;grid-template-columns:232px minmax(0,1fr) 300px;margin:32px auto;display:grid}.shell.no-right{grid-template-columns:232px minmax(0,1fr)}.sidebar{flex-direction:column;gap:6px;max-height:calc(100vh - 64px);padding:28px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 10px 22px;font-size:16px;font-weight:500;display:flex}.nav-item{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:11px 14px;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--color-surface-sunken);color:var(--color-text)}.nav-item.active{background:var(--color-primary-soft);color:var(--color-text);font-weight:500}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);padding:18px 14px 6px;font-size:11px}.tree{flex:1;min-height:60px;margin:0 -4px;padding:0 4px;overflow-y:auto}.tree-row{color:var(--color-text-muted);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:7px 8px;font-size:13px;display:flex}.tree-row:hover{background:var(--color-surface-sunken);color:var(--color-text)}.tree-row.active{background:var(--color-primary-soft);color:var(--color-text)}.tree-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-toggle{cursor:pointer;width:18px;height:18px;color:var(--color-text-faint);background:0 0;border:0;flex-shrink:0;place-items:center;padding:0;display:grid}.dot{border-radius:3px;flex-shrink:0;width:8px;height:8px}.count-pill{background:var(--color-primary);color:var(--color-on-primary);border-radius:99px;padding:0 7px;font-size:11px;line-height:18px}.main{min-width:0;padding:32px 28px}.right{flex-direction:column;gap:28px;padding:32px 28px 32px 8px;display:flex}.topbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:28px;display:flex}.topbar h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.search{background:var(--color-surface);box-shadow:var(--shadow-sm);width:240px;height:42px;color:var(--color-text-faint);border-radius:12px;align-items:center;gap:8px;padding:0 14px;display:flex}.search input{min-width:0;color:var(--color-text);background:0 0;border:0;outline:0;flex:1}.section{margin-bottom:34px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.link{color:var(--color-primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.link:hover{text-decoration:underline}.btn{cursor:pointer;background:var(--color-primary);height:42px;color:var(--color-on-primary);white-space:nowrap;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:500;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--color-primary-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{background:var(--color-primary-soft);color:var(--color-primary-hover)}.btn.secondary:hover{background:var(--color-primary-soft-hover)}.btn.ghost{background:var(--color-surface);color:var(--color-text-muted);box-shadow:var(--shadow-sm)}.btn.ghost:hover{color:var(--color-text);background:var(--color-surface-sunken)}.btn.danger{background:var(--color-error-soft);color:var(--color-error)}.btn.danger:hover{background:var(--color-error-soft-hover)}.btn.small{border-radius:10px;height:34px;padding:0 12px;font-size:13px}.icon-btn{background:var(--color-surface);width:42px;height:42px;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--color-text-muted);border:0;border-radius:12px;place-items:center;display:grid}.icon-btn:hover{color:var(--color-text);background:var(--color-surface-sunken)}.icon-btn.plain{box-shadow:none;background:0 0;width:32px;height:32px}.icon-btn.plain:hover{background:var(--color-surface-sunken)}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{color:var(--color-text-muted);font-size:13px;font-weight:500}.input,.textarea,.select{border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:12px;outline:0;width:100%;padding:11px 14px;transition:border-color .15s,box-shadow .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-soft)}.textarea{resize:vertical;min-height:90px;line-height:1.5}.error{background:var(--color-error-soft);color:var(--color-error);border-radius:12px;margin-bottom:16px;padding:10px 14px;font-size:13px}.tiles{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.tile{cursor:pointer;border-radius:18px;flex-direction:column;gap:10px;min-height:220px;padding:10px;transition:transform .15s,box-shadow .15s;display:flex}.tile:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.tile-art{height:112px;color:var(--color-on-tile);border-radius:14px;place-items:center;display:grid;position:relative;overflow:hidden}.tile-art:before,.tile-art:after{content:"";background:var(--color-art-shine);border-radius:50%;position:absolute}.tile-art:before{width:120px;height:120px;top:-40px;right:-30px}.tile-art:after{width:70px;height:70px;bottom:-26px;left:-18px}.tile-art svg{z-index:1;filter:drop-shadow(0 6px 10px var(--color-shadow-icon));position:relative}.tile-body{flex:1;padding:0 6px}.tile-body h3{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.tile-foot{justify-content:space-between;align-items:center;padding:0 6px 4px;display:flex}.tile-arrow{width:30px;height:30px;color:var(--color-on-tile);cursor:pointer;border:0;border-radius:9px;place-items:center;display:grid}.tile-arrow:hover{filter:brightness(.94)}.badge{background:var(--color-glass);color:var(--color-text-muted);border-radius:99px;padding:3px 9px;font-size:11px;font-weight:500}.badge.due{background:var(--color-surface);color:var(--color-text)}.tile.add{background:var(--color-surface-sunken);border:2px dashed var(--color-border-tile-add);color:var(--color-text-faint);justify-content:center;align-items:center;gap:8px}.tile.add:hover{color:var(--color-primary);border-color:var(--color-primary);box-shadow:none}.c-lavender{--c:var(--folder-lavender);--c-bg:var(--folder-lavender-bg)}.c-peach{--c:var(--folder-peach);--c-bg:var(--folder-peach-bg)}.c-sky{--c:var(--folder-sky);--c-bg:var(--folder-sky-bg)}.c-mint{--c:var(--folder-mint);--c-bg:var(--folder-mint-bg)}.c-rose{--c:var(--folder-rose);--c-bg:var(--folder-rose-bg)}.c-lemon{--c:var(--folder-lemon);--c-bg:var(--folder-lemon-bg)}.tile[class*=c-]{background:var(--c-bg)}.tile-art,.tile-arrow,.dot,.chip-icon{background:var(--c)}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--color-text-faint);padding:0 12px 10px;font-size:12px;font-weight:400}.table td{border-top:1px solid #0000;padding:10px 12px}.table tbody tr{cursor:pointer}.table tbody tr:hover td{background:var(--color-surface-sunken)}.table tbody tr td:first-child{border-radius:12px 0 0 12px}.table tbody tr td:last-child{border-radius:0 12px 12px 0}.chip{align-items:center;gap:12px;min-width:0;display:flex}.chip-icon{width:42px;height:42px;color:var(--color-on-tile);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.chip-text{min-width:0}.chip-text div:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-list{flex-direction:column;gap:10px;display:flex}.card-row{background:var(--color-surface-sunken);cursor:pointer;border-radius:14px;grid-template-columns:1fr 1fr auto;align-items:center;gap:16px;padding:14px 16px;transition:background .15s;display:grid}.card-row:hover{background:var(--color-primary-soft)}.card-row .side{min-width:0}.card-row .side .text{text-overflow:ellipsis;-webkit-line-clamp:2;white-space:pre-wrap;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card-row .thumbs{gap:6px;margin-top:6px;display:flex}.card-row .thumbs img{object-fit:cover;background:var(--color-surface);border-radius:6px;width:40px;height:30px}.row-end{align-items:center;gap:10px;display:flex}.browse-nav{justify-content:space-between;gap:12px;margin-top:22px;display:flex}.browse-nav .btn{min-width:140px;height:48px}.state-tag{text-transform:capitalize;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:500}.state-new{background:var(--state-new-bg);color:var(--state-new-fg)}.state-learning,.state-relearning{background:var(--state-learning-bg);color:var(--state-learning-fg)}.state-review{background:var(--state-review-bg);color:var(--state-review-fg)}.empty{text-align:center;color:var(--color-text-faint);background:var(--color-surface-sunken);border-radius:18px;padding:40px 20px}.empty svg{color:var(--color-primary);margin-bottom:8px}.empty p{margin:4px 0 16px}.breadcrumb{color:var(--color-text-faint);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;display:flex}.breadcrumb a:hover{color:var(--color-primary)}.profile{text-align:center}.avatar{width:76px;height:76px;color:var(--color-on-primary);background:linear-gradient(135deg, var(--color-primary-light), var(--color-primary));box-shadow:0 0 0 6px var(--color-primary-soft);border-radius:50%;place-items:center;margin:16px auto 10px;font-size:30px;font-weight:500;display:grid}.profile .email{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.stat-row{gap:10px;margin-top:16px;display:flex}.stat{background:var(--color-surface-sunken);border-radius:12px;flex:1;padding:10px}.stat b{font-size:18px;font-weight:500;display:block}.stat span{color:var(--color-text-faint);font-size:11px}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-head h3{font-size:17px;font-weight:500}.calendar{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px 0;font-size:13px;display:grid}.calendar .dow{color:var(--color-text-faint);padding-bottom:6px;font-size:11px}.calendar .day{height:32px;color:var(--color-text-muted);place-items:center;display:grid;position:relative}.calendar .day.other{color:var(--color-text-disabled)}.calendar .day span{border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.calendar .day.today span{background:var(--color-primary);color:var(--color-on-primary)}.calendar .day.has-due:after{content:"";background:var(--color-primary);border-radius:50%;width:4px;height:4px;position:absolute;bottom:-1px}.progress-list{flex-direction:column;gap:10px;display:flex}.progress-item{background:var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.progress-item:hover{background:var(--color-surface-sunken)}.progress-item.highlight{background:var(--color-primary);color:var(--color-on-primary)}.progress-item.highlight .muted{color:var(--color-on-primary-muted)}.progress-item .grow{flex:1;min-width:0}.progress-item .grow div:first-child{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ring{flex-shrink:0;width:40px;height:40px;position:relative}.ring svg{transform:rotate(-90deg)}.ring b{place-items:center;font-size:10px;font-weight:500;display:grid;position:absolute;inset:0}.overlay{background:var(--color-overlay);z-index:50;place-items:center;padding:20px;animation:.12s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--color-surface);width:100%;max-width:560px;max-height:calc(100vh - 40px);box-shadow:var(--shadow-lg);border-radius:22px;padding:26px;animation:.15s ease-out pop;overflow:auto}.modal.wide{max-width:860px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-foot{justify-content:flex-end;align-items:center;gap:10px;margin-top:8px;display:flex}.modal-foot .spacer{flex:1}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97)translateY(6px)}}.editor-sides{grid-template-columns:1fr 1fr;gap:18px;display:grid}.drop{border:1.5px dashed var(--color-border-dashed);color:var(--color-text-faint);border-radius:12px;flex-direction:column;gap:10px;margin-top:8px;padding:12px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.drop.over{border-color:var(--color-primary);background:var(--color-primary-soft)}.drop-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.thumb{aspect-ratio:4/3;background:var(--color-surface-sunken);border-radius:10px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb button{background:var(--color-scrim);width:22px;height:22px;color:var(--color-on-scrim);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:4px;right:4px}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;background:var(--c);border:3px solid #0000;border-radius:10px;width:34px;height:34px}.swatch.selected{border-color:var(--color-text)}.lightbox{background:var(--color-lightbox);z-index:60;cursor:zoom-out;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.lightbox img{border-radius:12px;max-width:100%;max-height:100%}.study{max-width:780px;margin:0 auto}.study-top{align-items:center;gap:14px;margin-bottom:24px;display:flex}.study-top h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:22px;overflow:hidden}.counts{gap:8px;display:flex}.counts span{border-radius:99px;padding:5px 12px;font-size:13px;font-weight:500}.counts .n{background:var(--state-new-bg);color:var(--state-new-fg)}.counts .l{background:var(--state-learning-bg);color:var(--state-learning-fg)}.counts .r{background:var(--state-review-bg);color:var(--state-review-fg)}.counts .current{box-shadow:inset 0 0 0 2px}.flashcard{background:var(--color-surface);box-shadow:var(--shadow);border:1px solid var(--color-border);border-radius:24px;flex-direction:column;gap:20px;min-height:340px;padding:36px 40px;display:flex}.face-head{justify-content:space-between;align-items:center;display:flex}.flip-scene{perspective:1600px}.flip{cursor:pointer;transform-style:preserve-3d;border-radius:24px;outline:0;transition:transform .6s cubic-bezier(.4,.2,.2,1);display:grid;position:relative}.flip:focus-visible{box-shadow:0 0 0 4px var(--color-primary-soft)}.flip.is-flipped{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;grid-area:1/1}.flip-face.back{background:var(--color-primary-soft);border-color:var(--color-primary-soft-border);transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.flip{transition:none}}.face-label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-faint);font-size:11px}.face-text{white-space:pre-wrap;word-break:break-word;font-size:20px;line-height:1.55}.face-images{flex-wrap:wrap;gap:12px;display:flex}.face-images img{cursor:zoom-in;border:1px solid var(--color-border);border-radius:12px;max-width:100%;max-height:300px}.divider{background:var(--color-border);height:1px;margin:4px 0}.study-actions{margin-top:22px}.reveal-btn{border-radius:16px;width:100%;height:56px;font-size:15px}.ratings{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.rate{cursor:pointer;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;font-size:15px;font-weight:500;transition:transform 50ms,filter .15s;display:flex}.rate:hover{filter:brightness(.96)}.rate:active{transform:translateY(1px)}.rate small{opacity:.8;font-size:12px;font-weight:400}.rate kbd{opacity:.55;font-family:inherit;font-size:10px}.rate-1{background:var(--rate-1-bg);color:var(--rate-1-fg)}.rate-2{background:var(--rate-2-bg);color:var(--rate-2-fg)}.rate-3{background:var(--rate-3-bg);color:var(--rate-3-fg)}.rate-4{background:var(--rate-4-bg);color:var(--rate-4-fg)}.hint{text-align:center;color:var(--color-text-faint);margin-top:14px;font-size:12px}.hint kbd{background:var(--color-surface-sunken);border-radius:6px;padding:1px 6px;font-family:inherit}.done{text-align:center;background:var(--color-primary-soft);border-radius:24px;padding:56px 24px}.done-icon{background:var(--color-primary);width:72px;height:72px;color:var(--color-on-primary);box-shadow:var(--shadow-primary);border-radius:22px;place-items:center;margin:0 auto 18px;display:grid}.done p{color:var(--color-text-muted);margin:8px 0 24px}.auth-page{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{background:var(--color-surface);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:28px;padding:36px 32px}.auth-card .brand{justify-content:center;padding:0 0 18px}.auth-card h1{text-align:center;margin-bottom:6px;font-size:24px}.auth-card .sub{text-align:center;color:var(--color-text-faint);margin:0 0 26px}.auth-card .btn{width:100%;height:48px;margin-top:6px}.auth-switch{text-align:center;color:var(--color-text-faint);margin-top:20px;font-size:13px}.auth-switch a{color:var(--color-primary);font-weight:500}.menu-wrap{position:relative}.menu{background:var(--color-surface);box-shadow:var(--shadow-menu);z-index:30;border-radius:14px;min-width:200px;padding:6px;position:absolute;top:48px;right:0}.menu button{cursor:pointer;text-align:left;width:100%;color:var(--color-text-muted);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;display:flex}.menu button:hover{background:var(--color-surface-sunken);color:var(--color-text)}.menu button:disabled{opacity:.45;cursor:default}.menu button:disabled:hover{color:var(--color-text-muted);background:0 0}.menu button.danger{color:var(--color-error)}.mobile-bar{display:none}@media (width<=1240px){.shell{grid-template-columns:220px minmax(0,1fr)}.right{display:none}}@media (width<=860px){.shell,.shell.no-right{border-radius:0;min-height:100vh;margin:0;display:block}.sidebar{display:none}.sidebar.open{z-index:40;background:var(--color-surface);max-height:none;display:flex;position:fixed;inset:0}.mobile-bar{justify-content:space-between;align-items:center;padding:14px 16px 0;display:flex}.main{padding:16px}.topbar .search{order:3;width:100%}.editor-sides{grid-template-columns:1fr}.card-row{grid-template-columns:1fr;gap:8px}.flashcard{min-height:260px;padding:24px 20px}.ratings{grid-template-columns:repeat(2,1fr)}.study-top{flex-wrap:wrap}.table .hide-sm{display:none}}.import-page{max-width:980px;margin:0 auto}.import-section{margin-bottom:30px}.import-section h2{margin-bottom:14px}.dropzone{border:2px dashed var(--color-border-dropzone);background:var(--color-surface-sunken);text-align:center;color:var(--color-text-muted);border-radius:24px;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;transition:border-color .15s,background .15s;display:flex}.dropzone.over{border-color:var(--color-primary);background:var(--color-primary-soft)}.dropzone svg{color:var(--color-primary)}.dropzone p{max-width:520px;margin:0 0 8px;line-height:1.55}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.import-help{background:var(--color-surface-sunken);color:var(--color-text-muted);border-radius:18px;margin-top:24px;padding:18px 22px;line-height:1.6}.import-help ul{margin:8px 0 0;padding-left:20px}.notices{flex-direction:column;gap:8px;margin-bottom:22px;display:flex}.notice{background:var(--color-primary-soft);color:var(--color-text-muted);border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.5}.notice.warn{background:var(--notice-warn-bg);color:var(--notice-warn-fg)}.notice.big{color:var(--color-text);margin-bottom:14px;padding:14px 18px;font-size:14px}.import-controls{flex-wrap:wrap;align-items:flex-end;gap:18px 28px;margin-bottom:6px;display:flex}.import-controls .field{min-width:240px;margin-bottom:14px}.field>span{color:var(--color-text-muted);font-size:13px;font-weight:500}.field.narrow{max-width:420px}.picker-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px;display:grid}.picker-row .field,.picker-row .swap{margin-bottom:14px}.picker-row .swap:disabled{opacity:.4;cursor:default}.check{cursor:pointer;align-items:flex-start;gap:10px;margin:12px 0;line-height:1.45;display:flex}.check input{accent-color:var(--color-primary);flex-shrink:0;width:16px;height:16px;margin-top:3px}.check.compact{margin:0 0 14px}.type-card{background:var(--color-surface-sunken);border-radius:16px;margin-bottom:12px;padding:16px 18px 4px}.type-head{align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.samples{flex-direction:column;gap:16px;transition:opacity .15s;display:flex}.samples.is-loading{opacity:.55}.sample-path{margin-bottom:6px}.sample-sides{grid-template-columns:1fr 1fr;gap:14px;display:grid}.flashcard.sample-side{min-height:120px;box-shadow:var(--shadow-sm);gap:10px;padding:22px 24px}.flashcard.sample-side .face-text{font-size:17px}.flashcard.sample-side .face-images img{max-height:160px}.flashcard.sample-side.back-face{background:var(--color-primary-soft);border-color:var(--color-primary-soft-border)}.dest-options{flex-direction:column;gap:10px;margin-bottom:8px;display:flex}.dest-option{border:1.5px solid var(--color-border);cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.dest-option.selected{border-color:var(--color-primary);background:var(--color-primary-wash)}.dest-option.disabled{opacity:.55;cursor:default}.dest-option input{accent-color:var(--color-primary);margin-top:3px}.dest-body{flex:1;min-width:0}.dest-fields{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.dest-fields .input{max-width:320px}.dest-fields .select{max-width:360px}.inline-select{align-items:center;gap:8px;display:flex}.import-footer{background:linear-gradient(to top, var(--color-surface) 75%, var(--color-surface-clear));flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:10px;padding:16px 0;display:flex;position:sticky;bottom:0}.import-summary{min-width:220px;color:var(--color-text-muted);flex:1;font-size:13px}.danger-text{color:var(--color-error)}@media (width<=860px){.picker-row{grid-template-columns:1fr}.picker-row .swap{justify-self:start;margin:0 0 10px}.sample-sides{grid-template-columns:1fr}}.export-actions{gap:16px;margin:4px 0 8px;display:flex}.export-tree{border:1.5px solid var(--color-border);border-radius:14px;max-height:340px;padding:6px 0;overflow-y:auto}.export-row{cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.export-row:hover{background:var(--color-surface-sunken)}.export-row input{accent-color:var(--color-primary);flex-shrink:0;width:16px;height:16px}.export-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.export-total{flex:1}.export-done{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:6px 0 4px;display:flex}.export-done svg{color:var(--state-review-fg)}.export-done h3{word-break:break-all}.export-done p{max-width:440px;margin:0;line-height:1.5}.type-switch{background:var(--color-surface);height:38px;box-shadow:var(--shadow-sm);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border:0;border-radius:12px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:inline-flex}.type-switch:hover{color:var(--color-text);background:var(--color-surface-sunken)}.type-switch.on{background:var(--color-primary-soft);color:var(--color-primary-hover)}.switch-track{background:var(--color-switch-off);border-radius:99px;flex-shrink:0;width:30px;height:18px;transition:background .15s;position:relative}.type-switch.on .switch-track{background:var(--color-primary)}.switch-thumb{background:var(--color-switch-thumb);width:14px;height:14px;box-shadow:var(--shadow-thumb);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.type-switch.on .switch-thumb{transform:translate(12px)}.type-box{background:var(--color-surface-sunken);border-radius:18px;flex-direction:column;gap:10px;margin-top:20px;padding:16px 18px;display:flex}.type-box .textarea{min-height:0;font-size:16px}.type-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.type-actions .muted{flex:1;min-width:180px}kbd{background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:6px;padding:1px 6px;font-family:inherit;font-size:11px}.result{border-radius:18px;flex-direction:column;gap:8px;margin-top:20px;padding:16px 18px;animation:.2s ease-out pop;display:flex}.result-head{align-items:center;gap:10px;font-size:15px;line-height:1.4;display:flex}.result-head svg{flex-shrink:0}.result-note{color:var(--color-text-muted);padding-left:32px;font-size:13px}.result-typed{background:var(--color-glass-2);white-space:pre-wrap;word-break:break-word;border-radius:12px;margin-top:4px;padding:10px 14px;font-size:14px}.result-typed .face-label{margin-bottom:4px;display:block}.result-correct{background:var(--result-correct-bg);color:var(--result-correct-fg)}.result-almost{background:var(--result-almost-bg);color:var(--result-almost-fg)}.result-wrong{background:var(--result-wrong-bg);color:var(--result-wrong-fg)}.result-typed{color:var(--color-text)}.rate{position:relative}.rate.suggested{box-shadow:0 0 0 2.5px}.suggested-tag{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:99px;padding:2px 9px;font-size:10px;font-weight:500;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.rate-1 .suggested-tag{background:var(--rate-1-solid);color:var(--rate-1-on-solid)}.rate-2 .suggested-tag{background:var(--rate-2-solid);color:var(--rate-2-on-solid)}.rate-3 .suggested-tag{background:var(--rate-3-solid);color:var(--rate-3-on-solid)}.rate-4 .suggested-tag{background:var(--rate-4-solid);color:var(--rate-4-on-solid)}.ratings{padding-top:8px}.dropzone.compact{padding:30px 24px}.file-list{flex-direction:column;gap:8px;margin-top:14px;display:flex}.file-chip{background:var(--color-surface-sunken);border-radius:12px;align-items:center;gap:10px;padding:8px 8px 8px 14px;display:flex}.file-chip svg{color:var(--color-primary);flex-shrink:0}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.density-options{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.density{border:1.5px solid var(--color-border);cursor:pointer;border-radius:14px;flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative}.density input{opacity:0;pointer-events:none;position:absolute}.density.selected{border-color:var(--color-primary);background:var(--color-primary-wash);box-shadow:0 0 0 3px var(--color-primary-soft)}.working .done-icon{background:var(--color-primary)}.review-topic{border:1.5px solid var(--color-border);border-radius:18px;margin-bottom:14px;overflow:hidden}.review-topic-head{background:var(--color-surface-sunken);align-items:center;gap:12px;padding:12px 14px;display:flex}.review-topic-head input[type=checkbox],.review-card>input[type=checkbox]{accent-color:var(--color-primary);flex-shrink:0;width:17px;height:17px}.topic-name{background:0 0;border:1.5px solid #0000;border-radius:10px;outline:0;flex:1;min-width:0;padding:6px 10px;font-size:16px;font-weight:500}.topic-name:hover{border-color:var(--color-border);background:var(--color-surface)}.topic-name:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px var(--color-primary-soft)}.review-cards{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px 14px;display:flex}.review-card{align-items:flex-start;gap:10px;width:100%;transition:opacity .15s;display:flex}.review-card>input[type=checkbox]{margin-top:14px}.review-card.off{opacity:.45}.review-sides{flex:1;grid-template-columns:1fr 1fr;gap:10px;min-width:0;display:grid}.review-sides .textarea{field-sizing:content;min-height:64px;font-size:14px}.side-back{background:var(--color-primary-soft);border-color:var(--color-primary-soft-border)}.review-card .icon-btn{margin-top:6px}@media (width<=860px){.density-options,.review-sides{grid-template-columns:1fr}}:root[data-design=premium]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#e9f0ff;--color-surface:#fff;--color-surface-clear:#fff0;--color-surface-sunken:#f1f5ff;--color-border:#c9d6f2;--color-border-dashed:#6a7ca6;--color-border-tile-add:#6a7ca6;--color-border-dropzone:#6a7ca6;--color-switch-off:#6a7ca6;--color-switch-thumb:#fff;--color-text:#0c1a3a;--color-text-muted:#44527a;--color-text-faint:#4c5a82;--color-text-disabled:#4c5a82;--color-primary:#2f5fe0;--color-primary-hover:#2349b8;--color-primary-soft:#e2eaff;--color-primary-soft-hover:#d3e0ff;--color-primary-soft-border:#b7c9f6;--color-primary-wash:#f3f6ff;--color-primary-light:#6a8ff0;--color-on-primary:#fff;--color-on-primary-muted:#fff;--color-on-primary-track:#ffffff59;--color-logo-2:#8fb0f6;--color-error:#b83232;--color-error-soft:#fceded;--color-error-soft-hover:#f8dede;--color-accent:#d4a72c;--color-on-accent:#1c1e22;--color-accent-soft:#fbf4dc;--color-accent-text:#7d6200;--color-overlay:#0c1a3a73;--color-scrim:#0c1a3acc;--color-lightbox:#081026e6;--color-on-scrim:#fff;--color-glass:#ffffffbf;--color-glass-2:#ffffffa6;--color-art-shine:#ffffff38;--color-on-tile:#fff;--shadow:0 18px 50px #24408c24;--shadow-sm:0 4px 16px #24408c1a;--shadow-lg:0 30px 80px #14286447;--shadow-menu:0 16px 44px #14286433;--shadow-primary:0 10px 28px #2f5fe059;--shadow-thumb:0 1px 3px #00000040;--color-shadow-icon:#00000024;--rate-1-bg:#fdf1e6;--rate-1-fg:#a85a12;--rate-1-solid:#e8954a;--rate-1-on-solid:#1c1e22;--rate-2-bg:#fbf3df;--rate-2-fg:#8a6417;--rate-2-solid:#d9a441;--rate-2-on-solid:#1c1e22;--rate-3-bg:#e6f4ec;--rate-3-fg:#2b7a50;--rate-3-solid:#3fa36b;--rate-3-on-solid:#1c1e22;--rate-4-bg:#e2f1f1;--rate-4-fg:#1a7070;--rate-4-solid:#1e8383;--rate-4-on-solid:#fff;--result-correct-bg:#e6f4ec;--result-correct-fg:#2b7a50;--result-almost-bg:#fbf3df;--result-almost-fg:#8a6417;--result-wrong-bg:#fdf1e6;--result-wrong-fg:#a85a12;--state-new-bg:#e2eaff;--state-new-fg:#2349b8;--state-learning-bg:#fdf1e6;--state-learning-fg:#a85a12;--state-review-bg:#e6f4ec;--state-review-fg:#2b7a50;--notice-warn-bg:#fbf3df;--notice-warn-fg:#7a5a10;--folder-lavender-bg:#eeeffa;--folder-lavender:#6c72d4;--folder-peach-bg:#fbefe6;--folder-peach:#c9743a;--folder-sky-bg:#e8f1f9;--folder-sky:#3f82bf;--folder-mint-bg:#e6f3ec;--folder-mint:#2f8f67;--folder-rose-bg:#f8eaf0;--folder-rose:#bd5f84;--folder-lemon-bg:#f8f1dc;--folder-lemon:#a8801e;--fx-page:radial-gradient(1100px 650px at 10% -10%, #78a0ff8c, transparent 60%), radial-gradient(900px 600px at 100% 0%, #96c8ff80, transparent 55%), radial-gradient(1000px 700px at 50% 115%, #6e96ff66, transparent 60%), linear-gradient(180deg, #eef4ff, #dce8ff);--fx-glass:linear-gradient(150deg, #ffffffd1, #ffffff94);--fx-glass-2:linear-gradient(150deg, #ffffffb3, #ebf2ff80);--fx-edge:#fffffff2;--fx-edge-soft:#7896dc47;--fx-highlight:#ffffffe6;--fx-glow:#2f5fe066;--fx-primary-fill:linear-gradient(135deg, #3862e6, #2f5fe0 55%, #2349b8);--fx-blur:22px}:root[data-design=premium][data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0a1226;--color-surface:#101a33;--color-surface-clear:#101a3300;--color-surface-sunken:#0c1530;--color-border:#22305a;--color-border-dashed:#7083ae;--color-border-tile-add:#7083ae;--color-border-dropzone:#7083ae;--color-switch-off:#7083ae;--color-switch-thumb:#fff;--color-text:#eaf0ff;--color-text-muted:#a6b4d4;--color-text-faint:#9aa9cb;--color-text-disabled:#93a2c6;--color-primary:#6c9bff;--color-primary-hover:#9dbaff;--color-primary-soft:#1a2a56;--color-primary-soft-hover:#233668;--color-primary-soft-border:#35499a;--color-primary-wash:#131f42;--color-primary-light:#9dbaff;--color-on-primary:#07101f;--color-on-primary-muted:#07101f;--color-on-primary-track:#07101f4d;--color-logo-2:#9dbaff;--color-error:#ff8a8a;--color-error-soft:#3a1822;--color-error-soft-hover:#4a2030;--color-accent:#f5c451;--color-on-accent:#1a1405;--color-accent-soft:#3a2f12;--color-accent-text:#f5c451;--color-overlay:#030712b3;--color-scrim:#030712d1;--color-lightbox:#02050eeb;--color-on-scrim:#fff;--color-glass:#101a33b3;--color-glass-2:#101a3399;--color-art-shine:#ffffff0f;--color-on-tile:#06101f;--shadow:0 24px 60px #00000073;--shadow-sm:0 4px 18px #00000059;--shadow-lg:0 30px 80px #0009;--shadow-menu:0 18px 48px #0000008c;--shadow-primary:0 10px 30px #6c9bff66;--shadow-thumb:0 1px 3px #00000080;--color-shadow-icon:#00000059;--rate-1-bg:#3a2414;--rate-1-fg:#ff9d5c;--rate-1-solid:#ff9d5c;--rate-1-on-solid:#07101f;--rate-2-bg:#382e12;--rate-2-fg:#f2c14e;--rate-2-solid:#f2c14e;--rate-2-on-solid:#07101f;--rate-3-bg:#11382b;--rate-3-fg:#4fdca0;--rate-3-solid:#4fdca0;--rate-3-on-solid:#07101f;--rate-4-bg:#0f3438;--rate-4-fg:#3fd3d3;--rate-4-solid:#3fd3d3;--rate-4-on-solid:#07101f;--result-correct-bg:#11382b;--result-correct-fg:#4fdca0;--result-almost-bg:#382e12;--result-almost-fg:#f2c14e;--result-wrong-bg:#3a2414;--result-wrong-fg:#ff9d5c;--state-new-bg:#1a2a56;--state-new-fg:#9dbaff;--state-learning-bg:#3a2414;--state-learning-fg:#ff9d5c;--state-review-bg:#11382b;--state-review-fg:#4fdca0;--notice-warn-bg:#382e12;--notice-warn-fg:#f2c14e;--folder-lavender-bg:#1d2150;--folder-lavender:#8c94ff;--folder-peach-bg:#3a2316;--folder-peach:#ff9f6b;--folder-sky-bg:#11304f;--folder-sky:#5bb6ff;--folder-mint-bg:#0f3a33;--folder-mint:#4fd6a6;--folder-rose-bg:#3a1b33;--folder-rose:#ff7fb0;--folder-lemon-bg:#3a3312;--folder-lemon:#ffd166;--fx-page:radial-gradient(1200px 700px at 8% -12%, #3460c88c, transparent 60%), radial-gradient(900px 600px at 100% 5%, #2878dc4d, transparent 55%), radial-gradient(1100px 700px at 55% 125%, #3a68dc66, transparent 60%), linear-gradient(180deg, #0c1632, #070d1f);--fx-glass:linear-gradient(150deg, #82aaff29, #28469617);--fx-glass-2:linear-gradient(150deg, #82aaff1a, #2846960d);--fx-edge:#a0c3ff33;--fx-edge-soft:#a0c3ff1f;--fx-highlight:#ffffff1f;--fx-glow:#6c9bff73;--fx-primary-fill:linear-gradient(135deg, #93b6ff, #6c9bff 55%, #5a8cf8);--fx-blur:24px}:root[data-design=premium] body{background:var(--fx-page) fixed, var(--color-bg);letter-spacing:-.005em;font-family:Inter,system-ui,-apple-system,sans-serif}:root[data-design=premium]{scrollbar-color:var(--color-border-dashed) transparent}:root[data-design=premium] h1,:root[data-design=premium] h2,:root[data-design=premium] h3,:root[data-design=premium] .brand,:root[data-design=premium] .stat b,:root[data-design=premium] .count-pill,:root[data-design=premium] .counts span,:root[data-design=premium] .ring b,:root[data-design=premium] .tile-body h3,:root[data-design=premium] .btn,:root[data-design=premium] .rate{font-family:Space Grotesk,Inter,system-ui,sans-serif}:root[data-design=premium] h1{letter-spacing:-.025em;font-weight:600}:root[data-design=premium] h2,:root[data-design=premium] h3{letter-spacing:-.015em;font-weight:600}:root[data-design=premium] .shell,:root[data-design=premium] .modal,:root[data-design=premium] .auth-card,:root[data-design=premium] .menu,:root[data-design=premium] .flashcard{background:var(--fx-glass), color-mix(in srgb, var(--color-surface) 58%, transparent);-webkit-backdrop-filter:blur(var(--fx-blur)) saturate(1.35);backdrop-filter:blur(var(--fx-blur)) saturate(1.35);border:1px solid var(--fx-edge);box-shadow:var(--shadow), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .shell{border-radius:32px}:root[data-design=premium] .modal{background:var(--fx-glass), color-mix(in srgb, var(--color-surface) 88%, transparent);box-shadow:var(--shadow-lg), inset 0 1px 0 var(--fx-highlight);border-radius:28px}:root[data-design=premium] .menu{background:var(--fx-glass), color-mix(in srgb, var(--color-surface) 92%, transparent);box-shadow:var(--shadow-menu), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .flashcard{border-radius:28px}:root[data-design=premium] .overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}:root[data-design=premium] .card-row,:root[data-design=premium] .progress-item,:root[data-design=premium] .stat,:root[data-design=premium] .empty,:root[data-design=premium] .import-help,:root[data-design=premium] .type-card,:root[data-design=premium] .type-box,:root[data-design=premium] .file-chip,:root[data-design=premium] .review-topic-head,:root[data-design=premium] .dest-option,:root[data-design=premium] .search,:root[data-design=premium] .btn.ghost,:root[data-design=premium] .icon-btn:not(.plain),:root[data-design=premium] .type-switch,:root[data-design=premium] .input,:root[data-design=premium] .textarea,:root[data-design=premium] .select{background:var(--fx-glass-2), color-mix(in srgb, var(--color-surface-sunken) 55%, transparent);border:1px solid var(--fx-edge-soft);box-shadow:inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .input:focus,:root[data-design=premium] .textarea:focus,:root[data-design=premium] .select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 28%, transparent), 0 0 24px -4px var(--fx-glow)}:root[data-design=premium] .card-row:hover,:root[data-design=premium] .progress-item:hover{border-color:color-mix(in srgb, var(--color-primary) 55%, transparent);box-shadow:0 0 28px -8px var(--fx-glow), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .progress-item.highlight{background:var(--fx-primary-fill);box-shadow:var(--shadow-primary);border-color:#0000}:root[data-design=premium] .stat{border-radius:16px}:root[data-design=premium] .stat b{letter-spacing:-.02em;font-size:22px;font-weight:600}:root[data-design=premium] .btn.ghost:hover,:root[data-design=premium] .icon-btn:hover,:root[data-design=premium] .type-switch:hover{border-color:color-mix(in srgb, var(--color-primary) 50%, transparent)}:root[data-design=premium] .nav-item:hover,:root[data-design=premium] .tree-row:hover{background:color-mix(in srgb, var(--color-primary) 12%, transparent)}:root[data-design=premium] .nav-item.active,:root[data-design=premium] .tree-row.active{background:color-mix(in srgb, var(--color-primary) 18%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 40%, transparent), 0 0 26px -8px var(--fx-glow)}:root[data-design=premium] .brand svg{filter:drop-shadow(0 0 10px var(--fx-glow))}:root[data-design=premium] .count-pill{background:var(--fx-primary-fill);box-shadow:0 0 14px -2px var(--fx-glow);font-weight:600}:root[data-design=premium] .dot{box-shadow:0 0 10px color-mix(in srgb, var(--c) 70%, transparent)}:root[data-design=premium] .btn{letter-spacing:-.005em;border-radius:14px;font-weight:600}:root[data-design=premium] .btn:not(.secondary):not(.ghost):not(.danger){background:var(--fx-primary-fill);box-shadow:0 8px 22px -6px var(--fx-glow), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .btn:not(.secondary):not(.ghost):not(.danger):hover{background:var(--fx-primary-fill);filter:brightness(1.08)saturate(1.1)}:root[data-design=premium] .btn.secondary{background:color-mix(in srgb, var(--color-primary) 16%, transparent);border:1px solid color-mix(in srgb, var(--color-primary) 38%, transparent)}:root[data-design=premium] .btn.secondary:hover{background:color-mix(in srgb, var(--color-primary) 26%, transparent)}:root[data-design=premium] .btn.danger{border:1px solid color-mix(in srgb, var(--color-error) 35%, transparent)}:root[data-design=premium] .tile{border-radius:24px}:root[data-design=premium] .tile[class*=c-]{background:linear-gradient(160deg, color-mix(in srgb, var(--c) 28%, transparent), color-mix(in srgb, var(--c) 4%, transparent) 70%), var(--fx-glass-2), color-mix(in srgb, var(--c-bg) 60%, transparent);border:1px solid color-mix(in srgb, var(--c) 38%, transparent);box-shadow:inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .tile-art{color:var(--c);background:linear-gradient(145deg, color-mix(in srgb, var(--c) 34%, transparent), color-mix(in srgb, var(--c) 8%, transparent) 80%), color-mix(in srgb, var(--color-surface) 40%, transparent);border:1px solid color-mix(in srgb, var(--c) 45%, transparent);box-shadow:0 14px 34px -14px color-mix(in srgb, var(--c) 90%, transparent), inset 0 1px 0 var(--fx-highlight);border-radius:18px}:root[data-design=premium] .tile-art svg{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--c) 80%, transparent))}:root[data-design=premium] .tile-arrow{box-shadow:0 6px 16px -4px color-mix(in srgb, var(--c) 80%, transparent);border-radius:12px}:root[data-design=premium] .badge.due{background:color-mix(in srgb, var(--color-surface) 70%, transparent);border:1px solid var(--fx-edge-soft)}:root[data-design=premium] .tile.add{background:color-mix(in srgb, var(--color-surface-sunken) 45%, transparent)}:root[data-design=premium] .flip-face{border-radius:28px}:root[data-design=premium] .flip-face.back{background:linear-gradient(150deg, color-mix(in srgb, var(--color-primary) 22%, transparent), color-mix(in srgb, var(--color-primary) 6%, transparent)), color-mix(in srgb, var(--color-surface) 70%, transparent);border-color:color-mix(in srgb, var(--color-primary) 45%, transparent);box-shadow:0 0 60px -18px var(--fx-glow), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .flip:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-primary) 35%, transparent)}:root[data-design=premium] .face-text{letter-spacing:-.01em}:root[data-design=premium] .face-label{letter-spacing:.16em}:root[data-design=premium] .rate{border:1px solid color-mix(in srgb, currentColor 35%, transparent);box-shadow:inset 0 1px 0 var(--fx-highlight);border-radius:18px;font-weight:600}:root[data-design=premium] .rate-1{box-shadow:0 0 26px -10px var(--rate-1-solid), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .rate-2{box-shadow:0 0 26px -10px var(--rate-2-solid), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .rate-3{box-shadow:0 0 26px -10px var(--rate-3-solid), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .rate-4{box-shadow:0 0 26px -10px var(--rate-4-solid), inset 0 1px 0 var(--fx-highlight)}:root[data-design=premium] .counts span{border:1px solid color-mix(in srgb, currentColor 30%, transparent);font-weight:600}:root[data-design=premium] .result{border:1px solid color-mix(in srgb, currentColor 30%, transparent)}:root[data-design=premium] .done{background:var(--fx-glass), color-mix(in srgb, var(--color-surface) 50%, transparent);border:1px solid var(--fx-edge);box-shadow:var(--shadow), inset 0 1px 0 var(--fx-highlight);border-radius:32px}:root[data-design=premium] .done-icon{box-shadow:var(--shadow-primary);background:var(--fx-primary-fill);border-radius:26px}:root[data-design=premium] .avatar{background:var(--fx-primary-fill);box-shadow:0 0 30px -4px var(--fx-glow)}:root[data-design=premium] .calendar .day.today span{background:var(--fx-primary-fill);box-shadow:0 0 16px -2px var(--fx-glow)}:root[data-design=premium] .ring svg{filter:drop-shadow(0 0 6px var(--fx-glow))}:root[data-design=premium] .auth-card{border-radius:32px}:root[data-design=premium] .switch-track{box-shadow:inset 0 0 0 1px var(--fx-edge-soft)}:root[data-design=premium] .type-switch.on .switch-track{box-shadow:0 0 14px -2px var(--fx-glow)}:root[data-design=premium] kbd{background:color-mix(in srgb, var(--color-surface-sunken) 60%, transparent);border:1px solid var(--fx-edge-soft)}:root[data-design=premium] .table th{letter-spacing:.08em}:root[data-design=premium] .theme-toggle{background:color-mix(in srgb, var(--color-surface-sunken) 55%, transparent)}:root[data-design=premium] .lightbox img{box-shadow:0 0 80px -10px var(--fx-glow)}:root[data-design=premium] .sidebar.open{background:var(--color-surface)}.theme-toggle{display:none}:root[data-design=premium] .theme-toggle{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:99px;align-self:flex-start;gap:2px;margin:6px 14px 10px;padding:3px;display:inline-flex}:root[data-design=premium] .theme-toggle button{width:32px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:99px;place-items:center;padding:0;display:grid}:root[data-design=premium] .theme-toggle button:hover{color:var(--color-text)}:root[data-design=premium] .theme-toggle button.on{background:var(--color-surface);color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}:root[data-design=premium] .auth-page{position:relative}.auth-theme{position:absolute;top:14px;right:14px}.auth-theme .theme-toggle{margin:0}:root[data-design=premium] :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:root[data-design=premium] .done-icon:has(.lucide-party-popper){background:var(--color-accent);color:var(--color-on-accent);box-shadow:0 10px 24px color-mix(in srgb, var(--color-accent) 35%, transparent)}:root[data-design=premium] .tile.add:hover{color:var(--color-primary-hover)}:root[data-design=premium]{--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-soft:cubic-bezier(.22, 1, .36, 1)}@media (prefers-reduced-motion:no-preference){@keyframes rise{0%{opacity:0;transform:translateY(18px)scale(.96)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}@keyframes modal-in{0%{opacity:0;transform:translateY(24px)scale(.92)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-8px)scale(.92)}}@keyframes ring-draw{0%{stroke-dashoffset:100.53px}}@keyframes celebrate{0%{opacity:0;transform:scale(.2)rotate(-28deg)}55%{opacity:1;transform:scale(1.18)rotate(7deg)}78%{transform:scale(.94)rotate(-3deg)}to{transform:scale(1)rotate(0)}}@keyframes halo{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.75)}}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}:root[data-design=premium] .section,:root[data-design=premium] .topbar,:root[data-design=premium] .done,:root[data-design=premium] .study-top,:root[data-design=premium] .import-section,:root[data-design=premium] .auth-card{animation:rise .55s var(--ease-soft) backwards}:root[data-design=premium] .tiles>*,:root[data-design=premium] .card-list>*,:root[data-design=premium] .progress-list>*,:root[data-design=premium] .stat-row>*,:root[data-design=premium] .review-topic,:root[data-design=premium] .dest-option,:root[data-design=premium] .type-card,:root[data-design=premium] .samples>*{animation:rise .6s var(--ease-spring) backwards}:root[data-design=premium] .tiles>:first-child{animation-delay:80ms}:root[data-design=premium] .tiles>:nth-child(2){animation-delay:.13s}:root[data-design=premium] .tiles>:nth-child(3){animation-delay:.18s}:root[data-design=premium] .tiles>:nth-child(4){animation-delay:.23s}:root[data-design=premium] .tiles>:nth-child(5){animation-delay:.28s}:root[data-design=premium] .tiles>:nth-child(6){animation-delay:.33s}:root[data-design=premium] .tiles>:nth-child(7){animation-delay:.38s}:root[data-design=premium] .tiles>:nth-child(8){animation-delay:.43s}:root[data-design=premium] .tiles>:nth-child(9){animation-delay:.48s}:root[data-design=premium] .tiles>:nth-child(10){animation-delay:.53s}:root[data-design=premium] .tiles>:nth-child(11){animation-delay:.58s}:root[data-design=premium] .tiles>:nth-child(12){animation-delay:.63s}:root[data-design=premium] .tiles>:nth-child(n+13){animation-delay:.68s}:root[data-design=premium] .card-list>:first-child{animation-delay:60ms}:root[data-design=premium] .card-list>:nth-child(2){animation-delay:.1s}:root[data-design=premium] .card-list>:nth-child(3){animation-delay:.14s}:root[data-design=premium] .card-list>:nth-child(4){animation-delay:.18s}:root[data-design=premium] .card-list>:nth-child(5){animation-delay:.22s}:root[data-design=premium] .card-list>:nth-child(6){animation-delay:.26s}:root[data-design=premium] .card-list>:nth-child(7){animation-delay:.3s}:root[data-design=premium] .card-list>:nth-child(8){animation-delay:.34s}:root[data-design=premium] .card-list>:nth-child(9){animation-delay:.38s}:root[data-design=premium] .card-list>:nth-child(10){animation-delay:.42s}:root[data-design=premium] .card-list>:nth-child(11){animation-delay:.46s}:root[data-design=premium] .card-list>:nth-child(12){animation-delay:.5s}:root[data-design=premium] .card-list>:nth-child(n+13){animation-delay:.54s}:root[data-design=premium] .progress-list>:first-child{animation-delay:.12s}:root[data-design=premium] .progress-list>:nth-child(2){animation-delay:.18s}:root[data-design=premium] .progress-list>:nth-child(3){animation-delay:.24s}:root[data-design=premium] .progress-list>:nth-child(4){animation-delay:.3s}:root[data-design=premium] .progress-list>:nth-child(5){animation-delay:.36s}:root[data-design=premium] .progress-list>:nth-child(6){animation-delay:.42s}:root[data-design=premium] .progress-list>:nth-child(7){animation-delay:.48s}:root[data-design=premium] .progress-list>:nth-child(8){animation-delay:.54s}:root[data-design=premium] .progress-list>:nth-child(n+9){animation-delay:.6s}:root[data-design=premium] .stat-row>:first-child{animation-delay:.1s}:root[data-design=premium] .stat-row>:nth-child(2){animation-delay:.16s}:root[data-design=premium] .stat-row>:nth-child(3){animation-delay:.22s}:root[data-design=premium] .stat-row>:nth-child(4){animation-delay:.28s}:root[data-design=premium] .stat-row>:nth-child(n+5){animation-delay:.34s}:root[data-design=premium] .ratings>*{animation:rise .5s var(--ease-spring) backwards}:root[data-design=premium] .ratings>:nth-child(2){animation-delay:60ms}:root[data-design=premium] .ratings>:nth-child(3){animation-delay:.12s}:root[data-design=premium] .ratings>:nth-child(4){animation-delay:.18s}:root[data-design=premium] .flip-scene,:root[data-design=premium] .flashcard{animation:rise .5s var(--ease-spring) backwards}:root[data-design=premium] .count-pill,:root[data-design=premium] .badge{animation:pop-in .45s var(--ease-spring) backwards}:root[data-design=premium] .overlay{animation:.2s ease-out fade}:root[data-design=premium] .modal{animation:modal-in .45s var(--ease-spring)}:root[data-design=premium] .menu{animation:menu-in .3s var(--ease-spring);transform-origin:100% 0}:root[data-design=premium] .result{animation:modal-in .5s var(--ease-spring)}:root[data-design=premium] .ring circle:nth-child(2){animation:ring-draw 1.1s var(--ease-soft) .15s backwards}:root[data-design=premium] .flip{transition:transform .75s cubic-bezier(.34,1.3,.5,1)}:root[data-design=premium] .done-icon{animation:celebrate .9s var(--ease-spring) .15s backwards;position:relative}:root[data-design=premium] .done-icon:has(.lucide-party-popper):after{content:"";border-radius:inherit;border:3px solid var(--color-accent);pointer-events:none;animation:1.4s ease-out .7s 3 backwards halo;position:absolute;inset:0}:root[data-design=premium] .working .done-icon{animation:none}:root[data-design=premium] .btn{transition:transform .3s var(--ease-spring), box-shadow .3s var(--ease-soft), background .15s, color .15s}:root[data-design=premium] .icon-btn,:root[data-design=premium] .tile-arrow,:root[data-design=premium] .nav-item,:root[data-design=premium] .tree-row,:root[data-design=premium] .chip,:root[data-design=premium] .progress-item,:root[data-design=premium] .card-row,:root[data-design=premium] .swatch,:root[data-design=premium] .count-pill{transition:transform .3s var(--ease-spring), box-shadow .3s var(--ease-soft), background .15s, color .15s, filter .15s}:root[data-design=premium] .tile{transition:transform .35s var(--ease-spring), box-shadow .35s var(--ease-soft)}:root[data-design=premium] .rate{transition:transform .3s var(--ease-spring), box-shadow .3s var(--ease-soft), filter .15s}:root[data-design=premium] .tile-art svg{transition:transform .45s var(--ease-spring)}:root[data-design=premium] .brand svg{transition:transform .5s var(--ease-spring)}:root[data-design=premium] .switch-thumb{transition:transform .35s var(--ease-spring)}:root[data-design=premium] .switch-track{transition:background .2s}:root[data-design=premium] .theme-toggle button{transition:transform .3s var(--ease-spring), background .2s, color .2s}:root[data-design=premium] .btn:active,:root[data-design=premium] .icon-btn:active,:root[data-design=premium] .tile-arrow:active,:root[data-design=premium] .rate:active,:root[data-design=premium] .theme-toggle button:active{transition-duration:80ms;transform:scale(.94)}:root[data-design=premium] .tile:active{transform:scale(.98)}:root[data-design=premium] .rate.suggested{animation:1.8s ease-in-out infinite nudge}@media (hover:hover){:root[data-design=premium] .btn:hover{box-shadow:0 8px 18px color-mix(in srgb, var(--color-text) 14%, transparent);transform:translateY(-2px)scale(1.05)}:root[data-design=premium] .btn:not(.secondary):not(.ghost):not(.danger):hover{box-shadow:0 10px 22px color-mix(in srgb, var(--color-primary) 38%, transparent)}:root[data-design=premium] .btn:disabled:hover{box-shadow:none;transform:none}:root[data-design=premium] .icon-btn:hover{transform:translateY(-1px)scale(1.1)}:root[data-design=premium] .icon-btn.plain:hover{transform:scale(1.12)}:root[data-design=premium] .tile:hover{box-shadow:0 18px 36px color-mix(in srgb, var(--color-text) 14%, transparent);transform:translateY(-7px)scale(1.03)}:root[data-design=premium] .tile:hover .tile-art svg{transform:scale(1.18)rotate(-7deg)}:root[data-design=premium] .tile-arrow:hover{transform:translate(2px)scale(1.2)}:root[data-design=premium] .tile.add:hover{transform:translateY(-4px)scale(1.02)}:root[data-design=premium] .nav-item:hover,:root[data-design=premium] .tree-row:hover{transform:translate(4px)}:root[data-design=premium] .chip:hover,:root[data-design=premium] .progress-item:hover,:root[data-design=premium] .card-row:hover{box-shadow:var(--shadow);transform:translateY(-3px)scale(1.01)}:root[data-design=premium] .rate:hover{filter:none;box-shadow:0 10px 20px color-mix(in srgb, currentColor 22%, transparent);transform:translateY(-5px)scale(1.07)}:root[data-design=premium] .rate:active{transform:scale(.94)}:root[data-design=premium] .swatch:hover{transform:scale(1.18)rotate(-4deg)}:root[data-design=premium] .brand:hover svg{transform:rotate(-14deg)scale(1.15)}:root[data-design=premium] .flip-scene:hover{transform:translateY(-3px)}:root[data-design=premium] .theme-toggle button:hover{transform:scale(1.12)}}:root[data-design=premium] .flip-scene{transition:transform .4s var(--ease-spring)}}:root[data-design=premium] .rate small,:root[data-design=premium] .rate kbd{opacity:1}
