:root{--foreground:#20221f;--body-text:#343832;--secondary:#62685d;--muted-text:#747a70;--canvas:#f5f5f3;--surface:#fcfcfa;--soft-surface:#f0f1ed;--hover-surface:#e7ebe1;--selected-surface:#e3e7dc;--user-surface:#e9ede3;--border:#d9ddd3;--strong-border:#bec5b6;--focus:#7c896e;--link:#367654;--success-surface:#e7f0e8;--success-border:#b8d0be;--warning-surface:#f1eae2;--warning:#987452;}
:root[data-theme=dark]{--foreground:#eceee8;--body-text:#e0e3db;--secondary:#b5bcaf;--muted-text:#969f8f;--canvas:#191b18;--surface:#22251f;--soft-surface:#262a23;--hover-surface:#333a2d;--selected-surface:#394131;--user-surface:#30392a;--border:#393f33;--strong-border:#555f4d;--focus:#a8be90;--link:#97c6a3;--success-surface:#283a2d;--success-border:#4d7157;--warning-surface:#3c3025;--warning:#d4b18a;}
@font-face{font-family:Geist;src:url('/Geist-Regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:Bricolage;src:url('/Bricolage.woff2') format('woff2');font-display:swap}
:root{font-family:Geist,Arial,sans-serif;font-size:13px;color:var(--foreground);background:var(--canvas);--line:var(--border);--muted:var(--muted-text);--paper:var(--canvas);--ink:var(--foreground);font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}button:hover:not(:disabled){background:var(--hover-surface)}svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a{color:inherit}small{font-size:12px}.muted{color:var(--muted)}
#app{height:100dvh;display:grid;grid-template-columns:200px minmax(0,1fr);overflow:hidden}.sidebar{min-width:0;min-height:0;border-right:1px solid var(--line);padding:25px 12px 17px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:600;padding:0 9px;margin-bottom:30px}.brand-mark{width:22px;height:22px;position:relative;background:var(--foreground);clip-path:polygon(0 0,100% 0,100% 42%,42% 42%,100% 100%,0 100%,0 58%,58% 58%)}.sidebar-label{font-size:12px;color:var(--muted-text);display:flex;align-items:center;justify-content:space-between;padding:0 9px;margin-bottom:10px}.search{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--strong-border);margin:0 8px 11px;padding-bottom:7px}.search svg{width:13px;height:13px;color:var(--muted-text)}.search input{border:0;background:none;outline:none;width:100%;font-size:12px;min-width:0}.room-list{overflow-y:auto;min-height:0;flex:1}.room-item{width:100%;padding:8px 9px;display:flex;align-items:center;gap:8px;text-align:left;border-radius:0;min-height:35px;font-size:13px}.room-item.selected{background:var(--selected-surface)}.site-icon{width:18px;height:18px;object-fit:contain;flex-shrink:0;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--selected-surface);border-radius:3px}.site-icon.image{background:transparent}.room-item .name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.room-item .dot{margin-left:auto}.dot{height:5px;width:5px;background:var(--secondary);border-radius:50%;display:inline-block;flex-shrink:0}.busy-dot{animation:pulse 1.4s infinite}.new-site{display:flex;align-items:center;gap:8px;font-size:12px;padding:12px 9px;width:100%;margin-top:8px;border-top:1px solid var(--line)}.sidebar-footer{margin-top:20px;font-size:12px;color:var(--muted-text);padding:0 9px;line-height:1.8;display:flex;align-items:center;gap:6px}.connection-dot{background:var(--focus)}.connection-dot.offline{background:var(--warning)}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{height:86px;flex-shrink:0;padding:19px 26px 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.site-heading{min-width:0}.site-heading h1{font-family:Bricolage,Geist,sans-serif;font-size:32px;font-weight:500;letter-spacing:-1.2px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}.site-heading p{margin:5px 0 0;font-size:12px;color:var(--muted-text)}.top-actions{display:flex;align-items:center;gap:13px}.plain-button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;padding:7px 3px}.primary{background:var(--foreground);color:var(--surface);padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--foreground);font-size:12px}.primary:hover:not(:disabled){background:#3b3b3b}.outline{border:1px solid var(--strong-border);padding:8px 10px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.main{display:grid;grid-template-columns:minmax(0,1fr) 400px;flex:1;min-height:0;min-width:0}.preview-pane{display:flex;flex-direction:column;min-height:0;min-width:0}.preview-toolbar{height:49px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.toolbar-group{display:flex;align-items:center;gap:7px;min-width:0}.viewport-controls{display:flex;gap:2px;border-right:1px solid var(--line);padding-right:8px;margin-right:3px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:5px}.icon-button.selected{background:var(--selected-surface)}.page-select{border:0;background:transparent;font-size:12px;max-width:180px;min-width:0;padding:5px}.preview-stage{flex:1;min-height:0;min-width:0;display:flex;justify-content:center;padding:0 21px 0;overflow:hidden}.preview-frame{height:100%;width:100%;max-width:100%;border:1px solid var(--strong-border);background:var(--surface);display:flex;flex-direction:column;min-width:0;min-height:0;transition:width .2s}.preview-frame iframe{width:100%;height:100%;border:0;display:block;flex:1;min-height:0}.preview-empty{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:10%;height:100%;background:var(--soft-surface)}.preview-empty h2{font-family:Bricolage,Geist,sans-serif;font-size:40px;font-weight:500;letter-spacing:-1.5px;line-height:1.08;margin:0 0 17px;max-width:350px}.preview-empty p{color:var(--muted-text);font-size:13px;line-height:1.8;max-width:310px;margin:0}.preview-footer{height:37px;flex-shrink:0;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted-text)}.preview-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-footer button{font-size:12px;padding:4px 0}.chat-pane{min-height:0;min-width:0;border-left:1px solid var(--line);display:flex;flex-direction:column}.chat-heading{min-height:49px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.conversation-name{font-size:13px;display:flex;align-items:center;gap:7px;min-width:0}.conversation-name span{max-width:195px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-name svg{width:13px;height:13px}.close-conversation{font-size:12px;white-space:nowrap;padding:6px 0;text-decoration:underline;text-underline-offset:3px;color:var(--muted-text)}.tabs{display:flex;align-items:center;gap:20px;margin:0 19px;border-bottom:1px solid var(--line);height:33px;flex-shrink:0}.tab{height:100%;padding:0 0 9px;font-size:12px;color:var(--muted-text);position:relative}.tab.active{color:var(--foreground)}.tab.active:after{content:'';height:1px;background:var(--foreground);position:absolute;bottom:-1px;left:0;right:0}.count{color:var(--muted-text);margin-left:4px;font-size:12px}.chat-body{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;padding:21px 21px 8px;overscroll-behavior:contain}.message{font-size:13px;line-height:1.8;margin-bottom:26px;overflow-wrap:anywhere}.message-meta{display:flex;align-items:center;gap:7px;color:var(--muted-text);font-size:12px;margin-bottom:8px}.message-meta strong{font-size:12px;font-weight:500;color:var(--body-text)}.message-meta time{margin-left:auto}.agent-mark{font-family:Bricolage,Geist,sans-serif;font-size:14px;font-weight:600;display:inline-block;width:18px;color:var(--foreground)}.message.user .message-content{border-left:1px solid var(--strong-border);padding:0 0 0 12px;color:var(--secondary)}.message-content{white-space:pre-wrap;margin:0}.message-content code{background:var(--selected-surface);font-size:12px;padding:1px 3px}.tool{border-top:1px solid var(--border);font-size:12px;margin-top:9px}.tool summary{padding:9px 0;cursor:pointer;color:var(--muted-text);display:flex;justify-content:space-between;gap:8px}.tool summary span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool summary span:last-child{flex-shrink:0;white-space:nowrap;overflow-wrap:normal}.tool pre{font-family:ui-monospace,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word;color:var(--muted-text);max-height:180px;overflow:auto;margin:5px 0 14px;line-height:1.7}.run-status{font-size:12px;color:var(--muted-text);display:flex;align-items:center;gap:6px;padding:0 0 15px}.run-status button{margin-left:auto;text-decoration:underline;font-size:12px}.context{font-size:12px;line-height:1.8;color:var(--muted-text);border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:18px}.context summary{cursor:pointer;color:var(--secondary)}.context p{margin:10px 0 0}.empty-chat{padding-top:16px}.empty-chat h2{font-family:Bricolage,Geist,sans-serif;font-weight:500;font-size:27px;letter-spacing:-.8px;margin:0 0 14px;line-height:1.15}.empty-chat p{font-size:13px;color:var(--muted-text);line-height:1.9;margin:0 0 18px}.brief-links{display:flex;gap:20px;margin-top:23px}.brief-links button{padding:0 0 6px;border-bottom:1px solid var(--focus);font-size:12px}.composer-wrap{padding:13px 20px 11px;flex-shrink:0}.composer{border:1px solid var(--strong-border);background:var(--surface);padding:11px 11px 8px}.composer:focus-within{border-color:var(--muted-text)}.composer textarea{display:block;border:0;background:transparent;outline:none;resize:none;height:64px;max-height:110px;width:100%;line-height:1.7;font-size:13px}.composer textarea::placeholder{color:var(--muted-text)}.compose-bottom{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:5px}.compose-left{display:flex;gap:6px;align-items:center;min-width:0}.model-select{font-size:12px;border:0;background:none;max-width:185px;min-width:0;padding:5px 0;color:var(--secondary)}.send{width:27px;height:27px;padding:4px;flex-shrink:0}.composer-hint{display:flex;justify-content:space-between;font-size:12px;color:var(--focus);padding-top:8px;gap:10px}.composer-hint button{padding:0;font-size:12px;color:var(--muted-text)}.cost-footer{border-top:1px solid var(--line);padding:12px 20px 13px;flex-shrink:0}.cost-button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:0}.cost-label{font-size:12px;color:var(--muted-text);margin-bottom:4px}.cost-value{font-size:13px;font-variant-numeric:tabular-nums}.cost-right{text-align:right}.cost-value small{color:var(--muted-text);margin-left:5px;font-size:12px}.status-note{font-size:12px;line-height:1.8;color:var(--muted-text);padding:0 0 18px}.history-row{border-bottom:1px solid var(--line);padding:14px 0}.history-row:first-of-type{padding-top:0}.history-row h3{font-size:13px;font-weight:500;margin:0 0 8px}.history-row p{font-size:12px;color:var(--muted-text);line-height:1.8;margin:0 0 10px}.history-actions{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted-text)}.history-actions button{font-size:12px;border-bottom:1px solid var(--focus);padding:2px 0}.error{border-left:2px solid var(--warning);padding:9px 12px;background:var(--warning-surface);font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:16px;max-height:180px;overflow:auto}.request{padding:14px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.request input{width:100%;padding:8px;border:1px solid var(--strong-border);margin:8px 0;background:white}.request .actions{display:flex;gap:10px;margin:10px 0}.attachment-chip{display:flex;justify-content:space-between;gap:8px;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px}.attachment-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-image{max-width:100%;max-height:190px;margin:9px 0;border:1px solid var(--line)}.mobile-switch{display:none}.app-empty{display:grid;place-items:center;min-width:0;height:100%}.app-empty h1{font-family:Bricolage,Geist,sans-serif;font-size:60px;letter-spacing:-2px;font-weight:500;line-height:1;margin:0 0 20px}.app-empty p{color:var(--muted-text);line-height:1.8;margin-bottom:30px}.app-empty>div{max-width:540px;padding:30px}
/* Dialogs scroll inside the viewport, never the application document. */
dialog{width:490px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 50px);padding:0;border:1px solid var(--strong-border);background:var(--canvas);color:var(--foreground);overflow:auto}dialog.wide{width:810px}dialog.settings-dialog{width:min(810px,calc(100vw - 30px));height:min(480px,calc(100dvh - 50px));box-sizing:border-box}dialog::backdrop{background:#18181840;backdrop-filter:blur(2px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px 25px 15px}.modal-header h2{font-family:Bricolage,Geist,sans-serif;font-weight:500;font-size:27px;letter-spacing:-.8px;margin:0}.modal-body{padding:0 25px 25px}.modal-body p{font-size:13px;line-height:1.8;color:var(--muted-text)}.modal-body label{display:block;font-size:12px;margin:18px 0 7px}.modal-body input,.modal-body textarea,.modal-body select{display:block;width:100%;padding:10px;border:1px solid var(--strong-border);background:var(--surface)}.modal-body textarea{height:100px;resize:vertical;line-height:1.7}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.conversation-row{display:flex;gap:10px;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:12px 0;border-bottom:1px solid var(--line)}.conversation-row strong{display:block;font-size:13px;font-weight:500}.conversation-row small{display:block;color:var(--muted-text);margin-top:5px;font-size:12px}.conversation-row .conversation-info{flex:1}.metric{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);font-size:13px;padding:12px 0}.metric strong{font-weight:500;font-variant-numeric:tabular-nums}.brief-editor{height:48dvh!important;resize:none!important;font-family:ui-monospace,monospace;font-size:12px}.brief-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:14px}.brief-tabs button{padding:8px 0;border-bottom:1px solid transparent;font-size:13px}.brief-tabs button.selected{border-color:var(--foreground)}.source-note{font-size:12px!important}.file-list{font-family:ui-monospace,monospace;font-size:12px;line-height:1.9;overflow-wrap:anywhere}#toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);background:var(--foreground);color:var(--surface);font-size:13px;padding:12px 17px;z-index:20;opacity:0;pointer-events:none;max-width:85vw;transition:opacity .15s}#toast.visible{opacity:1}@keyframes pulse{50%{opacity:.25}}@media(min-width:1700px){.main{grid-template-columns:minmax(0,1fr) 460px}.chat-body{padding:25px 27px}.composer-wrap,.cost-footer{padding-left:27px;padding-right:27px}.preview-stage{padding:0 26px}}
@media(max-width:1200px){#app{grid-template-columns:174px minmax(0,1fr)}.main{grid-template-columns:minmax(0,1fr) 350px}.topbar{padding-left:19px;padding-right:19px}.preview-toolbar{padding:0 12px}.preview-stage{padding:0 12px}.preview-footer{padding:0 13px}.chat-heading{padding:0 15px}.chat-body{padding:17px}.composer-wrap,.cost-footer{padding-left:16px;padding-right:16px}.conversation-name span{max-width:155px}.top-actions{gap:10px}.model-select{max-width:155px}.page-select{max-width:130px}}
@media(max-width:950px){#app{grid-template-columns:145px minmax(0,1fr)}.sidebar{padding-left:6px;padding-right:6px}.main{grid-template-columns:minmax(0,1fr) 330px}.topbar{height:74px}.site-heading h1{font-size:27px}.top-actions .optional{display:none}.preview-toolbar{gap:4px}.page-select{max-width:90px}.preview-toolbar .optional{display:none}.chat-heading{padding:0 12px}.conversation-name span{max-width:140px}}
@media(max-width:760px){#app{grid-template-columns:130px minmax(0,1fr)}.main{display:flex;position:relative}.preview-pane,.chat-pane{width:100%;flex:1;min-width:0}.chat-pane{border-left:0}.main[data-pane="preview"] .chat-pane{display:none}.main[data-pane="chat"] .preview-pane{display:none}.mobile-switch{display:flex;gap:8px}.mobile-switch button{font-size:12px;border-bottom:1px solid transparent;padding:5px 0}.mobile-switch button.selected{border-color:var(--foreground)}.top-actions .primary{display:none}.topbar{padding:12px 14px;height:74px}.site-heading h1{font-size:25px}.page-select{max-width:180px}.sidebar{padding-top:23px}.brand{font-size:19px;padding-left:7px}.brand-mark{width:18px;height:18px}.conversation-name span{max-width:210px}.chat-body{padding:18px}.composer textarea{height:60px}.model-select{max-width:220px}}
@media(max-width:440px){#app{grid-template-columns:112px minmax(0,1fr)}.sidebar{padding-left:3px;padding-right:3px}.room-item{font-size:12px;padding:8px 6px;gap:6px}.brand{font-size:17px;gap:6px}.search{margin-left:6px;margin-right:6px}.search input{font-size:12px}.site-icon{width:16px;height:16px}.sidebar-footer{font-size:12px}.chat-heading{padding:0 11px}.conversation-name span{max-width:110px}.close-conversation{font-size:12px}.site-heading h1{font-size:22px}.topbar{padding:12px 10px}.top-actions{gap:0}.chat-body{padding:15px 12px}.composer-wrap,.cost-footer{padding-left:12px;padding-right:12px}.model-select{max-width:150px;font-size:12px}.tabs{margin:0 12px;gap:15px}.preview-stage{padding:0 7px}.preview-toolbar{padding:0 7px}.page-select{max-width:95px}.preview-toolbar .icon-button{width:23px}.model-select{max-width:135px}.composer-hint span{display:none}.preview-footer{padding:0 8px}.site-heading p{font-size:12px}.brand{margin-bottom:23px}}
@media(max-height:650px){.topbar{height:64px;padding-top:10px;padding-bottom:10px}.site-heading h1{font-size:26px}.composer textarea{height:40px}.composer-wrap{padding-top:8px;padding-bottom:8px}.cost-footer{padding-top:8px;padding-bottom:8px}.chat-heading{min-height:41px}.preview-toolbar{height:41px}.tabs{height:28px}.brand{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(min-width:761px){.main.chat-hidden{grid-template-columns:minmax(0,1fr)}.main.chat-hidden .chat-pane{display:none}}
@media(max-width:760px){.chat-toggle{display:none}}

.preview-pane{position:relative}
.chat-toggle{position:absolute;z-index:5;right:-14px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;color:var(--secondary);background:var(--surface);border:1px solid var(--strong-border);border-radius:50%;box-shadow:0 2px 6px #00000006;transition:color .15s,background .15s,border-color .15s,box-shadow .15s}
.chat-toggle::before{content:"";position:absolute;inset:-8px -5px}
.chat-toggle svg{width:15px;height:15px;pointer-events:none}
.chat-toggle:hover{color:var(--foreground);background:var(--surface);border-color:var(--strong-border);box-shadow:0 2px 8px #0000000d}
.chat-toggle:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}
.main.chat-hidden .chat-toggle{right:5px}
@media(max-width:760px){.chat-toggle{display:none}}
@media(prefers-reduced-motion:reduce){.chat-toggle{transition:none}}

.effort-select{border:0;background:transparent;color:var(--secondary);font:inherit;font-size:12px;padding:5px 1px;max-width:74px}.compose-left{min-width:0;flex:1}.model-select{min-width:0;max-width:180px;flex:1}.model-select:disabled{opacity:.6;cursor:default}

.sidebar{position:relative;overflow:visible}.sidebar-toggle{position:absolute;z-index:6;right:-14px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;color:var(--secondary);background:var(--surface);border:1px solid var(--strong-border);border-radius:50%;box-shadow:0 2px 6px #00000006}.sidebar-toggle svg{width:15px;height:15px;pointer-events:none}.sidebar-toggle::before{content:"";position:absolute;inset:-8px -5px}.sidebar-toggle:hover{color:var(--foreground);border-color:var(--focus);box-shadow:0 2px 8px #0000000d}.sidebar-toggle:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}#app.sidebar-hidden{grid-template-columns:56px minmax(0,1fr)}.sidebar-hidden .sidebar{padding-left:0;padding-right:0}.sidebar-hidden .brand{padding:0;margin-left:auto;margin-right:auto}.sidebar-hidden .brand-mark{width:22px;height:22px}.sidebar-hidden .brand-name{display:none}

.conversation-count{font-size:12px;min-width:17px;height:17px;display:grid;place-items:center;border:1px solid var(--strong-border);border-radius:50%;color:var(--secondary);flex-shrink:0}

/* Shared site organization */
.new-folder{display:flex;align-items:center;gap:8px;padding:10px 9px;font-size:12px;color:var(--muted-text)}
.site-folder{border-radius:6px;min-height:8px;margin-bottom:6px}
.site-folder.drop-target{background:var(--success-surface);box-shadow:inset 0 0 0 1px var(--success-border)}
.folder-heading{display:flex;align-items:center;gap:2px;padding:9px 3px 4px}
.folder-name{display:flex;align-items:center;gap:5px;min-width:0;flex:1;text-align:left;font-size:12px;color:var(--secondary);padding:5px 7px;border-radius:5px}
.folder-name>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-name small{margin-left:auto;color:var(--muted-text);font-size:12px}
.sidebar-label .sidebar-menu-button{margin-left:3px}.sidebar-selection-count{font-size:10px;color:var(--muted-text);white-space:nowrap}
.folder-arrow svg{width:12px;height:12px}.folder-arrow.closed{transform:rotate(-90deg)}
.folder-edit,.site-move{width:22px;flex-shrink:0;color:var(--muted-text);padding:3px;font-size:14px}.folder-edit,.site-move{opacity:0;pointer-events:none}.site-folder:hover .folder-edit,.site-folder:focus-within .folder-edit,.site-row:hover .site-move,.site-row:focus-within .site-move{opacity:1;pointer-events:auto}
.site-row{display:flex;align-items:center;position:relative}.site-row .room-item{min-width:0;padding-right:26px}.site-row .approval-mark{margin-right:4px}.site-move{position:absolute;right:0}
.site-row.multi-selected .room-item{background:var(--soft-surface);box-shadow:inset 2px 0 var(--focus)}.site-row.multi-selected .room-item.selected{background:var(--selected-surface)}
.site-row.multi-selected .site-move{display:none}
.folder-empty{font-size:12px;color:var(--muted-text);margin:9px 12px 15px}
.approval-mark{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:var(--success-surface);color:var(--link);border:1px solid var(--success-border);border-radius:4px;flex-shrink:0}
.approval-mark svg{width:10px;height:10px;stroke-width:2.5}
.site-heading h1 .approval-mark{vertical-align:middle;margin-left:10px}
.approval-button.approved{color:var(--link);border-color:var(--success-border);background:var(--success-surface)}
@media(hover:none){.site-move,.folder-edit{opacity:1;pointer-events:auto}}

.usage-window{margin:20px 0}.usage-window>div{display:flex;justify-content:space-between;font-size:13px;gap:12px}.usage-window progress{width:100%;height:6px;accent-color:var(--link);margin:10px 0}.usage-window small{font-size:12px;color:var(--muted-text)}

.markdown{white-space:normal;line-height:1.75;min-width:0}
.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}
.markdown p{margin:0 0 12px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{line-height:1.4;font-weight:600;letter-spacing:normal;margin:22px 0 10px}
.markdown h1{font-size:20px}.markdown h2{font-size:17px}.markdown h3{font-size:14px}.markdown h4{font-size:13px}
.markdown ul,.markdown ol{padding-left:21px;margin:10px 0 15px}.markdown li{margin:5px 0}.markdown li>p{margin:5px 0}
.markdown a{color:var(--link);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.markdown pre{background:var(--soft-surface);border:1px solid var(--border);border-radius:6px;padding:12px;max-width:100%;overflow:auto;font-size:12px;line-height:1.65;white-space:pre;margin:14px 0}
.markdown pre code{padding:0;background:none;font-size:inherit;white-space:pre}
.markdown :not(pre)>code{border-radius:3px;padding:2px 4px;overflow-wrap:anywhere}
.markdown blockquote{border-left:2px solid var(--success-border);margin:14px 0;padding:2px 12px;color:var(--muted-text)}
.markdown table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;margin:14px 0;font-size:12px}
.markdown th,.markdown td{border:1px solid var(--border);padding:7px 9px;text-align:left;min-width:80px}
.markdown th{background:var(--soft-surface);font-weight:600}.markdown hr{border:0;border-top:1px solid var(--border);margin:20px 0}
.markdown img{max-width:100%;height:auto}.markdown input[type=checkbox]{accent-color:var(--link)}

/* Conversation: restrained surfaces and readable Markdown. */
.chat-body{padding:26px 24px 14px}
.message{font-size:13px;line-height:1.8;margin-bottom:30px}
.message-meta{gap:7px;margin-bottom:12px;font-size:12px;flex-wrap:wrap}
.message-meta strong{font-size:12px;color:var(--body-text);font-weight:500}
.message-meta>span:not(.agent-mark){max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agent-mark{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center}
.agent-mark .brand-mark{width:13px;height:13px}
.message.user .message-content{border:1px solid var(--border);background:var(--user-surface);padding:13px 15px;border-radius:8px;color:var(--body-text)}
.message.user .message-meta{margin-bottom:8px}
.message.assistant .message-content{color:var(--body-text)}
.markdown strong{font-weight:600}.markdown h2{font-size:17px;letter-spacing:-.3px}
.code-block{border:1px solid var(--border);border-radius:7px;overflow:hidden;margin:16px 0;background:var(--soft-surface)}
.code-heading{display:flex;align-items:center;justify-content:space-between;padding:7px 11px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted-text)}
.code-heading button{font:inherit;color:var(--secondary);padding:2px 4px}
.code-heading button:hover{color:var(--foreground)}.code-heading button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.code-block pre{border:0;border-radius:0;background:transparent;margin:0;padding:13px;scrollbar-width:thin}
.tool{border:1px solid var(--border);border-radius:6px;margin-top:10px;padding:0 10px;background:var(--soft-surface)}
.tool summary{font-size:12px;padding:9px 0}.tool[open] summary{border-bottom:1px solid var(--border)}
.composer{border-radius:8px;background:var(--surface);padding:13px 12px 9px;border-color:var(--strong-border);box-shadow:0 2px 5px #00000003}
.composer:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px #8a96740a}
.composer textarea{font-size:13px;line-height:1.7;height:76px}
.send{border-radius:5px}.composer-hint{flex-wrap:wrap;row-gap:6px}
.run-status{font-size:12px;padding:3px 0 14px;color:var(--muted-text)}
@media(max-width:760px){.chat-body{padding:20px 17px}.message{font-size:13px}.message.user .message-content{padding:11px 12px}}
.sidebar-label{display:flex;align-items:center;gap:8px}
.sidebar-menu-button{margin-left:auto;font-size:20px;line-height:20px;width:28px;height:26px;border-radius:5px;color:var(--secondary);letter-spacing:0}
.sidebar-menu-button:hover,.sidebar-menu-button[aria-expanded=true]{background:var(--hover-surface);color:var(--foreground)}
.sidebar-context-menu{position:fixed;z-index:1000;width:220px;padding:5px;border:1px solid var(--border);border-radius:9px;background:var(--surface);box-shadow:0 8px 32px #18201020}
.sidebar-context-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 11px;text-align:left;font-size:13px;border-radius:5px;color:var(--body-text)}
.sidebar-context-menu button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.sidebar-context-menu button:hover,.sidebar-context-menu button:focus-visible{background:var(--hover-surface);outline:none}

@media(min-width:761px){.main:not(.chat-hidden){grid-template-columns:minmax(280px,1fr) clamp(320px,var(--chat-width,400px),calc(100% - 280px))}}
.chat-pane{position:relative}
.chat-resizer{position:absolute;left:-4px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:4;touch-action:none}
.chat-resizer:hover,.chat-resizer:focus-visible{background:#77836c45;outline:none}
.resizing-chat{cursor:col-resize;user-select:none}.resizing-chat iframe{pointer-events:none}
#switch-search{font-size:15px;border-radius:6px;padding:13px}
#switch-results{max-height:48vh;overflow:auto;margin-top:12px}
.switch-result{display:flex;align-items:center;gap:11px;width:100%;padding:12px;text-align:left;border-radius:6px;font-size:13px}
.switch-result.active,.switch-result:hover{background:var(--hover-surface)}.switch-approved{margin-left:auto;color:var(--link)}
.switch-hint{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:14px;font-size:12px!important;color:var(--muted-text)}.switch-hint span{display:inline-flex;align-items:center;gap:5px}.switch-hint kbd{font:inherit;font-size:11px;line-height:19px;min-width:22px;padding:0 5px;text-align:center;border:1px solid var(--strong-border);border-radius:4px;background:var(--soft-surface);color:var(--foreground)}
@media(max-width:760px){.chat-resizer{display:none}}
.message-meta{align-items:center;flex-wrap:nowrap;line-height:18px;min-height:18px}
.message-meta>strong,.message-meta>span,.message-meta>time{line-height:18px}
.message-meta>strong,.message-meta>.agent-mark,.message-meta>time{flex-shrink:0}
.message-meta>span:not(.agent-mark){min-width:0}

.switch-group{font-size:12px;color:var(--muted-text);padding:14px 12px 6px}
.switch-action-icon{width:18px;height:18px;display:grid;place-items:center;color:var(--secondary)}
.switch-action-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}

/* Theme-aware app chrome. The embedded website retains its own colors. */
:root{color-scheme:light;--on-primary:#fcfcfa;--primary-hover:#3b4334}
:root[data-theme=dark]{color-scheme:dark;--on-primary:#191d16;--primary-hover:#d1ddc5}
.primary,#toast{background:var(--foreground);color:var(--on-primary)}
.primary:hover:not(:disabled){background:var(--primary-hover)}
.brand-mark,.tab.active:after{background:var(--foreground)}
.preview-frame{background:#fff}.preview-frame iframe{color-scheme:light}
.request input{background:var(--surface)}
select option{background:var(--surface);color:var(--foreground)}
input::placeholder,textarea::placeholder{color:var(--muted-text);opacity:1}
*{scrollbar-color:var(--strong-border) transparent;scrollbar-width:thin}
.theme-control{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 9px 0;font-size:12px;color:var(--secondary)}
.theme-control select{max-width:90px;padding:5px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}
.message{font-size:14px;line-height:1.8;margin-bottom:36px}
.message-meta{color:var(--secondary);margin-bottom:12px}
.message-meta strong{font-size:13px;color:var(--foreground)}
.message.user .message-content{background:var(--user-surface);color:var(--foreground);border-color:var(--border);padding:15px 16px}
.message.assistant .message-content{color:var(--body-text)}
.message.assistant+.message.assistant{border-top:1px solid var(--border);padding-top:22px}
.markdown h3{font-size:15px}.markdown h4{font-size:14px}
.markdown table,.message-content code{font-size:13px}
.tool{background:transparent;border-color:var(--border);margin-top:12px}
.tool summary{font-size:12px;color:var(--secondary)}
.tool pre{color:var(--secondary);font-size:12px}
.composer{border-color:var(--strong-border);background:var(--surface)}
.composer:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px var(--hover-surface)}
.composer textarea{height:96px;max-height:140px;font-size:14px;line-height:1.75}
.composer-hint{color:var(--secondary);font-size:12px}
@media(max-height:700px){.composer textarea{height:72px}}
@media(max-width:760px){.message{font-size:14px}.message.user .message-content{padding:13px}.composer textarea{height:80px}}

.modal-body p strong{color:var(--foreground);font-weight:600}

/* Shared work, personal sessions. */
.login-screen{grid-column:1/-1;min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--canvas)}
.login-card{width:min(100%,360px);display:grid;gap:18px}.login-card .brand{margin:0 0 24px;padding:0}.login-card h1{font-size:28px;font-weight:500;letter-spacing:-.7px;margin:0 0 10px}.login-card label{display:grid;gap:8px;font-size:13px;color:var(--secondary)}.login-card input{width:100%;padding:12px;border:1px solid var(--strong-border);border-radius:7px;background:var(--surface);color:var(--foreground);font:inherit}.login-card [role=alert]{color:var(--danger,#b44848);font-size:13px;margin:0}.login-card>button{padding:12px}
.account-control{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 16px 0;font-size:12px;color:var(--secondary)}.account-control span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-control button{font-size:12px;color:var(--secondary)}
.conversation-owner{padding:0 18px 8px;color:var(--secondary);font-size:12px}.ownership-note{font-size:13px;line-height:1.6}.ownership-note p{color:var(--secondary);margin:4px 0 12px}.notes-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--secondary);margin-bottom:18px}.note-card{padding:18px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.note-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.note-meta time,.note-card>small{font-size:12px;color:var(--secondary)}.note-location{display:block;text-align:left;font-size:12px;color:var(--secondary);margin:8px 0 12px;overflow-wrap:anywhere;max-width:100%}.note-location:hover{color:var(--foreground)}.note-card .markdown{font-size:14px;line-height:1.7}.note-actions{display:flex;gap:14px;margin-top:12px}.note-actions button{font-size:12px;color:var(--secondary)}.preview-footer>button{display:flex;align-items:center;gap:5px}.preview-footer>button svg{width:13px;height:13px}.tabs{gap:16px}.tabs .tab{white-space:nowrap}#note-text{min-height:150px;width:100%;resize:vertical}

.account-control{margin:8px 14px 0;padding:12px 2px 2px;border-top:1px solid var(--border);min-width:0;flex-shrink:0}.account-control span{font-size:13px;font-weight:500;color:var(--foreground);line-height:1.5}.account-control button{appearance:none;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:30px;padding:5px 10px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--secondary);font:inherit;font-size:13px;cursor:pointer}.account-control button:hover{background:var(--hover-surface);color:var(--foreground);border-color:var(--strong-border)}.account-control button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* Keep shared status visible without repeating it in the composer. */
.conversation-owner{display:flex;align-items:center;gap:8px;margin:0 18px 12px;padding:9px 11px;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--foreground);background:var(--soft-surface);line-height:1.4}.conversation-owner.occupied{font-weight:600;border-color:var(--strong-border)}.owner-indicator{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#509568}.notes-heading{justify-content:flex-end}.note-card>small{display:block;margin-top:14px;line-height:1.5}

.conversation-start{border-top:1px solid var(--border);background:var(--soft-surface);padding-top:18px;padding-bottom:18px}.conversation-start .primary{border-radius:6px;padding:10px 14px}.conversation-start .status-note{margin:0 0 12px;line-height:1.5}

.app-tools{display:grid;gap:2px;flex-shrink:0;padding:8px 0;border-top:1px solid var(--border)}.app-tools button{text-align:left;padding:8px 9px;border-radius:5px;font-size:13px;color:var(--secondary);line-height:1.4}.app-tools button:hover{color:var(--foreground)}

.notes-heading{justify-content:space-between}.notes-heading>button{margin-left:auto}.settings-list{display:grid;gap:4px}.settings-list>button,.settings-list>label{display:flex;align-items:center;justify-content:space-between;margin:0;padding:14px 0;font-size:14px;border-bottom:1px solid var(--border)}.settings-list>button span{color:var(--secondary)}.settings-list select{width:auto;padding:7px 10px}

.settings-list{padding:2px;gap:6px}.settings-list>button,.settings-list>label{padding:13px 12px;border-bottom:0;border-radius:6px}.settings-list>label{border-top:1px solid var(--border);border-radius:0;margin-top:4px;padding-top:17px}.settings-list>button:focus-visible{outline-offset:0}#modal-title:focus{outline:none}

.notes-heading h2{margin:0;font-family:Bricolage,Geist,sans-serif;font-size:27px;font-weight:500;line-height:1.15;letter-spacing:-.8px;color:var(--foreground)}.notes-heading>button{flex-shrink:0}

.conversation-start .primary{display:inline-flex;align-items:center;justify-content:center;gap:8px}

/* Motion: keep navigation expressive without slowing down direct manipulation. */
:root{--motion-fast:140ms;--motion-base:220ms;--motion-slow:320ms;--motion-ease:cubic-bezier(.22,1,.36,1);--motion-linear:cubic-bezier(.65,0,.35,1)}
#app{transition:grid-template-columns var(--motion-slow) var(--motion-ease)}
button,a,input,select,textarea{transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,opacity var(--motion-fast) ease}
button:not(:disabled):active{filter:brightness(.97)}
.room-item{transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) var(--motion-ease)}
.room-item:hover{transform:translateX(3px)}
.site-icon{transition:transform var(--motion-base) var(--motion-ease),background-color var(--motion-fast) ease}
.room-item:hover .site-icon{transform:scale(1.08)}
.site-move{transition:opacity var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) var(--motion-ease)}
.site-row:hover .site-move{transform:translateX(-2px)}
.folder-arrow{display:inline-flex;transition:transform var(--motion-base) var(--motion-ease)}
.sidebar-toggle,.chat-toggle{transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-base) var(--motion-ease),transform var(--motion-slow) var(--motion-ease)}
.sidebar-toggle:hover,.chat-toggle:hover{transform:translateY(-50%) scale(1.06)}
.workspace,.app-empty{animation:workspace-enter var(--motion-slow) var(--motion-ease) both}
.main{position:relative;transition:grid-template-columns var(--motion-slow) var(--motion-ease)}
.preview-frame{transition:width var(--motion-slow) var(--motion-ease),border-color var(--motion-base) ease,box-shadow var(--motion-base) ease}
.preview-frame iframe{animation:preview-enter var(--motion-slow) var(--motion-ease) both}
.chat-body>*,.request{animation:content-enter var(--motion-base) var(--motion-ease) both}
.chat-body> :nth-child(2){animation-delay:25ms}.chat-body> :nth-child(3){animation-delay:50ms}.chat-body> :nth-child(4){animation-delay:75ms}
.tab:after{transform:scaleX(0);transform-origin:left center;transition:transform var(--motion-base) var(--motion-ease)}
.tab.active:after{transform:scaleX(1)}
.composer:focus-within{transition:border-color var(--motion-fast) ease,box-shadow var(--motion-base) var(--motion-ease)}
.sidebar-context-menu{transform-origin:top left;animation:menu-enter var(--motion-base) var(--motion-ease) both}
dialog[open]{animation:dialog-enter var(--motion-base) var(--motion-ease) both}
dialog::backdrop{animation:backdrop-enter var(--motion-base) ease both}
#toast{transform:translateX(-50%) translateY(8px);transition:opacity var(--motion-base) ease,transform var(--motion-base) var(--motion-ease)}
#toast.visible{transform:translateX(-50%) translateY(0)}
.select-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--secondary)}
.select-wrap:after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-65%) rotate(45deg);pointer-events:none}
.select-wrap select{appearance:none;-webkit-appearance:none;min-width:112px;width:100%;padding:7px 34px 7px 10px}
.select-wrap select::-ms-expand{display:none}

@keyframes workspace-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes preview-enter{from{opacity:0;transform:scale(.992)}to{opacity:1;transform:none}}
@keyframes content-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}
@keyframes dialog-enter{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}

@media(min-width:761px){
  .main.chat-hidden .chat-pane{display:flex;position:absolute;inset:0 0 0 auto;width:var(--chat-width,400px);opacity:0;transform:translateX(22px);visibility:hidden;pointer-events:none;transition:opacity var(--motion-base) ease,transform var(--motion-slow) var(--motion-ease),visibility 0s linear var(--motion-slow)}
  .main:not(.chat-hidden) .chat-pane{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity var(--motion-base) ease,transform var(--motion-slow) var(--motion-ease)}
}

@media(max-width:760px){
  .main[data-pane="preview"] .chat-pane,.main[data-pane="chat"] .preview-pane{display:flex}
  .main .preview-pane,.main .chat-pane{position:absolute;inset:0;width:100%;opacity:0;visibility:hidden;transform:translateX(16px);pointer-events:none;transition:opacity var(--motion-base) ease,transform var(--motion-slow) var(--motion-ease),visibility 0s linear var(--motion-slow)}
  .main[data-pane="preview"] .preview-pane,.main[data-pane="chat"] .chat-pane{position:relative;inset:auto;opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity var(--motion-base) ease,transform var(--motion-slow) var(--motion-ease)}
}

@media(prefers-reduced-motion:reduce){
  #app,.main,.preview-frame,.chat-pane,.preview-pane{transition:none!important}
  .workspace,.app-empty,.preview-frame iframe,.chat-body>*,.request,.sidebar-context-menu,dialog[open],dialog::backdrop{animation:none!important}
  button:not(:disabled):active,.room-item:hover,.room-item:hover .site-icon,.site-row:hover .site-move{filter:none;transform:none}
}

/* The left navigation uses the same soft collapse as the right chat pane. */
.sidebar-content{min-width:0;min-height:0;flex:1;overflow:hidden;opacity:1;transform:translateX(0);visibility:visible;transition:opacity var(--motion-base) ease,transform var(--motion-slow) var(--motion-ease),visibility 0s linear}
.sidebar-hidden .sidebar-content{opacity:0;transform:translateX(-22px);visibility:hidden;pointer-events:none;transition:opacity var(--motion-base) ease,transform var(--motion-slow) var(--motion-ease),visibility 0s linear var(--motion-slow)}
.sidebar .brand{transition:padding var(--motion-slow) var(--motion-ease),margin var(--motion-slow) var(--motion-ease)}
.tabs{overflow-x:auto;overflow-y:visible;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs .tab{flex:0 0 auto;min-width:max-content;padding-left:5px;padding-right:5px;border-radius:5px 5px 0 0}

@media(prefers-reduced-motion:reduce){
  .sidebar-content,.sidebar-hidden .sidebar-content{transition:none!important;transform:none}
}

/* Keep navigation motion single-layered: panel movement only, no nested ghosting. */
:root{--motion-fast:120ms;--motion-base:160ms;--motion-slow:220ms}
#app,.main{transition:grid-template-columns var(--motion-base) var(--motion-ease)}
.workspace,.app-empty,.preview-frame iframe,.chat-body>*,.request{animation:none}
.chat-body> :nth-child(2),.chat-body> :nth-child(3),.chat-body> :nth-child(4){animation-delay:0}
.sidebar-content{transition:opacity var(--motion-base) ease,transform var(--motion-base) var(--motion-ease),visibility 0s linear}
.sidebar-hidden .sidebar-content{transform:translateX(-10px);transition:opacity var(--motion-base) ease,transform var(--motion-base) var(--motion-ease),visibility 0s linear var(--motion-base)}
@media(min-width:761px){
  .main.chat-hidden .chat-pane{transform:translateX(12px);transition:opacity var(--motion-base) ease,transform var(--motion-base) var(--motion-ease),visibility 0s linear var(--motion-base)}
  .main:not(.chat-hidden) .chat-pane{transition:opacity var(--motion-base) ease,transform var(--motion-base) var(--motion-ease)}
}

/* Final navigation model: one layout transition and one fade per panel. */
.sidebar .brand{transition:none}
.sidebar-content,.sidebar-hidden .sidebar-content{transform:none}
.sidebar-content{transition:opacity var(--motion-base) ease,visibility 0s linear}
.sidebar-hidden .sidebar-content{transition:opacity var(--motion-base) ease,visibility 0s linear var(--motion-base)}
@media(min-width:761px){
  .main.chat-hidden{grid-template-columns:minmax(0,1fr) 0px}
  .main.chat-hidden .chat-pane{display:flex;position:relative;inset:auto;width:auto;opacity:0;transform:none;visibility:hidden;pointer-events:none;overflow:hidden;transition:opacity var(--motion-base) ease,visibility 0s linear var(--motion-base)}
  .main:not(.chat-hidden) .chat-pane{position:relative;inset:auto;width:auto;opacity:1;transform:none;visibility:visible;pointer-events:auto;overflow:visible;transition:opacity var(--motion-base) ease,visibility 0s linear}
}
@media(max-width:760px){
  .main .preview-pane,.main .chat-pane{transform:none;transition:opacity var(--motion-base) ease,visibility 0s linear var(--motion-base)}
  .main[data-pane="preview"] .preview-pane,.main[data-pane="chat"] .chat-pane{transform:none;transition:opacity var(--motion-base) ease,visibility 0s linear}
}

/* Keep the collapse motion deliberately plain: resize the panel, do not fade layers. */
#app,.main{transition:grid-template-columns 180ms cubic-bezier(.2,.8,.2,1)}
.sidebar-content,.sidebar-hidden .sidebar-content{opacity:1;transform:none;visibility:visible;transition:none}
.sidebar-hidden .sidebar-content{opacity:0;visibility:hidden;pointer-events:none}
.sidebar .brand,.preview-frame{transition:none}
@media(min-width:761px){
  .main.chat-hidden .chat-pane,.main:not(.chat-hidden) .chat-pane{opacity:1;transform:none;transition:none}
  .main.chat-hidden .chat-pane{opacity:0;visibility:hidden;pointer-events:none}
  .main:not(.chat-hidden) .chat-pane{visibility:visible;pointer-events:auto}
}
@media(max-width:760px){
  .main .preview-pane,.main .chat-pane,.main[data-pane="preview"] .preview-pane,.main[data-pane="chat"] .chat-pane{transform:none;transition:none}
}

/* Navigation motion: one composited panel movement, never a layout animation. */
:root{--motion-panel:180ms;--motion-ease:cubic-bezier(.2,.8,.2,1)}
#app,.main{transition:none}
.workspace,.app-empty,.preview-frame,.preview-frame iframe,.chat-body>*,.request,.sidebar-context-menu,dialog[open],dialog::backdrop{animation:none!important;transition:none}
.room-item:hover,.room-item:hover .site-icon,.site-row:hover .site-move{transform:none}
.sidebar-toggle:hover,.chat-toggle:hover{transform:translateY(-50%)}

/* Keep the content at its natural width while the grid column snaps. */
.sidebar-content{min-width:160px;min-height:0;flex:1 0 160px;width:160px;max-width:160px;overflow:hidden;transform:translate3d(0,0,0);transition:transform var(--motion-panel) var(--motion-ease);will-change:transform}
.sidebar-hidden .sidebar-content{transform:translate3d(-100%,0,0);pointer-events:none}

@media(min-width:761px){
  /* Reserve the open chat column while its surface stays on one sliding layer. */
  .main.chat-hidden{grid-template-columns:minmax(0,1fr)}
  .main:not(.chat-hidden){grid-template-columns:minmax(280px,1fr) clamp(320px,var(--chat-width,400px),calc(100% - 280px))}
  .main .chat-pane{display:flex;z-index:2;will-change:transform;background:var(--surface)}
  .main.chat-hidden .chat-pane,.main:not(.chat-hidden) .chat-pane{position:absolute;top:0;right:0;bottom:0;width:clamp(320px,var(--chat-width,400px),calc(100% - 280px));opacity:1;visibility:visible;overflow:visible;transition:transform var(--motion-panel) var(--motion-ease)}
  .main.chat-hidden .chat-pane{transform:translate3d(100%,0,0);pointer-events:none}
  .main:not(.chat-hidden) .chat-pane{transform:translate3d(0,0,0);pointer-events:auto}
}

@media(max-width:760px){
  .main .preview-pane,.main .chat-pane{transform:none;transition:none}
}

@media(prefers-reduced-motion:reduce){
  .sidebar-content,.main .chat-pane{transition:none!important}
}

/* Feedback uses the same restrained surface, border, and spacing as the UI. */
#tooltip{position:fixed;z-index:100;max-width:min(240px,calc(100vw - 16px));padding:7px 8px;border:1px solid var(--strong-border);border-radius:6px;background:var(--surface);color:var(--foreground);font-size:12px;line-height:1.35;text-align:left;white-space:normal;box-shadow:0 8px 24px #18201016;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(3px);transition:opacity 120ms ease,transform 120ms ease,visibility 0s linear 120ms}
#tooltip.visible{opacity:1;visibility:visible;transform:none;transition:opacity 120ms ease,transform 120ms ease}
#tooltip[data-placement=bottom]{transform:translateY(-4px)}
#tooltip[data-placement=bottom].visible{transform:none}
#tooltip[data-compact=true]{width:max-content;max-width:calc(100vw - 16px);padding:5px 6px}
#toast{display:block;left:50%;bottom:24px;width:max-content;max-width:min(460px,calc(100vw - 32px));padding:11px 15px;border:1px solid var(--strong-border);border-left:2px solid var(--focus);border-radius:6px;background:var(--surface);color:var(--foreground);font-size:13px;line-height:1.45;text-align:left;box-shadow:0 10px 28px #18201016;transform:translate(-50%,8px);opacity:0;visibility:hidden;transition:opacity 150ms ease,transform 150ms ease,visibility 0s linear 150ms}
#toast::before{display:none}
#toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity 150ms ease,transform 150ms ease}
@media(max-width:440px){#toast{bottom:14px;max-width:calc(100vw - 24px)}}

.room-item .name{min-width:0;flex:1}

/* Every select gets the same arrow gutter and its arrow is owned by the wrapper. */
select{appearance:none;-webkit-appearance:none;padding-right:30px!important}
.select-wrap{position:relative;display:inline-flex;flex-shrink:0;min-width:0;color:var(--secondary)}
.select-wrap::after{content:"";position:absolute;right:11px;top:50%;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-65%) rotate(45deg);pointer-events:none}
.select-wrap select{appearance:none;-webkit-appearance:none;min-width:0;width:100%;padding:7px 30px 7px 10px!important;background-color:transparent;background-image:none!important}
.select-wrap select::-ms-expand{display:none}
.select-wrap-block{display:flex;width:100%}
.select-wrap-block select{display:block}
.theme-select-wrap{max-width:90px}
.theme-select-wrap select{max-width:90px;background-color:var(--surface)}
.model-select-wrap{flex:1;max-width:185px}
.model-picker{position:relative;flex:1;min-width:0;max-width:185px}
.model-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:5px 1px;color:var(--secondary);font-size:12px;text-align:left}
.model-picker-trigger span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-picker-trigger:disabled{opacity:.6;cursor:default}
.model-picker-menu{position:absolute;left:0;bottom:calc(100% + 9px);z-index:30;width:min(300px,calc(100vw - 30px));padding:8px;background:var(--surface);border:1px solid var(--strong-border);box-shadow:0 12px 32px rgba(0,0,0,.16)}
.model-picker-search{width:100%;padding:8px 10px;border:1px solid var(--strong-border);background:var(--surface);color:var(--foreground);font:inherit;font-size:12px}
.model-picker-options{max-height:260px;overflow:auto;padding-top:5px}
.model-picker-heading{padding:10px 8px 4px;color:var(--muted-text);font-size:11px;font-weight:600}
.model-picker-group button{display:block;width:100%;padding:7px 8px;text-align:left;font-size:12px;color:var(--secondary)}
.model-picker-group button:hover,.model-picker-group button[aria-selected="true"]{background:rgba(127,127,127,.12)}
.model-picker-empty{padding:8px;color:var(--muted-text);font-size:12px}

.model-select-wrap select{padding:5px 30px 5px 0!important}
.effort-select-wrap{max-width:74px}
.effort-select-wrap select{padding:5px 25px 5px 1px!important}
.page-select-wrap{max-width:180px}
.page-select-wrap select{padding:5px 30px 5px 5px!important}
.modal-body .select-wrap select{padding:10px 34px 10px 10px!important;background-color:var(--surface)}
.account-table-wrap{overflow-x:auto}.account-table{width:100%;border-collapse:collapse;font-size:13px}.account-table th,.account-table td{text-align:left;padding:11px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.account-table th{font-weight:500;color:var(--muted-text)}.account-actions{display:flex;gap:6px}.account-actions button{font-size:12px}.account-help{font-size:12px!important}

.account-secret-field{position:relative}.account-secret-field input{width:100%;padding-right:42px}.account-secret-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:28px;color:var(--secondary)}.account-secret-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.account-settings-pending{min-height:280px;display:grid;place-items:center;visibility:hidden}.account-settings-pending.visible{visibility:visible}.account-settings-pending p{margin:0}
.shortcut-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:4px;padding:5px 0;font-size:12px}.shortcut-row>span{min-width:0}.shortcut-row kbd{font:inherit;font-size:11px;line-height:18px;min-width:20px;text-align:center;padding:0 4px;border:1px solid var(--strong-border);border-radius:4px;background:var(--soft-surface)}.shortcut-row b{font-weight:400;color:var(--muted-text)}.shortcut-row small{grid-column:2/-1;color:var(--muted-text);font-size:10px;text-align:right;line-height:12px}
.shortcuts-modal-list{display:grid;gap:8px}.shortcuts-modal-list .shortcut-row{padding:11px 13px;border:1px solid var(--border);border-radius:6px;background:var(--soft-surface)}.shortcuts-modal-list .shortcut-row>span{font-size:13px}.home-shortcuts{margin-top:28px;padding:18px 20px;border:1px solid var(--border);border-radius:8px;background:var(--soft-surface)}.home-shortcuts h2{margin:0 0 6px;font-size:15px;font-weight:500}.home-shortcuts p{margin:0 0 12px;font-size:12px;color:var(--muted-text);line-height:1.6}.home-shortcuts .outline{font-size:12px}
.app-tools button{display:flex;align-items:center;gap:9px}.app-tools button svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
button[data-pointer-focus]:focus,a[data-pointer-focus]:focus,[role=button][data-pointer-focus]:focus{outline:none}
.sidebar-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.sidebar-content>.room-list{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain}.sidebar-content>.new-site{flex-shrink:0}

dialog.shortcuts-dialog{height:min(640px,calc(100dvh - 32px));}

/* Aligned platform columns keep shortcut chords compact and predictable. */
.shortcut-platform-header,.shortcuts-modal-list .shortcut-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px;align-items:center;gap:14px}
.shortcut-platform-header{padding:0 13px 6px;color:var(--muted-text);font-size:10px;text-align:center}
.shortcut-platform-header>span:first-child{ text-align:left }
.shortcuts-modal-list .shortcut-row{justify-content:initial}
.shortcuts-modal-list .shortcut-row>span:first-child{min-width:0}
.shortcut-platform-keys{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.shortcut-platform-keys .shortcut-chord{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.shortcut-platform-keys small{display:block;padding-top:3px;color:var(--muted-text);font-size:10px;line-height:12px;text-align:center}
@media(max-width:600px){.shortcut-platform-header,.shortcuts-modal-list .shortcut-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.shortcut-platform-header>span:first-child{display:none}.shortcuts-modal-list .shortcut-row>span:first-child{grid-column:1/-1}.shortcut-platform-header{padding-right:13px;padding-left:13px}}

/* Override the legacy 160px cap so sidebar content fills its resized column. */
.sidebar-content{width:100%;min-width:0;max-width:none}
