.chat{display:flex;flex-direction:column;height:100%}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #1E2636}.chat-header h2{font-size:1rem;font-weight:600;color:#f9fafb}.learner-badge{padding:.25rem .75rem;background:#161d2b;border-radius:999px;font-size:.75rem;color:#94a3b8}.messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.message{display:flex;gap:.75rem;align-items:flex-start}.message.user{flex-direction:row-reverse}.message-avatar{font-size:1.5rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-content{flex:1;max-width:min(85%,42ch);min-inline-size:0}.message.user .message-content{text-align:right}.message-text{padding:.75rem 1rem;border-radius:12px;line-height:1.5;font-size:.9375rem;overflow-wrap:anywhere;word-break:break-word}.message.user .message-text{background:#38bdf8;color:#0a0d12;border-radius:12px 12px 2px;white-space:pre-wrap}.message.tutor .message-text{background:#161d2b;color:#e5e7eb;border-radius:12px 12px 12px 2px}.typing-indicator{display:inline-block;margin-left:.5rem;color:#38bdf8;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.chat-input{display:flex;gap:.75rem;padding:1rem 1.5rem;padding-inline:max(1.5rem,env(safe-area-inset-left)) max(1.5rem,env(safe-area-inset-right));padding-block-end:max(1rem,env(safe-area-inset-bottom));border-top:1px solid #1E2636;background:#0f131c;position:sticky;bottom:0}.chat-input input{flex:1;padding:.75rem 1rem;background:#161d2b;border:1px solid #1E2636;border-radius:8px;color:#e5e7eb;font-size:16px;outline:none}.chat-input input:focus{border-color:#38bdf8}.chat-input button{padding:.75rem 1.5rem;min-block-size:44px;background:#38bdf8;border:none;border-radius:8px;color:#0a0d12;font-weight:500;cursor:pointer;font-size:.9375rem;transition:all .15s}.chat-input button:hover:not(:disabled){background:#0ea5e9}.chat-input button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 767px){.chat-input{gap:.5rem;padding:.75rem 1rem;padding-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));padding-block-end:max(.75rem,env(safe-area-inset-bottom))}.chat-input button{padding-inline:1rem}}.md{display:block}.md-p{margin:0}.md-p+.md-p,.md-pre+.md-p,.md-ul+.md-p,.md-ol+.md-p,.md-p+.md-pre,.md-p+.md-ul,.md-p+.md-ol{margin-top:.5rem}.md-h{margin:.6rem 0 .3rem;font-weight:700;color:#f9fafb}.md-h:first-child{margin-top:0}.md-h1{font-size:1.05rem}.md-h2{font-size:1rem}.md-h3{font-size:.95rem}.md-ul,.md-ol{margin:.35rem 0;padding-left:1.4rem;text-align:left}.md-ul{list-style:disc}.md-ol{list-style:decimal}.md li{margin:.2rem 0}.md li::marker{color:#93c5fd}.md-pre{margin:.4rem 0;padding:.6rem .75rem;background:#0a0d12;border:1px solid #374151;border-radius:8px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.45;color:#e5e7eb;white-space:pre}.md-code{background:#0a0d12;border:1px solid #374151;border-radius:5px;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;color:#93c5fd;white-space:nowrap}.md strong{font-weight:700;color:#f9fafb}.message.user .md-code{background:#0a0d122e;border-color:#0a0d1240;color:#06283a}.message.user .md strong{color:#06283a}.graph{display:flex;flex-direction:column;height:100%}.graph-header{padding:1rem 1.5rem;border-bottom:1px solid #1E2636;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.graph-header h2{font-size:1rem;font-weight:600;color:#f9fafb;margin:0}.discovery-toggle{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#94a3b8;cursor:pointer;-webkit-user-select:none;user-select:none}.discovery-toggle input[type=checkbox]{cursor:pointer}.graph-legend{display:flex;gap:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#94a3b8}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.legend-hollow{background:transparent;border:1.5px solid}.graph-canvas{flex:1;position:relative;overflow:hidden}@media (max-width: 767px){.graph-container{padding:.75rem}.graph-header{flex-direction:column;align-items:stretch;gap:.75rem}.toggle-discovery{width:100%;justify-content:center;min-block-size:44px}.graph-status{font-size:.8125rem}}@media (min-width: 768px) and (max-width: 1023px){.graph-container{padding:1rem}}.activity-feed{display:flex;flex-direction:column;height:100%}.feed-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #1E2636}.feed-header h2{font-size:1rem;font-weight:600;color:#f9fafb}.feed-actions{display:flex;align-items:center;gap:.75rem}.sync-btn{padding:.375rem .75rem;background:#38bdf8;border:none;border-radius:6px;color:#0f131c;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s}.sync-btn:hover:not(:disabled){background:#0ea5e9}.sync-btn:disabled{opacity:.5;cursor:not-allowed}.review-toggle-btn{padding:.375rem .75rem;background:#2a2a2a;border:1px solid #444;border-radius:6px;color:#ccc;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s}.review-toggle-btn:hover{background:#3a3a3a;border-color:#555}.review-queue-container{max-height:60vh;overflow-y:auto;border-bottom:1px solid #333;margin-bottom:1rem}.event-count{padding:.25rem .75rem;background:#161d2b;border-radius:999px;font-size:.75rem;color:#94a3b8}.events{flex:1;overflow-y:auto;padding:1rem}.empty-state{text-align:center;color:#64748b;padding:3rem 1rem;font-size:.875rem}.event-item{display:flex;gap:.75rem;padding:.75rem;background:#161d2b;border-radius:8px;margin-bottom:.75rem}.event-icon{font-size:1.25rem;flex-shrink:0}.event-details{flex:1}.event-type{font-size:.875rem;font-weight:500;color:#f9fafb;margin-bottom:.25rem}.event-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.meta-tag{padding:.125rem .5rem;background:#0f131c;border-radius:4px;font-size:.75rem;color:#94a3b8}.event-time{font-size:.75rem;color:#64748b}.event-expandable{margin-top:.5rem}.expand-btn{padding:.375rem .75rem;background:#0f131c;border:1px solid #1E2636;border-radius:6px;color:#38bdf8;font-size:.75rem;cursor:pointer;transition:all .15s}.expand-btn:hover{border-color:#38bdf8}.reasoning-drawer{margin-top:.75rem;padding:.75rem;background:#0f131c;border-radius:6px;border:1px solid #1E2636}.reasoning-item{font-size:.8125rem;margin-bottom:.5rem;color:#e5e7eb}.reasoning-item:last-child{margin-bottom:0}.reasoning-item strong{color:#38bdf8;display:block;margin-bottom:.25rem}.reasoning-item pre{font-family:Courier New,monospace;font-size:.75rem;color:#94a3b8;overflow-x:auto;white-space:pre-wrap}.sync-summary{font-size:.8125rem;color:#94a3b8;margin-top:.5rem}.sync-errors{color:#e9a568}@media (max-width: 767px){.activity-feed{padding:.75rem}.feed-header{padding:.75rem;margin:-.75rem -.75rem .75rem}.event{padding:.75rem;margin-bottom:.5rem}}.ingest-material{margin-bottom:1rem;padding:.5rem;border-bottom:1px solid #333}.ingest-btn{display:inline-block;padding:.5rem 1rem;background:#2a4a2a;color:#fff;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.ingest-btn:hover{background:#3a5a3a}.ingest-btn:active{background:#1a3a1a}.ingest-status{margin-top:.5rem;padding:.5rem;background:#222;border-radius:4px;font-size:.85rem;color:#aaa}.ingest-status.error{background:#4a2a2a;color:#faa}.job-id{margin-top:.25rem;font-size:.75rem;color:#666;font-family:monospace}@media (max-width: 767px){.ingest-material{padding:.75rem}.ingest-btn{min-block-size:44px;padding:.75rem 1.25rem}.ingest-status{font-size:.8125rem;padding:.75rem}}.review-queue{display:flex;flex-direction:column;height:100%}.review-header{padding:1rem;border-bottom:1px solid #333;display:flex;justify-content:space-between;align-items:center}.review-header h3{margin:0;font-size:1.1rem}.live-count{font-size:.9rem;color:#6a6}.review-content{flex:1;overflow-y:auto;padding:1rem}.review-section{margin-bottom:2rem}.review-section h4{margin:0 0 .5rem;font-size:.95rem;color:#888}.review-item{background:#1a1a1a;border:1px solid #333;border-radius:4px;padding:1rem;margin-bottom:1rem}.item-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:.75rem}.item-title{font-weight:700;font-size:.95rem;color:#ccc}.item-meta{font-size:.8rem;color:#666;margin-top:.25rem}.item-field{margin-bottom:.5rem}.item-field label{display:block;font-size:.8rem;color:#888;margin-bottom:.25rem}.item-field-value{font-size:.85rem;color:#ccc;background:#0a0a0a;padding:.5rem;border-radius:3px;white-space:pre-wrap;word-wrap:break-word}.item-field input,.item-field textarea{width:100%;background:#0a0a0a;border:1px solid #333;color:#ccc;padding:.5rem;border-radius:3px;font-family:inherit;font-size:.85rem}.item-field textarea{resize:vertical;min-height:60px}.item-actions{display:flex;gap:.5rem;margin-top:.75rem}.item-actions button{flex:1;padding:.5rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .2s}.approve-btn{background:#2a4a2a;color:#fff;border:none}.approve-btn:hover{background:#3a5a3a}.edit-btn{background:#4a4a2a;color:#fff;border:none}.edit-btn:hover{background:#5a5a3a}.reject-btn{background:#4a2a2a;color:#fff;border:none}.reject-btn:hover{background:#5a3a3a}.cancel-btn{background:#2a2a2a;color:#fff;border:1px solid #444}.cancel-btn:hover{background:#3a3a3a}.save-btn{background:#2a4a4a;color:#fff;border:none}.save-btn:hover{background:#3a5a5a}.empty-state{text-align:center;color:#666;padding:2rem;font-size:.9rem}.chunk-refs{font-size:.75rem;color:#666;font-family:monospace}@media (max-width: 767px){.review-header{padding:.75rem;flex-direction:column;align-items:flex-start;gap:.5rem}.review-content,.review-item{padding:.75rem}.item-header{flex-direction:column;gap:.5rem}.item-actions{flex-direction:column}.item-actions button{min-block-size:44px}}@media (min-width: 768px) and (max-width: 1023px){.review-header,.review-content{padding:1rem}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05070cf2;z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-container{background:#0f131c;border:1px solid #1e2636;border-radius:12px;padding:2rem}.modal-overlay.centered{display:flex;align-items:center;justify-content:center;padding:2rem;padding-inline:max(2rem,env(safe-area-inset-left)) max(2rem,env(safe-area-inset-right));padding-block:max(2rem,env(safe-area-inset-top)) max(2rem,env(safe-area-inset-bottom))}.modal-overlay.centered .modal-container{max-width:800px;width:100%;max-height:80vh;overflow:auto}.modal-overlay.fullpage{background:#000c}.modal-overlay.fullpage .modal-container{position:relative;min-height:100vh;border-radius:0;border:none}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-title{margin:0;color:#e5e7eb;font-size:1.5rem;font-weight:600}.modal-close{background:transparent;border:none;color:#9ca3af;font-size:1.5rem;cursor:pointer;padding:.5rem;min-block-size:44px;min-inline-size:44px;display:flex;align-items:center;justify-content:center;line-height:1}.modal-close:hover{color:#e5e7eb}.modal-overlay.fullpage .modal-close{position:fixed;top:1rem;right:1rem;background:#374151;color:#e5e7eb;border-radius:8px;font-size:1rem;z-index:1001;padding:.5rem 1rem}@media (max-width: 767px){.modal-overlay.centered{padding:0;align-items:stretch}.modal-overlay.centered .modal-container{max-width:none;max-height:none;height:100%;border-radius:0;padding:1rem;padding-inline:max(1rem,env(safe-area-inset-left)) max(1rem,env(safe-area-inset-right));padding-block-start:max(1rem,env(safe-area-inset-top));padding-block-end:max(1rem,env(safe-area-inset-bottom))}.modal-header{margin-bottom:1rem}.modal-title{font-size:1.25rem}.modal-overlay.fullpage .modal-close{top:.75rem;right:.75rem;top:max(.75rem,env(safe-area-inset-top));right:max(.75rem,env(safe-area-inset-right))}}@media (min-width: 768px) and (max-width: 1023px){.modal-overlay.centered .modal-container{max-width:90%}}.app{display:flex;flex-direction:column;inline-size:100vw;block-size:100vh;block-size:100dvh;background:#0a0d12}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;padding-inline:max(1.5rem,env(safe-area-inset-left)) max(1.5rem,env(safe-area-inset-right));padding-block-start:max(.75rem,env(safe-area-inset-top));background:#0f131c;border-bottom:1px solid #1E2636}.header h1{font-size:1.25rem;font-weight:600;color:#f9fafb}.user-switcher{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}@media (max-width: 767px){.user-switcher{overflow-x:auto;flex-wrap:nowrap;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.user-switcher::-webkit-scrollbar{display:none}}.user-switcher button{padding:.5rem 1rem;min-block-size:44px;background:#161d2b;border:1px solid #1E2636;border-radius:6px;color:#e5e7eb;cursor:pointer;font-size:.875rem;transition:all .15s;white-space:nowrap}.user-switcher button:hover{background:#1e2636;border-color:#38bdf8}.user-switcher button.active{background:#38bdf8;border-color:#38bdf8;color:#0a0d12;font-weight:500}.status{margin-left:.5rem;font-size:1.25rem}.status.connected{color:#6ee7b7}.status.disconnected{color:#94a3b8}.main-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:1px;flex:1;background:#161d2b;overflow:hidden}.main-grid.two-column{grid-template-columns:1fr 2fr}.panel{background:#0f131c;overflow:hidden;display:flex;flex-direction:column}.chat-panel,.graph-panel{border-right:1px solid #1E2636}.feed-panel{overflow-y:auto}@media (min-width: 1024px){.main-grid{grid-template-columns:1fr 1.5fr 1fr}}@media (min-width: 768px) and (max-width: 1023px){.main-grid{grid-template-columns:1.2fr 1fr;grid-template-rows:auto 1fr}.chat-panel{grid-column:1;grid-row:1 / 3}.graph-panel{grid-column:2;grid-row:1}.feed-panel{grid-column:2;grid-row:2}}@media (max-width: 767px){.main-grid{display:flex;flex-direction:column;overflow-y:auto}.panel{overflow:visible}.chat-panel{max-block-size:50dvh;min-block-size:50dvh;border-right:none;border-bottom:1px solid #1E2636}.graph-panel{max-block-size:45dvh;min-block-size:45dvh;border-right:none;border-bottom:1px solid #1E2636}.feed-panel{max-block-size:50dvh;min-block-size:30dvh}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0d12;color:#e5e7eb;overflow:hidden}#root{width:100vw;height:100vh;height:100dvh}input,textarea,button{font-family:inherit}:focus-visible{outline:2px solid #38BDF8;outline-offset:2px}
