:root{--bg: #0d1117;--bg-raised: #161b22;--bg-bubble-user: #1f6feb;--bg-bubble-sage: #21262d;--border: #30363d;--text: #e6edf3;--text-muted: #8b949e;--accent: #3fb68b;--accent-soft: rgba(63, 182, 139, .15);--error: #f85149}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}.app{display:flex;flex-direction:column;height:100%;max-width:820px;margin:0 auto}.app-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.app-header h1{margin:0;font-size:18px;letter-spacing:.02em}.tagline{margin:0;font-size:12px;color:var(--text-muted)}.sage-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#1f6feb);color:#fff;font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sage-avatar.small{width:28px;height:28px;font-size:13px}.chat{display:flex;flex-direction:column;flex:1;min-height:0}.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.message{display:flex;gap:10px;align-items:flex-start}.message.user{justify-content:flex-end}.message-body{display:flex;flex-direction:column;gap:8px;max-width:85%}.bubble{padding:10px 14px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere}.message.assistant .bubble{background:var(--bg-bubble-sage);border:1px solid var(--border);border-top-left-radius:4px;white-space:normal}.bubble>:first-child{margin-top:0}.bubble>:last-child{margin-bottom:0}.bubble p,.bubble ul,.bubble ol{margin:.5em 0}.bubble ul,.bubble ol{padding-left:1.4em}.bubble h1,.bubble h2,.bubble h3,.bubble h4{margin:.8em 0 .4em;font-size:1em}.bubble hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.bubble table{border-collapse:collapse;margin:.5em 0;font-size:.92em;display:block;overflow-x:auto}.bubble th,.bubble td{border:1px solid var(--border);padding:5px 10px;text-align:left}.bubble th{background:var(--bg-raised);font-weight:600}.bubble code{background:var(--bg-raised);border-radius:4px;padding:1px 5px;font-size:.9em}.message.user .bubble{background:var(--bg-bubble-user);color:#fff;border-top-right-radius:4px;max-width:85%}.bubble.thinking{color:var(--text-muted);font-style:italic}.bubble.error{border-color:var(--error);color:var(--error)}.holding-card{background:var(--bg-raised);border:1px solid var(--accent);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.holding-card-header{display:flex;align-items:center;justify-content:space-between}.ticker{font-weight:700;font-size:16px;letter-spacing:.04em}.layer-pill{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.layer-pill.layer-active{background:#1f6feb26;color:#58a6ff}.layer-pill.layer-dca{background:#d2992226;color:#d29922}.holding-name{color:var(--text-muted);font-size:13px}.holding-stats{display:flex;gap:20px;flex-wrap:wrap}.holding-stats>div{display:flex;flex-direction:column}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.stat-value{font-weight:600}.holding-thesis{font-size:13px;color:var(--text-muted);border-left:2px solid var(--border);padding-left:8px}.holding-saved{font-size:12px;color:var(--accent);font-weight:600}.input-bar{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg)}.input-bar textarea{flex:1;resize:none;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;padding:10px 12px;max-height:140px}.input-bar textarea:focus{outline:none;border-color:var(--accent)}.input-bar button{background:var(--accent);border:none;border-radius:10px;color:#04140e;font-size:16px;width:44px;cursor:pointer;flex-shrink:0}.input-bar button:disabled{opacity:.4;cursor:default}@media(max-width:600px){.message-body{max-width:92%}.messages{padding:12px}}
