/* 2026-09-27：长按消息菜单 / 多选 / 收藏列表 / 长图预览（chat-actions.js） */
.msg-row .bubble,.msg-row .message-media img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.msg-row .msg-copy{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
.msg-row.msg-no-select .msg-copy,.message-list.is-selecting .msg-copy{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.msg-row .bubble,.msg-row .message-media{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.msg-row.msg-pressing .bubble,.msg-row.msg-pressing .message-media{transform:scale(.97)}
.msg-row.msg-held .bubble,.msg-row.msg-held .message-media{box-shadow:0 0 0 2px rgba(var(--accent-rgb),.38),0 8px 22px rgba(var(--shadow-rgb),.16)}
.msg-flag{margin-left:4px;color:var(--muted);font-size:.58rem;opacity:.85;white-space:nowrap}
.msg-flag.star{color:#e0a53a;opacity:1}
.msg-menu-layer{position:fixed;inset:0;z-index:90;background:rgba(var(--shadow-rgb),.06);-webkit-tap-highlight-color:transparent}
.msg-menu{position:fixed;display:flex;gap:2px;padding:6px;border:1px solid var(--glass-edge);border-radius:18px;background:rgba(var(--glass-rgb),.94);-webkit-backdrop-filter:saturate(120%) blur(18px);backdrop-filter:saturate(120%) blur(18px);box-shadow:0 14px 34px rgba(var(--shadow-rgb),.24),inset 0 1px 0 var(--glass-highlight);animation:msgMenuIn .2s cubic-bezier(.2,.8,.2,1) both}
.msg-menu.from-above{transform-origin:50% 0}.msg-menu.from-below{transform-origin:50% 100%}
@keyframes msgMenuIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.msg-menu button{display:grid;justify-items:center;gap:4px;min-width:52px;padding:8px 5px 6px;border:0;border-radius:12px;background:none;color:var(--ink);font:500 .68rem/1 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;-webkit-tap-highlight-color:transparent}
.msg-menu button:active{background:rgba(var(--accent-rgb),.13)}
.msg-menu button svg{width:21px;height:21px}
.msg-menu button.danger{color:var(--danger)}
.msg-menu button.on svg{fill:#e0a53a;stroke:#e0a53a}
/* 多选 */
.message-list.is-selecting .msg-row{position:relative;padding-left:34px;cursor:pointer}
.message-list.is-selecting .msg-row>*{pointer-events:none}
.msg-check{position:absolute;left:4px;top:50%;width:22px;height:22px;margin-top:-11px;border:1.5px solid var(--muted);border-radius:50%;background:rgba(var(--glass-rgb),.55);transition:background .15s,border-color .15s}
.msg-row.is-selected .msg-check{border-color:var(--accent);background:var(--accent)}
.msg-row.is-selected .msg-check::after{content:"";position:absolute;left:6.5px;top:3px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.conversation-shell.chat-selecting .composer{visibility:hidden;pointer-events:none}
.conversation-shell .select-bar{position:absolute;z-index:8;left:16px;right:16px;bottom:calc(var(--chat-bottom-safe,var(--safe-bottom)) + 10px);display:flex;align-items:center;gap:6px;min-height:52px;padding:5px 6px 5px 4px;border-radius:26px;background:rgba(var(--glass-rgb),.94);-webkit-backdrop-filter:saturate(120%) blur(18px);backdrop-filter:saturate(120%) blur(18px);animation:msgMenuIn .2s cubic-bezier(.2,.8,.2,1) both}
.select-cancel{flex:none;padding:0 10px;border:0;background:none;color:var(--muted);font-size:.84rem}
.select-count{flex:1;min-width:0;color:var(--ink);font-size:.8rem;white-space:nowrap}
.select-actions{display:flex;gap:2px}
.select-actions button{display:grid;justify-items:center;gap:3px;min-width:46px;padding:5px 4px;border:0;border-radius:14px;background:none;color:var(--ink);font-size:.62rem}
.select-actions button:active{background:rgba(var(--accent-rgb),.13)}
.select-actions button svg{width:20px;height:20px}
.select-actions button.danger{color:var(--danger)}
/* 修改 / 删除确认 / 收藏列表 */
.msg-edit-sheet h2,.starred-sheet h2{margin:0 0 6px}
.msg-edit-sub{margin:0 0 12px;color:var(--muted);font-size:.78rem;line-height:1.55}
.msg-edit-sheet textarea{width:100%;box-sizing:border-box;min-height:120px;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:rgba(var(--glass-rgb),calc(var(--glass-alpha) + .08));color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;resize:vertical;outline:0}
.primary-btn.danger{background:var(--danger);border-color:var(--danger)}
.starred-list{display:grid;margin-top:8px}
.starred-item{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line)}
.starred-open{flex:1;min-width:0;display:grid;gap:4px;padding:12px 0;border:0;background:none;color:var(--ink);text-align:left}
.starred-open small{color:var(--muted);font-size:.68rem}
.starred-open span{font-size:.88rem;line-height:1.5;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.starred-off{flex:none;width:36px;height:36px;display:grid;place-items:center;border:0;background:none;color:#e0a53a}
.starred-off svg{width:19px;height:19px;fill:#e0a53a;stroke:#e0a53a}
.profile-starred svg{width:18px;height:18px}
/* 长图预览 */
.longshot-view{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 14px) 16px calc(var(--safe-bottom) + 12px);background:rgba(8,12,22,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:msgMenuIn .22s ease both}
.longshot-scroll{flex:1;min-height:0;overflow:auto;border-radius:16px;-webkit-overflow-scrolling:touch}
.longshot-scroll img{display:block;width:100%;height:auto;border-radius:16px;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}
.longshot-bar{display:flex;gap:10px;margin-top:12px}
.longshot-bar button{flex:1;min-height:46px}
.longshot-hint{margin:8px 0 0;text-align:center;color:rgba(255,255,255,.6);font-size:.72rem}
.msg-row[data-id^="tmp"] .message-media,.msg-row[data-id^="tmp"] .bubble{opacity:.72;transition:opacity .3s}
