:root{--bg: #f7f7f5;--panel: #ffffff;--text: #1d1d1b;--muted: #6b6b66;--line: #e4e3de;--accent: #4f46e5;--accent-text: #fff;--cloud: #0e7490;--device: #b45309;--files: #4d7c0f;--danger: #b91c1c;--user: #eef0ff;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #151514;--panel: #1f1f1d;--text: #ecebe6;--muted: #a3a29c;--line: #34332f;--user: #262a4a;--accent: #818cf8;--accent-text: #111}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:8px 12px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button.link{border:0;background:none;padding:0;text-align:left;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input,textarea{font:inherit;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}label{display:grid;gap:6px;font-size:14px}code{background:var(--line);padding:1px 5px;border-radius:4px;font-size:13px}.center{min-height:100vh;display:grid;place-items:center;padding:16px}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger);font-size:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;display:grid;gap:14px}.login{width:min(380px,100%)}.narrow{max-width:420px}.brand{font-weight:700;font-size:20px}.brand span{color:var(--accent)}.layout{display:grid;grid-template-columns:280px 1fr;height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:14px;min-height:0}.wide{width:100%}.sessions{flex:1;overflow-y:auto;display:grid;align-content:start;gap:2px}.session{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px}.session.active,.session:hover{background:var(--bg)}.session .actions{display:none}.session:hover .actions{display:flex;gap:2px}.session .actions button{border:0;padding:2px 6px;background:none;color:var(--muted)}.nav-bottom{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:12px}.tab{text-align:left;border:0;background:none}.tab.active{background:var(--bg)}main{display:flex;flex-direction:column;min-height:0;min-width:0}.topbar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);font-weight:600}.menu{display:none}.banner{background:#fef3c7;color:#78350f;padding:10px 20px;font-size:14px}.chat{flex:1;display:flex;flex-direction:column;min-height:0}.turns{flex:1;overflow-y:auto;padding:20px;display:grid;align-content:start;gap:16px;max-width:860px;width:100%;margin:0 auto}.empty{padding:40px 0;text-align:center}.turn{display:grid;gap:6px}.turn.user{justify-items:end}.bubble{white-space:pre-wrap;line-height:1.55;max-width:100%;overflow-wrap:anywhere}.turn.user .bubble{background:var(--user);padding:10px 14px;border-radius:14px;max-width:80%}.steps{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--panel)}.chip b{font-weight:600;margin-right:4px}.chip.cloud b{color:var(--cloud)}.chip.device b{color:var(--device)}.chip.files b{color:var(--files)}.chip.failed{border-color:var(--danger)}.composer{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--line);max-width:860px;width:100%;margin:0 auto}.composer textarea{resize:none}.page{padding:20px;max-width:860px;overflow-y:auto}.list{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}.list th,.list td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.upload{display:inline-block;padding:8px 12px;border:1px dashed var(--accent);border-radius:8px;cursor:pointer}.upload input{display:none}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.on{background:#16a34a}@media(max-width:760px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 30% 0 0;z-index:10;transform:translate(-105%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:0 0 40px #00000040}.menu{display:inline-block;border:0;background:none;font-size:20px;padding:0 4px}.turns,.composer{padding:12px}}.chat,.page{position:relative}.drop-overlay{position:absolute;inset:8px;z-index:5;display:grid;place-items:center;border:2px dashed var(--accent);border-radius:14px;background:color-mix(in srgb,var(--bg) 85%,transparent);font-weight:600;pointer-events:none}.page.dragging{outline:2px dashed var(--accent);outline-offset:-8px;border-radius:14px}.composer{flex-direction:column}.composer-row{display:flex;gap:10px;align-items:flex-end}.composer-error{max-width:860px;margin:0 auto;width:100%;padding:0 20px}.attach{font-size:18px;padding:8px 10px}.attachments{display:flex;flex-wrap:wrap;gap:6px}.turn.user .attachments{justify-content:flex-end}.attachment{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:5px 8px 5px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);text-decoration:none;max-width:100%;position:relative}.attachment .name{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment.failed{border-color:var(--danger)}.attachment.failed .muted{color:var(--danger)}.attachment.ready{border-color:var(--files)}.attachment .remove{border:0;background:none;padding:0 2px;color:var(--muted)}.attachment .bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--line);border-radius:0 0 10px 10px;overflow:hidden}.attachment .bar span{display:block;height:100%;background:var(--accent);transition:width .2s}.attachments.pending{margin-top:4px}.waiting{font-style:normal;color:var(--device);margin-left:4px}.downloads{display:flex;flex-wrap:wrap;gap:8px}.download{padding:8px 14px;border:1px solid var(--accent);border-radius:8px;text-decoration:none;color:var(--text)}.pair{display:grid;gap:4px}.pair .code{font:600 28px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:3px}h3{margin:22px 0 8px;font-size:16px}
