:root{--bg:#fdfcff;--text:#37304f;--pill-bg:#f3edfe;--pill-border:#e3d9fa;--pill-focus:#c9baf2;--placeholder:#8d81b5;--button:#5d5290;--button-hover:#4d4478;--error-bg:#fdecec;--error-border:#f5c2c2;--error-text:#8a2f2f;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0}.app{flex-direction:column;height:100dvh;display:flex}.empty-state{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:24px;display:flex}.empty-state-title{letter-spacing:-.02em;text-align:center;max-width:min(680px,100%);color:var(--text);margin:0;font-size:clamp(26px,4.5vw,38px);font-weight:600;line-height:1.25}.menu-container{z-index:20;position:fixed;top:16px;left:16px}.menu-trigger{border:1px solid var(--pill-border);background:var(--pill-bg);width:42px;height:42px;color:var(--button);cursor:pointer;border-radius:12px;place-items:center;transition:background .2s,border-color .2s,box-shadow .2s;display:grid;box-shadow:0 2px 8px #5d52900f}.menu-trigger:hover{border-color:var(--pill-focus);background:#ebe3fc}.menu-trigger:focus-visible{border-color:var(--pill-focus);outline:none;box-shadow:0 0 0 3px #5d529026}.menu-trigger[aria-expanded=true]{border-color:var(--pill-focus);background:#ebe3fc;box-shadow:0 0 0 3px #5d52901f}.menu-trigger svg{width:20px;height:20px}.menu-dropdown{background:var(--bg);border:1px solid var(--pill-border);border-radius:12px;flex-direction:column;gap:2px;min-width:175px;padding:6px;animation:.15s cubic-bezier(.16,1,.3,1) menu-pop;display:flex;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 8px 24px #5d529024}@keyframes menu-pop{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.menu-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.menu-item svg{width:16px;height:16px;color:var(--placeholder);flex-shrink:0;transition:color .15s}.menu-item:hover:not(:disabled){background:var(--pill-bg);color:var(--button-hover)}.menu-item:hover:not(:disabled) svg{color:var(--button)}.menu-item:focus-visible{background:var(--pill-bg);color:var(--button-hover);outline:none}.menu-item:disabled{opacity:.45;cursor:not-allowed}.composer{background:var(--pill-bg);border:1px solid var(--pill-border);border-radius:999px;align-items:center;gap:8px;width:min(760px,100%);padding:8px 10px 8px 26px;transition:border-color .2s,box-shadow .2s;display:flex}.composer:focus-within{border-color:var(--pill-focus);box-shadow:0 0 0 4px #5d529014}.composer input{min-width:0;height:44px;font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:18px}.composer input::placeholder{color:var(--placeholder)}.send{background:var(--button);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;transition:background .2s,opacity .2s;display:grid}.send:hover:not(:disabled){background:var(--button-hover)}.send:disabled{opacity:.45;cursor:default}.send svg{width:22px;height:22px}.history{flex-direction:column;flex:1;gap:12px;width:min(820px,100%);margin:0 auto;padding:68px 24px 32px;display:flex;overflow-y:auto}.message{white-space:pre-wrap;overflow-wrap:break-word;max-width:80%;padding:10px 16px}.message.user{background:var(--pill-bg);border:1px solid var(--pill-border);border-radius:18px 18px 6px;align-self:flex-end}.message.assistant{white-space:normal;align-self:flex-start;padding-left:4px}.markdown-content{flex-direction:column;gap:8px;display:flex}.markdown-content p{margin:0}.markdown-content ul,.markdown-content ol{margin:0;padding-left:20px}.markdown-content li{margin-bottom:4px}.markdown-content li:last-child{margin-bottom:0}.markdown-content a{color:var(--button);text-underline-offset:3px;word-break:break-all;font-weight:500;text-decoration:underline;transition:color .15s}.markdown-content a:hover{color:var(--button-hover)}.markdown-content code{background:var(--pill-bg);border:1px solid var(--pill-border);border-radius:4px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.markdown-content pre{background:var(--pill-bg);border:1px solid var(--pill-border);border-radius:8px;margin:0;padding:12px;overflow-x:auto}.markdown-content pre code{background:0 0;border:none;padding:0}.composer-dock{justify-content:center;width:min(820px,100%);margin:0 auto;padding:12px 24px 24px;display:flex}.status-banner{z-index:10;background:var(--pill-bg);border:1px solid var(--pill-border);max-width:min(600px,100vw - 140px);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:baseline;gap:8px;padding:8px 18px;font-size:14px;display:flex;position:fixed;top:16px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 14px #5d52901f}.status-banner .status-hint{color:var(--placeholder);font-size:12px}.status-banner.error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}@media (width<=640px){.status-banner{max-width:calc(100vw - 32px);top:68px}.history{padding:72px 16px 24px}}.typing-dot{background:var(--placeholder);border-radius:50%;width:9px;height:9px;margin:4px;animation:.9s ease-in-out infinite alternate pulse;display:inline-block}@keyframes pulse{0%{opacity:.25;transform:scale(.8)}to{opacity:1;transform:scale(1.15)}}
