:root{--bg:#f8fafc;--fg:#0f172a;--accent:#0369a1;--accent-hover:#075985;--border:#e2e8f0;--muted:#64748b;--success-bg:#ecfdf5;--success-fg:#065f46;--error-bg:#fef2f2;--error-fg:#991b1b;--focus-ring:#0ea5e9;--skeleton:#e2e8f0;--nav-active-bg:#e0f2fe;--surface:#ffffff;--surface-elevated:#ffffff;--chip-bg:var(--bg);--shimmer-mid:#f1f5f9}[data-theme=dark]{--bg:#0f172a;--fg:#f1f5f9;--accent:#38bdf8;--accent-hover:#7dd3fc;--border:#334155;--muted:#94a3b8;--success-bg:#064e3b;--success-fg:#a7f3d0;--error-bg:#450a0a;--error-fg:#fecaca;--focus-ring:#38bdf8;--skeleton:#334155;--nav-active-bg:#1e3a5f;--surface:#1e293b;--surface-elevated:#334155;--chip-bg:#1e293b;--shimmer-mid:#475569}*{box-sizing:border-box}html{font-size:16px;color-scheme:light dark}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:1rem;line-height:1.5;background:var(--bg);color:var(--fg)}a{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface)}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand{text-decoration:none;color:var(--fg)}.app-nav{display:flex;flex-wrap:wrap;gap:.25rem .5rem;flex:1 1;justify-content:center}.nav-link{padding:.5rem .75rem;border-radius:6px;text-decoration:none;color:var(--accent);font-weight:500;min-height:44px;display:inline-flex;align-items:center}.nav-link-sm{font-size:.875rem;min-height:auto;padding:.25rem .5rem}.nav-active,.nav-link.nav-active{background:var(--nav-active-bg);color:var(--accent-hover)}.main{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem;margin-bottom:1rem}button{background:var(--accent);color:white;border:none;padding:.625rem 1rem;border-radius:6px;cursor:pointer;font-size:1rem;min-height:44px}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--fg);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg)}.btn-link{background:transparent;color:var(--accent);padding:.5rem;min-height:44px;text-decoration:underline}.auth-nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.user-email{font-size:.875rem;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted,.user-email{color:var(--muted)}.notice{padding:.75rem 1rem;border-radius:6px;margin:1rem 0}.notice.success{background:var(--success-bg);color:var(--success-fg)}.notice.error{background:var(--error-bg);color:var(--error-fg)}.disclaimer{font-size:.875rem;line-height:1.6}input,select,textarea{width:100%;padding:.625rem;border:1px solid var(--border);border-radius:6px;margin-bottom:.75rem;font-size:1rem;font-family:inherit;background:var(--surface);color:var(--fg)}label{display:block;margin-bottom:.25rem;font-size:.875rem;font-weight:500}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;min-height:44px}.checkbox-row input{width:auto;margin:0}.page-header{margin-bottom:1.5rem}.page-header h1{margin:0 0 .25rem}.page-subtitle{margin:0}.filter-bar,.tab-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.filter-chip,.tab-btn{background:var(--surface);color:var(--fg);border:1px solid var(--border);padding:.5rem 1rem;min-height:44px}.filter-chip-active,.tab-active{background:var(--nav-active-bg);border-color:var(--accent);color:var(--accent-hover)}.dashboard-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.dashboard-card{display:block;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.dashboard-card:hover{border-color:var(--accent);box-shadow:0 2px 8px rgb(0 0 0/.06)}.dashboard-card-icon{font-size:1.75rem;display:block;margin-bottom:.5rem}.dashboard-card h2{margin:0 0 .35rem;font-size:1.125rem}.dashboard-card p{margin:0;font-size:.9375rem}.inbox-list,.plan-list,.session-list{list-style:none;padding:0;margin:0}.inbox-card-header{margin-bottom:.5rem}.inbox-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.inbox-delete-btn{flex-shrink:0;color:var(--error-fg);font-size:.875rem}.inbox-delete-btn:hover:not(:disabled){color:var(--error-fg);opacity:.85}.inbox-title{margin:0 0 .25rem;font-size:1.125rem}.inbox-title a{color:var(--fg);text-decoration:none}.inbox-title a:hover{color:var(--accent)}.inbox-meta{display:flex;gap:.75rem;font-size:.875rem;flex-wrap:wrap;align-items:center}.inbox-badge-top-cited{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--success-bg);color:var(--success-fg)}.inbox-summary{margin:.5rem 0}.why-here{font-size:.9375rem;background:var(--bg);padding:.75rem;border-radius:6px;margin:.75rem 0}.inbox-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}.triage-btn{min-width:7rem;background:var(--surface);color:var(--fg);border:1px solid var(--border)}.triage-btn:hover:not(:disabled){background:var(--bg)}.triage-btn.triage-active{background:var(--success-bg);color:var(--success-fg);border-color:var(--success-fg);box-shadow:none}.triage-btn.triage-reject.triage-active{background:var(--error-bg);color:var(--error-fg);border-color:var(--error-fg);box-shadow:none}.inbox-trending{margin-bottom:1rem}.inbox-trending-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:stretch;margin-top:.5rem}.inbox-trending-row input{flex:1 1;min-width:12rem}.inbox-trending-row button{flex-shrink:0}.inbox-list-heading{margin:1rem 0 .75rem;font-size:1.125rem}.inbox-run-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding:.875rem 1rem}.inbox-run-banner p{margin:0}.empty-state{text-align:center;padding:2rem 1.25rem}.empty-actions{justify-content:center;margin-top:1rem}.btn-row,.empty-actions{display:flex;flex-wrap:wrap;gap:.75rem}.btn-row{margin-top:.75rem}.skeleton{background:linear-gradient(90deg,var(--skeleton) 25%,var(--shimmer-mid) 50%,var(--skeleton) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{height:1.25rem;width:70%;margin-bottom:.75rem}.skeleton-text{height:1rem;width:100%;margin-bottom:.5rem}.skeleton-text.short{width:45%}.skeleton-card{min-height:6rem}.skeleton-list{display:flex;flex-direction:column;gap:1rem}.progress-block{margin-top:1.25rem}.progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .3s ease}.slider-row{margin:1rem 0}.slider-row input[type=range]{width:100%}.report-block{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.markdown h1,.markdown h2,.markdown h3{margin-top:1rem}.chat-layout{display:grid;grid-template-columns:220px 1fr;grid-gap:1rem;gap:1rem}.chat-sidebar-toggle{display:none}.chat-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem;max-height:32rem;overflow-y:auto}.chat-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.chat-sidebar-header h2{margin:0;font-size:1rem}.session-item{flex:1 1;text-align:left;background:transparent;color:var(--fg);border:none;padding:.625rem;min-height:44px;border-radius:6px}.session-row{display:flex;align-items:stretch;gap:.25rem}.session-rename-btn{flex-shrink:0;align-self:center;background:transparent;color:var(--muted);border:none;padding:.375rem .5rem;min-height:44px;font-size:.8125rem;opacity:0}.session-row:focus-within .session-rename-btn,.session-row:hover .session-rename-btn{opacity:1}.session-rename-btn:hover:not(:disabled){background:var(--bg);color:var(--accent)}.session-rename-input{width:100%;margin:.25rem 0}.session-active,.session-item:hover{background:var(--nav-active-bg)}.chat-main{display:flex;flex-direction:column;min-height:24rem}.context-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.chip{background:var(--chip-bg);border:1px solid var(--border);padding:.25rem .625rem;border-radius:999px;font-size:.875rem}.chat-messages{flex:1 1;overflow-y:auto;margin-bottom:1rem;max-height:24rem}.chat-bubble{margin-bottom:.75rem;padding:.75rem;border-radius:8px}.chat-user{background:var(--nav-active-bg)}.chat-assistant{background:var(--bg);border:1px solid var(--border)}.chat-role{display:block;font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:.25rem}.chat-compose{display:flex;flex-direction:column;gap:.5rem}.flashcard{width:100%;min-height:12rem;perspective:800px;background:transparent;padding:0;border:none;cursor:pointer}.flashcard-back,.flashcard-front{background:var(--surface);border:2px solid var(--accent);border-radius:12px;padding:2rem 1.5rem;min-height:12rem;display:flex;flex-direction:column;justify-content:center}.flashcard-flipped .flashcard-front,.flashcard:not(.flashcard-flipped) .flashcard-back{display:none}.flashcard-label{font-size:.75rem;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem}.evidence-ref{margin:.75rem 0 0;font-size:.875rem;color:var(--muted)}.evidence-ref-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.evidence-ref-link:hover{opacity:.85}.quiz-options{list-style:none;padding:0;margin:1rem 0}.quiz-option{width:100%;text-align:left;background:var(--surface);color:var(--fg);border:1px solid var(--border);margin-bottom:.5rem}.quiz-correct{background:var(--success-bg);border-color:var(--success-fg)}.quiz-wrong{background:var(--error-bg);border-color:var(--error-fg)}.quiz-explanation{background:var(--bg);padding:.75rem;border-radius:6px}.landing{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.landing-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.hero h1{font-size:clamp(1.75rem,4vw,2.5rem);line-height:1.2;margin:0 0 1rem}.hero-kicker{color:var(--accent);font-weight:600;margin:0 0 .5rem}.hero-lead{font-size:1.125rem;color:var(--muted);max-width:40rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem;gap:1rem;margin-top:3rem}.feature-card{text-align:center}.feature-icon{font-size:2rem;display:block;margin-bottom:.5rem}.landing-footer{margin-top:3rem;text-align:center}.auth-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;background:linear-gradient(165deg,var(--bg) 0,color-mix(in srgb,var(--bg) 94%,var(--accent) 6%) 100%)}.auth-shell:before{content:"";position:fixed;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--border) 55%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--border) 55%,transparent) 1px,transparent 1px);background-size:48px 48px;opacity:.4;pointer-events:none;z-index:0}.auth-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface);position:relative;z-index:1}.auth-brand{text-decoration:none;color:var(--fg);font-weight:600;font-size:.9375rem}.auth-brand:hover{color:var(--accent)}.auth-main{flex:1 1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem 3rem;position:relative;z-index:1}.auth-split{display:grid;grid-template-columns:minmax(280px,420px) minmax(300px,1fr);grid-gap:2rem 3rem;gap:2rem 3rem;width:100%;max-width:960px;align-items:center}.auth-form-column{min-width:0}.login-page h1{margin:0 0 .75rem;font-family:Georgia,Times New Roman,Times,serif;font-size:clamp(1.75rem,4vw,2.25rem);line-height:1.2;font-weight:600}.login-lead{margin:0 0 1.5rem;color:var(--muted);font-size:1.0625rem;line-height:1.5}.login-form{margin-bottom:.25rem}.login-disclaimer{margin:1.5rem 0 0;font-size:.8125rem;line-height:1.55}.btn-full{width:100%}.auth-divider{display:flex;align-items:center;gap:1rem;margin:1.25rem 0;color:var(--muted);font-size:.875rem}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.btn-google{display:inline-flex;align-items:center;justify-content:center;gap:.625rem}.dev-chip{display:inline-block;font-size:.75rem;font-weight:500;padding:.2rem .625rem;border-radius:999px;background:var(--chip-bg);color:var(--muted);margin-bottom:1rem}.dev-chip,.journal-panel{border:1px solid var(--border)}.journal-panel{background:var(--surface);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:1.75rem;min-width:0}.journal-panel-empty{min-height:14rem}.journal-kicker{font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem}.journal-title{font-family:Georgia,Times New Roman,Times,serif;font-size:clamp(1.25rem,2.5vw,1.5rem);line-height:1.35;font-weight:600;margin:0 0 .75rem}.journal-meta{font-size:.8125rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:0 0 1.25rem}.journal-summary{margin:0 0 1.25rem;line-height:1.65;color:var(--fg)}.journal-why{padding-top:1rem;border-top:1px solid var(--border)}.journal-why-label{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.375rem}.journal-why p{margin:0;font-size:.9375rem;line-height:1.55;color:var(--muted)}.journal-dots{display:flex;gap:.375rem;margin-top:1.5rem}.journal-dot{width:6px;height:6px;border-radius:50%;background:var(--border)}.journal-dot-active{background:var(--accent)}.notice.journal-footnote{margin-top:1rem;margin-bottom:0;padding:.625rem 0 .625rem .875rem;border-left:3px solid var(--error-fg);background:transparent;border-radius:0;color:var(--error-fg);font-size:.9375rem}@media (max-width:767px){.auth-split{grid-template-columns:1fr;gap:2rem}.journal-panel{border-radius:8px;border-left:1px solid var(--border);border-top:3px solid var(--accent);padding:1.25rem}.journal-summary{font-size:.9375rem}}.onboarding{max-width:640px;margin:0 auto}.onboarding-progress{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.5rem}.progress-dot{width:10px;height:10px;border-radius:50%;background:var(--border)}.progress-dot-active{background:var(--accent)}.onboarding-icons{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem;text-align:center;margin:1.5rem 0}.onboarding-icons span{font-size:2rem}.lead{font-size:1.125rem;color:var(--muted)}.stat-list{list-style:none;padding:0;margin:0}.stat-list li{padding:.25rem 0}.app-main{padding-bottom:5rem}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:.25rem 0 calc(.25rem + env(safe-area-inset-bottom, 0));grid-template-columns:repeat(4,1fr)}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;padding:.5rem .25rem;min-height:56px;text-decoration:none;color:var(--muted);font-size:.6875rem;font-weight:500}.mobile-nav-icon{font-size:1.25rem;line-height:1}.mobile-nav-active{color:var(--accent)}.theme-toggle{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.inbox-card-draggable{cursor:-webkit-grab;cursor:grab}.inbox-card-dragging{opacity:.85;outline:2px dashed var(--accent)}.chip-drop-zone{border:2px dashed var(--border);border-radius:8px;padding:.75rem;margin-bottom:.75rem;text-align:center;font-size:.875rem;color:var(--muted);transition:border-color .15s,background .15s}.chip-drop-zone-active{border-color:var(--accent);background:var(--nav-active-bg);color:var(--accent)}.chip-removable{display:inline-flex;align-items:center;gap:.25rem}.chip-remove{background:transparent;color:var(--muted);border:none;padding:0 .25rem;min-height:auto;font-size:.875rem;cursor:pointer}@media (max-width:768px){.app-nav{display:none}.mobile-bottom-nav{display:grid}.app-main{padding-bottom:5.5rem}.chat-layout{grid-template-columns:1fr}.chat-sidebar-toggle{display:inline-flex;margin-bottom:.75rem}.chat-sidebar{display:none}.chat-sidebar-open{display:block}.main{padding:1rem .75rem 2rem}}