/* Frank-approved chat shell. Existing authentication and state namespaces stay intact. */
:root.theme-light,:root{--bg:#f4f9ff;--text:#18364f;--muted:#6b839b;--panel:#f4f9ff;--panel-2:#e9f2fc;--line:#d7e4f1;--accent:#007aff;--surface:#ffffffab;--user:#dbeaff;--user-text:#005cf0;--glass:linear-gradient(115deg,#ffffffe0,#f3f9ff99);--done:#28ae70;--running:#1688ff;--offline:#ef5b58;--waiting:#efb525;color-scheme:light}
:root.theme-dark{--bg:#192632;--text:#dce8f3;--muted:#9aafc2;--panel:#243748;--panel-2:#30495d;--line:#465d71;--accent:#6eb0ff;--surface:#263c4de6;--user:#284d7a;--user-text:#e0eeff;--glass:linear-gradient(115deg,#9aafc266,#263c4dbb);color-scheme:dark}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif;font-size:16px;background:var(--bg);color:var(--text)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{touch-action:manipulation}button:disabled{opacity:.38}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon-button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:10px;border:0;border-radius:50%;background:transparent;color:var(--text);flex:none}.icon-button:active,.icon-button[aria-expanded=true]{background:var(--panel-2);color:var(--accent)}
body .app{height:var(--visible-height,100dvh);min-height:0;width:100%;max-width:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr) auto auto;background:var(--bg);overflow:hidden}body .topbar{position:relative;top:auto;display:flex;align-items:center;gap:4px;min-width:0;height:64px;min-height:64px;padding:7px 8px 7px 13px;background:var(--surface);border-bottom:1px solid var(--line);z-index:10;backdrop-filter:blur(18px)}body .topbar>.title{flex:1;min-width:0;width:auto;max-width:none;transform:none;margin:0}#thread-button{padding:0;gap:3px;width:100%;min-height:44px;justify-content:center;align-items:flex-start;max-width:100%;border-radius:8px}#thread-name{font-size:15px;line-height:21px;font-weight:600;max-width:100%;display:block;color:var(--text)}#thread-name:after{content:'⌄';font-weight:400;margin-left:6px;color:var(--muted)}#runtime{font-size:10px;line-height:15px;color:var(--muted);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .top-actions{display:flex;gap:0;min-width:132px;position:static;overflow:visible;align-items:center}.top-actions .icon-button{width:36px;min-width:36px;padding:7px;height:44px}.quota-track{stroke:var(--muted);opacity:.4}.quota-progress{stroke:var(--accent)}.quota-status{stroke:none;fill:var(--status-color,var(--muted))}[data-status=completed]{--status-color:var(--done)}[data-status=running]{--status-color:var(--running)}[data-status=disconnected]{--status-color:var(--offline)}[data-status=approval]{--status-color:var(--waiting)}#quota[data-status=running] .quota-status{animation:breathe 1.4s ease-in-out infinite}.refreshing svg{animation:spin .8s linear infinite}
body .thread{position:relative;flex:none;display:flex;flex-direction:column;gap:22px;min-height:0;width:100%;max-width:none;margin:0;padding:18px max(16px,calc((100% - 760px)/2));overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;background:transparent}body .message{width:100%;max-width:none;margin:0;border:0;box-shadow:none;background:transparent;color:var(--text);padding:0;flex:none;display:block;line-height:1.72;font-size:16px}.bubble-wrap{display:block;width:100%}.bubble{white-space:normal;line-height:1.72;overflow-wrap:anywhere;max-width:100%;padding:0;background:transparent;color:inherit;border-radius:0;box-shadow:none}.message.user{align-self:flex-end;width:auto;max-width:90%;padding:10px 14px;background:var(--user);color:var(--user-text);border-radius:22px}.message.user .bubble p{margin:0}.bubble p{margin:0 0 14px;white-space:pre-wrap}.bubble p:last-child{margin-bottom:0}.bubble strong{font-weight:650}.bubble ul,.bubble ol{padding-left:25px;margin:10px 0 16px}.bubble li{padding:0;margin:7px 0;white-space:pre-wrap}.bubble h1,.bubble h2,.bubble h3,.bubble h4,.bubble h5,.bubble h6{font-size:18px;line-height:1.5;margin:18px 0 10px}.bubble pre{margin:14px 0;background:var(--panel-2);border:1px solid var(--line);padding:13px;border-radius:12px;overflow:auto;white-space:pre;font-size:13px;line-height:1.6}.bubble pre code{white-space:pre;background:none;padding:0}.bubble code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;padding:2px 4px;border-radius:4px;background:var(--panel-2)}.bubble a{color:var(--accent);text-decoration:underline}.reply-tools{display:flex;align-items:center;gap:4px;min-height:44px;margin-top:8px}.reply-tools .icon-button{border-radius:11px;color:var(--muted);background:transparent}.reply-tools [data-feedback=active]{color:var(--accent);background:var(--panel-2)}.reply-tools [data-feedback=done]{color:var(--done);background:#28ae7025}.reply-tools [data-feedback=error]{color:var(--offline);background:#ef5b5820}.reply-tools [aria-expanded=true] svg{transform:rotate(90deg)}.reply-process{margin:5px 0 12px;background:var(--panel-2);border:1px solid var(--line);padding:10px 12px;border-radius:12px;font-size:13px;color:var(--muted);line-height:1.6}.reply-process p{margin:0 0 6px}
body .composer-shell{position:relative;bottom:auto;min-height:0;width:100%;max-width:none;margin:0;padding:8px max(10px,calc((100% - 780px)/2)) max(9px,env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 20%);z-index:11}.composer-shell #target{display:none}body #composer{display:flex;align-items:flex-end;gap:5px;min-height:56px;height:auto;max-height:156px;width:100%;padding:5px;margin:0;border-radius:29px;border:1px solid #ffffffc9;background:var(--glass);box-shadow:inset 0 1px 3px #ffffffb0,0 3px 18px #5a8fb41a;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%)}#composer textarea{flex:1;width:0;min-width:0;min-height:44px;max-height:144px;resize:none;height:44px;line-height:24px;padding:10px 0;font-size:16px;background:transparent;border:0;outline:0;color:var(--text);margin:0;box-shadow:none;border-radius:0}#composer .icon-button{background:#ffffff19;border:1px solid #ffffff66;box-shadow:inset 0 0 12px #ffffff30}#composer #send{background:#007aff;color:white;border-color:#007aff}#composer #send:disabled{background:#76a5e9;border-color:#93b7e9;opacity:.7}#composer #stop{background:var(--panel-2);color:var(--offline);border-color:var(--line)}#operation,#requests,#recovery{font-size:12px;max-height:27dvh;overflow:auto;padding:5px 2px}.op-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:32px}.op-line button{margin:0!important;padding:5px 8px!important}#attach-container{display:flex;gap:6px;flex-wrap:nowrap;overflow:auto;padding:5px 0}.attach-chip{display:inline-flex;align-items:center;gap:5px;max-width:220px;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.attach-x{display:grid;place-items:center;min-width:32px;min-height:32px;font-size:20px}.native-request{font-size:13px;padding:10px;border-radius:14px}.native-request-command{font-size:11px}.native-request-choice{min-height:44px}#function-dock{height:min(340px,45dvh);overflow:hidden;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:26px 26px 0 0;backdrop-filter:blur(24px);z-index:12}.dock-handle{display:block;min-height:25px;width:100%;background:none;border:0;flex:none}.dock-handle:before{content:'';display:block;width:38px;height:4px;border-radius:4px;background:var(--muted);opacity:.5;margin:auto}#dock-content{overflow:auto;padding:0 15px max(15px,env(safe-area-inset-bottom))}.tool-row{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--line);padding:10px;text-align:left}.model-form{display:flex;gap:10px;align-items:center}.model-form input{width:0;flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);padding:10px;font-size:16px}
body #thread-menu{position:fixed;top:0;left:0;bottom:0;width:min(86vw,344px);padding:16px 13px;display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid #ffffff80;border-radius:0 28px 28px 0;z-index:52;transform:translateX(-105%);transition:transform .2s ease;backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);overflow:auto;visibility:hidden}body.hermes-sidebar #thread-menu{transform:translateX(0);visibility:visible}#thread-menu-scrim{position:fixed;inset:0;z-index:51;background:#18364f40;border:0}.sidebar-head{display:flex;align-items:center;gap:8px;min-height:66px;margin:0 0 10px}.sidebar-head img{object-fit:contain;background:transparent;margin-right:auto}#create{width:44px;min-height:44px;padding:10px;text-align:center;border-radius:50%;background:var(--glass);box-shadow:inset 0 0 12px #ffffff66}#sidebar-close{width:36px;min-width:36px}#agent-tabs{display:flex;padding:5px;background:var(--glass);border:1px solid #ffffff9c;border-radius:20px;margin-bottom:14px;gap:3px}.agent-tab{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;min-width:0;padding:10px 8px;border:0;background:transparent;border-radius:15px;color:var(--text)}.agent-tab[aria-pressed=true]{background:var(--user);color:var(--accent)}.agent-tab svg{width:23px;height:23px}#sessions{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:14px}.session-open{display:flex;align-items:center;gap:14px;width:100%;min-height:52px;padding:12px 13px;border-radius:16px;border:1px solid #ffffff50;background:var(--surface);color:var(--text);text-align:left;flex:none}.session-open[aria-current=true]{background:var(--user);border-color:var(--line)}.session-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.session-status{display:block;width:11px;height:11px;border-radius:50%;background:var(--status-color,var(--muted));box-shadow:0 0 0 3px #8ca4bc2b;flex:none}.directory-error{font-size:12px;color:var(--offline);line-height:1.5}
#settings-layer{position:fixed;inset:0;z-index:120;display:flex;align-items:stretch;justify-content:flex-end;padding:0;background:#18364f35}#settings-panel{width:min(94vw,390px);height:var(--visible-height,100dvh);max-height:none;display:flex;flex-direction:column;padding:0;border:1px solid var(--line);border-radius:26px 0 0 26px;background:var(--panel);overflow:hidden;animation:slide-settings .2s ease-out}.settings-head{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 13px;border-bottom:1px solid var(--line);flex:none}.settings-head h2{font-size:19px;flex:1;margin:0}.appearance{display:flex;align-items:center;gap:4px}.appearance button{min-height:36px;font-size:12px;border:0;border-radius:10px;padding:7px 9px;background:transparent;color:var(--muted)}.appearance button[aria-pressed=true]{background:var(--user);color:var(--accent)}.settings-head .icon-button{width:38px;min-width:38px;height:38px;min-height:38px;background:var(--glass)}.settings-scroll{padding:14px 16px max(20px,env(safe-area-inset-bottom));min-height:0;overflow:auto}.setting-group{padding-bottom:15px;margin-bottom:15px;border-bottom:1px solid var(--line)}.setting-group:last-child{border-bottom:0}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:14px}.setting-action{border:0;border-radius:10px;background:var(--user);color:var(--accent);min-height:36px;padding:8px 10px;font-size:12px;white-space:nowrap}.setting-action.primary{background:#007aff;color:white}.setting-row select{max-width:60%;min-height:38px;width:150px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--text);padding:7px 9px;font-size:12px}#settings-values{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;row-gap:0;column-gap:8px;margin:5px 0 0;font-size:13px}#settings-values dt,#settings-values dd{min-height:44px;margin:0;display:flex;align-items:center}#settings-values dt{color:var(--text)}#settings-values dd{font-size:11px;justify-content:flex-end;color:var(--muted);white-space:nowrap}#settings-state{font-size:12px;line-height:1.6;margin:7px 0 0}#settings-state:empty{display:none}#notifications{width:48px;height:28px;border-radius:16px;border:0;padding:3px;background:#bfccda;flex:none}#notifications:before{content:'';display:block;width:22px;height:22px;border-radius:50%;background:white;box-shadow:0 1px 4px #0002}#notifications[aria-checked=true]{background:#007aff}#notifications[aria-checked=true]:before{transform:translateX(20px)}#owner-layer.inline-owner{position:static;inset:auto;display:block;background:none;padding:0}#owner-panel{width:auto;max-height:none;border:0;border-radius:0;padding:10px 0;background:transparent}#owner-panel .owner-title h2{display:none}#owner-panel .owner-title{justify-content:flex-end}#owner-panel .owner-title button{font-size:12px;min-height:36px}#owner-panel .owner-actions{justify-content:flex-end;gap:7px;margin:10px 0}#owner-panel button:not(#owner-close){font-size:12px;min-height:36px}#owner-state{font-size:12px;line-height:1.6}#inline-devices .device-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:54px;font-size:13px}
#reply-dialog{width:min(94vw,460px);max-height:80dvh;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:24px;background:var(--panel);color:var(--text)}#reply-dialog::backdrop{background:#18364f66}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-head h2{font-size:18px;margin:0}.forward-preview{font-size:13px;line-height:1.6;max-height:140px;overflow:auto;white-space:pre-wrap;color:var(--muted)}#reply-dialog-body select{width:100%;min-height:44px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:8px;border-radius:12px;margin-bottom:14px}#reply-dialog-body>.setting-action{display:block;margin-left:auto;min-height:44px}#error{top:70px;font-size:13px;max-height:24dvh;color:var(--text);box-shadow:0 4px 20px #16314f18}#auth{background:var(--panel);border-radius:24px;border:1px solid var(--line);height:auto}#auth details{font-size:13px;line-height:1.6}#auth details>p{color:var(--muted)}#auth>h1{margin-bottom:22px}.empty{font-size:14px;line-height:1.6}.native-request details{margin:8px 0}.native-request summary{cursor:pointer;color:var(--muted);min-height:32px}
@media(min-width:900px){body .app{padding-left:300px}body #thread-menu{width:300px;transform:none;visibility:visible;border-radius:0;border-left:0;border-top:0;border-bottom:0}#sidebar-close{display:none}body .topbar{padding-left:24px;padding-right:20px}body .thread{padding-left:max(24px,calc((100vw - 300px - 760px)/2));padding-right:max(24px,calc((100vw - 300px - 760px)/2))}body .composer-shell{padding-left:max(20px,calc((100vw - 300px - 780px)/2));padding-right:max(20px,calc((100vw - 300px - 780px)/2))}.top-actions .icon-button{width:44px;min-width:44px}#thread-menu-scrim{display:none}}
@media(max-width:380px){body .topbar{padding-left:10px;padding-right:4px;gap:0}.topbar .top-actions{min-width:126px}.top-actions .icon-button{width:34px;min-width:34px;padding:6px}#thread-name{font-size:14px}#runtime{font-size:9px}#composer{gap:3px!important}#composer .icon-button{width:42px;min-width:42px}body .thread{padding:16px 13px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(prefers-reduced-transparency:reduce){#composer,#thread-menu,.topbar,#function-dock{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--panel)}}@supports not(backdrop-filter:blur(1px)){#composer,#thread-menu,.topbar,#function-dock{background:var(--panel)}}@keyframes breathe{50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide-settings{from{transform:translateX(100%)}to{transform:translateX(0)}}

/* Vendor bubble selectors are more specific than bare .bubble. */
body #device-access{display:none!important}body .message .bubble{padding:0;margin:0;border:0;box-shadow:none;border-radius:0;background:transparent;color:inherit;width:100%;max-width:none}body .message .bubble-wrap{padding:0;background:transparent;max-width:none}body .message.assistant .bubble{background:transparent}body .topbar .top-actions .icon-button{width:44px;min-width:44px}body #composer .icon-button{width:44px;min-width:44px}

.context-track{opacity:.25}.context-progress{stroke:var(--muted);transform:rotate(-90deg);transform-origin:center}.device-actions{display:flex;gap:6px;justify-content:flex-end}.device-edit{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin:8px 0}.device-edit input{min-width:0;max-width:100%;flex:1;padding:9px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--panel-2);font-size:16px}

.model-form select{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--border,#cbd8e5);border-radius:12px;background:var(--surface,#f3f7fb);color:inherit;font:inherit}.model-form{display:flex;gap:10px;align-items:center}

/* Unified agent directory: transparent status area, no card outlines. */
:root.theme-light,:root.theme-dark,:root{--done:#1688ff}
body #thread-menu .sidebar-head{margin-bottom:4px}
body #create,body #create[aria-expanded=true]{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;padding:10px;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--text)}
body #create[aria-expanded=true]{color:var(--accent)}#create svg{width:24px;height:24px}
#catalog-state:empty{display:none}
#sessions{border:0;padding-top:0;gap:4px}
#sessions .session-open{background:linear-gradient(90deg,transparent 0%,transparent 12%,var(--agent-bg) 100%);border:0;box-shadow:none;min-height:48px;padding:10px 13px;border-radius:14px;gap:14px}
#sessions .session-open[aria-current=true]{background:linear-gradient(90deg,transparent 0%,transparent 12%,var(--agent-active) 100%)}
#sessions .session-open[data-group-start=true]{margin-top:12px}
#sessions .session-open:focus-visible,#create:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.session-status{width:10px;height:10px}
.session-status[data-status=running]{width:15px;height:15px;margin-left:-2.5px;margin-right:-2.5px;border:2px solid color-mix(in srgb,var(--muted) 22%,transparent);border-top-color:var(--muted);border-right-color:var(--muted);background:none;box-shadow:none;animation:spin .85s linear infinite}
.pin-mark{margin-left:auto;flex:none;width:15px;height:15px;stroke:var(--muted);fill:none;stroke-width:1.6}
#session-actions{position:fixed;z-index:80;width:212px;max-width:calc(100vw - 24px);max-height:calc(var(--visible-height,100dvh) - 24px);overflow:auto;padding:6px;border-radius:18px;background:var(--panel);box-shadow:0 14px 44px #0004}
.session-action{display:flex;align-items:center;gap:11px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:11px;background:transparent;color:var(--text);font:inherit;font-size:14px;text-align:left}
.session-action svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:none;flex:none}
.session-action:hover,.session-action:focus-visible{background:var(--panel-2)}.session-action:active{color:var(--accent);background:var(--user)}.session-action:disabled{opacity:.4;cursor:default}
.menu-state{padding:6px 10px;margin:0;font-size:13px;line-height:1.6;color:var(--muted)}
