:root{--bg-deep:#071a1b;--bg-mid:#0f3d3e;--bg-panel:#0e2a2bb8;--bg-elevated:#e8f0e80f;--ink:#e8f0e8;--ink-muted:#9bb3b0;--accent:#d4a574;--accent-soft:#d4a5742e;--danger:#e07a6a;--line:#e8f0e81f;--user-bubble:#d4a57429;--assistant-bubble:#e8f0e80f;--radius:14px;--font-display:"Fraunces", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;color:var(--ink);background:var(--bg-deep);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{background:radial-gradient(1200px 700px at 10% -10%, #1a5c5e 0%, transparent 55%), radial-gradient(900px 600px at 100% 0%, #2a4a3a 0%, transparent 50%), linear-gradient(165deg, #0a2426 0%, var(--bg-deep) 45%, #0c1f1a 100%);background-attachment:fixed}button,input,textarea{font:inherit;color:inherit}a{color:var(--accent)}.app-shell{flex-direction:column;max-width:820px;height:100%;margin:0 auto;padding:0 1rem;display:flex}.topbar{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0 .75rem;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700;line-height:1}.brand-sub{color:var(--ink-muted);margin:.2rem 0 0;font-size:.85rem}.topbar-actions{align-items:center;gap:.5rem;display:flex}.btn{appearance:none;border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);cursor:pointer;border-radius:999px;padding:.45rem .95rem;transition:background .15s,border-color .15s,transform .12s}.btn:hover{background:#e8f0e81a;border-color:#e8f0e838}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#1a1208;border-color:#0000;font-weight:600}.btn-primary:hover{background:#e0b68a}.btn-ghost{background:0 0}.btn:disabled{opacity:.5;cursor:not-allowed}.chat-stage{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--bg-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;flex:1;min-height:0;animation:.45s both rise;display:flex;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.messages{flex-direction:column;flex:1;gap:.85rem;padding:1.25rem 1.1rem .75rem;display:flex;overflow-y:auto}.msg{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-width:min(92%,560px);padding:.75rem .95rem;line-height:1.5;animation:.25s both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.msg-user{background:var(--user-bubble);border:1px solid #d4a57440;align-self:flex-end}.msg-assistant{background:var(--assistant-bubble);border:1px solid var(--line);align-self:flex-start}.msg-meta{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-bottom:.3rem;font-size:.7rem}.composer{border-top:1px solid var(--line);background:#071a1b59;gap:.6rem;padding:.85rem 1rem 1rem;display:flex}.composer textarea{resize:none;border-radius:var(--radius);border:1px solid var(--line);background:#071a1b8c;outline:none;flex:1;min-height:2.75rem;max-height:8rem;padding:.7rem .85rem}.composer textarea:focus{box-shadow:0 0 0 3px var(--accent-soft);border-color:#d4a5748c}.empty-hint{text-align:center;color:var(--ink-muted);max-width:22rem;margin:auto;padding:2rem 1rem}.empty-hint h2{font-family:var(--font-display);color:var(--ink);margin:0 0 .5rem;font-weight:500}.error-banner{color:#f2c4bc;background:#e07a6a26;border:1px solid #e07a6a59;border-radius:10px;margin:.5rem 1rem 0;padding:.55rem .75rem;font-size:.9rem}.landing{place-items:center;min-height:100%;padding:2rem 1rem;display:grid}.landing-card{border:1px solid var(--line);background:var(--bg-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:20px;width:min(420px,100%);padding:2.25rem 1.75rem 1.75rem;animation:.5s both rise}.landing-card h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:2.5rem}.landing-card .lede{color:var(--ink-muted);margin:.6rem 0 1.5rem;line-height:1.45}.auth-form{flex-direction:column;gap:.65rem;display:flex}.auth-form label{color:var(--ink-muted);font-size:.8rem}.auth-form input{border:1px solid var(--line);background:#071a1b8c;border-radius:10px;outline:none;width:100%;padding:.65rem .75rem}.auth-form input:focus{border-color:#d4a5748c}.auth-actions{flex-direction:column;gap:.55rem;margin-top:.5rem;display:flex}.auth-switch{text-align:center;color:var(--ink-muted);margin-top:1rem;font-size:.9rem}.auth-switch button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.settings-overlay{z-index:20;background:#040c0c8c;justify-content:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.settings-panel{border-left:1px solid var(--line);background:#0c2627;width:min(400px,100%);height:100%;padding:1.25rem 1.1rem 2rem;animation:.28s slideIn;overflow-y:auto}@keyframes slideIn{0%{opacity:.6;transform:translate(24px)}to{opacity:1;transform:none}}.settings-panel h2{font-family:var(--font-display);margin:0 0 .25rem}.settings-panel .section{border-top:1px solid var(--line);margin-top:1.35rem;padding-top:1rem}.settings-panel h3{margin:0 0 .65rem;font-size:.95rem;font-weight:600}.field-row{align-items:center;gap:.4rem;margin-bottom:.45rem;display:flex}.field-row input{border:1px solid var(--line);background:#071a1b8c;border-radius:8px;flex:1;padding:.45rem .55rem}.memory-item,.tool-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.55rem 0;font-size:.9rem;display:flex}.tool-item label{cursor:pointer;align-items:flex-start;gap:.55rem;display:flex}.toggle{align-items:center;gap:.6rem;display:flex}.loading-center{color:var(--ink-muted);margin:auto}@media (width<=600px){.brand{font-size:1.45rem}.app-shell{padding:0 .65rem .65rem}.chat-stage{border-radius:12px}}
