:root{--bg: #0c0d10;--bg-2: #101216;--panel: #16181d;--panel-2: #1c1f26;--panel-3: #23262f;--border: #262a32;--border-2: #333a46;--text: #eceef2;--text-dim: #9ba1ac;--text-faint: #6a707c;--brand: #6d86ff;--brand-strong: #869bff;--brand-soft: rgba(109, 134, 255, .14);--brand-ink: #080b18;--accent: #b58bf5;--good: #46c98a;--warn: #e3a24d;--bad: #ef6b6b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 6px rgba(0, 0, 0, .28), 0 16px 40px -14px rgba(0, 0, 0, .55);--radius: 16px;--radius-md: 12px;--radius-sm: 9px;--maxw: 1120px;--ease: cubic-bezier(.32, .72, 0, 1)}:root[data-theme=light]{--bg: #f5f7fa;--bg-2: #eceff4;--panel: #ffffff;--panel-2: #f4f6f9;--panel-3: #e9edf3;--border: #e4e8ee;--border-2: #d3dae4;--text: #12151b;--text-dim: #59616e;--text-faint: #949cab;--brand: #4a5ad4;--brand-strong: #3f4fc9;--brand-soft: rgba(74, 90, 212, .1);--brand-ink: #ffffff;--accent: #7c4ddb;--good: #10a05e;--warn: #b0761c;--bad: #d64545;--shadow-sm: 0 1px 2px rgba(20, 30, 50, .06);--shadow: 0 1px 2px rgba(20, 30, 50, .06), 0 16px 36px -14px rgba(20, 30, 50, .18)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,Inter,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--brand);text-decoration:none}button{font-family:inherit;cursor:pointer}code{background:var(--panel-2);padding:1px 6px;border-radius:6px;font-size:.88em;border:1px solid var(--border)}.icon{flex:none;display:block}::selection{background:var(--brand-soft)}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:18px;padding:12px 22px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:11px;background:none;border:0;color:var(--text);padding:0}.brand-mark{font-weight:800;font-size:15px;letter-spacing:-.4px;background:var(--brand);color:var(--brand-ink);width:40px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffff38,var(--shadow-sm)}.brand-mark .amp{opacity:.55;margin:0 .5px;font-weight:600}.brand-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex:none;border:1px solid var(--border-2);box-shadow:var(--shadow-sm);display:block}.brand-avatar img{width:100%;height:100%;object-fit:cover;display:block}.brand-text{font-weight:650;font-size:14px;line-height:1.15;text-align:left;letter-spacing:-.2px}.brand-text em{display:block;font-style:normal;color:var(--text-faint);font-size:11px;font-weight:500;letter-spacing:0}.nav-desktop{display:flex;gap:2px;margin-left:10px}.nav-item{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:var(--text-dim);padding:8px 13px;border-radius:10px;font-size:13.5px;font-weight:550;letter-spacing:-.1px;transition:color .15s,background .15s}.nav-item .nav-icon{opacity:.9}.nav-item:hover{color:var(--text);background:var(--panel-2)}.nav-item.active{color:var(--brand-strong);background:var(--brand-soft)}.theme-toggle{margin-left:auto;background:var(--panel);border:1px solid var(--border);color:var(--text-dim);width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;transition:color .15s,border .15s}.theme-toggle:hover{color:var(--text);border-color:var(--border-2)}.nav-mobile{display:none}.content{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:30px 22px 90px}h1{font-size:27px;margin:0 0 4px;letter-spacing:-.5px;font-weight:750}h2{font-size:18px;margin:0 0 14px;letter-spacing:-.3px;font-weight:680}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.page-head{margin-bottom:26px}.page-head p{color:var(--text-dim);margin:3px 0 0;font-size:14px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.grid{display:grid;gap:16px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.spacer{flex:1}.btn{display:inline-flex;align-items:center;gap:7px;justify-content:center;background:var(--panel-2);color:var(--text);border:1px solid var(--border);padding:9px 15px;border-radius:10px;font-weight:600;font-size:13.5px;letter-spacing:-.1px;transition:transform .1s var(--ease),background .15s,border .15s,color .15s}.btn:hover{background:var(--panel-3);border-color:var(--border-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:transparent;box-shadow:inset 0 1px #ffffff2e}.btn.primary:hover{background:var(--brand-strong)}.btn.accent{background:var(--accent);color:var(--brand-ink);border-color:transparent}.btn.accent:hover{filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn.ghost:hover{background:var(--panel-2);color:var(--text)}.btn.sm{padding:6px 10px;font-size:12.5px;border-radius:8px}.btn.danger{color:var(--bad)}.btn.danger:hover{background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}.btn:disabled{opacity:.45;cursor:not-allowed}.input,select,textarea{background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit;width:100%;transition:border .15s,box-shadow .15s}.input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}textarea{resize:vertical;min-height:90px;line-height:1.5}label.field{display:block;margin-bottom:12px}label.field span{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px;font-weight:600;letter-spacing:.1px}.loading,.empty-state{text-align:center;padding:90px 20px;color:var(--text-dim)}.spinner{width:32px;height:32px;border-radius:50%;margin:0 auto 14px;border:2.5px solid var(--border);border-top-color:var(--brand);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.greeting{margin-bottom:22px}.greeting h1{font-size:30px;letter-spacing:-.7px;font-weight:760}.greeting-q{color:var(--text);margin:8px 0 0;font-size:23px;font-weight:550;letter-spacing:-.4px}.dash-search{display:flex;gap:10px;margin-top:18px;max-width:660px}.search-wrap{position:relative;flex:1}.dash-search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.dash-search .input{height:52px;padding-left:44px;padding-right:14px;font-size:15px;border-radius:13px}.dash-search .btn{height:52px;padding:0 22px;border-radius:13px;font-size:14.5px}.leftoff{margin-bottom:24px}.leftoff-label{font-size:11px;text-transform:uppercase;letter-spacing:.9px;color:var(--text-faint);font-weight:650;margin-bottom:9px}.leftoff-card{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:15px 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);position:relative;overflow:hidden;transition:transform .14s var(--ease),border .15s,background .15s}.leftoff-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sys, var(--brand))}.leftoff-card:hover{transform:translateY(-2px);border-color:var(--border-2);background:var(--panel-2)}.leftoff-card .sys-dot{width:11px;height:11px}.leftoff-main{flex:1;min-width:0}.leftoff-main b{display:block;font-size:15px;letter-spacing:-.2px}.leftoff-main small{color:var(--text-dim);font-size:12.5px}.leftoff-go{pointer-events:none;flex:none}.hero{padding:22px 24px;margin-bottom:22px}.hero .stats{display:flex;gap:30px;flex-wrap:wrap}.stat{min-width:82px}.stat b{display:block;font-size:30px;font-weight:780;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.1}.stat span{color:var(--text-dim);font-size:12.5px}.stat.due b{color:var(--brand-strong)}.stat.wrong b{color:var(--bad)}.stat.mature b{color:var(--good)}.cta-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px;margin-bottom:30px}.cta{text-align:left;padding:17px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--panel);transition:transform .14s var(--ease),border .15s,background .15s;position:relative;overflow:hidden}.cta:hover{transform:translateY(-3px);border-color:var(--border-2);background:var(--panel-2)}.cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.cta b{display:block;font-size:14.5px;margin-bottom:3px;letter-spacing:-.2px}.cta small{color:var(--text-dim);font-size:12.5px;line-height:1.4;display:block}.cta .big{font-size:24px;font-weight:800;color:var(--brand-strong);letter-spacing:-.5px;font-variant-numeric:tabular-nums}.systems{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:13px}.sys-card{padding:16px;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);transition:transform .14s var(--ease),border .15s;position:relative}.sys-card:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--sys, var(--brand));opacity:.9}.sys-card:hover{transform:translateY(-3px);border-color:var(--border-2)}.sys-card .sys-name{font-weight:650;margin-bottom:9px;display:flex;align-items:center;gap:9px;font-size:14.5px;letter-spacing:-.2px}.sys-dot{width:9px;height:9px;border-radius:3px;flex:none}.sys-meta{display:flex;justify-content:space-between;color:var(--text-dim);font-size:12.5px;margin-bottom:9px}.progress-bar{height:6px;background:var(--bg-2);border-radius:99px;overflow:hidden}.progress-bar>i{display:block;height:100%;background:var(--sys, var(--brand));border-radius:99px;transition:width .4s var(--ease)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.toolbar .input{max-width:340px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.chip{background:var(--panel);border:1px solid var(--border);color:var(--text-dim);padding:6px 12px;border-radius:99px;font-size:12.5px;font-weight:600;transition:all .14s}.chip:hover{color:var(--text);border-color:var(--border-2)}.chip.active{color:var(--brand-ink);background:var(--brand);border-color:transparent}.chip.t{text-transform:capitalize}.card-list{display:grid;gap:11px}.list-card{padding:15px 17px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);position:relative;transition:border .15s}.list-card:hover{border-color:var(--border-2)}.list-card:before{content:"";position:absolute;left:0;top:15px;bottom:15px;width:3px;border-radius:0 3px 3px 0;background:var(--sys, var(--brand));opacity:.75}.list-card .lc-top{display:flex;gap:8px;align-items:center;margin-bottom:7px;flex-wrap:wrap}.list-card .lc-front{font-weight:600;letter-spacing:-.2px}.list-card .lc-back{color:var(--text-dim);font-size:13.5px;margin-top:5px}.list-card .lc-actions{display:flex;gap:4px;margin-top:12px;align-items:center}.result-count{color:var(--text-faint);font-size:13px;margin-bottom:10px}.badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 7px;border-radius:6px;background:var(--panel-2);color:var(--text-dim);border:1px solid var(--border)}.badge.type-definition{color:#7cc5f2}.badge.type-function{color:#5fd0a0}.badge.type-identify{color:#f0938f}.badge.type-sequence{color:#e6b256}.badge.type-compare{color:#b79cf0}.badge.type-clinical{color:#ef94c0}.badge.type-cloze{color:#7fb0f5}.badge.diff-core{color:var(--good)}.badge.diff-intermediate{color:var(--warn)}.badge.diff-advanced{color:var(--bad)}.badge.pg{color:var(--text-faint);cursor:pointer;font-variant-numeric:tabular-nums}.badge.pg:hover{color:var(--brand-strong);border-color:var(--border-2)}.mastery-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.m-new{background:var(--text-faint)}.m-learning{background:var(--warn)}.m-young{background:var(--brand)}.m-mature{background:var(--good)}.study-wrap{max-width:700px;margin:0 auto}.study-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}.study-progress{flex:1;height:6px;background:var(--panel);border-radius:99px;overflow:hidden;border:1px solid var(--border)}.study-progress>i{display:block;height:100%;background:var(--brand);border-radius:99px;transition:width .35s var(--ease)}.study-counter{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:13px;font-weight:550}.flashcard{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-height:350px;display:flex;flex-direction:column;padding:24px;position:relative;overflow:hidden}.flashcard:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--sys, var(--brand))}.flashcard .fc-meta{display:flex;gap:8px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.flashcard .fc-body{flex:1;display:flex;flex-direction:column;justify-content:center}.fc-side-label{font-size:10.5px;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-faint);margin-bottom:9px;font-weight:650}.fc-front{font-size:21px;font-weight:620;letter-spacing:-.3px;line-height:1.4}.fc-front p:first-child,.fc-back p:first-child{margin-top:0}.fc-back{font-size:15.5px}.fc-divider{height:1px;background:var(--border);margin:20px 0}.fc-hint{margin-top:14px;color:var(--warn);font-size:14px}.fc-hint button{background:none;border:0;color:var(--warn);text-decoration:underline;padding:0;font-size:14px}.md :is(h1,h2,h3){font-size:16px;margin:12px 0 6px}.md ul,.md ol{padding-left:20px;margin:8px 0}.md li{margin:4px 0}.md table{border-collapse:separate;border-spacing:0;width:100%;margin:12px 0;font-size:13.5px;border:1px solid var(--border);border-radius:9px;overflow:hidden}.md th,.md td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:8px 11px;text-align:left}.md tr:last-child td{border-bottom:0}.md th:last-child,.md td:last-child{border-right:0}.md th{background:var(--panel-2);font-weight:650}.md p{margin:8px 0}.md strong{color:var(--text);font-weight:680}.grade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:20px}.grade-btn{padding:13px 8px;border-radius:12px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-weight:680;font-size:14px;display:flex;flex-direction:column;gap:2px;transition:transform .1s var(--ease),background .15s,border .15s}.grade-btn small{font-weight:500;font-size:10.5px;color:var(--text-faint)}.grade-btn:hover{transform:translateY(-2px)}.grade-btn.again{color:var(--bad)}.grade-btn.again:hover{border-color:color-mix(in srgb,var(--bad) 55%,var(--border));background:color-mix(in srgb,var(--bad) 12%,var(--panel-2))}.grade-btn.hard{color:var(--warn)}.grade-btn.hard:hover{border-color:color-mix(in srgb,var(--warn) 55%,var(--border));background:color-mix(in srgb,var(--warn) 12%,var(--panel-2))}.grade-btn.good{color:var(--brand-strong)}.grade-btn.good:hover{border-color:color-mix(in srgb,var(--brand) 55%,var(--border));background:var(--brand-soft)}.grade-btn.easy{color:var(--good)}.grade-btn.easy:hover{border-color:color-mix(in srgb,var(--good) 55%,var(--border));background:color-mix(in srgb,var(--good) 12%,var(--panel-2))}.reveal-btn{margin-top:20px;width:100%;padding:15px;font-size:15px}.kbd-hint{text-align:center;color:var(--text-faint);font-size:12px;margin-top:13px}.kbd{background:var(--panel-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:11px;font-family:ui-monospace,SF Mono,monospace;color:var(--text-dim)}.summary{max-width:560px;margin:40px auto;text-align:center;padding:34px}.summary .big-num{font-size:50px;font-weight:800;color:var(--brand-strong);letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.summary .breakdown{display:flex;justify-content:center;gap:24px;margin:22px 0}.quiz-opt{display:flex;align-items:center;width:100%;text-align:left;padding:14px 16px;margin-bottom:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:15px;font-weight:520;transition:border .13s,background .13s,transform .1s var(--ease)}.quiz-opt:hover:not(:disabled){border-color:var(--border-2);transform:translate(2px)}.quiz-opt.correct{border-color:var(--good);background:color-mix(in srgb,var(--good) 13%,var(--panel-2))}.quiz-opt.wrong{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 13%,var(--panel-2))}.quiz-opt .opt-key{font-weight:750;color:var(--text-faint);margin-right:12px;font-size:13px;width:16px}.source-page{padding:19px 20px;margin-bottom:14px}.source-page pre{white-space:pre-wrap;font-family:inherit;margin:12px 0 0;color:var(--text-dim);font-size:13.5px;line-height:1.65}.source-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.diagrams{margin-top:18px}.diagrams-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-faint);margin-bottom:9px;font-weight:650}.diagram-grid{display:flex;flex-wrap:wrap;gap:10px}.diagram-thumb{padding:7px;background:#fff;border:1px solid var(--border);border-radius:11px;cursor:zoom-in;line-height:0;transition:transform .12s var(--ease),border .15s,box-shadow .15s;max-width:100%}.diagram-thumb:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow-sm)}.diagram-thumb img{max-height:260px;max-width:100%;width:auto;height:auto;border-radius:5px;object-fit:contain}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#04060ceb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:fade .15s var(--ease)}.lightbox img{max-width:96vw;max-height:92vh;background:#fff;border-radius:12px;padding:10px;box-shadow:var(--shadow)}.lightbox-close{position:fixed;top:18px;right:20px;background:var(--panel);border:1px solid var(--border);color:var(--text);width:42px;height:42px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center}@keyframes fade{0%{opacity:0}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060c99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:18px;animation:fade .15s var(--ease)}.modal{width:100%;max-width:640px;max-height:88vh;overflow:auto;padding:24px;box-shadow:var(--shadow)}.modal h2{margin-bottom:18px}.modal .modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.toast{position:fixed;bottom:88px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--border-2);color:var(--text);padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:70;font-weight:600;font-size:13.5px;animation:fade .2s var(--ease)}.manage-sec{padding:20px 22px;margin-bottom:16px}.manage-sec h2{display:flex;align-items:center;gap:8px}.kv{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:14px}.kv:last-child{border-bottom:0}@media (max-width: 760px){.topbar{padding:11px 16px}.nav-desktop,.brand-text{display:none}.content{padding:22px 16px 96px}h1{font-size:22px}.hero .stats{gap:20px}.grade-row{grid-template-columns:repeat(2,1fr)}.fc-front{font-size:19px}.flashcard{padding:20px;min-height:320px}.nav-mobile{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;bottom:0;left:0;right:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border-top:1px solid var(--border);padding:7px 4px calc(7px + env(safe-area-inset-bottom))}.tabbar-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:var(--text-faint);padding:5px 2px;border-radius:10px;font-size:9.5px;font-weight:600;letter-spacing:.1px;transition:color .15s}.tabbar-item svg{transition:transform .15s var(--ease)}.tabbar-item.active{color:var(--brand-strong)}.tabbar-item.active svg{transform:translateY(-1px)}.toast{bottom:84px}}@media (min-width: 761px){.nav-mobile{display:none}}
