:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--app-bg:#fff;--app-sidebar:#f7f7f8;--app-surface:#fff;--app-surface-alt:#f7f7f8;--app-border:#0f172a14;--app-border-strong:#0f172a24;--app-text:#111827;--app-text-muted:#4b5563;--app-text-subtle:#9ca3af;--app-hover:#eceff3;--app-link:#111827;--app-footer-text:#6b7280;--app-focus-border:#0f172a2e;--app-focus-ring:#0f172a14;--app-error:#dc3c3c;--app-shadow:0 18px 48px #0f172a14;--app-shadow-soft:0 8px 24px #0f172a0d;--app-contrast-surface:#111827;--app-contrast-text:#fff}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#212121;--app-sidebar:#171717;--app-surface:#2f2f2f;--app-surface-alt:#282828;--app-border:#ffffff14;--app-border-strong:#ffffff24;--app-text:#ececec;--app-text-muted:#a3a3a3;--app-text-subtle:#737373;--app-hover:#383838;--app-link:#fff;--app-footer-text:#9ca3af;--app-focus-border:#ffffff29;--app-focus-ring:#ffffff0f;--app-error:#f87171;--app-shadow:0 18px 48px #00000047;--app-shadow-soft:0 8px 24px #0000002e;--app-contrast-surface:#f9fafb;--app-contrast-text:#111827}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--app-bg);max-width:100vw;color:var(--app-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}body{min-height:100vh}button,input,textarea,select{font:inherit}a{color:inherit}.typewriter-container{width:100%;max-width:800px;padding:2rem}.message-bubble{background:var(--app-surface);box-shadow:var(--app-shadow-soft);border-radius:12px;gap:1rem;padding:1.5rem;display:flex}.avatar{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.875rem;font-weight:700;display:flex}.message-content{word-wrap:break-word;flex:1;font-size:1rem;line-height:1.6}.cursor{background:var(--app-text);width:2px;height:1em;margin-left:2px;animation:1s infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.error-container{text-align:center;padding:2rem}.error-title{color:var(--app-error);margin-bottom:1rem;font-size:1.5rem}.error-message{color:var(--app-text-muted)}
