:root{--bg:#fff;--panel:#f9f9f9;--side:#f4f4f4;--card:#fff;--text:#171717;--muted:#6b7280;--line:#e5e5e5;--line2:#d4d4d8;--accent:#10a37f;--accentText:#fff;--danger:#dc2626;--shadow:0 18px 55px rgba(0,0,0,.16);--sidebar:300px;--composer:840px;--radius:18px;--code:#0d1117;--codeHead:#161b22;--codeText:#e6edf3;color-scheme:light}
[data-theme="dark"]{--bg:#212121;--panel:#262626;--side:#171717;--card:#2b2b2b;--text:#ececec;--muted:#b4b4b4;--line:#343434;--line2:#4a4a4a;--shadow:0 18px 55px rgba(0,0,0,.45);color-scheme:dark}
*{box-sizing:border-box}html,body{height:100%;overscroll-behavior:none}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;overflow:hidden;position:fixed;inset:0;width:100%}button,input,textarea,select{font:inherit}button{color:inherit}.app{height:100dvh;min-height:0;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);overflow:hidden}
.sidebar{height:100dvh;min-height:0;min-width:0;background:var(--side);border-right:1px solid var(--line);display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;transition:transform .18s ease}.main{min-height:0}.side-head{padding:10px;display:grid;gap:8px}.brand{display:flex;align-items:center;gap:9px;padding:4px 2px}.logo{width:32px;height:32px;border-radius:10px;background:var(--text);color:var(--bg);display:grid;place-items:center;font-weight:900}.brand b{display:block;font-size:14px;line-height:1.1}.brand span{display:block;color:var(--muted);font-size:12px;line-height:1.2}.new-chat{height:42px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;font-weight:650;cursor:pointer}.new-chat:hover,.ghost:hover,.tiny:hover,.icon:hover,.pill:hover,.project-card:hover,.chat-item:hover,.action-chip:hover{background:var(--panel)}
.search-wrap{padding:0 10px 8px}.search-open{height:38px;width:100%;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:12px;padding:0 11px;text-align:left;cursor:pointer}.project-wrap{padding:0 10px 10px}.project-card{width:100%;min-height:56px;border:1px solid var(--line);background:var(--card);border-radius:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 11px;cursor:pointer;text-align:left}.project-card small{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}.project-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.project-card span:last-child{color:var(--muted);font-size:12px}.chat-list{min-height:0;overflow:auto;padding:4px 8px 10px}.chat-date{color:var(--muted);font-size:12px;padding:12px 8px 6px}.chat-item{min-height:44px;border-radius:10px;padding:8px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;cursor:pointer}.chat-item.active{background:var(--panel)}.chat-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-sub{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-tools{display:none;gap:3px}.chat-item:hover .chat-tools,.chat-item.active .chat-tools{display:flex}.mini-btn{border:0;background:transparent;border-radius:8px;cursor:pointer;min-width:28px;height:28px;color:var(--muted)}.mini-btn:hover{background:var(--card);color:var(--text)}.side-foot{border-top:1px solid var(--line);padding:10px;display:grid;gap:7px}.ghost,.tiny,.icon,.pill,.action-chip{border:0;background:transparent;cursor:pointer;border-radius:10px}.ghost{min-height:36px;padding:0 10px;display:flex;align-items:center;gap:8px}.tiny{min-height:32px;padding:0 10px;border:1px solid var(--line);background:var(--card);font-size:13px}.primary{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accentText)!important}.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger),transparent 62%)}.icon{width:40px;height:40px;display:grid;place-items:center;font-size:18px}.muted{color:var(--muted)}
.main{height:100dvh;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.topbar{min-height:56px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 14px;background:var(--bg)}.top-title{justify-self:center;display:flex;align-items:center;gap:8px;min-width:0}.top-title strong{font-size:15px;font-weight:650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.top-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}.messages{min-width:0;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;scroll-behavior:smooth;padding-bottom:8px}.empty{width:min(820px,calc(100% - 32px));margin:13vh auto 24px;text-align:center;display:grid;gap:22px}.empty h1{margin:0;font-size:clamp(30px,4vw,42px);letter-spacing:-.045em}.empty p{margin:0;color:var(--muted)}.suggest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}.suggest{min-height:82px;border:1px solid var(--line);background:var(--card);border-radius:16px;padding:13px 14px;cursor:pointer}.suggest:hover{background:var(--panel)}.suggest b{display:block;margin-bottom:5px}.suggest span{color:var(--muted);font-size:13px;line-height:1.45}
.msg-row{width:100%;position:relative}.msg-inner{width:min(900px,calc(100% - 32px));margin:0 auto;padding:18px 0;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start}.select-mode .msg-inner{grid-template-columns:34px minmax(0,1fr)}.msg-check{display:none;position:absolute;left:max(6px,calc(50% - 450px - 34px));top:50%;transform:translateY(-50%);z-index:3}.select-mode .msg-check{display:block}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel);font-weight:800;font-size:13px;user-select:none}.avatar.assistant{background:var(--accent);color:#fff}.content{min-width:0;font-size:15px;line-height:1.72;word-break:break-word}.content.user{justify-self:end;width:fit-content;max-width:min(680px,100%);background:var(--panel);border-radius:18px;padding:10px 14px;white-space:pre-wrap}.attachments-view{margin-top:8px;display:flex;flex-wrap:wrap;gap:7px}.att-chip{display:inline-flex;align-items:center;gap:7px;min-height:30px;max-width:260px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12px}.att-chip img{width:22px;height:22px;object-fit:cover;border-radius:50%}.att-chip.parsed{border-color:color-mix(in srgb,var(--accent),transparent 55%);color:var(--text)}.att-chip.warn{border-color:color-mix(in srgb,var(--danger),transparent 55%)}.att-meta{font-size:11px;color:var(--muted)}.msg-actions{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;opacity:0;transition:opacity .14s}.msg-inner:hover .msg-actions,.select-mode .msg-actions{opacity:1}.action-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border:1px solid var(--line);color:var(--muted);background:var(--card);font-size:12px}.action-chip:hover{color:var(--text)}.badge{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--card);font-size:12px}
.markdown p{margin:.65em 0}.markdown h1,.markdown h2,.markdown h3{line-height:1.28;margin:1.05em 0 .5em;letter-spacing:-.02em}.markdown h1{font-size:1.55em}.markdown h2{font-size:1.3em}.markdown h3{font-size:1.12em}.markdown ul,.markdown ol{margin:.7em 0;padding-left:1.45em}.markdown li{margin:.25em 0}.markdown blockquote{margin:.9em 0;padding-left:1em;color:var(--muted);border-left:3px solid var(--line)}.markdown table{border-collapse:collapse;display:block;overflow:auto;width:100%;margin:1em 0}.markdown th,.markdown td{border:1px solid var(--line);padding:7px 9px}.markdown :not(pre)>code{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:.12em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em}.code-wrap{margin:1em 0;border-radius:12px;overflow:hidden;background:var(--code);border:1px solid #30363d;color:var(--codeText)}.code-head{height:34px;background:var(--codeHead);color:#c9d1d9;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 12px;font-size:12px}.code-copy{min-height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.16);background:transparent;color:#c9d1d9;cursor:pointer;padding:0 8px}.code-copy:hover{background:rgba(255,255,255,.08)}pre{margin:0;padding:14px;overflow:auto;font-size:13px;line-height:1.55;tab-size:2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.kw{color:#ff7b72}.str{color:#a5d6ff}.cm{color:#8b949e}.compare-grid{display:grid;gap:10px;margin:10px 0}.compare-card{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}.compare-head{min-height:38px;padding:0 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.compare-body{padding:10px 12px}
.selection-bar{display:none;position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:18;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:999px;padding:7px;gap:6px;align-items:center}.select-mode .selection-bar{display:flex}.selection-bar span{padding:0 8px;color:var(--muted);font-size:13px;white-space:nowrap}
.composer-wrap{padding:10px 16px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 78%,rgba(255,255,255,0))}[data-theme="dark"] .composer-wrap{background:linear-gradient(to top,var(--bg) 78%,rgba(33,33,33,0))}.composer{width:min(var(--composer),100%);margin:0 auto;border:1px solid var(--line2);background:var(--card);border-radius:26px;box-shadow:0 2px 18px rgba(0,0,0,.07);overflow:hidden;position:relative}.composer.dragover{outline:2px solid var(--accent);outline-offset:3px}.drop-hint{position:absolute;inset:0;background:color-mix(in srgb,var(--accent),transparent 84%);display:none;place-items:center;z-index:5;color:var(--text);font-weight:800;border-radius:26px}.composer.dragover .drop-hint{display:grid}.attachment-bar{display:none;gap:7px;flex-wrap:wrap;padding:10px 12px 0}.attachment-bar.show{display:flex}.pending-att{display:inline-flex;align-items:center;gap:7px;max-width:260px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 8px;font-size:12px;color:var(--muted)}.pending-att img{width:24px;height:24px;object-fit:cover;border-radius:50%}.pending-att.parsed{border-color:color-mix(in srgb,var(--accent),transparent 52%)}.pending-att.warn{border-color:color-mix(in srgb,var(--danger),transparent 58%)}.pending-att .att-state{font-size:11px;color:var(--muted)}.remove-att{border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:50%;font-size:14px}.remove-att:hover{background:var(--line)}.prompt-input{display:block;width:100%;min-height:58px;max-height:230px;resize:none;outline:none;border:0;background:transparent;color:var(--text);padding:17px 17px 8px;line-height:1.55;font-size:16px}.composer-tools{min-height:46px;padding:6px 8px 8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.left-tools,.right-tools{min-width:0;display:flex;align-items:center;gap:7px}.pill{min-height:36px;border:1px solid var(--line);background:var(--card);padding:0 12px;border-radius:999px;display:inline-flex;align-items:center;gap:7px;font-weight:600;cursor:pointer}.mode-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.hint{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.send{width:36px;height:36px;border-radius:50%;border:0;background:var(--text);color:var(--bg);display:grid;place-items:center;cursor:pointer;font-weight:900}.send.stop{background:var(--danger);color:#fff}.send:disabled{opacity:.45;cursor:not-allowed}.file-input{display:none}.mode-menu{position:fixed;z-index:25;width:min(340px,calc(100vw - 24px));border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow);padding:7px;display:none}.mode-menu.show{display:grid;gap:4px}.mode-item{border:0;background:transparent;color:var(--text);cursor:pointer;border-radius:12px;padding:10px;text-align:left;display:grid;gap:3px}.mode-item:hover,.mode-item.active{background:var(--panel)}.mode-item b{font-size:14px}.mode-item span{color:var(--muted);font-size:12px;line-height:1.35}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.36);display:none;z-index:40}.modal-backdrop.show{display:grid;place-items:center}.modal{width:min(980px,calc(100vw - 24px));max-height:min(92dvh,880px);display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.modal.small{width:min(720px,calc(100vw - 24px))}.modal.wide{width:min(1160px,calc(100vw - 24px))}.modal-head{min-height:56px;padding:0 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-body{min-height:0;overflow:auto;padding:16px;display:grid;gap:16px}.settings-layout{display:grid;grid-template-columns:minmax(260px,.76fr) minmax(0,1.24fr);gap:14px;align-items:start}.card{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:13px;display:grid;gap:10px}.card h3{margin:0;font-size:15px}.field{display:grid;gap:6px}.field label{color:var(--muted);font-size:12px;font-weight:650}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;outline:none}.input,.select{height:40px;padding:0 10px}.textarea{min-height:96px;padding:9px 10px;resize:vertical;line-height:1.5}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.note{color:var(--muted);font-size:12px;line-height:1.55}.project-list{display:grid;gap:7px}.project-item{border:1px solid var(--line);background:var(--card);border-radius:12px;min-height:42px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.project-item.active{background:var(--panel);border-color:var(--line2)}.search-layout{display:grid;grid-template-columns:minmax(340px,.86fr) minmax(0,1.14fr);gap:14px;min-height:520px}.search-results{display:grid;gap:8px;align-content:start}.search-result{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:10px;display:grid;gap:6px}.search-result.active{outline:2px solid var(--accent)}.search-result mark{background:rgba(16,163,127,.18);color:var(--text);border-radius:4px;padding:0 2px}.preview-box{border:1px solid var(--line);border-radius:16px;padding:12px;min-height:380px;overflow:auto;background:var(--bg);white-space:pre-wrap}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%) translateY(16px);background:var(--text);color:var(--bg);padding:10px 14px;border-radius:999px;box-shadow:var(--shadow);z-index:60;opacity:0;pointer-events:none;transition:.18s;font-size:13px}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:960px){:root{--sidebar:300px}.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(var(--sidebar),88vw);z-index:22;box-shadow:var(--shadow);transform:translateX(-105%)}.app.sidebar-open .sidebar{transform:translateX(0)}.topbar{border-bottom:1px solid var(--line)}.settings-layout,.search-layout,.two,.three,.suggest-grid{grid-template-columns:1fr}.hint{display:none}.modal{max-height:94dvh}.top-actions .hide-mobile{display:none}.msg-inner{width:min(100% - 20px,850px);grid-template-columns:var(--checkcol,0px) 30px minmax(0,1fr);gap:8px}.avatar{width:28px;height:28px}.content.user{max-width:100%}.composer-wrap{padding-left:10px;padding-right:10px}.pill{min-height:38px;padding:0 10px}.prompt-input{font-size:16px}.chat-tools{display:flex}.selection-bar{max-width:calc(100vw - 20px);border-radius:18px;flex-wrap:wrap;justify-content:center}.modal-body{padding:12px}}

/* v5 width fix: selection checkboxes no longer consume message layout width. */
:root{--composer:960px}
.msg-inner{width:min(960px,calc(100% - 40px));grid-template-columns:34px minmax(0,1fr)!important;position:relative;gap:14px}.select-mode .msg-inner{--checkcol:0px}.msg-check{position:absolute;left:-34px;top:50%;transform:translateY(-50%);width:20px;height:20px;margin:0}.select-mode .msg-check{display:block}.content.user{max-width:min(760px,100%)}.composer{width:min(960px,100%)}
@media(max-width:960px){.msg-inner{width:calc(100% - 32px)!important;grid-template-columns:30px minmax(0,1fr)!important;gap:10px}.msg-check{left:0;top:18px;transform:none}.select-mode .msg-inner{padding-left:28px}.composer{width:100%}.composer-wrap{padding-left:12px;padding-right:12px}.content.user{max-width:100%}}
@media(min-width:1280px){:root{--composer:1000px}.msg-inner{width:min(1000px,calc(100% - 64px))}.content.user{max-width:min(800px,100%)}}


/* v7: polished attachment cards + robust markdown layout */
.content-wrap{min-width:0;max-width:100%}.content-wrap.user-wrap{justify-self:end;width:min(760px,100%);display:flex;flex-direction:column;align-items:flex-end}.content-wrap.assistant-wrap{width:100%}.content.user{max-width:min(720px,100%);width:auto}.attachments-view{margin-top:10px;display:grid;gap:8px;width:min(440px,100%)}.content-wrap.user-wrap .attachments-view{align-self:flex-end}.content-wrap.assistant-wrap .attachments-view{width:min(520px,100%)}.att-chip{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;width:100%;max-width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);font-size:13px;box-shadow:0 1px 0 rgba(0,0,0,.02);overflow:hidden}.att-chip:hover{background:var(--panel)}.att-chip img{width:34px;height:34px;object-fit:cover;border-radius:9px}.att-chip.parsed{border-color:color-mix(in srgb,var(--accent),transparent 48%)}.att-chip.warn{border-color:color-mix(in srgb,var(--danger),transparent 55%)}.att-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--panel);font-weight:800;font-size:12px;color:var(--muted);border:1px solid var(--line)}.att-chip.parsed .att-icon{background:color-mix(in srgb,var(--accent),transparent 90%);color:var(--accent);border-color:color-mix(in srgb,var(--accent),transparent 70%)}.att-chip.warn .att-icon{background:color-mix(in srgb,var(--danger),transparent 92%);color:var(--danger);border-color:color-mix(in srgb,var(--danger),transparent 70%)}.att-info{min-width:0;display:grid;gap:2px}.att-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;color:var(--text);line-height:1.25}.att-meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-preview-toggle{border:1px solid var(--line);background:var(--card);border-radius:999px;min-height:28px;padding:0 9px;color:var(--muted);font-size:12px;cursor:pointer;white-space:nowrap}.att-preview-toggle:hover{background:var(--panel);color:var(--text)}.att-preview{grid-column:1/-1;margin-top:2px;border-top:1px solid var(--line);padding-top:8px}.att-preview summary{cursor:pointer;color:var(--muted);font-size:12px;list-style:none}.att-preview summary::-webkit-details-marker{display:none}.att-preview pre{margin:8px 0 0;max-height:220px;overflow:auto;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.pending-att{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;max-width:min(360px,100%);border-radius:14px;padding:6px 8px}.pending-att>span:not(.att-state){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-att .att-state{font-size:11px;white-space:nowrap}.msg-actions{opacity:.68;gap:5px}.msg-inner:hover .msg-actions,.select-mode .msg-actions{opacity:1}.action-chip{background:transparent;border-color:var(--line);color:var(--muted);min-height:26px;padding:0 8px}.action-chip:hover{background:var(--panel);color:var(--text)}.markdown{overflow-wrap:anywhere}.markdown a{color:var(--accent);text-decoration:none}.markdown a:hover{text-decoration:underline}.markdown hr{border:0;border-top:1px solid var(--line);margin:1.2em 0}.markdown img{max-width:100%;border-radius:12px}.markdown pre{white-space:pre;word-break:normal}.markdown input[type="checkbox"]{vertical-align:middle;margin-right:.35em}@media(max-width:760px){.content-wrap.user-wrap{width:min(100%,720px)}.attachments-view,.content-wrap.assistant-wrap .attachments-view{width:min(100%,440px)}.att-chip{grid-template-columns:32px minmax(0,1fr);padding:8px}.att-preview-toggle{grid-column:1/-1;justify-self:start}.att-preview{grid-column:1/-1}.msg-actions{opacity:1}.content.user{max-width:100%}}


/* v8 profile management + local sync */
.settings-layout.v8{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr)}
.settings-wide{grid-column:1/-1}
.profile-manage{display:flex;gap:8px;flex-wrap:wrap}
.profile-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:-2px}
.profile-toolbar .tiny{min-height:30px}
.checkline{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px}
.sync-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sync-panel{display:none;border:1px dashed var(--line2);border-radius:14px;padding:11px;background:var(--panel);gap:10px}
.sync-panel.show{display:grid}
.qr-box{display:none;grid-template-columns:180px minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card)}
.qr-box.show{display:grid}
.qr-box canvas{width:170px!important;height:170px!important;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px}
.sync-text{min-height:112px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.scan-box{display:none;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card)}
.scan-box.show{display:grid}
#qrVideo{width:100%;max-height:260px;border-radius:12px;background:#000}
@media(max-width:960px){.settings-layout.v8,.sync-grid,.qr-box{grid-template-columns:1fr}.qr-box canvas{width:150px!important;height:150px!important}.settings-wide{grid-column:auto}}

/* v10 parallel generation, notices and compare carousel */
.notify-rail{position:fixed;left:0;right:0;top:64px;height:42px;z-index:55;pointer-events:none;overflow:hidden}
.notice-marquee{position:absolute;right:-560px;top:0;max-width:min(560px,calc(100vw - 24px));height:38px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);box-shadow:var(--shadow);color:var(--text);font-size:13px;pointer-events:auto;cursor:pointer;animation:noticeMove 12s linear forwards;white-space:nowrap}
.notice-marquee b{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-marquee span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-close{border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:50%;width:24px;height:24px}.notice-close:hover{background:var(--panel);color:var(--text)}
@keyframes noticeMove{0%{transform:translateX(0);opacity:0}6%{opacity:1}88%{opacity:1}100%{transform:translateX(calc(-100vw - 720px));opacity:0}}
.compare-carousel{border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;margin:10px 0}.compare-carousel.preferred{border-color:color-mix(in srgb,var(--accent),transparent 20%);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 82%)}
.compare-toolbar{min-height:42px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 9px;background:var(--panel)}
.compare-title{min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:12px}.compare-title b{color:var(--text);font-size:13px}.compare-nav{display:flex;align-items:center;gap:4px}.compare-nav .tiny{min-height:30px}.compare-body{padding:12px 14px}.compare-status{color:var(--muted);font-size:13px}.compare-choice{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.choice-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--accent),transparent 86%);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent),transparent 55%);font-size:12px;font-weight:700}.run-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--muted)}.run-dot.running{background:#eab308;animation:pulseDot 1s infinite}.run-dot.done{background:var(--accent)}.run-dot.fail{background:var(--danger)}@keyframes pulseDot{50%{opacity:.35}}
.chat-item.running .chat-title::after{content:' 生成中';font-size:11px;color:var(--accent);font-weight:600}.chat-item.has-new{outline:1px solid color-mix(in srgb,var(--accent),transparent 45%)}
@media(max-width:960px){.notify-rail{top:54px}.notice-marquee{height:36px;font-size:12px;max-width:calc(100vw - 18px)}.compare-toolbar{grid-template-columns:1fr}.compare-nav,.compare-choice{justify-content:flex-start}}


/* v11: composer quick model/temperature/prompt controls */
.left-tools{flex-wrap:wrap}
.quick-param-pill{max-width:min(330px,42vw);min-width:0}
.quick-param-pill .quick-brief{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:600}
.quick-panel{position:fixed;z-index:32;width:min(420px,calc(100vw - 24px));border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:18px;padding:12px;display:none;gap:10px}
.quick-panel.show{display:grid}
.quick-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.quick-panel-head b{font-size:14px}
.quick-grid{display:grid;gap:10px}
.quick-row{display:grid;grid-template-columns:1fr 120px;gap:10px}
.quick-panel .textarea{min-height:92px}
.quick-panel .note{font-size:12px;line-height:1.45}
@media(max-width:960px){.composer-tools{align-items:flex-start}.left-tools{gap:6px}.quick-param-pill{max-width:calc(100vw - 122px)}.quick-param-pill .quick-brief{max-width:120px}.quick-row{grid-template-columns:1fr}.hint{width:100%;max-width:100%;display:block}.quick-panel{bottom:88px!important;left:10px!important;right:10px!important;width:auto}}


/* v12: paste image + stream/plain toggle + clearer generating animation */
.checkline.stream-toggle{align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 10px}.stream-toggle strong{font-size:13px}.stream-toggle .stream-help{color:var(--muted);font-size:12px;line-height:1.35}.stream-mode-badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:0 8px;color:var(--muted);font-size:12px}.stream-mode-badge.on::before{content:"";width:7px;height:7px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent),transparent 85%)}.stream-mode-badge.off::before{content:"";width:7px;height:7px;border-radius:999px;background:var(--muted);opacity:.65}.composer.paste-flash{outline:2px solid var(--accent);outline-offset:3px;animation:pastePulse .9s ease}.paste-hint{position:absolute;right:14px;top:10px;z-index:6;pointer-events:none;background:var(--text);color:var(--bg);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;opacity:0;transform:translateY(-6px);transition:.18s}.composer.paste-flash .paste-hint{opacity:1;transform:translateY(0)}
.thinking-card{margin:4px 0 0;max-width:520px;border:1px solid color-mix(in srgb,var(--accent),transparent 58%);background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 92%),var(--card));border-radius:18px;padding:12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;box-shadow:0 10px 28px rgba(0,0,0,.06)}[data-theme="dark"] .thinking-card{box-shadow:0 10px 28px rgba(0,0,0,.24)}.thinking-creatures{position:relative;width:76px;height:44px}.think-blob{position:absolute;bottom:0;border-radius:18px 18px 8px 8px;width:30px;height:34px;display:block;transform-origin:bottom center;animation:blobBreathe 1.4s ease-in-out infinite}.think-blob::before,.think-blob::after{content:"";position:absolute;top:10px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px rgba(0,0,0,.18);animation:eyeBlink 4.2s infinite}.think-blob::before{left:7px}.think-blob::after{right:7px}.think-blob.purple{left:0;background:#6c3ff5;animation-delay:0s}.think-blob.black{left:23px;background:#2d2d2d;height:38px;z-index:2;animation-delay:.18s}.think-blob.orange{left:48px;background:#ff9b6b;height:30px;animation-delay:.32s}.thinking-copy{min-width:0;display:grid;gap:3px}.thinking-copy b{font-size:14px}.thinking-copy span{font-size:12px;color:var(--muted);line-height:1.35}.thinking-bar{grid-column:1/-1;height:5px;border-radius:999px;background:var(--panel);overflow:hidden;border:1px solid var(--line)}.thinking-bar i{display:block;width:34%;height:100%;border-radius:999px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:barTravel 1.05s ease-in-out infinite}.stream-tail{display:inline-flex;align-items:center;gap:9px;margin-top:10px;color:var(--muted);font-size:12px}.typing-dots{display:inline-flex;gap:4px}.typing-dots i{width:6px;height:6px;border-radius:999px;background:var(--accent);animation:dotJump 1s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}.run-dot.running{animation:pulseDot 1s ease-in-out infinite}.send.busy-pulse{animation:sendPulse 1s ease-in-out infinite}.chat-item.running .chat-title::after{content:" 生成中";margin-left:6px;color:var(--accent);font-size:11px;font-weight:700}.compare-status{display:grid;gap:8px}.compare-status .thinking-card{max-width:100%;margin:0}
@keyframes blobBreathe{0%,100%{transform:translateY(0) skewX(0deg)}35%{transform:translateY(-4px) skewX(-4deg)}65%{transform:translateY(-2px) skewX(4deg)}}@keyframes eyeBlink{0%,92%,100%{height:6px;top:10px}94%,96%{height:2px;top:12px}}@keyframes barTravel{0%{transform:translateX(-110%)}100%{transform:translateX(320%)}}@keyframes dotJump{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}@keyframes pulseDot{0%,100%{opacity:.45;transform:scale(.95)}50%{opacity:1;transform:scale(1.25)}}@keyframes sendPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--danger),transparent 70%)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--danger),transparent 88%)}}@keyframes pastePulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent),transparent 60%)}100%{box-shadow:0 2px 18px rgba(0,0,0,.07)}}
@media(max-width:720px){.thinking-card{max-width:100%;grid-template-columns:auto minmax(0,1fr)}.thinking-creatures{width:64px}.think-blob.orange{left:42px}.stream-toggle .stream-help{display:block}}



/* v13: ChatGPT-new composer layout: left +, right mode combo + send */
.composer{border-radius:28px}.composer-tools{min-height:50px;padding:6px 10px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.left-tools{justify-self:start;display:flex;align-items:center}.right-tools{justify-self:end;display:flex;align-items:center;gap:8px}.composer-plus{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:transparent;padding:0;display:grid;place-items:center;font-size:28px;font-weight:300;line-height:1;color:var(--text)}.composer-plus:hover{background:var(--panel)}.mode-combo{min-height:40px;border-radius:12px;padding:0 14px;border:1px solid var(--line);background:transparent;display:inline-flex;align-items:center;gap:8px;font-weight:650}.mode-combo:hover{background:var(--panel)}.mode-combo .combo-caret{font-size:13px;color:var(--muted)}.mode-combo .combo-sub{font-size:12px;color:var(--muted);font-weight:600}.quick-param-pill.v13-hidden,#clearInputBtn.v13-hidden,#statusHint.v13-hidden{display:none!important}.prompt-input{padding:17px 18px 8px}.mode-section-title{padding:7px 9px 4px;color:var(--muted);font-size:12px;font-weight:750}.mode-menu-sep{height:1px;background:var(--line);margin:4px 4px}.mode-item.split{grid-template-columns:minmax(0,1fr) auto;align-items:center}.mode-item .state-pill{justify-self:end;display:inline-flex;align-items:center;min-height:22px;border:1px solid var(--line);border-radius:999px;padding:0 7px;color:var(--muted);font-size:12px}.mode-item.active .state-pill{border-color:color-mix(in srgb,var(--accent),transparent 45%);color:var(--accent)}.drop-hint{font-size:15px}.attachment-bar.show{padding:10px 12px 0}.composer.paste-flash{outline:2px solid var(--accent);outline-offset:3px;animation:pastePulse .9s ease}.paste-hint{position:absolute;right:14px;top:10px;z-index:6;pointer-events:none;background:var(--text);color:var(--bg);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;opacity:0;transform:translateY(-6px);transition:.18s}.composer.paste-flash .paste-hint{opacity:1;transform:translateY(0)}
.thinking-card{margin:4px 0 0;max-width:560px;border:1px solid color-mix(in srgb,var(--accent),transparent 58%);background:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 92%),var(--card));border-radius:18px;padding:12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;box-shadow:0 10px 28px rgba(0,0,0,.06)}[data-theme="dark"] .thinking-card{box-shadow:0 10px 28px rgba(0,0,0,.24)}.thinking-creatures{position:relative;width:76px;height:44px}.think-blob{position:absolute;bottom:0;border-radius:18px 18px 8px 8px;width:30px;height:34px;display:block;transform-origin:bottom center;animation:blobBreathe 1.4s ease-in-out infinite}.think-blob::before,.think-blob::after{content:"";position:absolute;top:10px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px rgba(0,0,0,.18);animation:eyeBlink 4.2s infinite}.think-blob::before{left:7px}.think-blob::after{right:7px}.think-blob.purple{left:0;background:#6c3ff5;animation-delay:0s}.think-blob.black{left:23px;background:#2d2d2d;height:38px;z-index:2;animation-delay:.18s}.think-blob.orange{left:48px;background:#ff9b6b;height:30px;animation-delay:.32s}.thinking-copy{min-width:0;display:grid;gap:3px}.thinking-copy b{font-size:14px}.thinking-copy span{font-size:12px;color:var(--muted);line-height:1.35}.thinking-bar{grid-column:1/-1;height:5px;border-radius:999px;background:var(--panel);overflow:hidden;border:1px solid var(--line)}.thinking-bar i{display:block;width:34%;height:100%;border-radius:999px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:barTravel 1.05s ease-in-out infinite}.stream-tail{display:inline-flex;align-items:center;gap:9px;margin-top:10px;color:var(--muted);font-size:12px}.typing-dots{display:inline-flex;gap:4px}.typing-dots i{width:6px;height:6px;border-radius:999px;background:var(--accent);animation:dotJump 1s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}.send.busy-pulse{animation:sendPulse 1s ease-in-out infinite}.chat-item.running .chat-title::after{content:" 生成中";margin-left:6px;color:var(--accent);font-size:11px;font-weight:700}.compare-status{display:grid;gap:8px}.compare-status .thinking-card{max-width:100%;margin:0}.stream-toggle{align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:9px 10px}.stream-toggle strong{font-size:13px}.stream-toggle .stream-help{display:block;color:var(--muted);font-size:12px;line-height:1.35}
@keyframes blobBreathe{0%,100%{transform:translateY(0) skewX(0deg)}35%{transform:translateY(-4px) skewX(-4deg)}65%{transform:translateY(-2px) skewX(4deg)}}@keyframes eyeBlink{0%,92%,100%{height:6px;top:10px}94%,96%{height:2px;top:12px}}@keyframes barTravel{0%{transform:translateX(-110%)}100%{transform:translateX(320%)}}@keyframes dotJump{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}@keyframes sendPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent),transparent 70%)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent),transparent 88%)}}@keyframes pastePulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent),transparent 60%)}100%{box-shadow:0 2px 18px rgba(0,0,0,.07)}}
@media(max-width:720px){.composer-tools{grid-template-columns:auto 1fr auto}.mode-combo{padding:0 10px}.mode-combo .combo-sub{display:none}.thinking-card{max-width:100%;grid-template-columns:auto minmax(0,1fr)}.thinking-creatures{width:64px}.think-blob.orange{left:42px}.left-tools .hint{display:none}}



/* v14: smarter mascot loading card with local timing-based progress */
.thinking-card.smart-thinking{max-width:620px;padding:12px 14px;border-radius:20px;border:1px solid color-mix(in srgb,var(--accent),transparent 64%);background:linear-gradient(180deg,color-mix(in srgb,var(--accent),transparent 94%),var(--card));display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;box-shadow:0 10px 26px rgba(0,0,0,.06);overflow:hidden;position:relative}
[data-theme="dark"] .thinking-card.smart-thinking{box-shadow:0 12px 28px rgba(0,0,0,.26)}
.thinking-card.smart-thinking::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent),transparent 12%),transparent);opacity:.34}
.thinking-card.smart-thinking.is-passive{opacity:.9}
.thinking-card.smart-thinking.is-passive .progress-fill{animation-play-state:paused}
.thinking-card.smart-thinking.is-hidden-card{display:none}
.mascot-cluster{display:flex;align-items:flex-end;gap:7px;min-width:92px;padding-left:2px}
.mascot{--mascotColor:#6c3ff5;position:relative;display:block;width:28px;height:34px;border-radius:16px 16px 9px 9px;background:var(--mascotColor);box-shadow:inset 0 -5px 0 rgba(255,255,255,.06),0 8px 18px rgba(0,0,0,.12);transform-origin:50% 100%;animation:mascotFloat 1.6s ease-in-out infinite}
.mascot::after{content:"";position:absolute;left:6px;right:6px;bottom:-6px;height:5px;border-radius:99px;background:rgba(0,0,0,.12);filter:blur(2px);opacity:.5}
.mascot.mid{height:38px;width:30px;z-index:2;animation-delay:.15s}
.mascot.small{height:30px;width:26px;animation-delay:.28s}
.mascot.tall{height:42px;width:31px;z-index:1;animation-delay:.21s}
.mascot.tiny{height:26px;width:23px;animation-delay:.36s}
.mascot.purple{--mascotColor:#6c3ff5}
.mascot.black{--mascotColor:#2d2d2d}
.mascot.orange{--mascotColor:#ff9b6b}
.mascot.teal{--mascotColor:#16b8a6}
.mascot.rose{--mascotColor:#ff6f91}
.mascot .eye{position:absolute;top:10px;width:8px;height:8px;border-radius:50%;background:#fff;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.09)}
.mascot.mid .eye{top:11px;width:9px;height:9px}
.mascot.small .eye{top:9px;width:7px;height:7px}
.mascot.tall .eye{top:12px;width:9px;height:9px}
.mascot.tiny .eye{top:8px;width:6px;height:6px}
.mascot .eye.left{left:6px}.mascot .eye.right{right:6px}
.mascot .pupil{position:absolute;left:2px;top:2px;width:4px;height:4px;border-radius:50%;background:#111;transform:translate(var(--px,0),var(--py,0));transition:transform .12s ease}
.mascot.mid .pupil{left:2.5px;top:2.5px}.mascot.small .pupil{width:3.5px;height:3.5px;left:1.7px;top:1.7px}.mascot.tall .pupil{left:2.5px;top:2.5px}.mascot.tiny .pupil{width:3px;height:3px;left:1.5px;top:1.5px}
.mascot .lid{position:absolute;inset:-1px;background:var(--mascotColor);transform-origin:50% 0%;transform:scaleY(0);animation:mascotBlink 4.6s infinite}
.mascot.mid .lid{animation-delay:.4s}.mascot.small .lid{animation-delay:.9s}
.thinking-main{min-width:0;display:grid;gap:8px}
.thinking-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.thinking-title{font-size:14px;font-weight:800;letter-spacing:.01em}
.thinking-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 10px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--muted);font-size:12px;white-space:nowrap}
.thinking-badge i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent),transparent 84%)}
.thinking-sub{color:var(--muted);font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.thinking-progress{display:grid;gap:6px}
.progress-track{height:9px;border-radius:999px;background:color-mix(in srgb,var(--panel),var(--card) 42%);border:1px solid var(--line);overflow:hidden;position:relative}
.progress-track.indeterminate .progress-fill{width:36%!important;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent),transparent 8%),transparent);animation:thinkingIndeterminate 1.18s ease-in-out infinite}
.progress-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent),white 22%),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--accent),transparent 65%);transition:width .18s ease}
.progress-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}
.progress-meta strong{color:var(--text);font-weight:700}
.mascot-exit{display:inline-flex;align-items:flex-end;gap:6px;margin-top:8px;opacity:.92;animation:mascotLeave .32s ease forwards}
.mascot-exit .mascot{animation-duration:.9s}
@keyframes mascotFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.02)}}
@keyframes mascotBlink{0%,88%,100%{transform:scaleY(0)}90%,94%{transform:scaleY(1)}}
@keyframes thinkingIndeterminate{0%{transform:translateX(-120%)}100%{transform:translateX(300%)}}
@keyframes thinkingLeave{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(26px)}}
@keyframes mascotLeave{0%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(18px)}}
@media(max-width:720px){.thinking-card.smart-thinking{max-width:100%;grid-template-columns:auto minmax(0,1fr);padding:12px}.mascot-cluster{min-width:78px;gap:6px}.mascot.mid{width:28px}.thinking-row{align-items:flex-start;flex-direction:column}.thinking-badge{padding:0 8px}}



/* v16: stable desktop drag/drop and cleaner settings refresh */
.composer.dragover{outline:2px solid var(--accent);outline-offset:3px}
.composer.dragover .drop-hint{display:grid!important;pointer-events:none;background:color-mix(in srgb,var(--accent),transparent 82%);backdrop-filter:blur(2px)}
.composer.dragover .prompt-input::placeholder{color:transparent!important;opacity:0!important}
.composer.dragover .prompt-input{caret-color:transparent}
.composer.dragover .composer-tools{opacity:.18;transition:opacity .12s ease}
#modelCacheNote.v16-active{color:var(--accent)}
.settings-live-note{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid color-mix(in srgb,var(--accent),transparent 55%);border-radius:999px;color:var(--accent);font-size:12px;background:color-mix(in srgb,var(--accent),transparent 91%)}



/* v18 targeted fix: only the rightmost pink mascot. Do not alter the other mascots. */
.mascot.rose.tiny{width:28px;height:30px;animation:mascotFloatRightmost 2.2s ease-in-out infinite;animation-delay:.36s;pointer-events:none;will-change:transform}
.mascot.rose.tiny::after{left:7px;right:7px;bottom:-5px}
.mascot.rose.tiny .eye{top:9px;width:7px;height:7px;pointer-events:none}
.mascot.rose.tiny .eye.left{left:7px}
.mascot.rose.tiny .eye.right{right:7px}
.mascot.rose.tiny .pupil{width:3.4px;height:3.4px;left:1.8px;top:1.8px;transition:transform .18s ease-out;pointer-events:none}
.mascot.rose.tiny .lid{animation:mascotBlinkRightmost 6.8s infinite;animation-delay:1.4s;pointer-events:none}
@keyframes mascotFloatRightmost{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.01)}}
@keyframes mascotBlinkRightmost{0%,93%,100%{transform:scaleY(0)}95%,97%{transform:scaleY(1)}}

/* mobile scroll and gesture stability */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
body{position:fixed;inset:0;width:100%;touch-action:manipulation}
.app,.main,.sidebar{min-height:0;overflow:hidden}
.messages,.chat-list,.modal-body,.search-results,.preview-box{
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
}
.messages{min-height:0}
@media(max-width:960px){
  .app{height:100dvh;min-height:100svh}
  .main{height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr) auto}
  .sidebar{height:100dvh;min-height:0}
  .messages{height:auto;min-height:0;padding-bottom:12px}
  .composer-wrap{position:relative;z-index:12}
  .modal{max-height:calc(100dvh - 20px)}
  .modal-body{max-height:calc(100dvh - 78px)}
}
#edgeBackGuard{
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  width:28px;
  z-index:2147483647;
  background:transparent;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
}
