/* 收藏、驻站 AI 与书房伙伴。 */
.starbtn[aria-pressed="true"] .icon{fill:currentColor;stroke:currentColor}.side-nav .side-link[data-admin]{justify-content:flex-start!important}
.favorites-wrap{padding-bottom:65px}.favorites-heading{position:relative;max-width:none;padding-right:120px}.favorites-heading-star{position:absolute;right:12px;top:45px;display:grid;place-items:center;width:76px;height:76px;background:color-mix(in srgb,var(--warm) 8%,var(--bg-soft));color:var(--warm);border-radius:25px;transform:rotate(8deg)}.favorites-heading-star .icon{width:31px;height:31px;fill:currentColor;opacity:.7;stroke-width:1.1}.favorites-tools{display:flex;gap:12px;align-items:center;margin-bottom:18px}.favorites-tools .searchbox{max-width:540px}.favorites-tools .searchbox input{font-size:12px}.favorites-tools>select{border:1px solid var(--line);background:var(--surface);color:var(--text-soft);font-size:11px;min-height:40px;padding:8px 11px;border-radius:9px}.favorites-filters{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:25px}.favorites-filters>span{font-size:10px;color:var(--text-faint);margin-left:auto}.favorites-wrap .empty-state{padding:55px 25px}.favorites-wrap .empty-state h2{font-family:var(--font-serif);font-size:26px;font-weight:500;margin-bottom:13px}.favorites-wrap .empty-state .primary{font-size:12px;min-height:39px;padding:9px 15px}.favorites-wrap .empty-state .primary .icon{width:14px;height:14px}
/* 常驻伙伴：动作轻，文字短，位置可自由摆放。 */
.site-companion{position:fixed;z-index:45;width:var(--companion-size,108px);user-select:none;-webkit-user-select:none;isolation:isolate}.companion-model{display:block;position:relative;box-sizing:border-box;width:100%;padding:0;border:0;background:transparent;line-height:0;cursor:pointer;touch-action:none;border-radius:40%;outline-offset:3px!important}.site-companion.can-drag .companion-model{cursor:grab}.site-companion.is-dragging .companion-model{cursor:grabbing}.companion-art,.companion-custom-image{display:block;width:100%;height:auto;overflow:visible;pointer-events:none;filter:drop-shadow(0 3px 4px #263c2410)}.companion-custom-image{height:calc(var(--companion-size,108px) * 1.055);object-fit:contain;animation:companion-breathe calc(4.5s * var(--anim-speed,1)) ease-in-out infinite;transform-origin:center bottom}.companion-art{--pet-fur:#f0ebd9}.companion-art[data-skin=fox]{--pet-fur:#e5ba94}.companion-art[data-skin=blob]{--pet-fur:color-mix(in srgb,var(--companion-color) 40%,#fff9e6)}.pet-fur{fill:var(--pet-fur)}.pet-outline{stroke:#748064;stroke-width:2;stroke-linejoin:round}.pet-body{animation:companion-breathe calc(4.5s * var(--anim-speed,1)) ease-in-out infinite;transform-box:view-box;transform-origin:90px 171px}.pet-tail{animation:companion-tail calc(7s * var(--anim-speed,1)) ease-in-out infinite;transform-box:view-box;transform-origin:48px 141px}.pet-eyes-open{animation:companion-blink calc(6.1s * var(--anim-speed,1)) linear infinite;transform-box:fill-box;transform-origin:center}.pet-eyes-happy{opacity:0}.pet-hearts .pet-heart{opacity:0;transform-box:fill-box;transform-origin:center}.is-petted .pet-eyes-open{opacity:0}.is-petted .pet-eyes-happy{opacity:1}.is-petted .pet-paw{animation:companion-paw calc(.65s * var(--anim-speed,1)) ease-in-out 2;transform-box:fill-box;transform-origin:center}.is-petted .pet-heart{animation:companion-heart calc(1.55s * var(--anim-speed,1)) ease-out both}.is-petted .pet-heart--two{animation-delay:.18s}.is-petted .pet-heart--three{animation-delay:.35s}.is-petted .pet-head{animation:companion-nuzzle calc(.65s * var(--anim-speed,1)) ease-in-out 2;transform-box:view-box;transform-origin:90px 90px}.companion-restore{position:fixed;right:16px;bottom:16px;z-index:44;display:inline-flex;align-items:center;gap:6px;padding:8px 13px 8px 10px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text-soft);font-size:11px;line-height:1;box-shadow:var(--shadow);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;animation:companion-bubble-in calc(200ms * var(--anim-speed,1)) var(--ease)}.companion-restore:hover{color:var(--accent);border-color:var(--accent)}.companion-restore .icon{width:14px;height:14px;color:var(--accent)}.companion-restore[hidden]{display:none}@media(max-width:520px){.companion-restore{right:12px;bottom:12px;font-size:12px;padding:9px 14px 9px 11px}}.companion-actions{display:flex;align-items:center;justify-content:center;gap:4px;opacity:0;transition:opacity var(--fast);min-height:24px}.site-companion:hover .companion-actions,.site-companion:focus-within .companion-actions{opacity:1}.companion-actions>a,.companion-actions>button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:23px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text-faint);padding:0;box-shadow:var(--shadow)}.companion-actions .icon{width:12px;height:12px}.companion-actions>a:hover,.companion-actions>button:hover{color:var(--accent);border-color:var(--accent)}.companion-bubble{position:absolute;bottom:calc(100% - 5px);right:4px;width:238px;max-width:calc(100vw - 32px);padding:14px 17px;background:color-mix(in srgb,var(--surface) calc(100% - var(--companion-bubble-transparency, 10%)),transparent);border:1px solid color-mix(in srgb,color-mix(in srgb,var(--accent) 22%,var(--line)) calc(100% - var(--companion-bubble-transparency, 10%)),transparent);border-radius:14px;box-shadow:var(--shadow);user-select:text;-webkit-user-select:text;animation:companion-bubble-in calc(240ms * var(--anim-speed)) var(--ease)}.companion-bubble::after{content:"";position:absolute;right:24px;bottom:-5px;width:9px;height:9px;border-bottom:1px solid color-mix(in srgb,color-mix(in srgb,var(--accent) 22%,var(--line)) calc(100% - var(--companion-bubble-transparency, 10%)),transparent);border-right:1px solid color-mix(in srgb,color-mix(in srgb,var(--accent) 22%,var(--line)) calc(100% - var(--companion-bubble-transparency, 10%)),transparent);background:color-mix(in srgb,var(--surface) calc(100% - var(--companion-bubble-transparency, 10%)),transparent);transform:rotate(45deg)}.bubble-on-left .companion-bubble{left:4px;right:auto}.bubble-on-left .companion-bubble::after{left:24px;right:auto}.bubble-below .companion-bubble{top:calc(100% - 5px);bottom:auto}.bubble-below .companion-bubble::after{top:-5px;bottom:auto;transform:rotate(225deg)}.companion-bubble-name{font-size:9px;letter-spacing:.04em;color:var(--accent);display:block;margin-bottom:6px}.companion-bubble p{font-size:12px;color:var(--text-soft);line-height:1.9;margin:0;white-space:normal;overflow-wrap:anywhere}.companion-bubble-close{position:absolute;right:7px;top:5px;display:grid;place-items:center;border:0;background:transparent;color:var(--text-faint);padding:0;font-size:15px;width:19px;height:21px;border-radius:4px}.companion-bubble-close:hover{background:var(--bg-soft)}.has-companion .edit-toggle{right:calc(var(--companion-size,108px) + 35px)}.site-companion.is-dragging{filter:drop-shadow(0 6px 10px #27332120)}
@keyframes companion-breathe{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-2px) scale(1.012,.985)}}@keyframes companion-tail{0%,72%,100%{transform:rotate(0)}80%{transform:rotate(-6deg)}90%{transform:rotate(4deg)}}@keyframes companion-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.08)}}@keyframes companion-heart{0%{opacity:0;transform:translateY(9px) scale(.6)}22%{opacity:.9;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-15px) scale(.9)}}@keyframes companion-paw{0%,100%{transform:rotate(-12deg) translateY(0)}50%{transform:rotate(4deg) translateY(-3px)}}@keyframes companion-nuzzle{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg)}}@keyframes companion-bubble-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.no-motion .pet-body,.no-motion .pet-tail,.no-motion .pet-eyes-open,.no-motion .pet-paw,.no-motion .pet-head,.no-motion .companion-custom-image,.no-motion .pet-heart,.no-motion .companion-bubble{animation:none!important}.no-motion .pet-hearts{display:none}
/* 设计栏中的 AI 与陪伴设置。 */
.assistant-preview{display:flex;align-items:center;justify-content:center;gap:15px;min-height:148px;padding:10px 12px 16px;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.assistant-preview-model{display:block;width:108px;max-width:140px;flex:none;border:0;padding:0;background:transparent;line-height:0;cursor:pointer;--companion-size:108px}.assistant-preview-model .companion-custom-image{max-height:130px}.assistant-preview>div{min-width:0;max-width:110px}.assistant-preview-name{display:block;font-family:var(--font-serif);font-size:19px;font-weight:500;line-height:1.6;margin-bottom:8px;overflow-wrap:anywhere}.assistant-preview-line{font-size:10px;line-height:1.9;color:var(--text-faint);margin:0;padding:6px 9px;border:1px solid color-mix(in srgb,var(--line) calc(100% - var(--companion-bubble-transparency, 10%)),transparent);border-radius:9px;background:color-mix(in srgb,var(--surface) calc(100% - var(--companion-bubble-transparency, 10%)),transparent)}.assistant-design-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--bg-soft);border-radius:9px;margin-bottom:19px}.assistant-design-tabs>button{padding:7px 5px;border:0;border-radius:6px;background:transparent;color:var(--text-faint);font-size:11px}.assistant-design-tabs>button.is-on{color:var(--accent);background:var(--surface);box-shadow:var(--shadow)}.assistant-setting{display:block;margin:17px 0}.assistant-setting>span{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-soft);font-size:11px;margin-bottom:8px;line-height:1.8}.assistant-setting>input:not([type=range]):not([type=color]),.assistant-setting>select,.assistant-setting>textarea{display:block;width:100%;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font-size:12px;line-height:1.8;padding:9px 10px;min-width:0;outline-offset:2px}.assistant-setting>textarea{resize:vertical;min-height:160px}.assistant-setting>input[type=color]{width:100%;height:34px;display:block;border:1px solid var(--line);border-radius:7px;padding:3px;background:var(--surface);cursor:pointer}.assistant-range>input{width:100%;accent-color:var(--accent)}.assistant-range output{font:10px var(--font-mono);color:var(--text-faint)}.assistant-check{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.assistant-check>span{flex:1;min-width:0}.assistant-check b{display:block;font-size:11px;font-weight:500;color:var(--text-soft);line-height:1.8}.assistant-check small{display:block;font-size:9px;color:var(--text-faint);line-height:1.8;margin-top:3px}.assistant-check input{width:16px;height:16px;accent-color:var(--accent);flex:none}.assistant-upload{display:flex;flex-direction:column;gap:8px}.assistant-upload .editor__btn{align-self:flex-start;font-size:11px}.assistant-upload small{font-size:10px;color:var(--text-faint)}.assistant-reset-position,.assistant-connect{font-size:11px;margin-top:16px}.assistant-connection-status{font-size:11px;line-height:1.9;color:var(--accent);margin:13px 0}.assistant-connection-status.is-error{color:var(--danger)}.assistant-designer>.dhint{margin-top:15px}
/* 私人的、能够持续记录的 AI 聊天室。 */
.has-ai-page .foot{display:none}.ai-wrap{padding-top:12px;padding-bottom:24px;max-width:1450px;height:calc(100dvh - 76px);min-height:560px}.ai-shell{position:relative;display:grid;grid-template-columns:192px minmax(0,1fr);height:100%;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 30px -28px var(--text)}.ai-history{display:flex;flex-direction:column;min-height:0;min-width:0;background:color-mix(in srgb,var(--bg-soft) 65%,var(--surface));border-right:1px solid var(--line);padding:17px 12px 13px}.ai-history-head{display:flex;align-items:center;gap:3px;justify-content:space-between;margin-bottom:13px;padding:0 5px}.ai-history-head h2{font-size:12px;font-weight:550;letter-spacing:.02em;margin:0;flex:1}.ai-history-head .iconbtn{width:26px;height:26px}.ai-history-head .icon{width:15px;height:15px}.ai-history-close{display:none}.ai-history-filter{display:flex;gap:3px;padding:3px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 55%,transparent);border-radius:8px;margin:0 3px 15px}.ai-history-filter>button{flex:1;border:0;border-radius:5px;background:transparent;padding:5px 2px;font-size:10px;color:var(--text-faint)}.ai-history-filter>button.is-on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}.ai-history-list{flex:1;min-height:0;overflow:auto;scrollbar-width:thin}.ai-history-item{display:block;width:100%;text-align:left;border:1px solid transparent;border-radius:9px;background:transparent;padding:11px 10px;margin-bottom:5px;min-width:0}.ai-history-item:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}.ai-history-item.is-active{border-color:color-mix(in srgb,var(--accent) 16%,var(--line));background:var(--surface);box-shadow:var(--shadow)}.ai-history-item b{display:block;font-size:11px;font-weight:450;color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.8;margin-bottom:4px}.ai-history-item small{font-size:9px;color:var(--text-faint);display:block}.ai-history-empty{font-size:10px;color:var(--text-faint);line-height:2.1;padding:8px 11px}.ai-history-foot{display:flex;align-items:flex-start;gap:5px;font-size:8px;line-height:1.9;color:var(--text-faint);padding:14px 4px 0;border-top:1px solid var(--line);margin-top:13px}.ai-history-foot .icon{width:10px;height:10px;margin-top:3px;flex:none}.ai-room{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface)}.ai-chat-head{display:flex;align-items:center;gap:11px;padding:17px 24px;border-bottom:1px solid var(--line);flex:none;min-height:76px}.ai-avatar{display:grid;place-items:center;flex:none;width:35px;height:37px;background:var(--accent-soft);color:var(--accent);border-radius:11px}.ai-avatar .icon{width:18px;height:18px}.ai-chat-head>div:nth-last-child(2){min-width:0;flex:1}.ai-chat-head h1{font-size:14px;font-weight:550;line-height:1.7;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-chat-head #ai-model-status{display:block;font-size:9px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.8}.ai-chat-head #ai-model-status.is-connected{color:var(--accent)}.ai-chat-actions{display:flex;align-items:center;gap:1px;flex:none}.ai-chat-actions .iconbtn{width:29px;height:30px}.ai-chat-actions .icon{width:15px;height:15px}.ai-mobile-history{display:none}.ai-feedback{font-size:11px;line-height:1.9;color:var(--text-soft);padding:10px 24px;background:var(--bg-soft);border-bottom:1px solid var(--line);max-height:105px;overflow:auto;flex:none}.ai-feedback:empty{display:none}.ai-feedback.is-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,var(--surface))}.ai-messages{display:flex;flex-direction:column;gap:0;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scroll-padding-bottom:20px;padding:26px 28px 18px}.ai-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:100%;padding:12px 15px 24px}.ai-welcome-model{display:block;width:112px;margin:0 auto 17px;line-height:0;border:0;padding:0;background:transparent;cursor:pointer;--companion-color:#A8BE98}.ai-welcome>.section-eyebrow{font-size:7px;letter-spacing:.12em;margin:0 0 12px}.ai-welcome h2{font-family:var(--font-serif);font-size:29px;font-weight:500;line-height:1.6;letter-spacing:.03em;margin-bottom:14px}.ai-welcome>p:not(.section-eyebrow){font-size:12px;line-height:2;color:var(--text-faint);margin-bottom:25px}.ai-prompts{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.ai-prompts>button{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-soft)}.ai-prompts .icon{width:13px;height:13px;color:var(--accent)}.ai-prompts>button:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,var(--line));color:var(--accent)}.ai-message{align-self:flex-start;max-width:100%;width:100%;min-width:0;margin-bottom:28px}.ai-message-who{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:var(--accent)}.ai-message-who>span{display:grid;place-items:center;width:23px;height:23px;background:var(--accent-soft);border-radius:7px;flex:none}.ai-message-who .icon{width:12px;height:12px}.ai-message-who b{font-size:10px;font-weight:500}.ai-message-content{font-size:15px;line-height:1.95;min-width:0;overflow-wrap:anywhere}.ai-message-content.ai-plain{white-space:pre-wrap}.ai-message-content .ai-thinking{white-space:normal}.ai-message--user{align-self:flex-end;max-width:87%}.ai-message--user .ai-message-who{justify-content:flex-end;color:var(--text-faint)}.ai-message--user .ai-message-who>span{background:var(--bg-soft)}.ai-message--user .ai-message-content{background:var(--bg-soft);border:1px solid color-mix(in srgb,var(--accent) 5%,var(--line));border-radius:13px 3px 13px 13px;padding:14px 18px;color:var(--text)}.ai-message-content>*:last-child{margin-bottom:0}.ai-message-content p{margin-bottom:15px}.ai-message-content h2{font-size:1.2em}.ai-message-content pre{font-size:.88em;margin:16px 0;padding:15px}.ai-message-content img{max-height:300px;object-fit:contain}.ai-message-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;color:var(--text-faint)}.ai-message-foot:empty{display:none}.ai-message-foot>.textbtn{font-size:9px;padding:3px 5px;gap:4px;color:var(--text-faint)}.ai-message-foot .icon{width:11px;height:11px}.ai-message-note{font-size:10px;line-height:1.9;flex-basis:100%}.ai-message-note.is-error{color:var(--danger)}.ai-message-model{font:8px var(--font-mono);color:var(--text-faint)}.ai-message--user .ai-message-foot{justify-content:flex-end}.ai-thinking{display:inline-flex;align-items:center;gap:4px;color:var(--text-faint);font-size:11px;padding:8px 0}.ai-thinking i{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:ai-dot 1.3s ease-in-out infinite}.ai-thinking i:nth-child(2){animation-delay:.16s}.ai-thinking i:nth-child(3){animation-delay:.32s}.ai-thinking>span{margin-left:7px}@keyframes ai-dot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:.9;transform:translateY(-3px)}}
.ai-compose{padding:14px 22px 12px;flex:none;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 35%,var(--surface))}.ai-input-wrap{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px 15px 10px;transition:border-color var(--fast),box-shadow var(--fast)}.ai-input-wrap:focus-within{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));box-shadow:0 0 0 3px var(--accent-soft)}#ai-input{display:block;box-sizing:border-box;width:100%;min-height:62px;max-height:180px;resize:none;border:0;border-radius:0;outline:none!important;box-shadow:none!important;background:transparent;color:var(--text);font-size:14px;line-height:1.9;padding:0;scrollbar-width:thin}#ai-input::placeholder{color:var(--text-faint);opacity:.7}.ai-compose-bottom{display:flex;align-items:center;gap:9px;margin-top:8px;min-height:32px}.ai-compose-bottom>span{font-size:8px;color:var(--text-faint)}#ai-input-count{margin-left:auto;font:8px var(--font-mono);white-space:nowrap}#ai-send{padding:0;width:32px;height:32px;min-height:32px;border-radius:8px}#ai-send .icon{width:16px;height:16px;transform:rotate(-90deg)}#ai-stop{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:5px 8px;min-height:30px}#ai-stop .icon{width:11px;height:11px;fill:currentColor}.ai-compose-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:8px;font-size:8px;color:var(--text-faint);line-height:1.8}.ai-compose-foot .textbtn{font-size:8px;padding:3px 0;color:var(--text-faint);white-space:nowrap}
@media(max-width:1100px){.ai-shell{grid-template-columns:minmax(0,1fr)}.ai-history{display:none;position:absolute;inset:0 auto 0 0;width:240px;max-width:calc(100% - 45px);z-index:25;box-shadow:var(--shadow-lg);background:var(--surface)}.history-is-open .ai-history{display:flex}.ai-mobile-history,.ai-history-close{display:inline-flex}.ai-chat-head{padding-left:15px;gap:9px}.ai-history-empty{font-size:12px}.ai-history-item b{font-size:12px}.ai-history-item small{font-size:10px}.ai-history-foot{font-size:10px}.ai-history-filter>button{font-size:11px}}
@media(max-width:760px){.ai-wrap{height:calc(100dvh - 65px);padding-top:3px;padding-bottom:15px;min-height:530px}.ai-chat-head{padding:13px 16px;min-height:70px;gap:8px}.ai-chat-head h1{font-size:14px}.ai-chat-head #ai-model-status{font-size:10px}.ai-messages{padding:23px 22px 16px}.ai-message-content{font-size:15px;line-height:2}.ai-message-who b{font-size:11px}.ai-message-foot>.textbtn{font-size:10px}.ai-message-note{font-size:11px}.ai-message-model{font-size:9px}.ai-compose{padding:13px 17px 10px}#ai-input{font-size:16px}.ai-compose-bottom>span{font-size:9px}#ai-input-count{font-size:9px}.ai-compose-foot,.ai-compose-foot .textbtn{font-size:9px}.ai-feedback{font-size:12px;padding:10px 18px}.assistant-setting>input:not([type=range]):not([type=color]),.assistant-setting>select,.assistant-setting>textarea{font-size:16px}.assistant-setting>span,.assistant-check b{font-size:12px}.assistant-check small{font-size:10px}.assistant-design-tabs>button{font-size:12px}.assistant-preview-line{font-size:11px}.companion-bubble p{font-size:13px}.companion-bubble-name{font-size:10px}.favorites-heading{padding-right:90px}.favorites-heading-star{width:59px;height:65px;border-radius:20px;right:0;top:33px}.favorites-heading-star .icon{width:26px;height:26px}.favorites-filters>span{font-size:11px}.favorites-tools>select{font-size:11px;max-width:135px}.favorites-wrap .empty-state h2{font-size:25px}}
@media(max-width:520px){.ai-wrap{--gutter:12px;padding-bottom:12px;min-height:500px}.ai-shell{border-radius:12px}.ai-chat-head{padding:12px 11px;gap:6px;min-height:66px}.ai-avatar{width:29px;height:32px;border-radius:9px}.ai-avatar .icon{width:16px;height:16px}.ai-chat-head h1{font-size:13px;max-width:calc(100vw - 215px)}.ai-chat-head #ai-model-status{font-size:9px;max-width:calc(100vw - 215px)}.ai-chat-actions{gap:0}.ai-chat-actions .iconbtn{width:26px;height:28px}.ai-chat-actions .icon{width:14px;height:14px}.ai-mobile-history{width:26px;height:28px}.ai-mobile-history .icon{width:15px;height:15px}.ai-messages{padding:20px 17px 12px}.ai-message{margin-bottom:25px}.ai-message--user{max-width:92%}.ai-message--user .ai-message-content{padding:12px 14px}.ai-message-content{font-size:15px;line-height:1.95}.ai-welcome{padding:5px 0 18px}.ai-welcome-model{width:94px;margin-bottom:12px}.ai-welcome>.section-eyebrow{font-size:5px;letter-spacing:.07em}.ai-welcome h2{font-size:26px;margin-bottom:12px}.ai-welcome>p:not(.section-eyebrow){font-size:12px;margin-bottom:20px}.ai-prompts{gap:6px}.ai-prompts>button{font-size:10px;padding:7px 8px}.ai-prompts .icon{width:12px;height:12px}.ai-compose{padding:11px 11px 9px}.ai-input-wrap{padding:12px 12px 8px}#ai-input{font-size:16px;min-height:60px}.ai-compose-bottom{gap:7px}.ai-compose-bottom>span{font-size:8px}#ai-input-hint{max-width:112px;line-height:1.7}#ai-input-count{font-size:8px}#ai-send{width:31px;height:31px;min-height:31px}.ai-compose-foot{gap:6px;align-items:flex-start;font-size:8px}.ai-compose-foot>span{flex:1}.ai-compose-foot .textbtn{font-size:9px}#ai-stop{font-size:10px;padding:4px 7px}.ai-feedback{font-size:11px;padding:9px 14px}.ai-history{width:235px}.ai-history-head h2{font-size:14px}.ai-history-head .iconbtn{width:29px;height:29px}.ai-history-filter>button{font-size:12px}.ai-history-item{padding:12px}.ai-history-item b{font-size:13px}.ai-history-item small{font-size:10px}.companion-actions{opacity:1}.companion-actions>a,.companion-actions>button{width:25px;height:24px}.favorites-tools{gap:8px}.favorites-tools .searchbox input{font-size:12px}.favorites-tools>select{font-size:10px;max-width:110px;padding:8px 6px}.favorites-heading{padding-right:65px}.favorites-heading-star{width:45px;height:51px;border-radius:16px;top:28px}.favorites-heading-star .icon{width:22px;height:22px}.favorites-filters .chip{font-size:11px;padding:5px 9px}.favorites-filters>span{font-size:10px}.favorites-wrap .empty-state h2{font-size:22px}.assistant-preview{gap:12px}.assistant-preview-model{max-width:130px}.assistant-preview-name{font-size:20px}}
/* 触摸屏（手机、平板）没有悬停，收起/隐藏伙伴的按钮得一直看得见 */
@media(hover:none){.companion-actions{opacity:1}}
@media(prefers-reduced-motion:reduce){.pet-body,.pet-tail,.pet-eyes-open,.pet-paw,.pet-head,.companion-custom-image,.pet-heart,.companion-bubble,.ai-thinking i{animation:none!important}.pet-hearts{display:none}}

body[data-role="admin"] .ai-shell[data-admin]{display:grid!important}

.starbtn[aria-pressed="true"] .icon{color:var(--warm);fill:currentColor;stroke:currentColor}
.companion-bubble{animation-name:companion-bubble-rise}
body[data-role="admin"] .ai-history-filter[data-admin]{display:flex!important}
@keyframes companion-bubble-rise{from{transform:translateY(4px)}to{transform:none}}
.ai-welcome>.ai-welcome-response{max-width:350px;min-height:25px;margin:10px auto 15px!important;padding:8px 15px;border-radius:12px;background:var(--accent-soft);color:var(--accent)!important;font-size:12px!important;line-height:1.85!important}
.companion-skin-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:14px 0 20px;--companion-color:var(--accent)}
.companion-skin-grid>button{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:9px 3px;color:var(--text-soft);cursor:pointer}
.companion-skin-grid>button:hover,.companion-skin-grid>button.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.companion-skin-grid .companion-art{width:48px;max-width:100%}.companion-skin-grid .pet-body,.companion-skin-grid .pet-tail,.companion-skin-grid .pet-eyes-open{animation:none}
.companion-skin-grid span{font-size:8px;white-space:normal;line-height:1.7;text-align:center}
.companion-weights{padding:15px 0;border-bottom:1px solid var(--line)}.companion-weights h3{font-size:12px;font-weight:500;margin-bottom:8px}.companion-weights>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.companion-weights .assistant-setting{min-width:0;padding:6px 0;border:0}.companion-weights .assistant-setting>span{font-size:10px}.companion-weights .is-error{color:var(--danger)}
.ai-visitor-intro{padding:19px 8px;color:var(--text-soft)}.ai-visitor-intro>span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--accent-soft);color:var(--accent);margin-bottom:14px}.ai-visitor-intro h3{font-size:14px;line-height:1.8;font-weight:500;margin-bottom:12px}.ai-visitor-intro p{font-size:11px;line-height:2;margin-bottom:14px}.ai-visitor-intro small{font-size:9px;color:var(--text-faint);line-height:1.9}
@media(max-width:760px){.companion-skin-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.companion-skin-grid span{font-size:10px}.ai-welcome>.ai-welcome-response{font-size:12px!important}.companion-weights .assistant-setting>span{font-size:11px}.ai-visitor-intro p{font-size:13px}.ai-visitor-intro small{font-size:11px}}

/* 透明二次元插画的呼吸与摸摸反馈。 */
.companion-anime{position:relative;display:block;width:100%;aspect-ratio:180/210;pointer-events:none}.companion-anime-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 5px #15192a22);transform-origin:50% 90%;animation:companion-breathe calc(4.5s * var(--anim-speed,1)) ease-in-out infinite}.companion-anime-effects{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.is-petted .companion-anime-image{animation:anime-pat calc(.65s * var(--anim-speed,1)) ease-in-out 2}.companion-skin-grid--anime{grid-template-columns:repeat(2,minmax(0,1fr))}.companion-skin-grid--anime .companion-anime{width:76px;max-width:100%}.companion-skin-grid--anime>button{padding:12px}.companion-skin-grid--anime>button>span:last-child{font-size:11px}.companion-skin-grid .companion-anime-image,.no-motion .companion-anime-image{animation:none!important}
@keyframes anime-pat{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-6px) rotate(-3deg)}70%{transform:translateY(-2px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.companion-anime-image{animation:none!important}}
/* Keep short user messages compact; long messages wrap within the available chat width. */
.ai-message--user{width:fit-content;max-width:87%}.ai-message--user .ai-message-content{width:fit-content;max-width:100%;box-sizing:border-box}
@media(max-width:520px){.ai-message--user{max-width:92%}}
