@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--color-primary:#3f3f46;--color-on-primary:#fff;--color-secondary:#71717a;--color-accent:#16a34a;--color-accent-hover:#15803d;--color-accent-bg:#f0fdf4;--color-background:#f7f8f7;--color-surface:#fff;--color-foreground:#18181b;--color-muted:#71717a;--color-muted-bg:#f1f2f1;--color-border:#e2e8e3;--color-destructive:#dc2626;--color-destructive-bg:#fef2f2;--color-ring:#16a34a;--font-heading:"Space Grotesk", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--color-primary:#d4d4d8;--color-on-primary:#18181b;--color-secondary:#a1a1aa;--color-accent:#4ade80;--color-accent-hover:#22c55e;--color-accent-bg:#4ade801f;--color-background:#17191a;--color-surface:#202323;--color-foreground:#f4f4f5;--color-muted:#a1a1aa;--color-muted-bg:#26292a;--color-border:#33383a;--color-destructive:#f87171;--color-destructive-bg:#f871711f;--color-ring:#4ade80}}:root[data-theme=dark]{--color-primary:#d4d4d8;--color-on-primary:#18181b;--color-secondary:#a1a1aa;--color-accent:#4ade80;--color-accent-hover:#22c55e;--color-accent-bg:#4ade801f;--color-background:#17191a;--color-surface:#202323;--color-foreground:#f4f4f5;--color-muted:#a1a1aa;--color-muted-bg:#26292a;--color-border:#33383a;--color-destructive:#f87171;--color-destructive-bg:#f871711f;--color-ring:#4ade80}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--color-foreground);margin:0;font-weight:600}button{font-family:var(--font-body)}:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--sidebar-w:260px;--sidebar-w-collapsed:60px}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;background:var(--color-background);height:100dvh;transition:grid-template-columns .2s;display:grid;overflow:hidden}.app-shell:has(.sidebar--collapsed){grid-template-columns:var(--sidebar-w-collapsed) 1fr}.icon-button{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:inline-flex}.icon-button:hover{background:var(--color-muted-bg);color:var(--color-foreground)}.icon-button--mobile-only{display:none}.banner{align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:13px;display:flex}.banner--error{background:var(--color-destructive-bg);color:var(--color-destructive)}.spin{color:var(--color-muted);animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sidebar{border-right:1px solid var(--color-border);background:var(--color-background);flex-direction:column;min-width:0;display:flex;overflow:hidden}.sidebar-header{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-3) var(--space-2);flex-shrink:0;display:flex}.sidebar-brand{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--color-foreground);flex:1;font-size:14px;font-weight:600}.new-chat-button{align-items:center;gap:var(--space-2);margin:0 var(--space-2) var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-foreground);font:inherit;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:500;transition:border-color .15s,background-color .15s;display:flex}.sidebar--collapsed .new-chat-button{margin-inline:var(--space-2);justify-content:center;width:40px;padding-inline:0}.new-chat-button:hover{border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent-hover)}.history-list{gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-3);flex-direction:column;display:flex;overflow-y:auto}.history-group-label{margin:var(--space-2) var(--space-2) 2px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);font-size:11px;font-weight:600}.history-item{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);width:100%;color:var(--color-foreground);transition:background-color .15s;display:flex}.history-item:hover{background:var(--color-muted-bg)}.history-item--active{background:var(--color-accent-bg);color:var(--color-accent-hover);font-weight:500}.history-item-button{min-width:0;padding:var(--space-2);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;font-size:13px}.history-item-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.history-item-delete{width:26px;height:26px;margin-right:var(--space-1);border-radius:var(--radius-sm);color:var(--color-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:none}.history-item:hover .history-item-delete{display:inline-flex}.history-item-delete:hover{background:var(--color-destructive-bg);color:var(--color-destructive)}.history-empty{align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);color:var(--color-muted);text-align:center;flex-direction:column;display:flex}.history-empty p{margin:0;font-size:13px}.chat-main{flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.chat-main-header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-shrink:0;min-height:52px;display:flex}.chat-main-title{flex:1;min-width:0}.chat-main-subtitle{color:var(--color-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.chat-main-subtitle--muted{color:var(--color-muted);font-weight:400}.scope-select{align-items:center;gap:var(--space-2);max-width:100%;display:inline-flex}.scope-select-label{color:var(--color-muted);white-space:nowrap;font-size:12px}.scope-select select{min-width:0;max-width:260px;padding:4px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-foreground);font:inherit;cursor:pointer;text-overflow:ellipsis;font-size:13px;font-weight:500}.scope-select select:hover{border-color:var(--color-accent)}.scope-select select:focus-visible{outline:2px solid var(--color-ring);outline-offset:1px}.chat-restoring{flex:1;justify-content:center;align-items:center;display:flex}.new-chat-screen{justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-6);flex-direction:column;flex:1;display:flex;overflow-y:auto}.new-chat-intro{text-align:center;max-width:420px}.new-chat-intro h1{margin-bottom:var(--space-2);font-size:22px}.new-chat-intro p{color:var(--color-muted);margin:0;font-size:14px;line-height:1.6}.new-chat-recent{align-items:center;gap:var(--space-3);flex-direction:column;max-width:480px;display:flex}.new-chat-recent-label{color:var(--color-muted);font-size:12px}.doc-chip-row{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.doc-chip{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;align-items:center;max-width:260px;transition:border-color .15s,background-color .15s;display:inline-flex}.doc-chip:hover,.doc-chip--all{border-color:var(--color-accent);background:var(--color-accent-bg)}.doc-chip--all .doc-chip-button{padding-right:var(--space-3);font-weight:500}.doc-chip-button{align-items:center;gap:var(--space-1);min-width:0;padding:var(--space-2) 0 var(--space-2) var(--space-3);color:var(--color-foreground);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;font-size:13px;display:inline-flex;overflow:hidden}.doc-chip-delete{width:26px;height:26px;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-right:2px;transition:background-color .15s,color .15s;display:inline-flex}.doc-chip-delete:hover{background:var(--color-destructive-bg);color:var(--color-destructive)}.dropzone{justify-content:center;align-items:center;gap:var(--space-2);text-align:center;width:min(480px,100%);padding:var(--space-8) var(--space-6);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-muted);cursor:pointer;flex-direction:column;transition:border-color .2s,background-color .2s;display:flex}.dropzone:hover,.dropzone--active{border-color:var(--color-accent);background:var(--color-accent-bg)}.dropzone--busy{cursor:default;pointer-events:none}.dropzone-title{margin:var(--space-2) 0 0;color:var(--color-foreground);font-size:14px;font-weight:500}.dropzone-hint{color:var(--color-muted);margin:0;font-size:12px}.chat-panel{flex-direction:column;flex:1;min-height:0;display:flex}.chat-messages{gap:var(--space-4);padding:var(--space-4) var(--space-6);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty{margin:var(--space-4) 0;color:var(--color-muted);text-align:center;font-size:14px}.chat-turn{flex-direction:column;max-width:70ch;display:flex}.chat-turn--user{align-self:flex-end}.chat-turn--assistant{align-self:flex-start}.chat-bubble{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);white-space:pre-wrap;font-size:14px;line-height:1.6}.chat-bubble--user{background:var(--color-muted-bg);color:var(--color-foreground)}.chat-bubble--assistant{color:var(--color-foreground);background:0 0;padding-left:0;padding-right:0}.chat-bubble--error{background:var(--color-destructive-bg);color:var(--color-destructive);padding-left:var(--space-3);padding-right:var(--space-3)}.sources{margin-top:var(--space-1)}.sources-summary{align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--color-muted-bg);color:var(--color-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;font-size:12px;font-weight:500;list-style:none;display:inline-flex}.sources-summary::-webkit-details-marker{display:none}.sources-summary:hover{color:var(--color-foreground)}.sources-caret{transition:transform .15s}.sources[open] .sources-caret{transform:rotate(180deg)}.sources-list{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.source-card{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.source-meta{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;margin-bottom:4px;display:flex}.source-file{color:var(--color-foreground);overflow-wrap:anywhere;font-size:12px;font-weight:600}.source-distance{letter-spacing:.02em;color:var(--color-accent-hover);font-size:11px;font-weight:600;display:inline-block}.source-content{color:var(--color-muted);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.5}.chat-bubble--loading{align-items:center;gap:var(--space-2);color:var(--color-muted);display:flex}.chat-input-row{gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6);flex-shrink:0;display:flex}.chat-input{min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-foreground);font:inherit;flex:1;font-size:14px}.chat-input:focus{border-color:var(--color-accent);outline:none}.chat-input:disabled{opacity:.6}.chat-send{border-radius:var(--radius-lg);background:var(--color-accent);width:44px;height:44px;color:var(--color-on-primary);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.chat-send:hover:not(:disabled){background:var(--color-accent-hover)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.quiz-generate-button{align-items:center;gap:var(--space-1);padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-foreground);font:inherit;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:500;transition:border-color .15s,background-color .15s;display:flex}.quiz-generate-button:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent-hover)}.quiz-generate-button:disabled{opacity:.5;cursor:not-allowed}.quiz-overlay{padding:var(--space-4);z-index:40;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.quiz-modal{border-radius:var(--radius-lg);background:var(--color-surface);width:min(560px,100%);max-height:min(80vh,720px);box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow:hidden}.quiz-modal-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.quiz-modal-heading h2{font-family:var(--font-heading);margin:0;font-size:17px}.quiz-modal-subtitle{color:var(--color-muted);margin-top:2px;font-size:12px;display:block}.quiz-modal-body{padding:var(--space-4);flex:1;overflow-y:auto}.quiz-state{align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-muted);flex-direction:column;display:flex}.quiz-state p{margin:0}.quiz-state-hint{font-size:12px}.quiz-state-error-icon{color:var(--color-destructive)}.quiz-question-list{gap:var(--space-6);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.quiz-question-text{margin:0 0 var(--space-2);color:var(--color-foreground);font-size:14px;font-weight:500;line-height:1.5}.quiz-options{gap:var(--space-1);flex-direction:column;display:flex}.quiz-option{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-foreground);cursor:pointer;font-size:13px;transition:border-color .15s,background-color .15s;display:flex}.quiz-option:hover{border-color:var(--color-accent);background:var(--color-accent-bg)}.quiz-option:has(input:checked:not(:disabled)){border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent-hover)}.quiz-option input{accent-color:var(--color-accent);flex-shrink:0}.quiz-option--correct{border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent-hover);cursor:default}.quiz-option--incorrect{border-color:var(--color-destructive);background:var(--color-destructive-bg);color:var(--color-destructive);cursor:default}.quiz-option-icon{flex-shrink:0;margin-left:auto}.quiz-option--correct .quiz-option-icon{color:var(--color-accent-hover)}.quiz-option--incorrect .quiz-option-icon{color:var(--color-destructive)}.quiz-modal-footer{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.quiz-modal-progress{color:var(--color-muted);font-size:12px}.quiz-modal-score{color:var(--color-accent-hover);font-size:13px;font-weight:600}.quiz-modal-footer-actions{align-items:center;gap:var(--space-2);display:flex}.quiz-check-button{padding:6px var(--space-3);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-on-primary);font:inherit;cursor:pointer;border:none;font-size:12px;font-weight:600;transition:background-color .15s}.quiz-check-button:hover{background:var(--color-accent-hover)}.quiz-retry-button{align-items:center;gap:var(--space-1);padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-foreground);font:inherit;cursor:pointer;font-size:12px;font-weight:500;transition:border-color .15s,background-color .15s;display:flex}.quiz-retry-button:hover{border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent-hover)}@media (width<=899px){:is(.app-shell,.app-shell:has(.sidebar--collapsed)){grid-template-columns:1fr}.icon-button--mobile-only{display:inline-flex}.sidebar .icon-button:not(.icon-button--mobile-only){display:none}.sidebar-brand{display:block!important}.sidebar{z-index:30;width:min(85vw,300px);box-shadow:var(--shadow-md);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--mobile-open{transform:translate(0)}.scrim{z-index:20;background:#0f172a66;position:fixed;inset:0}.quiz-generate-button-label{display:none}.quiz-overlay{padding:0}.quiz-modal{border-radius:0;width:100%;height:100dvh;max-height:100dvh}}
