/* Shared order and service conversation UI. */
.chat-new-messages[hidden],.chat-composer[hidden]{display:none!important}
body.chat-composer-visible .support-toggle[aria-expanded="false"]{display:none}
.chat-panel .chat-heading{padding:22px 22px 14px}.chat-panel .chat-heading h3{font:650 17px/1.4 system-ui,sans-serif}.chat-panel .chat-heading p{font-size:12px}.chat-panel .chat-privacy{font-size:11px;line-height:1.5;color:var(--muted)}
.chat-panel #messages,.request-work-chat #requestChat{display:flex;flex-direction:column;gap:12px;height:clamp(300px,46dvh,500px);padding:20px;background:linear-gradient(180deg,rgba(var(--accent-rgb),.025),transparent 65%),var(--bg);overflow:auto;overscroll-behavior:contain;overflow-anchor:none;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.chat-day{display:flex;align-items:center;gap:14px;align-self:stretch;flex-shrink:0;color:var(--muted);font:11px/1.5 system-ui,sans-serif;margin:10px 0 6px;text-align:center}.chat-day:before,.chat-day:after{content:'';height:1px;flex:1;background:var(--line)}
#messages .message,#requestChat .message{align-self:flex-start;flex-shrink:0;max-width:88%;min-width:150px;margin:0;padding:13px 15px 9px;border:1px solid var(--line);border-radius:17px 17px 17px 5px;background:var(--panel);white-space:normal;box-shadow:0 3px 12px #00000012;overflow-wrap:anywhere}
#messages .message.own,#requestChat .message.own{align-self:flex-end;background:rgba(var(--accent-rgb),.10);border-color:rgba(var(--accent-rgb),.2);border-radius:17px 17px 5px 17px}
.message .message-author{position:static;display:flex;align-items:center;flex-wrap:wrap;gap:6px;background:none;border:0;backdrop-filter:none;box-shadow:none;padding:0;min-height:28px;margin:0 0 9px}.message-author strong{font:650 12px/1.4 system-ui,sans-serif}.message .message-role{font:10px/1.4 system-ui,sans-serif;color:var(--muted);margin-left:auto}.message .message-avatar{display:inline-flex;width:26px;height:26px;flex:0 0 26px;margin:0 2px 0 0;border-radius:8px;overflow:hidden;align-items:center;justify-content:center}.message-avatar img{display:block;width:100%;height:100%;object-fit:cover}
#messages .message-text,#requestChat .message-text{font:14px/1.65 system-ui,sans-serif;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.message-text a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.message-time{display:block;text-align:right;font:10px/1.5 system-ui,sans-serif;color:var(--muted);margin-top:6px;font-variant-numeric:tabular-nums}
.chat-empty{margin:auto;max-width:310px;text-align:center;color:var(--muted);font:13px/1.6 system-ui,sans-serif;padding:28px 16px}.chat-empty-icon{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 15px;border:1px solid var(--line);border-radius:15px;color:var(--accent);font-size:23px}.chat-empty strong{display:block;font-size:15px;color:var(--text);font-weight:600}.chat-empty p{margin:8px 0 0}
.chat-composer{margin:0!important;padding:16px!important;border-top:1px solid var(--line);gap:10px!important;background:var(--panel)}.chat-composer>label{display:block;margin:0;min-width:0}.chat-composer label>.sr-only{position:absolute}.chat-composer textarea{display:block;width:100%;resize:none;min-height:52px!important;max-height:160px;padding:14px 15px!important;border:1px solid var(--line);border-radius:14px!important;background:var(--bg)!important;color:var(--text);font:14px/1.55 system-ui,sans-serif!important;outline:none;transition:border-color .2s,box-shadow .2s}.chat-composer textarea:focus{border-color:rgba(var(--accent-rgb),.65);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.08)}.chat-composer .composer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px}.chat-composer .composer-hint{font:10px/1.5 system-ui,sans-serif;color:var(--muted);flex:1}.composer-hint kbd{font:inherit;color:var(--text)}.composer-counter{font:10px/1.5 system-ui,sans-serif;color:var(--muted);font-variant-numeric:tabular-nums}.composer-counter.near-limit{color:var(--accent)}.chat-composer .btn{font:600 12px/1.3 system-ui,sans-serif;min-height:40px;padding:10px 16px;border-radius:12px}.chat-composer .btn:disabled{opacity:.45;cursor:default}.chat-new-messages{display:block;margin:10px auto;padding:8px 15px;border:1px solid rgba(var(--accent-rgb),.3);border-radius:24px;background:var(--panel);color:var(--accent);font:600 12px/1.5 system-ui,sans-serif;cursor:pointer}.chat-panel #unreadBadge{cursor:pointer;font:600 11px/1.5 system-ui,sans-serif;color:var(--accent)}
@media(max-width:600px){.chat-panel #messages,.request-work-chat #requestChat{padding:14px;gap:10px;height:min(48dvh,430px);min-height:240px}#messages .message,#requestChat .message{max-width:94%;padding:11px 12px 8px}.chat-composer{padding:12px!important}.chat-composer .composer-hint{flex-basis:100%;font-size:10px}.chat-composer .composer-counter{margin-right:auto}.chat-composer textarea{font-size:16px!important}.message .message-role{font-size:10px}.chat-panel .chat-heading{padding:17px 16px 12px}}
/* Conversation comfort: scoped to the existing dark cabinet. */
.chat-draft-note{display:block;min-height:16px;color:var(--muted);font:11px/1.5 system-ui,sans-serif}.chat-upload-status{margin:0;font:12px/1.6 system-ui,sans-serif;overflow-wrap:anywhere;color:var(--muted)}.chat-upload-status:empty{display:none}.chat-scroll-bottom{display:block;align-self:center;margin:8px auto;padding:9px 16px;min-height:40px;border:1px solid var(--line);border-radius:22px;background:var(--panel);color:var(--accent);font:600 12px/1.5 system-ui,sans-serif;cursor:pointer}.chat-scroll-bottom[hidden]{display:none!important}.chat-unread-divider{display:flex;align-items:center;gap:12px;flex-shrink:0;color:var(--accent);font:600 12px/1.5 system-ui,sans-serif;margin:8px 0}.chat-unread-divider:before,.chat-unread-divider:after{content:'';height:1px;flex:1;background:rgba(var(--accent-rgb),.35)}
.screenshot-viewer.evidence-dialog{width:min(1200px,96vw);max-width:96vw;max-height:94dvh;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);overflow:auto}.screenshot-viewer::backdrop{background:#05070bcc;backdrop-filter:blur(5px)}.screenshot-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.screenshot-toolbar strong{font:600 14px/1.5 system-ui,sans-serif;margin-right:auto}.screenshot-toolbar .btn{min-height:42px;font-size:12px}.screenshot-stage{overflow:auto;max-height:72dvh;border-radius:10px;background:#06090e;overscroll-behavior:contain;text-align:center}.screenshot-viewer .screenshot-stage img{display:block;margin:auto;max-width:100%;width:auto;max-height:70dvh;object-fit:contain}.screenshot-viewer .screenshot-stage.zoomed img{max-width:none;max-height:none;width:auto;height:auto}.screenshot-viewer .field-note{margin:8px 0 0}
@media(max-width:600px){.screenshot-viewer.evidence-dialog{padding:10px}.screenshot-toolbar strong{width:100%}.screenshot-toolbar .btn{flex:1;padding:10px 8px}.chat-draft-note{font-size:12px}}

/* Conversation polish: reveal only genuinely new messages, never polling history. */
#messages .message.message-grouped,#requestChat .message.message-grouped{margin-top:-7px;border-top-left-radius:8px}
#messages .message.own.message-grouped,#requestChat .message.own.message-grouped{border-top-right-radius:8px}
.message-grouped .message-author{display:none}
.message-arriving{animation:message-reveal .28s cubic-bezier(.2,.7,.2,1) both}
@keyframes message-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.chat-scroll-bottom{box-shadow:0 5px 22px #0004;border-color:rgba(var(--accent-rgb),.5);transition:background .2s,box-shadow .2s}
.chat-scroll-bottom:hover{background:rgba(var(--accent-rgb),.12);box-shadow:0 7px 25px #0006}
.chat-composer[data-sending] .chat-image-preview{opacity:.65;pointer-events:none}
.chat-composer[data-sending] .chat-upload-status:before{content:'';display:inline-block;width:10px;height:10px;margin-right:8px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:upload-spin .8s linear infinite}
.chat-composer[data-upload-error] .chat-upload-status{color:var(--danger,#f28b94)}
@keyframes upload-spin{to{transform:rotate(360deg)}}
@media(max-width:600px){.chat-scroll-bottom{min-height:44px}.chat-tool{min-height:44px}.chat-composer .btn{min-height:44px}.chat-composer textarea{scroll-margin-bottom:120px}.chat-image-preview{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.message-arriving,.chat-composer[data-sending] .chat-upload-status:before{animation:none}}
