:root{--bg:#ffffff;--bg-raised:#f6f7f9;--border:#e3e6ea;--text:#14161a;--text-muted:#61666d;--accent:#2f5bd7;--accent-text:#ffffff;--bubble-user:#2f5bd7;--bubble-user-text:#ffffff;--danger:#b4232a;--radius:10px;--sidebar-width:260px}@media (prefers-color-scheme:dark){:root{--bg:#14161a;--bg-raised:#1c1f25;--border:#2c3038;--text:#eceef1;--text-muted:#9aa1ab;--accent:#6b8df5;--accent-text:#0f1115;--bubble-user:#3b60c4;--bubble-user-text:#ffffff;--danger:#ef6b70}}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}.landing{max-width:780px;margin:0 auto;padding:0 24px 64px}.landing-hero{padding:14vh 0 8vh}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600;color:var(--text-muted);margin:0 0 10px}.landing-hero h1{font-size:clamp(2.25rem,7vw,3.5rem);line-height:1.05;letter-spacing:-.025em;margin:0 0 18px}.lede{font-size:1.125rem;color:var(--text-muted);max-width:46ch;text-wrap:pretty;margin:0 0 30px}.cta-row{display:flex;flex-wrap:wrap;gap:10px}.cta{display:inline-block;padding:11px 20px;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-weight:550;text-decoration:none}.cta.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.landing-section{padding:6vh 0 0}.landing-section h2{font-size:1.375rem;letter-spacing:-.015em;margin:0 0 18px}.section-lede{color:var(--text-muted);max-width:54ch;text-wrap:pretty;margin:0 0 22px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:14px;gap:14px}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);padding:18px}.card h3{font-size:1rem;margin:0 0 7px}.card p{margin:0;font-size:.9375rem;color:var(--text-muted);text-wrap:pretty}.feature-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.feature-list li{color:var(--text-muted);max-width:60ch;text-wrap:pretty}.feature-list strong{color:var(--text);font-weight:600}.landing-foot{margin-top:8vh;padding-top:22px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.875rem}.landing-foot p{margin:0;text-wrap:pretty}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px}.auth-card h1{font-size:1.5rem;line-height:1.25;letter-spacing:-.01em;margin:0 0 6px}.auth-card .sub{color:var(--text-muted);font-size:.9375rem;margin:0 0 24px;text-wrap:pretty}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:.8125rem;color:var(--text-muted);margin-bottom:5px}.field input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised)}.field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn-primary{width:100%;padding:11px 16px;margin-top:6px;border:0;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-weight:550}.btn-primary:disabled{opacity:.55;cursor:default}.error{color:var(--danger);font-size:.875rem;margin:12px 0 0}.switch-link{margin-top:20px;font-size:.875rem;color:var(--text-muted);text-align:center}.switch-link a{color:var(--accent)}.shell{display:flex;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-width);flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-raised);display:flex;flex-direction:column;padding:12px;gap:10px}.sidebar-head{font-weight:600;letter-spacing:-.01em;padding:4px 6px}.new-chat{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);text-align:left;font-size:.9375rem}.conv-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1;display:flex;flex-direction:column;gap:2px}.conv-list button{width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:transparent;font-size:.9063rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-list button:hover{background:var(--bg)}.conv-list button[aria-current=true]{background:var(--bg);color:var(--text);font-weight:500}.sidebar-foot{border-top:1px solid var(--border);padding-top:10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.sidebar-foot,.sidebar-foot button{font-size:.8125rem;color:var(--text-muted)}.sidebar-foot button{border:0;background:none;text-decoration:underline;padding:0}.main{flex:1 1;display:flex;flex-direction:column;min-width:0}.thread{flex:1 1;overflow-y:auto;padding:28px 20px}.thread-inner{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.msg{white-space:pre-wrap;overflow-wrap:anywhere}.msg.user{align-self:flex-end;max-width:78%;background:var(--bubble-user);color:var(--bubble-user-text);padding:10px 14px;border-radius:16px 16px 4px 16px}.msg.assistant{align-self:flex-start;max-width:100%}.empty{max-width:680px;margin:8vh auto 0;text-align:center;color:var(--text-muted)}.empty h2{color:var(--text);font-size:1.375rem;letter-spacing:-.01em;margin:0 0 8px}.empty p{text-wrap:pretty;margin:0 0 22px}.starters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.starters button{padding:8px 13px;border:1px solid var(--border);border-radius:999px;background:var(--bg-raised);font-size:.875rem;color:var(--text)}.composer{border-top:1px solid var(--border);padding:14px 20px calc(14px + env(safe-area-inset-bottom))}.composer-inner{max-width:680px;margin:0 auto;display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1 1;resize:none;max-height:180px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised)}.composer textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.composer button{padding:11px 18px;border:0;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-weight:550}.composer button:disabled{opacity:.5;cursor:default}@media (max-width:720px){.sidebar{display:none}.sidebar.open{display:flex;position:fixed;inset:0 auto 0 0;z-index:20;width:82vw;max-width:var(--sidebar-width)}.thread{padding:20px 14px}}