:root{--bg: #ffffff;--surface: #f7f7f8;--surface-raised: #ffffff;--text-primary: #111111;--text-secondary: #666666;--text-tertiary: #5a5a5a;--border: #e5e5e5;--accent: #1e3a5f;--gold: #c9a227;--danger: #dc2626;--positive: #16a34a;--warning: #d97706;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 12px}.dark{--bg: #0a0a0a;--surface: #1a1a1a;--surface-raised: #1f1f1f;--text-primary: #f0f0f0;--text-secondary: #a0a0a0;--text-tertiary: #9a9a9a;--border: #333333;--accent: #5b84b8;--gold: #d9b54a}*{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text-primary);line-height:1.5}.app{min-height:100vh}.navbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--surface-raised);position:sticky;top:0;z-index:100}.logo{font-size:20px;font-weight:600}.nav-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav-link{padding:6px 12px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text-secondary);font-size:13px;font-weight:500;border:1px solid transparent;transition:all .15s ease}.nav-link:hover{color:var(--text-primary);background:var(--surface)}.nav-link.active{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;cursor:pointer;font-size:16px;margin-left:4px}.user-badge{margin-left:8px;padding:4px 10px;background:var(--surface);border-radius:20px;font-size:12px;color:var(--text-secondary);border:1px solid var(--border)}.main-content{max-width:900px;margin:0 auto;padding:24px}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.card-title{font-size:17px;font-weight:600;margin-bottom:14px}.btn{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s}.btn:hover{opacity:.85}.btn-primary{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}.btn-success{background:#16a34a1a;color:var(--positive);border-color:#16a34a4d}.btn-danger{background:#dc262614;color:var(--danger);border-color:#dc262640}.btn-warn{background:#d9770614;color:var(--warning);border-color:#d9770640}.btn-neutral{background:transparent;color:var(--text-secondary)}.btn:disabled{opacity:.4;cursor:not-allowed}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat-value{font-size:32px;font-weight:600;font-variant-numeric:tabular-nums}.stat-label{font-size:12px;color:var(--text-tertiary);margin-top:2px}.chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-sm);font-size:13px;background:#2563eb14;color:var(--text-primary);border:1px solid var(--border)}.progress-bar-bg{background:var(--surface);height:8px;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.login-container{display:flex;align-items:center;justify-content:center;padding:24px 0}.login-card{width:360px;max-width:100%;padding:32px;text-align:center}.login-card input,.login-card select{width:100%;padding:10px 14px;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:15px}.login-card input:focus{outline:2px solid var(--accent);outline-offset:-1px}.flashcard{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;cursor:pointer;perspective:1000px}.flashcard-front{font-size:20px;font-weight:500;max-width:500px;line-height:1.6}.flashcard-back{font-size:18px;max-width:500px;line-height:1.6;display:none}.flashcard.flipped .flashcard-front{display:none}.flashcard.flipped .flashcard-back{display:block}.flashcard-front,.flashcard-back,.flashcard-hint{animation:cardFlipIn .35s ease}@keyframes cardFlipIn{0%{transform:rotateY(90deg);opacity:0}to{transform:rotateY(0);opacity:1}}@media (prefers-reduced-motion: reduce){.flashcard-front,.flashcard-back,.flashcard-hint{animation:none}}.glossary-term{position:relative;border-bottom:1px dotted var(--accent);cursor:help;font-weight:500}.glossary-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:6px;font-size:12px;font-weight:400;color:var(--text-primary);width:max-content;max-width:220px;text-align:left;white-space:normal;box-shadow:0 4px 12px #00000026;z-index:50}.rate-buttons{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap;justify-content:center}.tts-btn{position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:8px;border-radius:var(--radius-sm)}.tts-btn:hover{background:var(--surface);color:var(--text-primary)}.ka-topic{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:background .15s}.ka-topic:hover{background:var(--surface)}.ka-topic-header{display:flex;justify-content:space-between;align-items:center}.ka-topic-title{font-weight:500;font-size:15px}.ka-topic-meta{font-size:12px;color:var(--text-tertiary);margin-top:4px}.ka-links{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.ka-link{display:block;padding:6px 0;color:var(--accent);text-decoration:none;font-size:14px}.ka-link:hover{text-decoration:underline}.export-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;font-family:monospace;font-size:13px;max-height:200px;overflow:auto;white-space:pre-wrap;color:var(--text-secondary);margin-bottom:12px}.reminder-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.reminder-toggle{width:44px;height:24px;border-radius:12px;background:var(--surface);border:1px solid var(--border);position:relative;cursor:pointer;transition:background .2s}.reminder-toggle.on{background:var(--positive);border-color:var(--positive)}.reminder-toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--bg);transition:transform .2s;box-shadow:0 1px 3px #00000026}.reminder-toggle.on:after{transform:translate(20px)}.pomodoro-container{position:fixed;bottom:20px;left:20px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 18px;box-shadow:0 4px 20px #0000001a;z-index:200;min-width:180px}.pomodoro-time{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums}.pomodoro-label{font-size:12px;color:var(--text-tertiary);margin-bottom:8px}.pomodoro-controls{display:flex;gap:6px}.pomodoro-controls button{padding:5px 10px;font-size:12px}.card-creator textarea{width:100%;min-height:80px;padding:10px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font-size:15px;font-family:inherit;resize:vertical}.card-creator textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.session-summary{text-align:center;padding:40px}.session-stat{display:inline-block;text-align:center;margin:0 16px 16px}.session-stat-value{font-size:36px;font-weight:600}.session-stat-label{font-size:12px;color:var(--text-tertiary)}.kb-hint{position:fixed;bottom:20px;right:20px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;font-size:12px;color:var(--text-tertiary);z-index:150}.kb-hint kbd{display:inline-block;padding:2px 6px;border-radius:4px;background:var(--surface);border:1px solid var(--border);font-family:monospace;font-size:11px;margin:0 2px}.install-banner{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;background:var(--accent);color:#fff;padding:10px 16px;font-size:13px;text-align:center}.install-banner-actions{display:flex;gap:8px}.install-banner-actions .btn-primary{background:#fff;color:var(--accent)}.install-banner-actions .btn-neutral{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}.countdown-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px;display:flex;align-items:center;gap:16px}.countdown-number{font-size:24px;font-weight:600}.countdown-label{font-size:12px;color:var(--text-tertiary)}.backup-dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:32px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}.backup-dropzone:hover{border-color:var(--accent);background:#2563eb0a}.offline-badge{position:fixed;bottom:16px;right:16px;padding:6px 12px;background:var(--warning);color:#fff;border-radius:var(--radius-sm);font-size:12px;font-weight:500;display:none}.offline .offline-badge{display:block}@media (max-width: 640px){.grid-3,.grid-2{grid-template-columns:1fr}.navbar{padding:10px 12px}.nav-link{padding:5px 8px;font-size:12px}.main-content{padding:16px}.pomodoro-container{left:10px;bottom:10px;padding:10px 14px;min-width:150px}.pomodoro-time{font-size:22px}.kb-hint{display:none}}@media (max-width: 640px){.navbar{flex-direction:column;padding:8px 12px;gap:8px}.nav-links{gap:4px;justify-content:center}.nav-link{padding:5px 8px;font-size:12px}.main-content{padding:16px;max-width:100%}.grid-3{grid-template-columns:1fr}.rate-buttons{flex-direction:column;gap:8px}.rate-buttons .btn{width:100%}.flashcard{min-height:220px;padding:20px;font-size:16px}.session-stat{min-width:70px;padding:12px 8px}.countdown-box{flex-direction:column;gap:12px;text-align:center}.login-card{width:100%;margin:16px}.pomo-timer{width:100%;right:0;border-radius:12px 12px 0 0}}.swipe-hint{display:none;text-align:center;font-size:13px;color:var(--text-tertiary);margin-top:8px}@media (max-width: 640px) and (hover: none){.swipe-hint{display:block}}.nav-search{flex:1;max-width:400px;margin:0 16px}@media (max-width: 640px){.nav-search{order:3;width:100%;max-width:100%;margin:8px 0 0}}.export-preview{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:monospace;font-size:12px;max-height:200px;overflow:auto;margin-top:12px;color:var(--text-secondary)}.pass-prob-card{background:linear-gradient(135deg,var(--surface-raised) 0%,var(--surface) 100%);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px;text-align:center}.pass-prob-ring{width:140px;height:140px;margin:0 auto 16px;position:relative}.pass-prob-ring svg{transform:rotate(-90deg)}.pass-prob-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:32px;font-weight:700}.pass-prob-label{font-size:13px;color:var(--text-tertiary);margin-top:4px}.pass-prob-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.pass-prob-item{background:var(--surface);border-radius:8px;padding:10px;text-align:left}.pass-prob-item-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.pass-prob-item-value{font-size:18px;font-weight:600}.pass-prob-item-bar{height:4px;background:var(--border);border-radius:2px;margin-top:6px;overflow:hidden}.pass-prob-item-bar-fill{height:100%;border-radius:2px;transition:width .6s ease}.pass-prob-status{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;margin-top:8px}.pass-prob-status.ready{background:#16a34a1f;color:var(--positive)}.pass-prob-status.almost{background:#d977061f;color:var(--warning)}.pass-prob-status.early{background:#dc262614;color:var(--danger)}.assessment-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;padding:16px}.assessment-modal{background:var(--surface-raised);border-radius:var(--radius-lg);max-width:520px;width:100%;max-height:80vh;overflow-y:auto;padding:24px}.assessment-question{margin-bottom:20px}.assessment-options{display:flex;flex-direction:column;gap:8px}.assessment-option{padding:12px 16px;border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s;font-size:14px}.assessment-option:hover{border-color:var(--accent);background:var(--surface)}.assessment-option.selected{border-color:var(--accent);background:#2563eb14}.landing{max-width:1000px;margin:0 auto;padding:0 24px 48px}.landing-hero{text-align:center;padding:72px 16px 48px}.landing-hero h1{font-size:40px;font-weight:700;margin-bottom:16px;line-height:1.2}.landing-subtitle{font-size:17px;color:var(--text-secondary);max-width:620px;margin:0 auto 28px;line-height:1.6}.landing-cta{font-size:16px;padding:12px 28px}.landing-section{margin-top:56px}.landing-section h2{font-size:24px;font-weight:600;text-align:center;margin-bottom:28px}.landing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.landing-feature{text-align:center}.landing-feature-icon{font-size:28px;margin-bottom:8px}.landing-feature p{color:var(--text-secondary);font-size:14px;margin-top:6px}.landing-probability-card{display:flex;align-items:center;gap:24px;max-width:600px;margin:0 auto}.landing-probability-ring{flex-shrink:0;width:88px;height:88px;border-radius:50%;border:6px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:var(--accent)}.landing-probability-card p{color:var(--text-secondary);font-size:14px;margin:0}.landing-testimonial p{font-size:14px;color:var(--text-secondary);line-height:1.6}.landing-testimonial-role{font-size:13px;color:var(--text-tertiary);margin-top:10px;font-weight:500}.landing-signup{margin-top:64px;text-align:center}.landing-signup h2{font-size:24px;font-weight:600;margin-bottom:8px}@media (max-width: 640px){.landing-hero{padding:48px 8px 32px}.landing-hero h1{font-size:28px}.landing-grid{grid-template-columns:1fr}.landing-probability-card{flex-direction:column;text-align:center}}
