/* Refinement informed by unslop by Damir Sokolovsky (@heydamir), CC BY 4.0.
   https://github.com/heydamir/unslop — retain this credit in adaptations.
   User-selected scope: retain the Material 3 Expressive purple palette and layout. */
/* Material 3 Expressive: tonal surfaces, emphasized type, soft geometry and spring-like state changes. */
@font-face{
  font-family:Inter;
  src:url("/fonts/inter-latin-v20.woff2") format("woff2");
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
}
@font-face{
  font-family:"Relay Sans SC";
  src:url("/fonts/relay-sans-sc-v1.woff2") format("woff2");
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  unicode-range:U+2000-206F,U+2100-33FF,U+3400-9FFF,U+FF00-FFEF;
}
:root{
  color-scheme:light;--primary:#6442ba;--on-primary:#fff;--primary-container:#eaddff;--on-primary-container:#26085a;
  --secondary-container:#e8def8;--on-secondary-container:#241b36;--tertiary:#87513d;--tertiary-container:#ffdbcc;--on-tertiary-container:#351003;
  --surface:#fdf7ff;--surface-dim:#f0e9f4;--surface-low:#f6f0fa;--surface-container:#f0eaf5;--surface-high:#eae4ef;--surface-highest:#e4deea;
  --on-surface:#201a25;--on-surface-variant:#4c4556;--outline:#7d7486;--outline-variant:#cfc4d8;
  --error:#a93643;--error-container:#ffdadc;--success:#366849;--success-container:#d6efdc;--inverse:#332d3a;--on-inverse:#f7eefc;
  --shadow:0 8px 28px #24133112;--spatial:cubic-bezier(.22,1,.36,1);--effects:cubic-bezier(.22,1,.36,1);--nav-width:256px;
  font-family:Inter,"Relay Sans SC","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;font-size:14px;font-weight:400;
  background:var(--surface);color:var(--on-surface);accent-color:var(--primary);
}
:root[data-theme="dark"]{
  color-scheme:dark;--primary:#d1bcff;--on-primary:#381e70;--primary-container:#4c3290;--on-primary-container:#eaddff;
  --secondary-container:#4b405c;--on-secondary-container:#e8def8;--tertiary:#f5b79d;--tertiary-container:#6b3b29;--on-tertiary-container:#ffdbcc;
  --surface:#151219;--surface-dim:#151219;--surface-low:#1e1a22;--surface-container:#231f28;--surface-high:#2e2933;--surface-highest:#39333f;
  --on-surface:#e9e0ee;--on-surface-variant:#cec3d6;--outline:#988da2;--outline-variant:#4c4357;
  --error:#ffb2b9;--error-container:#772332;--success:#a0d5ae;--success-container:#214e33;--inverse:#e9e0ee;--on-inverse:#332d3a;--shadow:0 8px 28px #0003;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="dark"]){
  color-scheme:dark;--primary:#d1bcff;--on-primary:#381e70;--primary-container:#4c3290;--on-primary-container:#eaddff;
  --secondary-container:#4b405c;--on-secondary-container:#e8def8;--tertiary:#f5b79d;--tertiary-container:#6b3b29;--on-tertiary-container:#ffdbcc;
  --surface:#151219;--surface-dim:#151219;--surface-low:#1e1a22;--surface-container:#231f28;--surface-high:#2e2933;--surface-highest:#39333f;
  --on-surface:#e9e0ee;--on-surface-variant:#cec3d6;--outline:#988da2;--outline-variant:#4c4357;
  --error:#ffb2b9;--error-container:#772332;--success:#a0d5ae;--success-container:#214e33;--inverse:#e9e0ee;--on-inverse:#332d3a;--shadow:0 8px 28px #0003;
}}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--primary)}button{cursor:pointer;border:0;background:none;color:inherit;touch-action:manipulation}button:disabled{opacity:.46;cursor:default}a{color:inherit;text-decoration:none}svg{width:24px;height:24px;flex-shrink:0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.3;letter-spacing:0;font-weight:500}h2{font-size:24px;line-height:1.35;font-weight:500}h3{font-size:16px;line-height:1.4;font-weight:500}.muted,.fine{color:var(--on-surface-variant);line-height:1.7}.fine{font-size:12px}.eyebrow{font-size:12px;letter-spacing:0;font-weight:500;color:var(--primary);margin:38px 0 16px}
/* Navigation and workspace */
.workspace{display:flex;min-height:100dvh}.sidebar{width:var(--nav-width);padding:28px 16px 20px;background:var(--surface-low);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:3;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;font-size:26px;font-weight:600;letter-spacing:0;padding-left:12px}.brand-caption{display:block;font-size:12px;letter-spacing:0;font-weight:500;color:var(--on-surface-variant);margin-top:2px;text-transform:none}.brand-mark{width:64px;height:64px;background:var(--primary);color:var(--on-primary);border-radius:24px 24px 8px 24px;font-size:54px;line-height:56px;font-weight:500;letter-spacing:-7px;padding-left:15px;transform:none}.brand-mark span{color:var(--primary-container)}.brand-mark.small{width:44px;height:44px;font-size:37px;line-height:39px;border-radius:18px 18px 6px 18px;letter-spacing:-5px;padding-left:12px}.workspace-label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;border-radius:16px;padding:12px 16px;margin:24px 0 24px;background:var(--surface-container);color:var(--on-surface-variant)}.workspace-label>svg{width:19px;height:19px}.workspace-label span:last-child{margin-left:auto;color:var(--primary)}.nav-label{font-size:11px;letter-spacing:.5px;font-weight:500;color:var(--on-surface-variant);margin:0 16px 8px}nav{display:grid;gap:4px;margin-bottom:24px}.nav-item{display:flex;align-items:center;text-align:left;min-height:48px;padding:12px 16px;border-radius:24px;gap:12px;color:var(--on-surface-variant);font-size:13px;white-space:nowrap;font-weight:500;position:relative}.nav-item>span{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;font-size:22px}.nav-item.active{background:var(--secondary-container);color:var(--on-secondary-container);font-weight:500}.nav-item:hover{background:color-mix(in srgb,var(--on-surface) 7%,transparent)}.nav-item.active:hover{background:color-mix(in srgb,var(--on-secondary-container) 8%,var(--secondary-container))}.nav-item.active>span{color:var(--primary)}.nav-item b{font-size:11px;font-weight:500;border-radius:12px;padding:2px 7px;background:var(--surface-high);color:var(--on-surface-variant);margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:20px}.connection{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--on-surface-variant);margin:12px 16px}.connection i,.mini-dot{display:inline-block;width:7px;height:7px;background:var(--success);border-radius:50%}.profile{display:flex;gap:12px;width:100%;border-radius:24px;background:var(--surface-container);padding:12px;align-items:center;text-align:left;font-size:13px;font-weight:500}.profile small{display:block;font-size:11px;color:var(--on-surface-variant);font-weight:400;margin-top:3px}.profile>span:last-child{margin-left:auto;color:var(--primary)}.avatar{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-highest);color:var(--on-surface-variant);font-size:12px;flex-shrink:0;font-weight:500}.lavender{background:var(--primary-container);color:var(--on-primary-container);border-radius:16px 16px 8px 16px}.tiny{width:36px;height:36px;border-radius:50%;font-size:12px;background:var(--tertiary-container);color:var(--on-tertiary-container)}.workspace main{margin-left:var(--nav-width);width:calc(100% - var(--nav-width));min-width:0}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;font-size:13px;background:var(--surface)}.breadcrumb{color:var(--on-surface-variant)}.slash{color:var(--outline);margin:0 14px}.topbar-right{display:flex;align-items:center;gap:12px}.pill{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.3px;font-weight:500;padding:7px 12px;border-radius:20px;background:var(--secondary-container);color:var(--on-secondary-container)}.subtle{background:var(--surface-container);color:var(--on-surface-variant)}.icon-button{display:inline-flex;width:44px;height:44px;flex-shrink:0;border-radius:50%;align-items:center;justify-content:center;color:var(--on-surface-variant);background:var(--surface-container)}.icon-button:hover{background:var(--surface-highest)}.content{padding:16px 28px 32px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading h1{margin:0 0 8px}.page-heading p{font-size:13px;color:var(--on-surface-variant);margin:0;line-height:1.7}.page-heading>.primary{flex-shrink:0;white-space:nowrap}
/* Expressive controls */
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font-size:13px;font-weight:500;padding:12px 20px;white-space:nowrap}.primary{border-radius:24px;background:var(--primary);color:var(--on-primary);box-shadow:0 2px 4px #0000000c}.primary:hover{background:color-mix(in srgb,var(--on-primary) 9%,var(--primary));box-shadow:var(--shadow)}.secondary{border:1px solid var(--outline-variant);border-radius:24px;color:var(--on-surface-variant);background:transparent}.secondary:hover{background:var(--surface-high)}button.primary:active,button.secondary:active{transform:scale(.98)}#new-web,#add-extension{min-height:48px;padding:12px 24px;border-radius:20px;background:var(--primary-container);color:var(--on-primary-container);box-shadow:none}#new-web:hover,#add-extension:hover{background:color-mix(in srgb,var(--primary) 12%,var(--primary-container))}.danger{color:var(--error)}.primary svg,.secondary svg{width:20px;height:20px}
/* Conversation panes */
.content:has(>.conversation-layout){height:calc(100dvh - 64px);display:flex;flex-direction:column;padding-bottom:24px}.content:has(>.conversation-layout)>.page-heading{flex-shrink:0}.conversation-layout{min-height:0;flex:1;display:grid;grid-template-columns:292px minmax(0,1fr);gap:4px;background:var(--surface);border-radius:28px;overflow:hidden}.conversation-list{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-radius:28px 8px 8px 28px;background:var(--surface-low)}.list-header{padding:20px 16px 16px}.list-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;margin:0 8px 16px}.list-label>span{font-size:11px;font-weight:400;color:var(--on-surface-variant)}.search{width:100%;min-height:48px;border:0;border-radius:28px;background:var(--surface-highest);color:var(--on-surface);padding:13px 18px;font-size:12px}.search::placeholder{color:var(--on-surface-variant);opacity:1}.contacts{overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin;scrollbar-color:var(--outline-variant) transparent}.contact{display:flex;gap:12px;padding:16px 12px;min-height:96px;width:100%;text-align:left;border-radius:22px;margin-bottom:4px}.contact:hover{background:var(--surface-high)}.contact.active{background:var(--secondary-container)}.contact .avatar{width:34px;height:34px;font-size:12px}.contact.active .avatar{background:var(--primary);color:var(--on-primary);border-radius:12px 12px 5px 12px}.contact-body{min-width:0;flex:1}.contact-title{display:flex;gap:8px;align-items:center;font-size:13px;margin:0 0 7px}.contact-title strong{overflow:hidden;text-overflow:ellipsis;font-weight:500;white-space:nowrap}.contact-title time{margin-left:auto;font-size:11px;color:var(--on-surface-variant);white-space:nowrap}.contact-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--on-surface-variant);line-height:1.6}.contact-status{font-size:11px;color:var(--primary);margin-top:8px}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--surface-low);border-radius:8px 28px 28px 8px}.chat-header{flex-shrink:0;min-height:80px;padding:16px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 50%,transparent)}.chat-header>div{flex:1;min-width:0}.chat-header h3{margin:0 0 4px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header small{display:block;font-size:11px;color:var(--on-surface-variant);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header>.avatar{width:44px;height:44px;border-radius:18px 18px 8px 18px;background:var(--tertiary-container);color:var(--on-tertiary-container)}.chat-header .secondary{margin-left:auto;flex-shrink:0;min-height:40px;font-size:12px;padding:8px 16px}.messages{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:24px;scrollbar-width:thin;scrollbar-color:var(--outline-variant) transparent;scroll-padding:20px}.date-divider{display:flex;align-items:center;justify-content:center;gap:16px;font-size:11px;color:var(--on-surface-variant);margin-bottom:28px}.date-divider:before,.date-divider:after{content:"";height:1px;background:var(--outline-variant);opacity:.45;flex:1}.message{display:flex;align-items:flex-start;gap:12px;margin:24px 0}.message.out{flex-direction:row-reverse}.message .avatar{width:30px;height:30px;font-size:11px;margin-top:3px}.message .avatar.lavender{background:var(--tertiary-container);color:var(--on-tertiary-container);border-radius:12px 12px 5px 12px}.bubble-wrap{max-width:82%;min-width:0}.bubble{background:var(--surface-highest);border-radius:6px 24px 24px 24px;padding:16px 20px;font-size:14px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--on-surface)}.out .bubble{background:var(--primary-container);color:var(--on-primary-container);border-radius:24px 6px 24px 24px}.message time{display:block;color:var(--on-surface-variant);font-size:11px;line-height:1.5;margin:8px 0 0}.out time{text-align:right}.message.pending .bubble{background:var(--tertiary-container);color:var(--on-tertiary-container)}.composer{flex-shrink:0;border-radius:20px;background:var(--surface-highest);margin:0 16px 16px;padding:12px 16px 12px;border:2px solid transparent}.composer:focus-within{border-color:var(--primary);background:var(--surface-container)}.composer textarea{width:100%;display:block;min-height:58px;max-height:180px;border:0;resize:vertical;line-height:1.7;font-size:14px;background:transparent;color:var(--on-surface);padding:4px 3px;outline:none}.composer textarea::placeholder{color:var(--on-surface-variant)}.composer textarea:focus-visible{outline:none}.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.composer-bottom .fine{font-size:11px;margin:0;max-width:70%}.composer-bottom>button{flex-shrink:0}.composer .primary{min-height:44px;padding:10px 22px;border-radius:22px}.composer-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--on-surface-variant)}.composer select{color:var(--primary);background:var(--surface-high);padding:6px 10px;border-radius:14px;border:0}.history-footer{font-size:11px;line-height:1.6;padding:16px 22px;border-top:1px solid var(--outline-variant);color:var(--on-surface-variant)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:240px;text-align:center;padding:36px;color:var(--on-surface-variant);font-size:14px;line-height:1.9}.empty-symbol{display:flex;align-items:center;justify-content:center;color:var(--on-tertiary-container);background:var(--tertiary-container);width:88px;height:88px;border-radius:36px 36px 16px 36px;margin-bottom:24px;font-size:44px;transform:none}.contacts>.empty{min-height:200px;padding:28px;font-size:12px}.contacts .empty-symbol{width:60px;height:60px;font-size:30px;border-radius:24px 24px 10px 24px}.back-button{display:none}
/* Overview, settings and extensions */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card,.panel{border-radius:24px;background:var(--surface-container);padding:24px;border:0}.card:first-child{background:var(--primary-container);color:var(--on-primary-container);border-radius:28px 28px 8px 28px}.card:nth-child(2){background:var(--tertiary-container);color:var(--on-tertiary-container);border-radius:28px 8px 28px 28px}.card h3{font-size:13px;font-weight:500;margin-bottom:16px}.card .stat{font-size:36px;letter-spacing:0;font-weight:500;line-height:1.1;margin:20px 0 14px}.card .stat small{font-size:16px;letter-spacing:0;opacity:.75;margin-left:8px}.card p{font-size:11px;margin:0;opacity:.8;line-height:1.7}.panel{margin-top:20px;max-width:1060px;background:var(--surface-low)}.panel h2{font-size:20px;margin-bottom:24px}.panel p{font-size:13px;line-height:1.8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.wide{grid-column:1/-1}label{display:block;font-size:13px;font-weight:500;color:var(--on-surface-variant)}label input,label textarea,label select{display:block;width:100%;margin-top:10px;min-height:54px;padding:15px 16px;border:0;border-bottom:1px solid var(--outline);border-radius:12px 12px 3px 3px;background:var(--surface-high);color:var(--on-surface);font-size:14px;line-height:1.5}label input:focus,label textarea:focus{border-bottom:2px solid var(--primary)}label input::placeholder,label textarea::placeholder{color:var(--on-surface-variant);opacity:.8}label textarea{min-height:130px;resize:vertical;line-height:1.7}label small{display:block;font-size:11px;font-weight:400;line-height:1.8;color:var(--on-surface-variant);margin-top:8px}.check{display:flex;align-items:center;gap:12px;min-height:48px;cursor:pointer}.check input{appearance:none;position:relative;margin:0;width:52px;height:32px;min-height:32px;padding:0;flex-shrink:0;border:2px solid var(--outline);border-radius:18px;background:var(--surface-highest);cursor:pointer}.check input:after{content:"";position:absolute;width:20px;height:20px;top:4px;left:4px;transform:translateX(0);border-radius:50%;background:var(--outline)}.check input:checked{border-color:var(--primary);background:var(--primary)}.check input:checked:after{width:20px;height:20px;top:4px;left:4px;transform:translateX(20px);background:var(--on-primary)}.check input:focus{border:2px solid var(--outline)}.check input:checked:focus{border-color:var(--primary)}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}.notice{font-size:12px;line-height:1.9;color:var(--on-secondary-container);background:var(--secondary-container);padding:16px 20px;border-radius:18px;margin-bottom:24px}.badge{font-size:11px;font-weight:500;background:var(--success-container);color:var(--success);border-radius:20px;padding:7px 11px}.badge.off{background:var(--surface-highest);color:var(--on-surface-variant)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--on-surface-variant);font-size:11px;font-weight:500;padding:14px;border-bottom:1px solid var(--outline-variant)}td{padding:20px 14px;border-bottom:1px solid var(--outline-variant);overflow-wrap:anywhere}tr:last-child td{border:0}
/* Dialogs and feedback */
dialog{width:min(600px,calc(100vw - 32px));max-height:90dvh;padding:24px;border:0;border-radius:32px;background:var(--surface-high);color:var(--on-surface);box-shadow:0 18px 80px #0003}dialog::backdrop{background:#14101980;backdrop-filter:blur(4px)}dialog label input,dialog label textarea{background:var(--surface-highest)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.modal-heading h2{font-size:24px;margin:0}.modal-heading button{width:40px;height:40px;border-radius:50%;font-size:24px;background:var(--surface-highest);color:var(--on-surface-variant)}#editor-fields{display:grid;gap:20px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);background:var(--inverse);color:var(--on-inverse);border-radius:16px;padding:16px 24px;font-size:13px;line-height:1.6;box-shadow:var(--shadow);z-index:10}#toast.error{background:var(--error-container);color:var(--error)}#login-error{font-size:13px;color:var(--error);margin-top:16px}
/* Login */
.login-shell{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:24px;background:var(--surface)}.login-card{align-self:center;justify-self:center;width:100%;max-width:440px;padding:36px}.login-card h1{font-size:32px;letter-spacing:0;line-height:1.4}.login-card .muted{font-size:14px}.login-card label{margin:32px 0 24px}.login-card input{background:var(--surface-container)}.login-card .primary{width:100%;justify-content:space-between;min-height:56px;font-size:15px}.login-card .fine{font-size:11px;margin:28px 0 0}.login-art{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:64px;background:var(--primary-container);color:var(--on-primary-container);border-radius:48px 48px 16px 48px}.art-content{position:relative;z-index:1;max-width:380px}.art-content .pill{background:var(--tertiary-container);color:var(--on-tertiary-container);padding:10px 16px;font-size:11px;letter-spacing:1.3px}.art-content h2{font-size:clamp(28px,3vw,40px);font-weight:500;letter-spacing:0;line-height:1.35;margin:30px 0 24px}.art-content p{font-size:14px;line-height:1.8}.sample{display:flex;gap:18px;align-items:center;border-radius:28px 28px 8px 28px;background:var(--surface);padding:24px;margin-top:45px;font-size:14px;font-weight:500;max-width:350px}.sample>span{color:var(--primary)}.orbit{position:absolute;background:var(--tertiary-container);width:340px;height:340px;border-radius:40%;right:-170px;top:-170px;transform:rotate(20deg)}.orbit.two{width:380px;height:380px;border-radius:50%;right:-190px;top:auto;bottom:-190px;background:color-mix(in srgb,var(--primary) 14%,var(--primary-container))}[hidden]{display:none!important}
/* Adaptive navigation and panes */
@media(min-width:1600px){.content{padding-left:40px;padding-right:40px}.conversation-layout{grid-template-columns:328px minmax(0,1fr)}.bubble-wrap{max-width:76%}}
@media(min-width:761px) and (max-width:1150px){:root{--nav-width:88px}.sidebar{padding:24px 8px}.brand{padding:0;justify-content:center}.brand>span,.workspace-label,.nav-label,.nav-item b,.sidebar-bottom{display:none}.brand{margin-bottom:32px}.sidebar nav{gap:10px;margin-bottom:24px}.nav-item{justify-content:center;padding:12px;font-size:0;gap:0}.nav-item>span{width:28px;height:28px}.content{padding:16px 20px 24px}.conversation-layout{grid-template-columns:250px minmax(0,1fr)}h1{font-size:28px}}
@media(max-width:760px){
  :root{--nav-width:0px}.workspace main{margin-left:0;width:100%}.sidebar{inset:auto 0 0;width:100%;height:88px;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:row;align-items:center;gap:2px;overflow-x:auto;overflow-y:hidden;background:var(--surface-container);border-radius:24px 24px 0 0;scrollbar-width:none;box-shadow:0 -4px 24px #00000006}.sidebar::-webkit-scrollbar{display:none}.sidebar>.brand,.workspace-label,.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:contents}.nav-item{min-width:88px;height:72px;min-height:72px;flex-shrink:0;flex-direction:column;justify-content:center;padding:6px 4px;gap:5px;font-size:11px;border-radius:20px}.nav-item>span{width:56px;height:30px;border-radius:18px}.nav-item>span>svg{width:22px;height:22px}.nav-item.active{background:transparent}.nav-item.active>span{background:var(--secondary-container);color:var(--on-secondary-container)}.nav-item:hover,.nav-item.active:hover{background:var(--surface-high)}.nav-item b{display:none}.topbar{height:64px;padding:0 20px}.breadcrumb,.slash{display:none}.topbar-right{gap:10px}.topbar-right .pill{display:none}.topbar-right .tiny{width:32px;height:32px}.icon-button{width:40px;height:40px}.content{padding:10px 12px 108px}.content:has(>.conversation-layout){height:calc(100dvh - 64px - 88px);padding-bottom:12px}.page-heading{gap:10px;align-items:flex-start;margin-bottom:18px}.page-heading h1{font-size:24px;letter-spacing:0;margin-bottom:6px}.page-heading p{font-size:11px;line-height:1.6}.page-heading>div{min-width:0}.page-heading>.primary,#new-web,#add-extension{min-height:44px;padding:11px 14px;font-size:12px;border-radius:17px;gap:6px}.page-heading>.primary svg{width:18px;height:18px}.conversation-layout{grid-template-columns:1fr;border-radius:24px;gap:0}.conversation-layout.show-chat .conversation-list{display:none}.conversation-layout:not(.show-chat) .chat{display:none}.conversation-list,.chat{border-radius:24px}.list-header{padding:20px 16px 14px}.contact{min-height:98px}.back-button{display:flex;align-items:center;justify-content:center;width:32px;height:40px;flex-shrink:0;padding:0;border-radius:20px;color:var(--primary);font-size:26px}.chat-header{min-height:78px;padding:14px 12px;gap:8px}.chat-header>.avatar{width:32px;height:32px;border-radius:12px 12px 6px 12px}.chat-header h3{font-size:14px}.chat-header small{font-size:11px}.chat-header .secondary{padding:8px 12px;min-height:36px;font-size:11px}.messages{padding:18px 14px}.message{gap:7px;margin:19px 0}.message .avatar{width:25px;height:25px;font-size:11px}.bubble-wrap{max-width:85%}.bubble{font-size:13px;line-height:1.8;padding:12px 15px;border-radius:5px 22px 22px 22px}.out .bubble{border-radius:22px 5px 22px 22px}.message time{font-size:11px}.date-divider{font-size:11px;gap:12px;margin-bottom:20px}.composer{margin:0 10px 10px;padding:10px 12px;border-radius:22px}.composer textarea{font-size:13px;min-height:48px;max-height:110px}.composer-bottom .fine{max-width:58%;font-size:11px;line-height:1.6}.composer .primary{min-height:40px;padding:9px 17px;font-size:12px}.composer-top>span{display:none}.history-footer{padding:13px 17px;font-size:11px}.empty{font-size:13px;min-height:180px;padding:24px}.empty-symbol{width:72px;height:72px;font-size:36px;border-radius:28px 28px 12px 28px}.cards{grid-template-columns:1fr;gap:10px}.card{padding:22px}.card .stat{font-size:36px}.panel{padding:22px 18px;border-radius:24px}.form-grid{grid-template-columns:1fr;gap:22px}.notice{font-size:11px;padding:14px 17px;border-radius:16px;margin-bottom:20px}label input,label textarea{font-size:16px}.form-actions{flex-wrap:wrap;gap:8px}.form-actions>button{font-size:12px;padding:10px 16px}.login-shell{grid-template-columns:1fr;padding:16px}.login-art{display:none}.login-card{padding:28px}.login-card h1{font-size:31px}dialog{padding:24px;max-height:85dvh;border-radius:28px}#toast{bottom:106px;min-width:200px;text-align:center;font-size:12px}.modal-heading h2{font-size:23px}
}
@media(max-width:360px){.page-heading h1{font-size:22px}.page-heading p{font-size:11px}.chat-header{gap:6px;padding-left:8px;padding-right:8px}.chat-header>.avatar{display:none}.page-heading>.primary,#new-web,#add-extension{padding:10px 12px}.topbar{padding:0 16px}}
.theme-control{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:24px;background:var(--surface-container);color:var(--on-surface-variant)}.theme-control>svg{width:20px;height:20px}.theme-control select{display:block;width:auto;min-height:26px;border:0;border-radius:0;padding:0 2px;margin:0;background:transparent;color:var(--on-surface-variant);font-size:12px;line-height:1.5;cursor:pointer}.theme-control select:focus-visible{outline-offset:2px}.pill svg{width:14px;height:14px}.empty-symbol svg{width:42px;height:42px;stroke-width:1.5}.contact .avatar svg{width:20px;height:20px}.chat-header>.avatar svg{width:23px;height:23px}.sample>svg{width:24px;height:24px}@media(max-width:760px){.theme-control{padding:7px 9px;gap:6px}.theme-control select{font-size:11px}.empty-symbol svg{width:34px;height:34px}.chat-header>.avatar svg{width:19px;height:19px}}
.mobile-nav-trigger{display:none}#mobile-menu{max-width:440px}#mobile-menu nav{display:grid;margin:0;gap:6px}#mobile-menu .nav-item{font-size:14px;min-height:56px;background:var(--surface-container)}#mobile-menu .nav-item:hover{background:var(--secondary-container)}@media(max-width:760px){.sidebar{overflow:hidden;gap:0;justify-content:space-around}.sidebar>.nav-item,.sidebar nav>.nav-item{min-width:0;flex:1;font-size:11px}.sidebar nav>.nav-item:is([data-page="files"],[data-page="reminders"],[data-page="settings"],[data-page="skills"],[data-page="plugins"]){display:none}.sidebar .mobile-nav-trigger{display:flex}#mobile-menu .nav-item{flex-direction:row;justify-content:flex-start;min-height:56px;height:auto;padding:12px 18px;font-size:14px;gap:12px}#mobile-menu .nav-item>span{width:28px;height:28px}#mobile-menu .nav-item.active{background:var(--secondary-container)}}
label input,label textarea,label select{font-weight:400}
/* Private web conversation attachments. */
.attachment-tools{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.attachment-tools .icon-button{width:40px;height:40px;flex-shrink:0;background:var(--surface-container);color:var(--primary)}.attachment-tools .fine{max-width:none;font-size:11px}.draft-files{display:flex;gap:8px;overflow-x:auto;max-height:140px;padding:0}.draft-files:not(:empty){padding:2px 0 10px}.draft-file{display:flex;align-items:center;gap:8px;min-width:160px;max-width:240px;padding:8px 12px;border-radius:16px;background:var(--secondary-container);color:var(--on-secondary-container);flex-shrink:0}.draft-file>span svg{width:20px;height:20px}.draft-file>div{min-width:0;flex:1}.draft-file strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.draft-file small{display:block;font-size:11px;margin-top:3px;color:var(--on-surface-variant)}.draft-file>button{width:28px;height:32px;flex-shrink:0;font-size:20px}.draft-file.upload-error{background:var(--error-container);color:var(--error)}.is-dragging{border-color:var(--primary);background:var(--primary-container)}.message-files{display:grid;gap:8px;margin-top:8px}.attachment-card{display:flex;align-items:center;gap:10px;min-width:230px;max-width:380px;padding:12px;border-radius:18px;background:var(--surface-highest);color:var(--on-surface)}.out .attachment-card{background:var(--primary-container);color:var(--on-primary-container)}.file-icon{display:flex;align-items:center;justify-content:center;width:32px;height:36px;flex-shrink:0;color:var(--primary)}.file-label{flex:1;min-width:0}.file-label strong{display:block;font-weight:500;font-size:12px;overflow-wrap:anywhere}.file-label small{display:block;font-size:11px;opacity:.75;margin-top:4px}.file-action{min-width:36px;min-height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--primary);border-radius:20px;padding:6px}.file-action:hover{background:var(--surface-container)}.file-action svg{width:19px;height:19px}#file-preview{width:min(960px,95vw)}#file-preview-image{display:block;max-width:100%;max-height:70dvh;margin:auto;object-fit:contain;border-radius:16px}@media(max-width:760px){.attachment-card{min-width:0;width:100%;gap:6px;padding:10px;max-width:280px}.message-files{min-width:min(240px,100%)}.file-icon{width:24px}.attachment-tools{gap:6px}.attachment-tools .fine{font-size:11px}.draft-file{min-width:155px;max-width:210px}.composer-bottom .attachment-tools .fine{max-width:none}.attachment-tools .icon-button{width:36px;height:36px}.file-label strong{font-size:11px}}

/* Unslop detail pass: original palette and product layout are intentionally preserved. */
body{font-variant-numeric:tabular-nums}
svg,.nav-item>span>svg,.theme-control>svg,.contact .avatar svg,.chat-header>.avatar svg,.primary svg,.secondary svg,.file-action svg,.workspace-label>svg{width:18px;height:18px;stroke-width:1.5}
.empty-symbol svg{width:28px;height:28px;stroke-width:1.5}
.nav-item b{font-weight:400;background:transparent;color:var(--on-surface-variant);padding:0 4px;border-radius:0}
.nav-item,.contact-title,.list-label{font-size:14px}
.contact-title strong,.file-label strong,.draft-file strong{font-weight:500}
.contact-title time,.message time,.file-label small,.draft-file small{font-size:12px;line-height:1.5}
.contact-status,.connection{font-size:12px}
.file-label strong{font-size:13px;line-height:1.5}
.message .avatar{font-size:11px}
.composer textarea{font-size:14px;line-height:1.7}
.composer-bottom .attachment-tools .fine{font-size:11px;line-height:1.7;max-width:none}
.attachment-card{gap:12px;border-radius:16px;padding:12px}
.file-action{min-width:40px;min-height:40px}
.is-generating #web-model::before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;vertical-align:middle;border-radius:50%;background:var(--primary)}
kbd{display:inline-block;vertical-align:baseline;min-width:16px;padding:0 4px;border:1px solid var(--outline-variant);border-radius:4px;background:var(--surface-low);color:var(--on-surface-variant);font-family:ui-monospace,"SFMono-Regular",Consolas,monospace;font-size:11px;line-height:16px;font-weight:400}
.login-art .pill{padding:0;background:transparent;border-radius:0;letter-spacing:0;font-size:13px;color:var(--on-primary-container)}
.login-art .sample{border-radius:16px;padding:20px;margin-top:32px;font-size:13px;font-weight:400}
.login-art .orbit{display:none}
@media(max-width:760px){
  .sidebar .nav-item{font-size:11px}
  .chat-header h3{font-size:14px;font-weight:500}
  .chat-header small,.contact-title time,.message time,.file-label small,.draft-file small{font-size:11px}
  .bubble{font-size:14px;line-height:1.75}
  .bubble-wrap{max-width:85%}
  .attachment-card{gap:8px;padding:12px}
  .file-label strong{font-size:12px}
  .composer-bottom{gap:8px}
  .attachment-tools .icon-button{width:36px;height:40px}
  .composer-bottom .attachment-tools .fine{font-size:11px;max-width:none}
  .attachment-tools kbd{display:none}
  .attachment-tools .shortcut-hint{display:none}
  .page-heading h1{font-size:24px}
  .page-heading p{font-size:12px}
  .page-heading>.primary,#new-web,#add-extension{min-height:44px}
}
@media(min-width:761px) and (max-width:1150px){.sidebar .nav-item{font-size:0}}

/* Interaction timing: feedback 140ms, content 180ms, dialog 200/140ms. */
@media(prefers-reduced-motion:no-preference){
  button{transition:background-color 140ms var(--effects),color 140ms var(--effects),border-color 140ms var(--effects),transform 140ms var(--effects),box-shadow 140ms var(--effects)}
  .primary:active,.secondary:active,.nav-item:active,.icon-button:active,.file-action:active{transform:scale(.98)}
  .contact{transition:background-color 140ms var(--effects),color 140ms var(--effects),box-shadow 140ms var(--effects)}
  .composer{transition:border-color 160ms var(--effects),background-color 160ms var(--effects)}
  .check input:after{transition:transform 180ms var(--effects)}
  .draft-file{transition:background-color 140ms var(--effects),color 140ms var(--effects)}
  dialog[open]::backdrop{animation:backdrop-in 180ms var(--effects)}
  dialog.is-closing::backdrop{animation:backdrop-out 140ms var(--effects) forwards}
  @keyframes backdrop-in{from{opacity:0}to{opacity:1}}
  @keyframes backdrop-out{from{opacity:1}to{opacity:0}}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active{transform:none!important}}

@media(prefers-reduced-motion:no-preference){
  .draft-file.is-uploading small{color:var(--primary)}
}
.login-card #login-form label{margin:24px 0}.login-card #login-form label+label{margin-top:20px}.login-alternative{margin-top:28px;padding-top:20px;border-top:1px solid var(--outline-variant);font-size:13px;color:var(--on-surface-variant)}.login-alternative>span{font-weight:500}.login-alternative p{margin:12px 0 8px;line-height:1.8}.login-alternative small{font-size:11px;line-height:1.7}.login-alternative code{background:var(--surface-high);border-radius:6px;padding:3px 6px;font-size:12px;color:var(--primary)}#magic-login .notice{margin-top:24px}#magic-login .secondary{width:100%;margin-top:12px}#magic-login-error{font-size:13px;color:var(--error);line-height:1.7}button.tiny{min-width:40px;min-height:40px}#account-setup-hint{line-height:1.8}
.login-alternative>.secondary{display:flex;width:100%;margin:16px 0 12px}#magic-key{font-family:ui-monospace,"SFMono-Regular",Consolas,monospace;letter-spacing:.12em;font-size:18px}#magic-login label{margin:20px 0 24px}#magic-login-error:empty{display:none}

/* Keep account controls reachable in landscape and shorter windows. */
@media(min-width:761px){
  .sidebar{overflow:hidden}
  .sidebar>.brand,.sidebar>.workspace-label,.sidebar-bottom{flex-shrink:0}
  .sidebar-navigation{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .sidebar-bottom{margin-top:0;padding-top:12px}
}
#header-logout{width:36px;height:36px;background:transparent}
.chat-header>div{min-width:0;flex:1}
.chat-header h3,.chat-header small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
#web-delete{width:36px;height:36px;background:transparent;color:var(--error)}
@media(max-width:760px){
  .sidebar-navigation{display:contents}
  .topbar-right{gap:8px}
  #web-settings{padding:8px 12px}
  .chat-header{gap:8px}
}
@media(min-width:761px) and (max-height:620px){
  .sidebar{padding-top:16px;padding-bottom:12px}
  .workspace-label{margin-top:16px;margin-bottom:16px}
  .sidebar-bottom .connection{margin-top:4px;margin-bottom:8px}
}

/* Full sidebar owns the account controls; compact layouts use the header. */
.profile{padding:8px;gap:4px}
.profile-account{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-align:left;padding:4px;border-radius:16px}
.profile-account>span:last-child{min-width:0}
.profile-account #account-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-account:hover{background:var(--surface-high)}
.profile #logout{width:36px;height:36px;background:transparent;color:var(--primary)}
@media(min-width:1151px){#account-settings,#header-logout{display:none}}

/* Default forest palette follows status.mon3tr.dpdns.org (Beszel). */
:root[data-accent="forest"]{--surface:#fafaf9;--surface-dim:#e8eeea;--surface-low:#f1f5f2;--surface-container:#e8eeea;--surface-high:#e1e8e3;--surface-highest:#d8e2da;--on-surface:#1b261f;--on-surface-variant:#4e5f54;--outline:#75877b;--outline-variant:#c7d3ca;--secondary-container:#dce9df;--on-secondary-container:#243e2f;--tertiary:#476967;--tertiary-container:#d5e9e6;--on-tertiary-container:#173432;--inverse:#263b2e;--on-inverse:#edf3ef;--primary:#3a664f;--on-primary:#ffffff;--primary-container:#d2e9d9;--on-primary-container:#123622}
:root[data-accent="forest"][data-theme="dark"]{--surface:#101412;--surface-dim:#101412;--surface-low:#191f1c;--surface-container:#202a23;--surface-high:#27332b;--surface-highest:#2d3d33;--on-surface:#e5ebe7;--on-surface-variant:#a4afa8;--outline:#708579;--outline-variant:#35433b;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#9bc6ae;--on-primary:#13271c;--primary-container:#2d4838;--on-primary-container:#d6eddf}
@media(prefers-color-scheme:dark){:root[data-accent="forest"]:not([data-theme="light"]):not([data-theme="dark"]){--surface:#101412;--surface-dim:#101412;--surface-low:#191f1c;--surface-container:#202a23;--surface-high:#27332b;--surface-highest:#2d3d33;--on-surface:#e5ebe7;--on-surface-variant:#a4afa8;--outline:#708579;--outline-variant:#35433b;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#9bc6ae;--on-primary:#13271c;--primary-container:#2d4838;--on-primary-container:#d6eddf}}
:root[data-accent="blue"]{--surface:#fafaf9;--surface-dim:#e8eeea;--surface-low:#f2f3f2;--surface-container:#eaeceb;--surface-high:#e3e5e4;--surface-highest:#dcdfdd;--on-surface:#202422;--on-surface-variant:#545b57;--outline:#75877b;--outline-variant:#ccd1ce;--secondary-container:#dce9df;--on-secondary-container:#243e2f;--tertiary:#476967;--tertiary-container:#d5e9e6;--on-tertiary-container:#173432;--inverse:#263b2e;--on-inverse:#edf3ef;--primary:#315f9c;--on-primary:#ffffff;--primary-container:#d6e4ff;--on-primary-container:#102e54}
:root[data-accent="blue"][data-theme="dark"]{--surface:#161718;--surface-dim:#101412;--surface-low:#1c1e1f;--surface-container:#242728;--surface-high:#2b2f30;--surface-highest:#34393a;--on-surface:#e7eae8;--on-surface-variant:#b0b8b3;--outline:#708579;--outline-variant:#414846;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#aacbff;--on-primary:#113052;--primary-container:#2c4668;--on-primary-container:#d8e7ff}
@media(prefers-color-scheme:dark){:root[data-accent="blue"]:not([data-theme="light"]):not([data-theme="dark"]){--surface:#161718;--surface-dim:#101412;--surface-low:#1c1e1f;--surface-container:#242728;--surface-high:#2b2f30;--surface-highest:#34393a;--on-surface:#e7eae8;--on-surface-variant:#b0b8b3;--outline:#708579;--outline-variant:#414846;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#aacbff;--on-primary:#113052;--primary-container:#2c4668;--on-primary-container:#d8e7ff}}
:root[data-accent="amber"]{--surface:#fafaf9;--surface-dim:#e8eeea;--surface-low:#f2f3f2;--surface-container:#eaeceb;--surface-high:#e3e5e4;--surface-highest:#dcdfdd;--on-surface:#202422;--on-surface-variant:#545b57;--outline:#75877b;--outline-variant:#ccd1ce;--secondary-container:#dce9df;--on-secondary-container:#243e2f;--tertiary:#476967;--tertiary-container:#d5e9e6;--on-tertiary-container:#173432;--inverse:#263b2e;--on-inverse:#edf3ef;--primary:#805719;--on-primary:#ffffff;--primary-container:#ffdfae;--on-primary-container:#432b06}
:root[data-accent="amber"][data-theme="dark"]{--surface:#161718;--surface-dim:#101412;--surface-low:#1c1e1f;--surface-container:#242728;--surface-high:#2b2f30;--surface-highest:#34393a;--on-surface:#e7eae8;--on-surface-variant:#b0b8b3;--outline:#708579;--outline-variant:#414846;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#eac087;--on-primary:#3e2a0d;--primary-container:#5a4222;--on-primary-container:#ffe5bd}
@media(prefers-color-scheme:dark){:root[data-accent="amber"]:not([data-theme="light"]):not([data-theme="dark"]){--surface:#161718;--surface-dim:#101412;--surface-low:#1c1e1f;--surface-container:#242728;--surface-high:#2b2f30;--surface-highest:#34393a;--on-surface:#e7eae8;--on-surface-variant:#b0b8b3;--outline:#708579;--outline-variant:#414846;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#eac087;--on-primary:#3e2a0d;--primary-container:#5a4222;--on-primary-container:#ffe5bd}}
:root[data-accent="graphite"]{--surface:#fafaf9;--surface-dim:#e8eeea;--surface-low:#f2f3f2;--surface-container:#eaeceb;--surface-high:#e3e5e4;--surface-highest:#dcdfdd;--on-surface:#202422;--on-surface-variant:#545b57;--outline:#75877b;--outline-variant:#ccd1ce;--secondary-container:#dce9df;--on-secondary-container:#243e2f;--tertiary:#476967;--tertiary-container:#d5e9e6;--on-tertiary-container:#173432;--inverse:#263b2e;--on-inverse:#edf3ef;--primary:#555e5a;--on-primary:#ffffff;--primary-container:#dfe6e1;--on-primary-container:#27312b}
:root[data-accent="graphite"][data-theme="dark"]{--surface:#161718;--surface-dim:#101412;--surface-low:#1c1e1f;--surface-container:#242728;--surface-high:#2b2f30;--surface-highest:#34393a;--on-surface:#e7eae8;--on-surface-variant:#b0b8b3;--outline:#708579;--outline-variant:#414846;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#bec9c2;--on-primary:#25312a;--primary-container:#3d4941;--on-primary-container:#e2ebe5}
@media(prefers-color-scheme:dark){:root[data-accent="graphite"]:not([data-theme="light"]):not([data-theme="dark"]){--surface:#161718;--surface-dim:#101412;--surface-low:#1c1e1f;--surface-container:#242728;--surface-high:#2b2f30;--surface-highest:#34393a;--on-surface:#e7eae8;--on-surface-variant:#b0b8b3;--outline:#708579;--outline-variant:#414846;--secondary-container:#273c30;--on-secondary-container:#e5ebe7;--tertiary:#93b8b6;--tertiary-container:#2a4140;--on-tertiary-container:#d8eeec;--inverse:#e5ebe7;--on-inverse:#19261e;--primary:#bec9c2;--on-primary:#25312a;--primary-container:#3d4941;--on-primary-container:#e2ebe5}}

.auth-loading{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:var(--on-surface-variant);padding:24px;text-align:center}
.auth-loading p{margin:0;font-size:14px}
.theme-color-button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin:-4px 0;padding:4px;border-radius:50%;color:var(--primary)}
.theme-color-button:hover{background:var(--surface-highest)}
.theme-color-button svg{width:18px;height:18px}
.color-options{display:grid;gap:8px;padding:0;margin:20px 0 0;border:0}
.color-option{display:flex;align-items:center;gap:12px;margin:0;padding:12px;border:1px solid var(--outline-variant);border-radius:12px;cursor:pointer;color:var(--on-surface)}
.color-option:has(input:checked){border-color:var(--primary);background:var(--secondary-container)}
dialog .color-option input{width:18px;height:18px;min-height:18px;margin:0;padding:0;flex-shrink:0;accent-color:var(--primary)}
.color-option small{margin:0;line-height:1.5}
.color-dot{width:24px;height:24px;flex-shrink:0;border-radius:50%;border:1px solid #0002}
.color-dot.forest{background:#9bc6ae}.color-dot.purple{background:#b99ce9}.color-dot.blue{background:#aacbff}.color-dot.amber{background:#eac087}.color-dot.graphite{background:#bec9c2}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* A compact disclosure beside each reply, with a timeline inside. */
.chat-activity {
  width: fit-content;
  max-width: 100%;
  margin-bottom: 8px;
  color: var(--on-surface-variant);
  font-size: 12px;
}
.chat-activity summary {
  display: flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  min-height: 32px;
  padding: 4px 12px;
  border-radius: 8px;
  background: var(--surface-container);
  cursor: pointer;
  list-style: none;
}
.chat-activity summary::-webkit-details-marker { display: none; }
.chat-activity summary:hover { background: var(--surface-high); }
.chat-activity summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.activity-indicator { width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--outline); }
.chat-activity.is-active .activity-indicator { background: var(--primary); }
.activity-stage { min-width: 0; overflow-wrap: anywhere; font-weight: 500; }
.chat-activity .activity-elapsed {
  margin: 0;
  padding-left: 8px;
  border-left: 1px solid var(--outline-variant);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.activity-chevron {
  width: 6px;
  height: 6px;
  margin-left: 2px;
  flex: none;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(-45deg);
}
.chat-activity[open] .activity-chevron { transform: translateY(-2px) rotate(45deg); }
.activity-body {
  display: grid;
  gap: 16px;
  width: 24rem;
  max-width: 100%;
  margin-top: 8px;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--surface-container);
  overflow-wrap: anywhere;
}
.activity-body h4 { margin: 0 0 8px; font-size: 11px; font-weight: 500; }
.activity-body .fine { margin: 0; }
.thinking-summary { margin: 0; white-space: pre-wrap; font-size: 13px; line-height: 1.6; color: var(--on-surface); }
.thinking-summary + .thinking-summary { margin-top: 8px; }
.thinking-summary strong { font-weight: 600; }
.activity-events, .task-plan { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.activity-events { margin-left: 3px; border-left: 1px solid var(--outline-variant); }
.activity-event {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  padding: 2px 0 2px 12px;
  line-height: 1.5;
}
.activity-event::before {
  content: '';
  position: absolute;
  top: 8px;
  left: -3px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--outline);
}
.activity-event.running::before { background: var(--primary); }
.activity-event.failed::before { background: var(--error); }
.activity-event small { white-space: nowrap; font-size: 11px; }
.activity-event.failed .activity-result { color: var(--error); }
.activity-event.running .activity-result { color: var(--primary); }
.activity-count { font-variant-numeric: tabular-nums; }
.task-step { line-height: 1.6; color: var(--on-surface); }
.task-step > span { display: inline-block; min-width: 44px; margin-right: 8px; font-size: 11px; color: var(--on-surface-variant); }
.task-step.inProgress > span { color: var(--primary); }

/* Scope view transitions to the pane being replaced so controls stay in place. */
:root[data-relay-transition] {
  view-transition-name: none;
  --relay-in-x: 0px;
  --relay-out-x: 0px;
  --relay-in-y: 4px;
  --relay-out-y: -2px;
}
:root[data-relay-transition="messages"] {
  --relay-in-y: 2px;
  --relay-out-y: -1px;
}
:root[data-relay-transition="forward"],
:root[data-relay-transition="back"] {
  --relay-in-y: 0px;
  --relay-out-y: 0px;
}
:root[data-relay-transition="forward"] {
  --relay-in-x: 12px;
  --relay-out-x: -6px;
}
:root[data-relay-transition="back"] {
  --relay-in-x: -12px;
  --relay-out-x: 6px;
}
.relay-transition-surface { view-transition-name: relay-content }
:root[data-relay-transition]::view-transition { pointer-events: none }
::view-transition-group(relay-content) { animation: none }
::view-transition-image-pair(relay-content) { isolation: isolate }
::view-transition-old(relay-content),
::view-transition-new(relay-content) {
  mix-blend-mode: normal;
  height: auto;
}
::view-transition-old(relay-content) { animation: relay-content-out 180ms ease-in both }
::view-transition-new(relay-content) { animation: relay-content-in 240ms cubic-bezier(.2,.7,.25,1) both }
@keyframes relay-content-out {
  from { opacity: 1; transform: translate(0, 0) }
  to { opacity: 0; transform: translate(var(--relay-out-x), var(--relay-out-y)) }
}
@keyframes relay-content-in {
  from { opacity: 0; transform: translate(var(--relay-in-x), var(--relay-in-y)) }
  to { opacity: 1; transform: translate(0, 0) }
}
@media(prefers-reduced-motion:reduce) {
  ::view-transition-old(relay-content),
  ::view-transition-new(relay-content) { animation: none }
}

/* Model controls sit with the message composer and open in a compact sheet. */
#web-composer {
  border-radius: 28px;
  padding: 12px 14px 10px;
}
#web-composer .composer-bottom { gap: 6px }
#web-composer .attachment-tools .icon-button,
#web-model-button {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: transparent;
  color: var(--on-surface);
}
#web-model-button:hover:not(:disabled),
#web-composer .attachment-tools .icon-button:hover {
  background: var(--surface-container);
}
#web-model-button svg { width: 24px; height: 24px }
#web-model-button[aria-expanded="true"] { background: var(--surface-container) }
#web-composer #web-send {
  width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0;
  border-radius: 50%;
  justify-content: center;
}
#web-send svg { width: 22px; height: 22px }
#web-settings { width: 40px; height: 40px; flex-shrink: 0 }

#web-model-sheet {
  width: min(400px, calc(100vw - 24px));
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--on-surface) 11%, transparent);
  border-radius: 28px;
  background: color-mix(in srgb, var(--surface-container) 72%, Canvas);
  box-shadow: 0 16px 56px #0004;
}
#web-model-sheet::backdrop { background: #10101555; backdrop-filter: blur(4px) }
#web-model-controls { min-height: 184px }
.model-sheet-loading {
  display: grid;
  min-height: 184px;
  place-items: center;
  color: var(--on-surface-variant);
  margin: 0;
}
.model-sheet-handle {
  display: none;
  height: 4px;
  width: 32px;
  border-radius: 4px;
  background: var(--outline-variant);
  margin: 0 auto 12px;
}
.model-sheet-close {
  position: absolute;
  z-index: 1;
  right: 12px;
  top: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 20px;
}
.model-sheet-heading {
  position: relative;
  display: flex;
  width: fit-content;
  max-width: calc(100% - 48px);
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0 auto 16px;
  border-radius: 12px;
  font-size: 17px;
}
.model-sheet-heading:focus-within { outline: 2px solid var(--primary); outline-offset: 4px }
.model-sheet-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600 }
.model-sheet-effort, .model-sheet-heading svg { color: var(--on-surface-variant); flex-shrink: 0 }
.model-sheet-heading svg { width: 16px; height: 16px }
.model-sheet-heading select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.model-sheet-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--on-surface-variant);
  margin: 0 4px 4px;
  font-size: 13px;
}
#web-model-effort-auto {
  min-height: 32px;
  padding: 0 8px;
  border-radius: 8px;
  color: var(--on-surface-variant);
  font-size: 13px;
}
#web-model-effort-auto[aria-pressed="true"] { color: var(--primary) }
#web-model-effort-auto:hover { background: var(--surface-high) }
.effort-track {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: repeat(var(--effort-count), minmax(0, 1fr));
  min-height: 48px;
  border-radius: 24px;
  background: var(--surface-highest);
}
.effort-track[hidden] { display: none }
.effort-fill, .effort-thumb { position: absolute; pointer-events: none }
.effort-fill {
  z-index: -1;
  inset: 5px auto 5px 5px;
  width: max(0px, calc(var(--effort-fill) - 10px));
  border-radius: 20px;
  background: var(--primary);
  opacity: 0;
}
.effort-thumb {
  z-index: 1;
  left: var(--effort-position);
  top: 50%;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--on-primary);
  box-shadow: 0 1px 4px #0003;
  transform: translate(-50%, -50%);
  opacity: 0;
}
.effort-track.has-selection .effort-fill,
.effort-track.has-selection .effort-thumb { opacity: 1 }
.effort-track button {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 48px;
  padding: 0;
  border-radius: 24px;
}
.effort-track button span {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--on-surface) 45%, transparent);
}
.effort-track button[aria-pressed="true"] span { opacity: 0 }
.model-speed-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 16px 0 0;
  padding: 4px 12px;
  min-height: 44px;
  border-radius: 16px;
  background: var(--surface-high);
}
.model-speed-row select {
  width: auto;
  max-width: 75%;
  min-height: 36px;
  border: 0;
  padding: 4px 6px;
  color: var(--on-surface);
  background: var(--surface-high);
}
.model-sheet-status {
  margin: 8px 4px 0;
  font-size: 12px;
  color: var(--error);
}
@media (prefers-reduced-motion: no-preference) {
  .effort-fill { transition: width 280ms var(--spatial), opacity 160ms var(--effects) }
  .effort-thumb { transition: left 280ms var(--spatial), opacity 160ms var(--effects) }
  #web-model-sheet[open]::backdrop { animation: backdrop-in 260ms var(--effects) }
  #web-model-sheet.is-closing::backdrop { animation: backdrop-out 220ms var(--effects) forwards }
}
@media(max-width:760px) {
  #web-model-sheet {
    inset: auto 0 0;
    margin: 0 auto max(8px, env(safe-area-inset-bottom));
    padding: 12px 20px 20px;
    max-height: 72dvh;
  }
  .model-sheet-handle { display: block }
  .model-speed-row select { font-size: 16px }
}

/* Bot extensions */
.extensions-page{max-width:1080px;margin-inline:auto}
.extensions-list{overflow:hidden;border:1px solid var(--outline-variant);border-radius:16px;background:var(--surface-container)}
.extension-card+.extension-card{border-top:1px solid var(--outline-variant)}
.extension-row{display:grid;grid-template-columns:40px minmax(0,1fr) 144px 184px;align-items:center;gap:16px;padding:20px}
.extension-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--surface-high);color:var(--on-surface-variant)}
.extension-icon svg{width:20px;height:20px}
.extension-info{min-width:0}
.extension-info h3{margin:0;font-size:16px;font-weight:600;overflow-wrap:anywhere}
.extension-info p{margin:4px 0 0;color:var(--on-surface-variant);font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.extension-endpoint{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;color:var(--on-surface-variant);font-size:12px}
.extension-scope{display:grid;gap:4px;font-size:12px;color:var(--on-surface-variant)}
.extension-scope strong{color:var(--on-surface);font-size:13px;font-weight:500}
.extension-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.extension-state{display:flex;align-items:center;gap:8px;white-space:nowrap}
.extension-state .badge{padding:0;background:none;color:var(--primary);font-size:12px}
.extension-state .badge.off{color:var(--on-surface-variant)}
.extension-switch{position:relative;width:40px;height:32px;border-radius:8px;padding:0}
.extension-switch:before{content:"";position:absolute;inset:5px 0;background:var(--surface-highest);border:1px solid var(--outline-variant);border-radius:12px;transition:background 140ms var(--effects)}
.extension-switch span{position:absolute;inset:9px auto auto 4px;width:14px;height:14px;border-radius:50%;background:var(--on-surface-variant);transition:transform 140ms var(--effects)}
.extension-switch[aria-checked="true"]:before{background:var(--primary);border-color:var(--primary)}
.extension-switch[aria-checked="true"] span{background:var(--on-primary);transform:translateX(18px)}
.extension-switch:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.extension-edit{display:flex;gap:4px}
.extension-edit button,.extension-source summary{min-height:32px;padding:4px 8px;border-radius:8px;font-size:13px;color:var(--on-surface)}
.extension-edit button:hover,.extension-source summary:hover{background:var(--surface-high)}
.extension-edit .danger{color:var(--error)}
.extension-source{margin:0 20px 12px 68px}
.extension-source summary{width:max-content;cursor:pointer}
.extension-source pre{margin:4px 0 8px;padding:16px;border-radius:12px;background:var(--surface-high);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
#editor-fields [data-transport][hidden]{display:none}
@media(max-width:720px){
  .extension-row{grid-template-columns:32px minmax(0,1fr) auto;gap:8px 12px;padding:16px}
  .extension-icon{width:32px;height:32px;border-radius:8px}
  .extension-scope{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;gap:4px 8px}
  .extension-actions{grid-column:3;grid-row:1 / span 2;flex-direction:column;align-items:flex-end;gap:4px}
  .extension-source{margin:0 16px 12px 60px}
}
@media(max-width:380px){
  .extension-state .badge{display:none}
}
@media(prefers-reduced-motion:reduce){
  .extension-switch:before,.extension-switch span{transition:none}
}

.bot-files-page{max-width:1080px;margin-inline:auto}
.bot-files-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.bot-files-toolbar input{width:min(100%,360px);min-width:0;min-height:40px;padding:8px 12px;border:1px solid var(--outline-variant);border-radius:10px;background:var(--surface-low);color:var(--on-surface);font:inherit;font-size:13px}
.bot-files-toolbar span{flex-shrink:0;color:var(--on-surface-variant);font-size:13px}
.bot-files-list{border:1px solid var(--outline-variant);border-radius:16px;background:var(--surface-container)}
.bot-file-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 20px}
.bot-file-row+.bot-file-row{border-top:1px solid var(--outline-variant)}
.bot-file-name strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.bot-file-name small{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;color:var(--on-surface-variant);font-size:12px;overflow-wrap:anywhere}
.bot-file-actions{display:flex;justify-content:flex-end;gap:4px}
.bot-file-actions :is(button,a){display:inline-flex;align-items:center;min-height:36px;padding:4px 8px;border-radius:8px;font-size:13px;color:var(--on-surface);text-decoration:none}
.bot-file-actions :is(button,a):hover{background:var(--surface-high)}
.bot-file-actions .danger{color:var(--error)}
.bot-files-empty{margin:0;padding:24px;color:var(--on-surface-variant);font-size:14px}
@media(max-width:540px){
  .bot-file-row{grid-template-columns:40px minmax(0,1fr);gap:4px 12px;padding:12px}
  .bot-file-actions{grid-column:2;justify-content:flex-start}
}
