:root{color-scheme:light dark;--bg: #0f1115;--panel: #171a21;--border: #2a3140;--text: #e8ecf4;--muted: #9aa3b5;--accent: #6ea8fe;--danger: #ff7b72;--ok: #3fb950;--user: #1f2a3d;--assistant: #151920;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text)}a{color:var(--accent)}button,select,textarea{font:inherit}.appShell{min-height:100vh;display:flex;flex-direction:column}.topBar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--panel)}.brand{display:flex;flex-direction:column;gap:.1rem}.topBarRight{display:flex;align-items:center;gap:.75rem}.muted{color:var(--muted);font-size:.85rem}.signedOutMain{max-width:36rem;margin:4rem auto;padding:0 1rem}.lede{color:var(--muted);line-height:1.5}.loginBlock{margin-top:1.5rem}.extensionRequired{border:1px solid var(--border);border-radius:12px;padding:1.25rem;background:var(--panel)}.primaryButton,.ghostButton,.dangerButton{border-radius:8px;border:1px solid var(--border);padding:.5rem .9rem;cursor:pointer}.primaryButton{background:var(--accent);color:#0b1020;border-color:transparent;font-weight:600}.primaryButton:disabled{opacity:.5;cursor:not-allowed}.ghostButton{background:transparent;color:var(--text)}.ghostButton.small{padding:.15rem .45rem}.dangerButton{background:transparent;color:var(--danger);border-color:var(--danger)}.accountBadge{display:flex;align-items:center;gap:.5rem}.accountId{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--muted)}.chatLayout{flex:1;display:grid;grid-template-columns:240px 1fr;min-height:0}.sidebar{border-right:1px solid var(--border);padding:.75rem;display:flex;flex-direction:column;gap:.75rem;background:var(--panel)}.conversationList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;overflow:auto}.conversationList li{display:flex;gap:.25rem}.conversationList button{border:0;background:transparent;color:var(--text);text-align:left;padding:.4rem .5rem;border-radius:6px;cursor:pointer}.conversationList li>button:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversationList button.active,.conversationList button:hover{background:#222836}.chatMain{display:flex;flex-direction:column;min-height:0;padding:.75rem;gap:.75rem}.messageList{flex:1;overflow:auto;display:flex;flex-direction:column;gap:.75rem}.message{border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem;background:var(--assistant)}.message-user{background:var(--user)}.message header{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.35rem}.message .plain{margin:0;white-space:pre-wrap;font-family:inherit}.message .md :first-child{margin-top:0}.message .md :last-child{margin-bottom:0}.emptyState{flex:1;display:grid;place-items:center;color:var(--muted)}.composer{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.composer textarea{width:100%;resize:vertical;min-height:4.5rem;border:0;background:transparent;color:var(--text);outline:none}.composerActions{display:flex;justify-content:flex-end}.modelSelector select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .55rem}.errorText{color:var(--danger)}.callbackPage{max-width:28rem;margin:4rem auto;padding:0 1rem}.charactersPage{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem}.charactersPage>header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.importPanel{border:1px dashed var(--accent);border-radius:14px;padding:2.5rem 1rem;text-align:center;background:var(--panel)}.importPanel p{margin:.4rem 0}.errorMessage,.successMessage{border-radius:8px;padding:.7rem 1rem;margin:1rem 0}.errorMessage{color:var(--danger);border:1px solid var(--danger)}.successMessage{color:var(--ok);border:1px solid var(--ok)}.characterGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1.5rem}.characterCard{border:1px solid var(--border);border-radius:12px;padding:1rem;background:var(--panel)}.characterCard h2{margin:.1rem 0 .3rem}.preview{color:var(--text);line-height:1.45;min-height:4rem;overflow:hidden}.cardActions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.cardActions a{text-decoration:none}.emptyState{text-align:center;padding:2rem}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(max-width:800px){.chatLayout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:30vh}}.chatHeader{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(0,auto);align-items:center;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:var(--panel)}.backLink{white-space:nowrap;text-decoration:none}.characterIdentity{display:flex;align-items:center;gap:.7rem;min-width:0}.characterIdentity h1{margin:0;font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.characterIdentity p{margin:.15rem 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.characterAvatar{display:grid;place-items:center;width:2.4rem;height:2.4rem;flex:none;border-radius:50%;background:linear-gradient(145deg,#8fb8ff,#8de0c0);color:#0b1020;font-weight:800}.chatControls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}.personaSelector{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.8rem}.personaSelector select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .55rem}.conversationActions,.messageActions{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.characterChatShell{min-height:100dvh}.characterChatMain{width:min(100%,980px);margin:0 auto;flex:1;min-height:0;padding:1rem}.characterChatMain .messageList{min-height:0}.characterChatMain .composer{position:sticky;bottom:.75rem;box-shadow:0 8px 28px #00000038}.message header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-transform:none}.messageActions .small{min-height:1.8rem;padding:.2rem .45rem;font-size:.78rem}.messageActions span{min-width:2.5rem;text-align:center}.message-assistant .md{line-height:1.55}.editPanel textarea{width:100%;min-height:5rem;resize:vertical;border:1px solid var(--border);border-radius:8px;padding:.6rem;background:var(--bg);color:var(--text)}.successMessage{color:var(--ok);border:1px solid var(--ok);border-radius:8px;padding:.6rem .8rem}.characterAuthPage{margin-top:2rem}@media(max-width:800px){.chatHeader{grid-template-columns:1fr;align-items:stretch;gap:.65rem}.chatControls{justify-content:flex-start}.characterChatMain{padding:.75rem .75rem 1.25rem}.characterChatMain .composer{bottom:.5rem}.message header{align-items:flex-start;flex-direction:column}.messageActions,.conversationActions{width:100%}.conversationActions button{flex:1}.chatControls select{max-width:10rem}}
