:root{--google-blue:#4285f4;--google-red:#ea4335;--google-yellow:#fbbc05;--google-green:#34a853;--bg:#0d0d0d;--surface:#1a1a1a;--text:#e8eaed;--text-muted:#9aa0a6;--border:#3c4043;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Google Sans,Roboto,Arial,sans-serif;min-height:100vh;padding:2rem 1rem}body,header{display:flex;flex-direction:column;align-items:center}header{gap:.5rem;margin-bottom:2.5rem}header h1{font-size:2.5rem;font-weight:700;background:linear-gradient(90deg,var(--google-blue),var(--google-green),var(--google-yellow),var(--google-red));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}header p{color:var(--text-muted);font-size:.95rem}.chat-container{width:100%;max-width:720px;gap:1.5rem}.chat-container,.messages{display:flex;flex-direction:column}.messages{gap:1rem;min-height:200px}.message{padding:1rem 1.25rem;border-radius:var(--radius);line-height:1.6;white-space:pre-wrap}.message.user{background:var(--google-blue);color:#fff;align-self:flex-end;max-width:80%}.message.assistant{background:var(--surface);border:1px solid var(--border);align-self:flex-start;max-width:100%}.message.error{background:#3c1010;border:1px solid var(--google-red);color:#f28b82}form{display:flex;gap:.75rem}textarea{flex:1 1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:1rem;padding:.75rem 1rem;resize:none;outline:none;transition:border-color .2s}textarea:focus{border-color:var(--google-blue)}button[type=submit]{background:var(--google-blue);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:opacity .2s;white-space:nowrap}button[type=submit]:hover:not(:disabled){opacity:.88}button[type=submit]:disabled{opacity:.45;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:.75rem;padding:.25rem .75rem}