.composer-tools-root{min-width:0}.composer-tools-root button{min-height:44px}.composer-emoji-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}.composer-emoji-grid button{border:1px solid transparent;border-radius:8px;font-size:27px;background:var(--soft,#f0f4ee);padding:6px;min-width:0;cursor:pointer}.composer-emoji-grid button:hover,.composer-emoji-grid button:active{border-color:var(--green,#497454);background:#e4edde}.composer-file-list{max-height:52vh;overflow-y:auto;margin:16px 0}.composer-file-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line,#e0e5df);min-width:0}.composer-file-item>img,.composer-file-symbol{width:68px;height:68px;flex:0 0 68px;object-fit:contain;border-radius:8px;background:var(--soft,#f0f4ee)}.composer-file-symbol{display:grid;place-items:center}.composer-file-item>div{flex:1;min-width:0}.composer-file-item strong{display:block;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.composer-file-item small{display:block;font-size:12px;line-height:1.6;color:var(--muted,#687568);margin-top:4px}.composer-file-item>button{flex-shrink:0;min-width:44px;padding:6px}.composer-error{white-space:pre-wrap;overflow-wrap:anywhere}.composer-error:empty{display:none}.composer-files-send{width:100%}.composer-record-status{padding:20px 12px;text-align:center;border-radius:10px;background:var(--soft,#f0f4ee);font-variant-numeric:tabular-nums;line-height:1.6}.composer-record-preview{display:block;width:100%;margin:16px 0}.composer-record-preview.hidden{display:none}.composer-record-actions{display:flex;flex-wrap:wrap;gap:10px}.composer-record-actions button{flex:1 1 120px}.composer-tools-root button:disabled{opacity:.55;cursor:wait}.composer-tools-root button:focus-visible{outline:2px solid var(--green,#497454);outline-offset:3px}@media(max-width:480px){.composer-emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.composer-file-item{gap:8px}.composer-file-item>img,.composer-file-symbol{width:56px;height:56px;flex-basis:56px}}
.composer-emoji-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.q-sticker{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 4px;border:1px solid #e4e8df;border-radius:10px;background:#fff;color:#526052}.q-sticker-face{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#e9efe5;font-weight:700;font-size:15px;color:#315b40}.q-sticker small{font-size:11px}.q-orange .q-sticker-face{background:#fde7ca}.q-yellow .q-sticker-face{background:#fff2bd}.q-green .q-sticker-face{background:#d9f0db}.q-blue .q-sticker-face{background:#dcecf8}.q-pink .q-sticker-face{background:#f7deea}.q-purple .q-sticker-face{background:#e9def4}.q-red .q-sticker-face{background:#f8dcdc}.q-indigo .q-sticker-face{background:#dfe4f8}.q-lime .q-sticker-face{background:#e5f2c9}.q-cyan .q-sticker-face{background:#d6f0ef}.q-gray .q-sticker-face{background:#e8e9e5}.q-teal .q-sticker-face{background:#d7eee4}
.composer-sticker-group{margin:0 0 20px}.composer-sticker-group h3{margin:0 0 9px;color:#526052;font-size:13px}.composer-sticker-group:last-child{margin-bottom:0}
.q-sticker-face{position:relative;display:grid;grid-template-columns:repeat(2,6px);grid-template-rows:8px 10px;justify-content:center;align-content:center;gap:3px 8px;font-size:15px;line-height:10px}.q-sticker-face i{width:6px;height:7px;border-radius:50%;background:#3b4b3c}.q-sticker-face b{grid-column:1/-1;font-size:14px;font-weight:600;color:#3b4b3c}
.q-sticker img{width:62px;height:62px;object-fit:contain;border-radius:8px}.q-sticker-face{display:none}

/* Prevent iOS text selection/viewport jumps while holding voice or dragging files. */
.hold-to-talk{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;position:relative}
.composer-file-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.composer-tools-root{overscroll-behavior:contain}
@media(max-width:650px){.composer-tools-root input,.composer-tools-root textarea{font-size:16px;transform:translateZ(0)}}
.composer-file-list,.composer-tools-root{overflow-anchor:none}.composer-file-item{contain:layout paint}
.q-sticker small{display:flex;align-items:center;gap:4px}.q-sticker small b{padding:1px 4px;border-radius:5px;background:#e5f3e7;color:#39704a;font-size:8px;font-weight:600}
.composer-recipient{margin-bottom:10px!important}.composer-delivery{border:0;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.composer-delivery legend{font-size:12px;color:#667168;margin-bottom:7px}.composer-delivery label,.composer-original{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line,#e0e5df);border-radius:9px;padding:11px 12px;background:#fafbf8;cursor:pointer}.composer-delivery label:has(input:checked){border-color:#6aa47d;background:#eef7f0;box-shadow:0 0 0 1px #6aa47d22}.composer-delivery input,.composer-original input{width:18px!important;height:18px!important;accent-color:var(--green,#497454);margin:2px 0 0!important;flex:0 0 18px}.composer-delivery span,.composer-original span{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.composer-delivery strong,.composer-original strong{font-size:13px;font-weight:600}.composer-delivery strong b{display:inline-flex;margin-left:4px;padding:1px 5px;border-radius:4px;background:#dfeee2;color:#39704a;font-size:9px;font-weight:650;vertical-align:1px}.composer-delivery small,.composer-original small{font-size:11px;color:#667168;line-height:1.45}.composer-direct-note{display:none;margin:-3px 0 12px;padding:9px 11px;border:1px solid #eadfbd;border-radius:8px;background:#fff9e9;color:#745f2d;font-size:11px;line-height:1.6}.composer-direct-note.visible{display:block}.composer-original{margin:0 0 14px}.composer-original.forced{background:#f2f5f0;cursor:default}.composer-original.forced small:after{content:' · 设备直传固定为原文件'}
@media(max-width:650px){.composer-delivery{grid-template-columns:1fr}.composer-delivery label,.composer-original{min-height:56px}}

/* One flat sticker surface with one scroll owner. */
.sticker-picker-dialog{overflow:hidden;width:min(680px,calc(100vw - 28px))}.sticker-picker-dialog #modal-body{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.composer-sticker-head{position:sticky;top:-23px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-23px -23px 14px;padding:13px 23px;background:#fff;border-bottom:1px solid #edf0e9}.composer-sticker-head p{margin:0;font-size:12px;color:#59675c}.composer-sticker-head span{font-size:11px;color:#899189;white-space:nowrap}.composer-emoji-flat{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.composer-emoji-flat .q-sticker{min-height:112px;padding:7px 3px;background:#f5f7f3}.composer-emoji-flat .q-sticker img{width:76px;height:76px;border-radius:9px}.composer-emoji-flat .q-sticker small{justify-content:center;white-space:nowrap}.composer-emoji-flat .q-sticker small b{background:#e7efe5;color:#426b4d}
@media(max-width:650px){.sticker-picker-dialog{width:calc(100vw - 18px);max-height:88dvh}.sticker-picker-dialog #modal-body{padding:14px}.composer-sticker-head{top:-14px;margin:-14px -14px 12px;padding:10px 14px}.composer-emoji-flat{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.composer-emoji-flat .q-sticker{min-height:94px;padding:5px 2px}.composer-emoji-flat .q-sticker img{width:62px;height:62px}.composer-emoji-flat .q-sticker small{font-size:10px}.composer-emoji-flat .q-sticker small b{font-size:7px}}
@media(max-width:370px){.composer-emoji-flat{grid-template-columns:repeat(3,minmax(0,1fr))}}
