*{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep:#1a0f14;--bg-base:#241620;--surface:#2e1f28;--surface-hover:#3a2832;--surface-active:#45303c;--border:#4a3540;--border-subtle:#3a2832;--accent:#8b2252;--accent-hover:#a62d64;--accent-dim:#6b1a40;--accent-glow:#8b225233;--text:#f0e6eb;--text-secondary:#c4b0b8;--text-muted:#8a7590;--anne:#e8a0b8;--reid:#d4943a;--shaw:#5ab88a;--prism:#e88ab8;--system:#8a7590;--radius:8px;--radius-lg:12px;--font-display:"Fraunces", serif;--font-body:"DM Sans", system-ui, sans-serif}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent);color:var(--text)}input,textarea,button{font-family:var(--font-body)}.app-layout{background:var(--bg-deep);width:100vw;height:100vh;display:flex;overflow:hidden}.main-content{background:var(--bg-base);flex:1;min-width:0;display:flex}.login-screen{background:var(--bg-deep);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:380px;padding:48px 40px}.login-title{font-family:var(--font-display);color:var(--text);margin-bottom:8px;font-size:28px;font-weight:600}.login-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:14px}.login-form{flex-direction:column;gap:12px;display:flex}.login-input{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;padding:12px 16px;font-size:15px;transition:border-color .2s}.login-input:focus{border-color:var(--accent)}.login-button{background:var(--accent);color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;padding:12px 24px;font-size:15px;font-weight:500;transition:background .2s}.login-button:hover:not(:disabled){background:var(--accent-hover)}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-error{color:#e85a7a;margin-top:12px;font-size:13px}.sidebar{background:var(--bg-deep);border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:220px;display:flex}.sidebar-header{justify-content:space-between;align-items:center;padding:20px 16px 16px;display:flex}.sidebar-title{font-family:var(--font-display);color:var(--text);font-size:16px;font-weight:600}.status-dot{background:#e85a7a;border-radius:50%;width:8px;height:8px;transition:background .3s}.status-dot.connected{background:#5ab88a}.sidebar-nav{flex:1;padding:0 8px;overflow-y:auto}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:8px 12px 6px;font-size:11px;font-weight:600}.room-button{width:100%;color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:all .15s;display:flex;position:relative}.room-button:hover{background:var(--surface-hover);color:var(--text)}.room-button.active{background:var(--surface);color:var(--text)}.room-icon{text-align:center;width:24px;font-size:16px}.room-label{text-align:left;flex:1}.room-active-indicator{background:var(--accent);border-radius:50%;width:4px;height:4px}.sidebar-footer{border-top:1px solid var(--border-subtle);padding:8px}.sidebar-action{width:100%;color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:13px;transition:all .15s;display:flex}.sidebar-action:hover{background:var(--surface-hover);color:var(--text)}.sidebar-action.active{color:var(--accent-hover)}.action-icon{text-align:center;width:24px;font-size:14px}.chat-panel{flex-direction:column;flex:1;min-width:0;display:flex}.chat-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.chat-header h3{font-family:var(--font-display);font-size:18px;font-weight:600}.chat-status{color:#e85a7a;font-size:12px}.chat-status.connected{color:#5ab88a}.chat-messages{flex-direction:column;flex:1;gap:4px;padding:16px 24px;display:flex;overflow-y:auto}.message{border-radius:var(--radius);max-width:100%;padding:10px 14px;transition:background .15s}.message:hover{background:var(--surface-hover)}.message.system{opacity:.6;font-size:13px;font-style:italic}.message-header{align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.message-from{font-size:14px;font-weight:600}.message-model{color:var(--text-muted);background:var(--surface);border-radius:4px;padding:1px 6px;font-size:11px}.message-time{color:var(--text-muted);margin-left:auto;font-size:11px}.message-content{color:var(--text);white-space:pre-wrap;word-wrap:break-word;font-size:14.5px;line-height:1.6}.message-thinking{margin-top:8px}.thinking-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:12px}.thinking-toggle:hover{color:var(--text-secondary)}.thinking-content{background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);white-space:pre-wrap;max-height:300px;margin-top:6px;padding:10px 12px;font-family:DM Sans,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.message-usage{color:var(--text-muted);gap:12px;margin-top:6px;font-size:11px;display:flex}.thinking-indicator{flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.thinking-dots{gap:4px;display:flex}.thinking-dots span{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.thinking-label{color:var(--text-muted);font-size:13px;font-style:italic}.thinking-stream{background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--radius);width:100%;color:var(--text-muted);white-space:pre-wrap;max-height:150px;padding:8px 12px;font-family:DM Sans,monospace;font-size:12px;overflow-y:auto}.chat-input-form{border-top:1px solid var(--border-subtle);background:var(--bg-base);gap:10px;padding:12px 24px 20px;display:flex}.chat-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);resize:none;outline:none;flex:1;max-height:200px;padding:12px 16px;font-size:14.5px;line-height:1.5;transition:border-color .2s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-muted)}.chat-input:disabled{opacity:.5}.chat-send{background:var(--accent);color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;align-self:flex-end;padding:12px 20px;font-size:14px;font-weight:500;transition:background .2s}.chat-send:hover:not(:disabled){background:var(--accent-hover)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.activity-panel{background:var(--bg-deep);border-left:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:320px;display:flex}.activity-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px;display:flex}.activity-header h3{font-family:var(--font-display);font-size:15px;font-weight:600}.activity-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.activity-close:hover{color:var(--text)}.activity-list{flex:1;padding:8px;overflow-y:auto}.activity-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.activity-item{border-radius:var(--radius);flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;transition:background .15s;display:flex}.activity-item:hover{background:var(--surface-hover)}.activity-action{color:var(--accent-hover);font-weight:500}.activity-detail{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;line-height:1.4}.activity-time{color:var(--text-muted);font-size:11px}.header-actions{align-items:center;gap:10px;display:flex}.header-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;padding:4px 6px;font-size:16px;transition:all .15s}.header-btn:hover{background:var(--surface-hover);color:var(--text)}.header-dot{background:#e85a7a;border-radius:50%;width:8px;height:8px}.header-dot.connected{background:#5ab88a}.chat-subheader{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;padding:4px 24px 8px;display:flex}.source-badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.source-badge.terminal{color:#6ec87a;background:#6ec87a1f}.source-badge.living-room{color:var(--text-muted);background:#8888881f}.model-badge{color:#9c9cf0;cursor:pointer;background:#6a6abf1f;border:1px solid #6a6abf;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;transition:all .15s}.model-badge:hover{background:#6a6abf40}.context-status{color:var(--text-muted);flex:1;font-size:11px}.model-picker{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:8px 24px;display:flex}.model-option{color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.model-option:hover{background:var(--surface-hover);color:var(--text)}.model-option.active{color:#9c9cf0;background:#6a6abf1f;font-weight:600}.model-tag{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:8px;font-weight:700}.model-tag.local{color:var(--text-muted);background:#88888826}.model-tag.free{color:#6ec87a;background:#6ec87a1f}.error-bar{color:#e85a7a;text-align:center;cursor:pointer;background:#e85a7a1f;border:none;width:100%;padding:8px 24px;font-size:12px;display:block}.error-bar:hover{background:#e85a7a33}.activity-strip{background:var(--bg-deep);max-height:100px;padding:6px 24px;overflow-y:auto}.activity-strip-item{align-items:center;gap:6px;padding:2px 0;display:flex}.activity-icon{text-align:center;width:14px;font-size:11px}.activity-icon.tool_call{color:#fbbf24}.activity-icon.tool_result{color:#4ade80}.activity-icon.tool_error{color:#ef4444}.activity-icon.api_call{color:#60a5fa}.activity-strip-text{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:11px;overflow:hidden}.human-header{justify-content:flex-end}.message.human{background:var(--accent-dim);border-radius:var(--radius) var(--radius) 4px var(--radius)}.message.human .message-content{color:var(--text)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:flex-start;padding-top:60px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:90%;max-width:700px;max-height:85vh;padding:24px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h3{font-family:var(--font-display);font-size:16px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px}.modal-close:hover{color:var(--text)}.prompt-controls{align-items:center;gap:8px;display:flex}.perspective-select{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;padding:4px 8px;font-size:13px}.prompt-badge{border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.prompt-badge.custom{color:var(--accent-hover);background:#8b225233}.prompt-badge.auto{color:#5ab88a;background:#5ab88a26}.prompt-meta{color:var(--text-muted);margin-bottom:12px;font-size:12px}.prompt-textarea{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:50vh;color:var(--text);resize:vertical;outline:none;padding:12px;font-family:monospace;font-size:12px;line-height:1.5}.prompt-textarea:focus{border-color:var(--accent)}.prompt-loading{color:var(--text-muted);text-align:center;padding:40px}.prompt-actions{gap:8px;margin-top:16px;display:flex}.btn-accent{background:var(--accent);color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;padding:8px 20px;font-size:14px;transition:background .2s}.btn-accent:hover:not(:disabled){background:var(--accent-hover)}.btn-accent:disabled{opacity:.5}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:8px 16px;font-size:14px;transition:all .15s}.btn-secondary:hover{color:var(--text);border-color:var(--text-muted)}.sessions-list{flex-direction:column;gap:6px;display:flex}.sessions-empty{text-align:center;color:var(--text-muted);padding:32px;font-size:14px}.session-item{text-align:left;background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;width:100%;padding:12px;transition:border-color .15s;display:block}.session-item:hover{border-color:var(--accent)}.session-meta{color:var(--text-muted);margin-bottom:4px;font-size:11px}.session-preview{color:var(--text);font-size:13px}.session-participants{color:var(--accent-hover);margin-top:4px;font-size:10px}.activity-modal{max-width:600px}.activity-modal-list{max-height:60vh;overflow-y:auto}.activity-modal-item{border-bottom:1px solid var(--border-subtle);align-items:flex-start;gap:8px;padding:8px 0;display:flex}.activity-modal-detail{flex:1;min-width:0}.activity-modal-action{color:var(--text-secondary);text-transform:uppercase;font-size:10px;font-weight:700;display:block}.activity-modal-text{color:var(--text);word-break:break-word;font-size:12px}.activity-modal-time{color:var(--text-muted);white-space:nowrap;font-size:10px}.lodestone-panel{background:var(--bg-deep);border-left:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:380px;display:flex;overflow:hidden}.lodestone-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px;display:flex}.lodestone-header h3{font-family:var(--font-display);font-size:15px;font-weight:600}.lodestone-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:20px}.lodestone-tabs{border-bottom:1px solid var(--border-subtle);display:flex}.lodestone-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:12px;font-weight:500;transition:all .15s}.lodestone-tab:hover{color:var(--text)}.lodestone-tab.active{color:var(--accent-hover);border-bottom-color:var(--accent)}.lodestone-filters{border-bottom:1px solid var(--border-subtle);gap:8px;padding:10px 12px;display:flex}.perspective-filter,.days-filter{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text);padding:4px 8px;font-size:12px}.lodestone-content{flex:1;padding:8px;overflow-y:auto}.lodestone-loading,.lodestone-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.journal-list{flex-direction:column;gap:4px;display:flex}.journal-item{border-radius:var(--radius);overflow:hidden}.journal-header-btn{text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;width:100%;padding:10px 12px;transition:background .15s;display:block}.journal-header-btn:hover{background:var(--surface-hover)}.journal-title{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:600}.journal-meta{color:var(--text-muted);font-size:11px}.journal-tags{color:var(--accent-hover)}.journal-body{color:var(--text-secondary);white-space:pre-wrap;background:var(--surface);border-radius:0 0 var(--radius) var(--radius);max-height:400px;padding:10px 12px;font-size:12px;line-height:1.6;overflow-y:auto}.entity-list{flex-direction:column;gap:4px;display:flex}.entity-item{text-align:left;cursor:pointer;border-radius:var(--radius);background:0 0;border:none;width:100%;padding:10px 12px;transition:background .15s;display:block}.entity-item:hover{background:var(--surface-hover)}.entity-name{color:var(--text);font-size:13px;font-weight:600}.entity-meta{color:var(--text-muted);margin-top:2px;font-size:11px}.entity-visibility{color:var(--accent-hover)}.entity-context{color:var(--text-muted);font-style:italic}.entity-back{color:var(--accent-hover);cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:4px 0;font-size:12px}.entity-detail-name{font-family:var(--font-display);margin-bottom:12px;font-size:16px}.observation-list{flex-direction:column;gap:6px;display:flex}.observation-item{background:var(--surface);border-radius:var(--radius);padding:10px}.observation-content{color:var(--text);font-size:12px;line-height:1.5}.observation-meta{color:var(--text-muted);margin-top:4px;font-size:10px}.search-bar{gap:8px;margin-bottom:12px;display:flex}.search-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;flex:1;padding:8px 12px;font-size:13px}.search-input:focus{border-color:var(--accent)}.search-btn{background:var(--accent);color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;padding:8px 16px;font-size:13px}.search-results{flex-direction:column;gap:6px;display:flex}.search-result{background:var(--surface);border-radius:var(--radius);padding:10px}.search-result-title{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:600}.search-result-content{color:var(--text-secondary);font-size:12px;line-height:1.4}.search-result-meta{color:var(--text-muted);margin-top:4px;font-size:10px}.entity-detail-meta{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:6px;margin-bottom:12px;padding:10px 12px;display:flex}.entity-detail-row{align-items:center;gap:8px;font-size:12px;display:flex}.entity-detail-label{color:var(--text-muted);flex-shrink:0;width:70px}.inline-select{background:var(--bg-base);border:1px solid var(--accent);color:var(--text);border-radius:4px;padding:2px 6px;font-size:12px}.inline-edit-btn{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.inline-edit-btn:hover{color:var(--accent-hover)}.entity-detail-actions{margin-bottom:12px}.btn-danger-small{color:#e85a7a;border-radius:var(--radius);cursor:pointer;background:#e85a7a26;border:1px solid #e85a7a4d;padding:6px 12px;font-size:12px}.btn-danger-small:hover{background:#e85a7a40}.btn-accent-small{background:var(--accent);color:var(--text);border-radius:var(--radius);cursor:pointer;border:none;padding:6px 14px;font-size:12px}.btn-accent-small:hover:not(:disabled){background:var(--accent-hover)}.btn-accent-small:disabled{opacity:.4}.btn-secondary-small{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:6px 12px;font-size:12px}.obs-add-section{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.obs-add-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);resize:none;outline:none;flex:1;padding:8px 10px;font-size:12px}.obs-add-input:focus{border-color:var(--accent)}.obs-count{color:var(--text-muted);margin-bottom:6px;font-size:11px}.observation-footer{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.observation-actions{opacity:0;gap:6px;transition:opacity .15s;display:flex}.observation-item:hover .observation-actions{opacity:1}.obs-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:11px}.obs-action-btn:hover{background:var(--surface-hover);color:var(--text)}.obs-action-btn.danger:hover{color:#e85a7a}.obs-edit-form{flex-direction:column;gap:6px;display:flex}.obs-edit-input{background:var(--bg-base);border:1px solid var(--accent);border-radius:var(--radius);color:var(--text);resize:none;outline:none;padding:8px;font-size:12px}.obs-edit-actions{gap:6px;display:flex}.journal-actions{border-top:1px solid var(--border-subtle);align-items:center;gap:8px;margin-top:10px;padding-top:8px;display:flex}.journal-status-select{background:var(--bg-deep);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 8px;font-size:11px}.journal-delete-btn{color:#e85a7a;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:11px}.journal-delete-btn:hover{text-decoration:underline}
