:root{--bg: #faf7f5;--surface: #ffffff;--border: #e6dfdb;--text: #2b2540;--muted: #6e6680;--accent: #b0567e;--accent-text: #ffffff;--accent-soft: #f3dfe8;--error: #b03030;--ok: #2c7a4b;--focus: #2b62d9;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--radius: 12px;--tap: 44px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #18151f;--surface: #24202d;--border: #3a3446;--text: #f2eef6;--muted: #b3abc0;--accent: #e88bb0;--accent-text: #24121b;--accent-soft: #3d2a35;--error: #ff8f8f;--ok: #7fd6a0;--focus: #8fb3ff}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.45;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}.demi{max-width:34rem;margin:0 auto;min-height:100dvh;padding:var(--space-4);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));padding-bottom:max(var(--space-4),env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-4)}.masthead{display:flex;align-items:center;justify-content:space-between;color:var(--accent)}.logo{height:40px;width:auto}main{display:flex;flex-direction:column;gap:var(--space-6)}h1{font-size:1.6rem;line-height:1.2;margin:0 0 var(--space-2)}h1:focus{outline:none}h2{font-size:1.15rem;margin:0}p{margin:0 0 var(--space-3)}.screen p,.note{color:var(--muted)}.error,.screen p.error{color:var(--error)}button,textarea,input{font:inherit;font-size:max(16px,1rem)}button{min-height:var(--tap);border-radius:var(--radius);padding:var(--space-2) var(--space-4);cursor:pointer;border:1px solid transparent}button:disabled{opacity:.6;cursor:default}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.primary{background:var(--accent);color:var(--accent-text);font-weight:600}.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.link{background:none;color:var(--muted);text-decoration:underline;padding:var(--space-2)}.google-slot{min-height:var(--tap)}.google-slot [role=button]{--google-fill: #131314;--google-text: #e3e3e3;--google-stroke: #8e918f;display:inline-flex;align-items:center;justify-content:center;width:280px;max-width:100%;height:40px;padding:0 var(--space-3);border:1px solid var(--google-stroke);border-radius:20px;background:var(--google-fill);color:var(--google-text);font-size:14px;font-weight:500;cursor:pointer}.google-slot [role=button]>div:last-child{display:flex;align-items:center;gap:10px}.google-slot svg{display:block;width:18px;height:18px}.google-slot #button-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.dev-signin{display:flex;flex-wrap:wrap;gap:var(--space-2)}.suggestions{display:flex;flex-direction:column;gap:var(--space-2)}.suggestion{text-align:left;background:var(--accent-soft);color:var(--text)}.messages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.messages li{padding:var(--space-3) var(--space-4);border-radius:var(--radius);overflow-wrap:anywhere}.messages li.user{align-self:flex-end;max-width:85%;background:var(--accent-soft)}.messages li.assistant{background:var(--surface);border:1px solid var(--border)}.messages li>:last-child,.messages li p:last-child{margin-bottom:0}.thinking{color:var(--muted);font-style:italic}.citations{margin:var(--space-2) 0 0;padding-left:var(--space-4);font-size:.9rem}.citations a,.messages a{color:var(--accent)}.answer-error p{color:var(--error)}.composer{position:sticky;bottom:0;display:flex;gap:var(--space-2);padding:var(--space-2) 0 env(safe-area-inset-bottom);background:var(--bg)}.composer textarea{flex:1;min-height:var(--tap);max-height:8rem;resize:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text)}.lead{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.lead label{font-weight:600;margin-top:var(--space-2)}.lead input{min-height:var(--tap);padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.account{display:flex;align-items:center;gap:var(--space-2)}a.link{display:inline-flex;align-items:center;min-height:var(--tap)}.about{margin-top:auto;color:var(--muted);font-size:.95rem}.about summary{min-height:var(--tap);display:flex;align-items:center;cursor:pointer;color:var(--accent)}.about p{margin:0 0 var(--space-3)}.admin section{display:flex;flex-direction:column;gap:var(--space-2)}.section-head{display:flex;align-items:center;justify-content:space-between}.cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.card{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-wrap:anywhere}.card h3{font-size:1rem;margin:0 0 var(--space-1)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.danger{background:var(--error);color:var(--surface);font-weight:600}.ok{color:var(--ok)}.warn{color:var(--text);background:var(--accent-soft);padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.picker,.override{border:0;margin:var(--space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.picker legend{font-weight:600;margin-bottom:var(--space-2)}.picker input[type=search],.override textarea,.inline input{min-height:var(--tap);padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text)}.choice{display:flex;align-items:center;gap:var(--space-3);min-height:var(--tap)}.choice input{width:22px;height:22px;accent-color:var(--accent)}.inline{display:flex;gap:var(--space-2)}.inline input{flex:1;min-width:0}.inline input[aria-invalid=true]{border-color:var(--error)}.card a,.screen a,.admin main p a{color:var(--accent)}
