:root{--chat-bg: #0e1b2b;--chat-surface: #111b2d;--chat-accent: #c8f03c;--chat-text: #ffffff;--chat-muted: #b8c4d4;--chat-border: rgba(255, 255, 255, .14);--chat-on-accent: #111b2d;--chat-danger: #ff8f8f;--chat-radius: 10px;--chat-radius-sm: 6px;--chat-space-1: .5rem;--chat-space-2: .75rem;--chat-space-3: 1rem;--chat-space-4: 1.5rem;--chat-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--chat-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--app-height: 100vh}@supports (height: 100dvh){:root{--app-height: 100dvh}}*{box-sizing:border-box}html,body{margin:0;background:var(--chat-bg);color:var(--chat-text);font-family:var(--chat-font-body);-webkit-text-size-adjust:100%}body[data-page=home],body[data-page=conversation]{height:100%;min-height:var(--app-height);overflow:hidden}a{color:var(--chat-accent)}.chat-accent-surface{background:var(--chat-accent);color:var(--chat-on-accent)}button,input,textarea,select{font:inherit;color:inherit}input,textarea{font-size:16px}button,.tap-target{min-width:44px;min-height:44px}:focus-visible{outline:2px solid var(--chat-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}pre.md-codeblock{overflow-x:auto;max-width:100%;margin:.5em 0;padding:.75em;background:color-mix(in srgb,var(--chat-bg) 60%,black);border:1px solid var(--chat-border);border-radius:var(--chat-radius-sm);font-size:.85em}pre.md-codeblock code{font-family:var(--chat-font-mono);white-space:pre}:not(pre)>code{font-family:var(--chat-font-mono);background:color-mix(in srgb,var(--chat-bg) 60%,black);padding:.15em .4em;border-radius:4px;font-size:.9em}.md-blocked-image{display:inline-block;font-style:italic;color:var(--chat-muted)}.chat-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:var(--app-height);overflow:hidden}.chat-header{display:flex;align-items:center;gap:var(--chat-space-2);min-height:56px;padding:0 var(--chat-space-3);padding-top:max(env(safe-area-inset-top,0px),0px);border-bottom:1px solid var(--chat-border);background:var(--chat-surface);flex:none}.chat-header__brand{display:inline-flex;align-items:center;gap:.5em;font-weight:700;flex:none}.chat-header__title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;color:var(--chat-muted)}.chat-header__actions{display:flex;align-items:center;gap:var(--chat-space-1);flex:none}.chat-body{display:grid;grid-template-columns:1fr;min-height:0;overflow:hidden}@media(min-width:900px){.chat-body{grid-template-columns:260px minmax(0,1fr)}}.chat-sidebar{display:none;flex-direction:column;min-height:0;border-right:1px solid var(--chat-border);background:var(--chat-surface)}@media(min-width:900px){.chat-sidebar{display:flex}}.chat-sidebar[data-drawer-open=true]{display:flex;position:fixed;inset:0;z-index:40;width:min(320px,86vw)}.chat-sidebar-scrim{display:none}.chat-sidebar-scrim[data-open=true]{display:block;position:fixed;inset:0;z-index:39;background:#00000080}.chat-settings-sheet{position:fixed;inset:0;z-index:41;overflow-y:auto;background:var(--chat-surface);padding-top:env(safe-area-inset-top,0px)}.chat-settings-sheet[hidden]{display:none}@media(min-width:900px){.chat-settings-sheet{inset:auto max(var(--chat-space-3),env(safe-area-inset-right,0px)) auto auto;top:60px;width:320px;max-height:80vh;border:1px solid var(--chat-border);border-radius:var(--chat-radius)}}.chat-main{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;min-height:0;min-width:0;overflow:hidden}.connection-banner{display:none;align-items:center;gap:var(--chat-space-2);padding:.5em var(--chat-space-3);font-size:.85rem;border-bottom:1px solid var(--chat-border)}.connection-banner[data-visible=true]{display:flex}.connection-banner[data-tone=warn]{background:color-mix(in srgb,var(--chat-danger) 16%,var(--chat-surface));color:var(--chat-danger)}.connection-banner[data-tone=info]{background:color-mix(in srgb,var(--chat-muted) 14%,var(--chat-surface));color:var(--chat-muted)}.usage-indicator{display:flex;align-items:center;gap:.6em;padding:.4em var(--chat-space-3);font-size:.78rem;color:var(--chat-muted);border-bottom:1px solid var(--chat-border)}.usage-indicator__bar{flex:1 1 auto;height:4px;border-radius:2px;background:color-mix(in srgb,var(--chat-muted) 25%,transparent);overflow:hidden;max-width:12rem}.usage-indicator__bar-fill{height:100%;background:var(--chat-accent)}.usage-indicator[data-exhausted=true] .usage-indicator__bar-fill{background:var(--chat-danger)}.message-list-wrap{position:relative;min-height:0;overflow:hidden}.message-list{height:100%;overflow-y:auto;overflow-x:hidden;padding:var(--chat-space-3);display:flex;flex-direction:column;gap:var(--chat-space-3)}.msg{display:flex;min-width:0}.msg--user{justify-content:flex-end}.msg--assistant,.msg--tool{justify-content:flex-start}.msg-bubble{max-width:min(768px,85%);min-width:0;padding:.65em .9em;border-radius:var(--chat-radius);border:1px solid var(--chat-border);overflow-wrap:anywhere;line-height:1.5}.msg--user .msg-bubble{background:color-mix(in srgb,var(--chat-accent) 14%,var(--chat-surface));border-color:color-mix(in srgb,var(--chat-accent) 30%,var(--chat-border))}.msg--assistant .msg-bubble,.msg--tool .msg-bubble{background:var(--chat-surface)}.msg-md>*:first-child{margin-top:0}.msg-md>*:last-child{margin-bottom:0}.msg-images{display:flex;flex-wrap:wrap;gap:.5em;margin-top:.5em}.msg-image-thumb{position:relative;display:block;border:1px solid var(--chat-border);border-radius:var(--chat-radius-sm);overflow:hidden;min-width:44px;min-height:44px;padding:0;cursor:zoom-in;background:none}.msg-image-thumb img{display:block;max-width:160px;max-height:160px}.msg-image-thumb__label{position:absolute;left:0;right:0;bottom:0;padding:.15em .4em;font-size:.68rem;background:#000000a6;color:var(--chat-text)}.msg-typing{display:inline-flex;gap:4px;align-items:center}.msg-typing span{width:6px;height:6px;border-radius:50%;background:var(--chat-muted);animation:msg-typing-pulse 1.4s ease-in-out infinite}.msg-typing span:nth-child(2){animation-delay:.16s}.msg-typing span:nth-child(3){animation-delay:.32s}@keyframes msg-typing-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.jump-to-latest{position:absolute;left:50%;bottom:var(--chat-space-2);transform:translate(-50%);display:none;padding:.5em 1em;border-radius:999px;background:var(--chat-surface);border:1px solid var(--chat-border);color:var(--chat-text);cursor:pointer}.jump-to-latest[data-visible=true]{display:inline-flex}.tool-call-card,.approval-card{max-width:min(768px,85%);border:1px solid var(--chat-border);border-radius:var(--chat-radius);background:var(--chat-surface);padding:.75em .9em;font-size:.9rem}.tool-call-card__header{display:flex;align-items:center;gap:.5em;flex-wrap:wrap}.tool-call-card__tool{font-family:var(--chat-font-mono);font-size:.85em}.tool-call-card__status{margin-left:auto;font-size:.75em;color:var(--chat-muted);text-transform:uppercase;letter-spacing:.04em}.tool-call-card__device{color:var(--chat-muted)}.tool-call-card__args{margin-top:.5em}.tool-call-card__args summary{cursor:pointer;color:var(--chat-muted);font-size:.85em}.tool-call-card__args pre{margin:.4em 0 0;font-size:.8em;white-space:pre-wrap;word-break:break-word}.tool-call-card__result{margin-top:.5em;color:var(--chat-muted)}.approval-card__effects{margin:.4em 0;padding-left:1.1em}.approval-card__actions{display:flex;gap:var(--chat-space-1);margin-top:.6em}.approval-card__actions button{padding:.5em 1em;border-radius:var(--chat-radius-sm);border:1px solid var(--chat-border);background:var(--chat-bg);cursor:pointer}.approval-card__actions button[data-action=approve]{background:var(--chat-accent);color:var(--chat-on-accent);border-color:var(--chat-accent)}.approval-card__actions button[data-action=reject]{color:var(--chat-danger);border-color:var(--chat-danger)}.approval-card[data-decided=true] .approval-card__actions{display:none}.composer{border-top:1px solid var(--chat-border);background:var(--chat-surface);padding:var(--chat-space-2) var(--chat-space-3);padding-bottom:calc(var(--chat-space-2) + env(safe-area-inset-bottom,0px));flex:none}.composer__row{display:flex;align-items:flex-end;gap:var(--chat-space-1)}.composer__textarea{flex:1 1 auto;min-width:0;resize:none;max-height:160px;overflow-y:auto;padding:.6em .8em;background:var(--chat-bg);border:1px solid var(--chat-border);border-radius:var(--chat-radius-sm);color:var(--chat-text)}.composer__button{flex:none;border-radius:var(--chat-radius-sm);border:1px solid var(--chat-border);background:var(--chat-bg);cursor:pointer}.composer__send{background:var(--chat-accent);color:var(--chat-on-accent);border-color:var(--chat-accent)}.composer__send:disabled,.composer__button:disabled{opacity:.5;cursor:not-allowed}.composer__hint{margin-top:.3em;font-size:.72rem;color:var(--chat-muted)}.attachment-tray{display:flex;gap:.5em;flex-wrap:wrap;margin-bottom:.4em}.attachment-tray:empty{display:none}.attachment-item{position:relative;width:56px;height:56px;border-radius:var(--chat-radius-sm);overflow:hidden;border:1px solid var(--chat-border)}.attachment-item img{width:100%;height:100%;object-fit:cover;display:block}.attachment-item__remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;min-width:20px;min-height:20px;border-radius:50%;background:var(--chat-bg);border:1px solid var(--chat-border);color:var(--chat-text);font-size:12px;line-height:1;cursor:pointer}.attachment-item[data-state=uploading]:after,.attachment-item[data-state=normalizing]:after{content:"";position:absolute;inset:0;background:#0000008c}.attachment-item[data-state=error]{border-color:var(--chat-danger)}.attachment-item__status{position:absolute;inset:0;display:none;align-items:center;justify-content:center;font-size:.6rem;color:var(--chat-text);z-index:1}.attachment-item[data-state=uploading] .attachment-item__status,.attachment-item[data-state=normalizing] .attachment-item__status,.attachment-item[data-state=error] .attachment-item__status{display:flex}.model-picker,.mcp-permissions,.device-picker{padding:var(--chat-space-2) var(--chat-space-3);border-bottom:1px solid var(--chat-border)}.model-picker select,.device-picker select{width:100%;padding:.5em .6em;background:var(--chat-bg);border:1px solid var(--chat-border);border-radius:var(--chat-radius-sm);color:var(--chat-text)}.model-picker__note,.scope-toggle__note{font-size:.78rem;color:var(--chat-muted);margin-top:.3em}.model-picker__mismatch{color:var(--chat-danger);font-size:.78rem;margin-top:.3em}.scope-toggle{display:flex;align-items:flex-start;gap:.5em;padding:.4em 0}.scope-toggle input{margin-top:.2em;width:20px;height:20px}.scope-toggle__label{font-weight:600}.scope-toggle--write .scope-toggle__note{color:var(--chat-danger)}.device-item{display:flex;align-items:center;gap:.5em;padding:.3em 0}.device-item[data-online=false]{color:var(--chat-muted)}.conversation-list{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.conversation-list__scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.conversation-list__new{margin:var(--chat-space-2);padding:.6em;border-radius:var(--chat-radius-sm);border:1px solid var(--chat-border);background:var(--chat-bg);color:var(--chat-text);cursor:pointer}.conversation-item{display:block;padding:.6em var(--chat-space-3);border-bottom:1px solid var(--chat-border);color:var(--chat-text);text-decoration:none}.conversation-item[aria-current=page]{background:color-mix(in srgb,var(--chat-accent) 12%,transparent)}.conversation-item__title{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-item__preview{font-size:.75rem;color:var(--chat-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox{display:none;position:fixed;inset:0;z-index:60;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:#000000e0;align-items:center;justify-content:center}.lightbox[open],.lightbox[data-open=true]{display:flex}.lightbox__image{max-width:92vw;max-height:82vh;object-fit:contain;touch-action:pinch-zoom}.lightbox__caption{position:absolute;bottom:calc(var(--chat-space-3) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);color:var(--chat-text);font-size:.85rem;background:#00000080;padding:.3em .8em;border-radius:999px}.lightbox__close{position:absolute;top:calc(var(--chat-space-3) + env(safe-area-inset-top,0px));right:calc(var(--chat-space-3) + env(safe-area-inset-right,0px));width:44px;height:44px;border-radius:50%;background:var(--chat-surface);border:1px solid var(--chat-border);color:var(--chat-text);cursor:pointer}.chat-form{display:grid;gap:var(--chat-space-2);max-width:24rem}.chat-form label{font-size:.85rem;color:var(--chat-muted)}.chat-form input{padding:.6em .8em;background:var(--chat-surface);border:1px solid var(--chat-border);border-radius:var(--chat-radius-sm);color:var(--chat-text)}.chat-form button{margin-top:var(--chat-space-1);padding:.7em 1em;border-radius:var(--chat-radius-sm);border:1px solid var(--chat-accent);background:var(--chat-accent);color:var(--chat-on-accent);font-weight:600;cursor:pointer}.chat-form-error{padding:.75em 1em;border-radius:var(--chat-radius-sm);background:color-mix(in srgb,var(--chat-danger) 18%,transparent);color:var(--chat-danger);max-width:24rem}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th,.admin-table td{text-align:left;padding:.5em .7em;border-bottom:1px solid var(--chat-border)}.app-footer{padding:var(--chat-space-3);padding-bottom:calc(var(--chat-space-3) + env(safe-area-inset-bottom,0px));font-size:.78rem;color:var(--chat-muted);text-align:center}.app-footer a{color:var(--chat-accent)}.app-footer a:hover,.app-footer a:focus-visible{text-decoration:underline}.conversation-list .app-footer{margin-top:auto;border-top:1px solid var(--chat-border)}.chat-main-footer{display:none}@media(min-width:900px){.chat-main-footer{display:block;padding-top:var(--chat-space-1);padding-bottom:var(--chat-space-1)}}.chat-mark-signal{--mark-fg: var(--chat-accent)}.conversation-list__empty{padding:0 1rem}.admin-input--narrow{max-width:10rem}.grant-scopes{width:12rem}.chat-form.admin-add-tester{max-width:none;display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:end}@media(max-width:599px){.chat-form.admin-add-tester{grid-template-columns:1fr}}
