:root{--bg: #ffffff;--fg: #141414;--muted: #6e6e6e;--line: #e5e5e3;--surface: #f3f3f1;--accent: #141414;--accent-fg: #ffffff;--danger: #c0392b;--radius: 12px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #111111;--fg: #ededed;--muted: #9a9a9a;--line: #2a2a2a;--surface: #1e1e1e;--accent: #ededed;--accent-fg: #111111;--danger: #ff6b5e}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}h1{margin:0;font-size:26px;font-weight:650;letter-spacing:-.01em}.muted{margin:4px 0 0;color:var(--muted);font-size:14px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.icon svg{display:block;width:18px;height:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit;font-size:15px;font-weight:500;text-decoration:none;cursor:pointer}.button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.button.quiet{border-color:transparent;color:var(--muted)}.button:disabled{opacity:.4;cursor:default}.button[hidden]{display:none}.icon-button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--fg);cursor:pointer}@media(hover:hover){.button:not(:disabled):hover,.icon-button:hover{filter:brightness(.95)}.button.quiet:hover{color:var(--fg)}}.app{display:grid;grid-template-columns:264px 1fr;height:100dvh}.sidebar{display:flex;flex-direction:column;gap:12px;min-height:0;padding:16px 12px;border-right:1px solid var(--line);background:var(--bg)}.conversations{display:flex;flex:1;flex-direction:column;min-height:0;overflow-y:auto}.conversations a,.sidebar-links a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--fg);font-size:14px;text-decoration:none}.conversation{display:flex;align-items:center;border-radius:8px}.conversations a{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation .delete{display:grid;flex-shrink:0;place-items:center;width:32px;height:32px;margin-right:2px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.conversation .delete svg{width:16px;height:16px}.sidebar-links a[aria-current=page],.conversation:has(a[aria-current=page]){background:var(--surface)}@media(hover:hover){.conversation:hover,.sidebar-links a:hover{background:var(--surface)}.conversation .delete:hover{color:var(--danger)}.conversation:not(:hover,:focus-within,:has(a[aria-current=page])) .delete{opacity:0}}.sidebar-links{padding-top:12px;border-top:1px solid var(--line)}.account{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0 0 10px;border-top:1px solid var(--line)}.account-name{overflow:hidden;color:var(--muted);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.account .button{flex-shrink:0;min-height:36px;padding:0 10px;font-size:14px}.content{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar,.backdrop{display:none}.main{flex:1;min-height:0;overflow-y:auto}@media(max-width:800px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:min(300px,85vw);padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-100%);transition:transform .2s ease}.menu-open .sidebar{transform:none}.menu-open .backdrop{display:block;position:fixed;inset:0;z-index:10;background:#00000059}.topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;padding-top:max(6px,env(safe-area-inset-top));border-bottom:1px solid var(--line)}}.chat{display:flex;position:relative;flex-direction:column;height:100%}.scroller{flex:1;min-height:0;overflow-y:auto}.thread{display:flex;flex-direction:column;gap:24px;max-width:760px;margin:0 auto;padding:24px 16px}.message.user{display:flex;flex-direction:column;align-self:flex-end;align-items:flex-end;gap:6px;max-width:85%}.attached{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.attached img{display:block;width:112px;height:112px;border-radius:var(--radius);background:var(--surface);object-fit:cover}.bubble{padding:10px 14px;border-radius:18px;background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere}.message.assistant{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.message .text,.message.failed p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.message.failed p{color:var(--danger)}.message.pending{flex-direction:row;align-items:center;gap:8px;color:var(--muted)}.elapsed{font-variant-numeric:tabular-nums}.spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--fg);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{display:grid;place-content:center;height:100%;padding:24px;text-align:center}.empty p{margin:8px 0 0;color:var(--muted)}.composer{width:100%;max-width:760px;margin:0 auto;padding:8px 16px max(16px,env(safe-area-inset-bottom))}.composer-box{display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--line);border-radius:24px;background:var(--bg)}.composer-row{display:flex;align-items:flex-end;gap:4px}.composer-box:focus-within{border-color:var(--muted)}.composer textarea{flex:1;max-height:200px;padding:6px 4px;border:0;outline:0;background:transparent;color:inherit;font:inherit;resize:none}.send{display:grid;flex-shrink:0;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--accent);color:var(--accent-fg);cursor:pointer}.send:disabled{opacity:.25;cursor:default}.attach{display:grid;flex-shrink:0;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}@media(hover:hover){.attach:hover{background:var(--surface);color:var(--fg)}}.attachments{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:4px 4px 0;list-style:none}.attachments[hidden]{display:none}.attachments li{display:grid;position:relative;place-items:center;width:64px;height:64px;border-radius:10px;background:var(--surface)}.attachments img{width:100%;height:100%;border-radius:inherit;object-fit:cover}.attachments .remove{display:grid;position:absolute;top:-6px;right:-6px;place-items:center;width:24px;height:24px;padding:0;border:2px solid var(--bg);border-radius:50%;background:var(--fg);color:var(--bg);cursor:pointer}.attachments .remove svg{width:12px;height:12px;stroke-width:3}.attachments .remove:after{position:absolute;inset:-8px;content:""}.drop-zone{display:none;position:absolute;inset:8px;z-index:5;place-items:center;border:2px dashed var(--muted);border-radius:var(--radius);background:var(--bg);background:color-mix(in srgb,var(--bg) 88%,transparent);pointer-events:none}.dragging .drop-zone{display:grid}.drop-zone p{display:flex;align-items:center;gap:8px;margin:0;font-weight:600}.composer-error{margin:6px 0 0;color:var(--danger);font-size:14px}.composer-error:empty{display:none}.image-card{display:flex;flex-direction:column;gap:10px;width:100%;max-width:512px;margin:0}.image-link{display:block}.image-card img{display:block;width:100%;height:auto;border-radius:var(--radius);background:var(--surface)}.image-card figcaption{display:flex;flex-wrap:wrap;gap:8px}.page{width:100%;max-width:1120px;margin:0 auto;padding:28px 16px 48px}.page.narrow{max-width:680px}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px 20px}.grid .image-card{max-width:none}.empty-note{color:var(--muted)}.settings-form{display:flex;flex-direction:column;gap:8px}.settings-form label{font-weight:600}.settings-form textarea,.login input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit}.settings-form textarea{margin-top:8px;resize:vertical}.actions{display:flex;align-items:center;gap:12px}.login{display:grid;place-items:center;min-height:100dvh;padding:16px}.login form{display:flex;flex-direction:column;gap:10px;width:min(100%,340px)}.login h1{margin-bottom:16px;text-align:center}.login label{font-size:14px;font-weight:600}.login .error{margin:0;color:var(--danger);font-size:14px}.login button{min-height:46px;margin-top:6px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-fg);font:inherit;font-weight:600;cursor:pointer}
