/* 手机：紧凑的聊天气泡、底部功能格与待发送栏。 */
#page-phone .chat-panel{--phone-bg:var(--card);--phone-panel:var(--card2);--phone-ink:var(--text);--phone-muted:var(--dim);--phone-tile:var(--bg);--phone-line:var(--line);background:var(--phone-bg);color:var(--phone-ink);min-width:0}
#page-phone .chat-msgs{background:var(--phone-bg);padding:14px 12px;min-height:110px}
#page-phone .phone-row{display:flex;gap:9px;align-items:flex-start;margin:0 0 14px}
#page-phone .phone-row.outgoing{flex-direction:row-reverse}
#page-phone .phone-avatar{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:5px;background:#d2d7d0;color:#566051;font-size:13px;line-height:1}
#page-phone .outgoing .phone-avatar{background:#bacac5;color:#3c554c}
#page-phone .phone-bubble{max-width:calc(100% - 52px);min-width:0;font-size:14px;line-height:1.5}
#page-phone .phone-text{width:fit-content;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--phone-tile);color:var(--phone-ink);padding:7px 10px;border-radius:4px;position:relative}
#page-phone .outgoing .phone-text{background:var(--card2);color:var(--text)}
#page-phone .phone-text:before{content:'';position:absolute;left:-5px;top:11px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid var(--phone-tile)}
#page-phone .outgoing .phone-text:before{left:auto;right:-5px;border-right:0;border-left:5px solid var(--card2)}
#page-phone .phone-packet{display:block;width:218px;max-width:100%;padding:0;background:#fa9d3b;border:0;border-radius:5px;color:#fff;text-align:left;overflow:visible;position:relative;font-weight:400}
#page-phone .phone-packet:after{content:'';position:absolute;top:12px;left:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #fa9d3b}
#page-phone .outgoing .phone-packet:after{left:auto;right:-5px;border-right:0;border-left:5px solid #fa9d3b}
#page-phone .packet-main{display:flex;gap:10px;align-items:center;padding:12px 13px 10px;min-height:62px}
#page-phone .packet-icon{width:29px;height:33px;display:block}
#page-phone .packet-icon svg{width:100%;height:100%}
#page-phone .packet-main strong{font-size:16px;font-weight:500;line-height:1.3}
#page-phone .packet-status{display:block;font-size:12px;margin-top:2px}
#page-phone .card-footer{display:block;border-top:1px solid #ffffff30;font-size:10px;padding:4px 12px;line-height:1.3;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-phone .phone-packet.settled{background:#edbd8c;color:#fff}
#page-phone .phone-packet.settled:after{border-right-color:#edbd8c;border-left-color:#edbd8c}
#page-phone .phone-photo{transition:background-color .15s,color .15s;width:112px;height:126px;display:grid;place-content:center;gap:7px;padding:12px;border:1px solid var(--phone-line);border-radius:4px;background:var(--phone-tile);color:var(--phone-muted);font-size:12px}
#page-phone .phone-photo svg{width:34px;height:34px;margin:auto}
#page-phone .phone-location{display:block;width:218px;max-width:100%;padding:0;border:0;border-radius:5px;background:var(--phone-tile);color:var(--phone-ink);overflow:hidden;text-align:left}
#page-phone .phone-location strong{display:block;padding:9px 11px;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-phone .map-preview{height:76px;display:grid;place-items:center;background:linear-gradient(28deg,transparent 35%,#fff 36%,#fff 42%,transparent 43%),linear-gradient(110deg,#bddfad 33%,#e2e7df 34%,#e2e7df 62%,#b0d8e8 63%)}
#page-phone .map-preview svg{width:29px;height:35px;fill:#20bf73;stroke:#fff;filter:drop-shadow(0 2px 2px #0002)}
#page-phone .phone-location .card-footer{color:var(--phone-muted)}
#page-phone .phone-order{display:flex;align-items:center;gap:10px;padding:11px;width:218px;max-width:100%;border-radius:5px;background:var(--phone-tile);color:var(--phone-ink);box-sizing:border-box}
#page-phone .order-icon{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:5px;background:#eee4d5;color:#88704b}
#page-phone .order-icon svg{width:23px;height:23px}
#page-phone .phone-order strong{font-size:13px;font-weight:500}
#page-phone .phone-order p{margin:3px 0 0;font-size:12px;color:var(--phone-muted);overflow-wrap:anywhere}
#page-phone .phone-draft-preview{pointer-events:none}
#page-phone .phone-draft-preview .phone-row{margin-bottom:2px}
#page-phone .phone-draft-preview>span{display:block;text-align:right;padding-right:41px;font-size:10px;color:var(--phone-muted);margin-bottom:10px}
#page-phone .phone-system{text-align:center;font-size:11px;color:var(--phone-muted);margin:10px}
#page-phone .phone-quote-bar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--phone-panel);border-top:1px solid var(--phone-line);border-left:3px solid var(--accent);font-size:12px;flex-shrink:0;max-width:100%;box-sizing:border-box}
#page-phone .phone-quote-bar[hidden]{display:none}
#page-phone .phone-quote-bar .quote-label{color:var(--phone-muted);white-space:nowrap}
#page-phone .phone-quote-bar .quote-text{color:var(--phone-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
#page-phone .phone-quote-bar .quote-remove{border:0;background:none;color:var(--phone-muted);font-size:18px;line-height:1;padding:0 2px}
#page-phone .phone-quote{font-size:12px;color:var(--phone-muted);margin-bottom:4px;padding:3px 0 6px;border-bottom:1px solid var(--phone-line);overflow-wrap:anywhere}
#page-phone .phone-recall{text-align:center;margin:8px 0}
#page-phone .phone-recall .recall-main{border:0;background:none;color:var(--phone-muted);font-size:11px;cursor:pointer;padding:2px 8px}
#page-phone .phone-recall .recall-detail{margin:4px auto 0;max-width:320px;background:var(--phone-tile);border:1px solid var(--phone-line);border-radius:6px;padding:8px 10px;font-size:12px;color:var(--phone-ink);overflow-wrap:anywhere}
#page-phone .phone-recall .recall-detail[hidden]{display:none}
#page-phone .phone-recall .recall-seen{color:var(--phone-muted);font-size:11px}
.phone-msg-menu{position:fixed;z-index:300;display:grid;grid-template-columns:repeat(4,58px);gap:2px;padding:7px;background:var(--card2);border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.22);opacity:1;animation:phone-menu-in .12s ease}
.phone-msg-menu[hidden]{display:none}
@keyframes phone-menu-in{from{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}
.phone-msg-menu::after{content:'';position:absolute;left:50%;width:10px;height:10px;background:var(--card2);border:1px solid var(--line);transform:translateX(-50%) rotate(45deg)}
.phone-msg-menu[data-arrow="down"]::after{bottom:-6px;border-top:0;border-left:0}
.phone-msg-menu[data-arrow="up"]::after{top:-6px;border-bottom:0;border-right:0}
.phone-msg-menu button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:54px;padding:5px 2px;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:center;font-size:12px;line-height:1.2;cursor:pointer;white-space:nowrap}
.phone-msg-menu button::before{display:block;font-size:21px;line-height:24px;font-weight:400}
.phone-msg-menu [data-menu-action="copy"]::before{content:'⧉'}
.phone-msg-menu [data-menu-action="quote"]::before{content:'❞'}
.phone-msg-menu [data-menu-action="recall"]::before{content:'↶'}
.phone-msg-menu [data-menu-action="cancel"]::before{content:'×'}
.phone-msg-menu button:hover,.phone-msg-menu button:focus-visible{background:var(--card);color:var(--accent);outline:none}
.phone-msg-menu button:active{background:var(--card)}
#page-phone .mode-row{background:var(--phone-panel);border-color:var(--phone-line)}
#page-phone .chat-input{align-items:center;background:var(--phone-panel);border-color:var(--phone-line);padding:8px;gap:7px}
#page-phone .chat-input textarea{margin:0;min-width:0;min-height:34px;max-height:100px;padding:6px 8px;box-sizing:border-box;font-size:14px;border:0;border-radius:5px;line-height:22px;background:var(--phone-tile);color:var(--phone-ink)}
#page-phone #btnPhoneTools{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border:1px solid var(--phone-line);border-radius:9px;padding:0;background:var(--phone-tile);color:var(--phone-muted);transition:background .15s,color .15s,border-color .15s}
#page-phone #btnPhoneTools svg{width:18px;height:18px;transition:transform .15s}
#page-phone #btnPhoneTools:hover,#page-phone #btnPhoneTools[aria-expanded="true"]{border-color:var(--accent);color:var(--accent);background:var(--phone-bg)}
#page-phone #btnPhoneTools[aria-expanded="true"] svg{transform:rotate(45deg)}
#page-phone #btnPhoneTools:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#page-phone .phone-action-row{display:flex;align-items:center;justify-content:space-between;gap:6px;background:var(--phone-bg);padding:5px 8px!important}
#page-phone .phone-action-row[hidden]{display:none}
#page-phone .phone-action-row #phoneReroll{margin-left:auto;min-height:28px;padding:3px 7px;font-size:11px;white-space:nowrap}
#page-phone .phone-shortcuts{display:flex;align-items:center;gap:4px;padding:0;background:transparent;flex-shrink:0}
#page-phone .phone-shortcuts>button,#page-phone #phoneShortcuts #btnPhoneTools{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;padding:0;border:1px solid var(--phone-line);border-radius:7px;background:var(--phone-panel);color:var(--phone-muted);box-shadow:0 2px 4px #0000000c}
#page-phone .phone-shortcuts>button:hover{background:var(--phone-tile);color:var(--accent)}
#page-phone .phone-shortcuts>button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#page-phone .phone-shortcuts span{display:flex;align-items:center}
#page-phone .phone-shortcuts svg,#page-phone #phoneShortcuts #btnPhoneTools svg{width:17px;height:17px}
@media(prefers-reduced-motion:reduce){#page-phone #btnPhoneTools,#page-phone #btnPhoneTools svg{transition:none}}
body.light #page-phone .outgoing .phone-text{background:var(--accent);color:#141414}
body.light #page-phone .outgoing .phone-text:before{border-left-color:var(--accent)}
#page-phone #btnNewline{background:none;border:0;padding:5px;color:var(--phone-muted);font-size:19px}
#page-phone #btnSendChat{font-size:13px;padding:6px 11px;min-height:32px;border:0;border-radius:4px;background:var(--accent);color:#141414}
#page-phone #btnSendChat:disabled{opacity:.45;cursor:wait}
#page-phone .phone-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px 12px;padding:18px 16px 22px;background:var(--phone-panel);border-top:1px solid var(--phone-line);flex-shrink:0}
#page-phone .phone-tools[hidden],#page-phone .phone-pending[hidden]{display:none}
#page-phone .phone-tools button{background:none;border:0;color:var(--phone-muted);display:flex;align-items:center;flex-direction:column;gap:7px;padding:0;min-width:0}
#page-phone .phone-tools button>span{display:grid;place-items:center;width:54px;height:54px;border-radius:13px;background:var(--phone-tile);color:#999}
#page-phone .phone-tools svg{width:25px;height:25px}
#page-phone .phone-tools small{font-size:11px}
#page-phone .phone-tools button:hover>span{filter:brightness(1.1)}
#page-phone .phone-pending{background:var(--phone-panel);padding:7px 10px;border-top:1px solid var(--phone-line);flex-shrink:0}
#page-phone .pending-caption{font-size:10px;color:var(--phone-muted);margin-bottom:5px}
#page-phone .pending-items{display:flex;gap:5px;overflow-x:auto}
#page-phone .pending-items button{flex-shrink:0;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--phone-tile);color:var(--phone-ink);border:1px solid var(--phone-line);border-radius:4px;padding:4px 6px;font-size:11px}
#page-phone .phone-photo.expanded{width:218px;max-width:100%;height:auto;min-height:160px;padding:14px;background:var(--card2);color:var(--text);place-items:center;white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;line-height:1.7}
#page-phone .phone-contact{padding:12px 14px;gap:12px;text-align:left;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:7px}
#page-phone .outgoing .phone-contact{background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--text)}
#page-phone .phone-contact .order-icon{flex-basis:38px;height:38px;border-radius:9px;background:color-mix(in srgb,var(--accent) 15%,var(--card));color:var(--accent)}
#page-phone .phone-contact strong{font-size:14px;font-weight:500;letter-spacing:.2px}
#page-phone .phone-contact p{margin-top:4px;font-size:11px;line-height:1.4;color:var(--dim)}
body.light #page-phone .outgoing .phone-contact{background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--text)}
@media(max-width:768px){#page-phone .phone-photo.expanded{width:202px}}
#phoneShareDialog{margin:auto;width:min(340px,90vw);max-height:75vh;overflow:auto;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:18px}
#phoneShareDialog::backdrop{background:#0008}
#phoneShareDialog h3{color:var(--text);font-size:15px;margin-bottom:12px}
#phoneShareDialog .share-options{display:grid;gap:8px}
#phoneShareDialog .share-close{margin-top:14px}
#page-phone .phone-tools{height:172px;max-height:172px;overflow-y:auto;align-content:start;row-gap:10px;padding:10px 12px}
#page-phone .phone-tools button>span{width:44px;height:44px;border-radius:10px}
#page-phone .phone-tools button{gap:3px}
#redpacketModal .modal{border:0;border-radius:9px;padding:22px;max-width:350px;background:#f5f5f5;color:#222}
#redpacketModal .modal>div:first-of-type{display:none}
#redpacketModal #redpacketAmount{margin-top:24px;background:white;border:0;border-radius:0;text-align:left!important;padding:14px;font-size:28px!important;color:#222}
#redpacketModal #btnRedpacketSend{background:var(--accent)!important;color:#141414;font-size:13px;border:0}
#redpacketModal #btnRedpacketClose{background:none;border:0;color:#777;font-size:13px}
#mediaModal .modal,#giftModal .modal{max-width:360px}
@media(max-width:768px){#page-phone.active{display:flex;flex-direction:column;height:var(--phone-page-height,calc(var(--vvh,100dvh) - 40px));padding-bottom:0;min-height:0;overflow:hidden}#page-phone>h2{flex-shrink:0}#page-phone .phone-wrap{display:flex;flex-direction:column;flex:1;min-height:0;height:auto}#page-phone .contact-list{height:150px;max-height:150px;min-height:150px;flex-shrink:0;overflow-y:auto}#page-phone .chat-panel{height:auto;min-height:0;flex:1}#page-phone .chat-panel>div{flex-shrink:0}#page-phone .chat-panel>.chat-msgs{flex:1;min-height:36px;overflow-y:auto}#page-phone .chat-panel>.phone-tools{flex:0 1 172px;min-height:72px}#page-phone .phone-tools{gap:10px;padding:10px 12px}#page-phone .phone-tools button>span{width:44px;height:44px}#page-phone .phone-bubble{max-width:calc(100% - 47px)}#page-phone .phone-row{gap:8px}#page-phone .phone-packet,#page-phone .phone-location,#page-phone .phone-order{width:202px}}
