: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)}h3{margin:22px 0 8px;font-size:16px}.layout{display:grid;grid-template-columns:280px 1fr;height:100vh;height:100dvh;height:var(--app-height, 100dvh)}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:14px;min-height:0;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom));padding-left:calc(16px + env(safe-area-inset-left))}.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;position:relative}.session.active,.session:hover{background:var(--bg)}.session .actions{position:relative}.session .kebab{border:0;padding:6px;background:none;color:var(--muted);border-radius:6px;display:flex}.session .kebab:hover,.session .kebab[aria-expanded=true]{background:var(--panel);color:var(--text)}@media(hover:hover){.session .kebab{opacity:0}.session:hover .kebab,.session:focus-within .kebab,.session .kebab[aria-expanded=true]{opacity:1}}.session-menu{position:absolute;right:0;top:calc(100% + 2px);z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px #0000002e;min-width:140px;padding:4px;display:grid}.session-menu button{text-align:left;border:0;background:none;padding:8px 10px;border-radius:6px;font-size:14px}.session-menu button:hover{background:var(--bg)}.session-rename{flex:1;padding:4px 8px;font:inherit}.archived{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.archived-list{display:grid;gap:2px;margin-top:4px}.archived-row{justify-content:space-between}.archived-row .link{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;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;padding-top:calc(14px + env(safe-area-inset-top));padding-right:calc(20px + env(safe-area-inset-right))}.menu{display:none}.banner{background:#fef3c7;color:#78350f;padding:10px 20px;font-size:14px}.update-banner{position:fixed;top:0;left:0;right:0;z-index:50;text-align:center;padding-top:calc(10px + env(safe-area-inset-top))}.update-banner .link{color:inherit;text-decoration:underline;font-weight:600}.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);overflow-wrap:anywhere}@media(max-width:640px){.list thead{display:none}.list,.list tbody{display:block}.list tr{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}.list td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 0;border:0;text-align:right}.list td[data-label]:not([data-label=""]):before{content:attr(data-label);color:var(--muted);font-size:12px;text-align:left}.list td[colspan]{display:block;text-align:left}}.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}.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}@media(max-width:760px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(85vw,320px);z-index:20;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}.backdrop{position:fixed;inset:0;z-index:15;border:0;background:#00000059;padding:0;cursor:default}}@media(min-width:761px){.backdrop{display:none}}.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-row{display:inline-flex;align-items:flex-end;gap:4px;max-width:100%}.turn.user .bubble-row{flex-direction:row-reverse}.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%}.bubble-copy{flex-shrink:0;border:0;background:none;padding:4px;color:var(--muted);opacity:0;transition:opacity .15s;align-self:center}.turn:hover .bubble-copy,.bubble-copy:focus-visible{opacity:1}.bubble-copy:hover{color:var(--text)}.steps{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);overflow:hidden}.chip-summary{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:3px 9px;font:inherit;color:inherit}.chip-summary:not(:disabled){cursor:pointer}.chip-summary svg{flex-shrink:0}.chip b{font-weight:600;margin-right:2px}.chip.cloud b{color:var(--cloud)}.chip.device b{color:var(--device)}.chip.files b{color:var(--files)}.chip.failed{border-color:var(--danger)}.chip-detail{max-height:0;overflow:hidden;transition:max-height .15s ease}.chip-detail.open{max-height:240px}.chip-detail-inner{padding:0 9px 8px;font-size:11.5px}.chip-detail-preview{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin-bottom:2px;max-height:140px;overflow-y:auto}.composer{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--line);max-width:860px;width:100%;margin:0 auto;padding-bottom:calc(14px + env(safe-area-inset-bottom));padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right))}.composer textarea{resize:none;overflow-y:auto}.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}@media(hover:none)and (pointer:coarse){.attach,.composer-row .primary,.composer-row .danger{min-width:44px;min-height:44px}}.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}@media(max-width:760px){.turns{padding:12px}.composer{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom));padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}}.bubble p{margin:0 0 10px}.bubble p:last-child{margin-bottom:0}.bubble ul,.bubble ol{margin:0 0 10px;padding-left:22px}.bubble li{margin:2px 0}.bubble h1,.bubble h2,.bubble h3,.bubble h4{margin:16px 0 8px;line-height:1.3}.bubble h1:first-child,.bubble h2:first-child,.bubble h3:first-child,.bubble h4:first-child{margin-top:0}.bubble h1{font-size:1.35em}.bubble h2{font-size:1.2em}.bubble h3{font-size:1.08em}.bubble h4{font-size:1em}.bubble blockquote{margin:0 0 10px;padding:2px 12px;border-left:3px solid var(--line);color:var(--muted)}.bubble hr{border:0;border-top:1px solid var(--line);margin:14px 0}.bubble a{color:var(--accent)}.bubble code{font-size:12.5px}.bubble table{border-collapse:collapse;margin:0 0 10px;font-size:13px;max-width:100%;display:block;overflow-x:auto}.bubble th,.bubble td{border:1px solid var(--line);padding:5px 9px;text-align:left}.bubble th{background:var(--bg);font-weight:600}.chat-code-block{margin:4px 0 10px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.chat-code-header{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:var(--bg);border-bottom:1px solid var(--line);font-size:11.5px}.chat-code-lang{color:var(--muted);text-transform:lowercase}.chat-code-copy{border:0;background:none;padding:2px 4px;color:var(--muted);display:inline-flex;align-items:center}.chat-code-copy:hover{color:var(--text)}.chat-code-plain,.chat-code-hl{margin:0;border-radius:0;font-size:12.5px;line-height:1.5;padding:10px 12px;background:transparent;overflow-x:auto;white-space:pre}.chat-code-plain code,.chat-code-hl code{background:transparent;padding:0;white-space:pre}.chat-code-collapsed{max-height:260px;overflow:hidden;position:relative}.chat-code-collapsed:after{content:"";position:absolute;inset:auto 0 0;height:40px;background:linear-gradient(transparent,var(--panel));pointer-events:none}.chat-code-expand-btn{display:block;width:100%;border:0;border-top:1px solid var(--line);background:var(--bg);color:var(--accent);font-size:12px;padding:6px}.chat-diff-content{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.5;padding:10px 12px;overflow-x:auto}.chat-diff-line{white-space:pre}.chat-diff-add{background:color-mix(in srgb,#16a34a 15%,transparent)}.chat-diff-remove{background:color-mix(in srgb,var(--danger) 15%,transparent)}.chat-diff-hunk{color:var(--muted)}:root{--hl-keyword: #a626a4;--hl-string: #50a14f;--hl-number: #986801;--hl-comment: #a0a1a7;--hl-title: #4078f2;--hl-built-in: #c18401;--hl-attr: #986801;--hl-tag: #e45649;--hl-deletion: #e45649;--hl-addition: #50a14f}@media(prefers-color-scheme:dark){:root{--hl-keyword: #c678dd;--hl-string: #98c379;--hl-number: #d19a66;--hl-comment: #7f848e;--hl-title: #61afef;--hl-built-in: #e5c07b;--hl-attr: #d19a66;--hl-tag: #e06c75;--hl-deletion: #e06c75;--hl-addition: #98c379}}.hljs{color:var(--text)}.hljs-comment,.hljs-quote{color:var(--hl-comment);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst,.hljs-operator{color:var(--hl-keyword)}.hljs-string,.hljs-doctag,.hljs-regexp,.hljs-template-variable{color:var(--hl-string)}.hljs-number,.hljs-literal{color:var(--hl-number)}.hljs-title,.hljs-title.function_,.hljs-title.class_,.hljs-section{color:var(--hl-title);font-weight:600}.hljs-built_in,.hljs-type,.hljs-class .hljs-title{color:var(--hl-built-in)}.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-params,.hljs-symbol{color:var(--hl-attr)}.hljs-tag,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:var(--hl-tag)}.hljs-meta{color:var(--muted)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-deletion{color:var(--hl-deletion)}.hljs-addition{color:var(--hl-addition)}.hljs-bullet,.hljs-link{color:var(--hl-title)}
