/* Public consultation messenger. Scoped separately from management dialogs. */
body.cc-modal-open { overflow: hidden; }
.cc-dialog {
  --cc-line: #e3e8ee;
  --cc-muted: #8492a4;
  --cc-green: #18b67a;
  width: min(1240px, calc(100vw - 32px));
  height: min(760px, calc(100dvh - 32px));
  max-width: none;
  max-height: none;
  padding: 0;
  margin: auto;
  border: 1px solid #dce3eb;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  color: #293d54;
  box-shadow: 0 24px 90px #172b4630;
  font: 13px/1.5 "Microsoft YaHei", "PingFang SC", sans-serif;
  color-scheme: light;
}
.cc-dialog::backdrop { background: #25344c66; backdrop-filter: blur(3px); }
.cc-dialog *, .cc-dialog *::before, .cc-dialog *::after { box-sizing: border-box; }
.cc-dialog :is(h2, h3, p, dl) { margin: 0; }
.cc-dialog button { font: inherit; cursor: pointer; }
.cc-dialog button:disabled { cursor: not-allowed; opacity: .45; }
.cc-dialog :is(input, textarea) { font: inherit; }
.cc-dialog :is(button, input, textarea):focus-visible { outline: 2px solid #4cad91; outline-offset: 2px; }
.cc-dialog [hidden] { display: none !important; }
.cc-dialog svg { flex-shrink: 0; }
.cc-layout { display: grid; grid-template-columns: 264px minmax(0, 1fr) 260px; height: 100%; }
.cc-layout > * { min-width: 0; min-height: 0; }
.cc-sidebar { display: flex; flex-direction: column; background: #f9fafc; border-right: 1px solid var(--cc-line); }
.cc-sidebar-head { display: flex; align-items: center; gap: 10px; height: 72px; flex-shrink: 0; padding: 0 20px; border-bottom: 1px solid var(--cc-line); }
.cc-sidebar-head > svg { color: #069666; }
.cc-sidebar-head h2 { font-size: 14px; font-weight: 600; }
.cc-total { margin-left: auto; min-width: 23px; padding: 1px 6px; border-radius: 10px; color: #758598; background: #eaf0f3; text-align: center; font-size: 10px; }
.cc-list-controls { padding: 15px 13px 11px; }
.cc-search { display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 10px; color: #91a0ae; background: #fff; border: 1px solid var(--cc-line); border-radius: 5px; }
.cc-search input { width: 100%; min-width: 0; height: 100%; padding: 0; border: 0; background: transparent; color: #42556a; font-size: 11px; outline: none; }
.cc-search:focus-within { border-color: #79bfa8; }
.cc-search input:focus-visible { outline: none; }
.cc-search input::placeholder { color: #98a3b1; }
.cc-filters { display: flex; gap: 3px; padding: 3px; margin-top: 10px; border-radius: 5px; background: #e9eef2; }
.cc-filters button { flex: 1; height: 28px; padding: 0; border: 0; border-radius: 3px; background: transparent; color: #7d8a9b; font-size: 11px; }
.cc-filters button[aria-pressed="true"] { background: #fff; color: #168e68; box-shadow: 0 1px 4px #2c486417; }
.cc-contacts { flex: 1; min-height: 0; overflow-y: auto; padding: 0 9px 12px; }
.cc-contact { position: relative; display: flex; align-items: center; gap: 10px; width: 100%; min-height: 85px; padding: 13px 10px; border: 0; border-left: 3px solid transparent; background: transparent; text-align: left; color: #34495f; }
.cc-contact:hover { background: #f0f5f6; }
.cc-contact[aria-current="true"] { border-left-color: var(--cc-green); background: #eaf7f2; }
.cc-avatar { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; overflow: hidden; background: #e5efee; color: #448a7b; font-size: 15px; font-weight: 600; }
.cc-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.cc-avatar-support { background: #243a50; color: #fff; }
.cc-contact-copy { display: grid; gap: 4px; min-width: 0; flex: 1; }
.cc-contact-copy > * { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cc-contact-copy strong { font-size: 12px; font-weight: 600; }
.cc-contact-copy > span { color: #8290a2; font-size: 11px; }
.cc-contact-copy small { color: #a1adba; font-size: 10px; }
.cc-contact-meta { align-self: stretch; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; padding-top: 2px; }
.cc-contact-meta time { color: #9aa7b6; font-size: 9px; }
.cc-contact-meta b { min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: #f0796d; color: #fff; text-align: center; font-size: 10px; font-weight: 500; }
.cc-sidebar-foot { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; padding: 16px 10px; border-top: 1px solid var(--cc-line); color: #8d9aab; font-size: 10px; }
.cc-sidebar-foot span { flex: 0 0 100%; text-align: center; color: #adb6c2; font-size: 9px; }
.cc-main { display: flex; flex-direction: column; background: #f4f6f9; }
.cc-peer-head { display: flex; align-items: center; gap: 10px; min-height: 72px; padding: 12px 17px; background: #fff; border-bottom: 1px solid var(--cc-line); }
.cc-peer { display: flex; align-items: center; gap: 11px; min-width: 0; flex: 1; }
.cc-peer > div { min-width: 0; }
.cc-peer h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #21394f; font-size: 14px; font-weight: 600; }
.cc-peer p { display: flex; align-items: center; gap: 4px; margin-top: 4px; color: #8b98a8; font-size: 10px; white-space: nowrap; }
.cc-peer p i { width: 6px; height: 6px; border-radius: 50%; background: #21ba80; }
.cc-peer p i.is-offline { background: #b8c1cd; }
.cc-support-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; padding: 0 10px; border: 1px solid #f0cbb8; border-radius: 5px; background: #fffaf7; color: #b16e43; font-size: 11px !important; white-space: nowrap; }
.cc-support-button:hover { background: #fff0e6; }
.cc-icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 30px; padding: 0; border: 0; border-radius: 4px; color: #8d9bad; background: transparent; }
.cc-icon:hover { background: #edf2f5; color: #38566d; }
.cc-list-toggle, .cc-info-toggle, .cc-details-close, .cc-mobile-close { display: none; }
.cc-notice { display: flex; align-items: center; gap: 8px; flex-shrink: 0; padding: 11px 18px; color: #648780; background: #f0faf6; font-size: 10px; }
.cc-notice svg { color: #0ca773; }
.cc-order-context { flex-shrink: 0; margin: 10px 18px 0; padding: 11px 13px; border: 1px solid #dce5ef; border-radius: 7px; background: #fff; }
.cc-order-context > div { display: flex; justify-content: space-between; align-items: start; gap: 10px; }
.cc-order-context strong { color: #3c526c; font-size: 12px; overflow-wrap: anywhere; }
.cc-order-context span { flex-shrink: 0; color: #5c7eab; font-size: 10px; }
.cc-order-context p { margin-top: 6px; color: #8b98aa; font-size: 10px; overflow-wrap: anywhere; }
.cc-history { flex: 1 1 0; min-height: 0; overflow-y: auto; padding: 16px 18px 24px; overscroll-behavior: contain; }
.cc-day { display: flex; justify-content: center; margin: 1px 0 21px; color: #9aa6b6; font-size: 10px; }
.cc-day span { padding: 3px 10px; border-radius: 4px; background: #eaf0f5; }
.cc-message { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 22px; }
.cc-message:last-child { margin-bottom: 0; }
.cc-message > .cc-avatar { width: 30px; height: 30px; flex-basis: 30px; font-size: 11px; }
.cc-message-content { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; max-width: 84%; }
.cc-message-content > small { color: #8593a6; font-size: 10px; margin-bottom: 5px; }
.cc-message-content > p { padding: 10px 13px; border: 1px solid #dde5ed; border-radius: 2px 7px 7px 7px; background: #fff; color: #395169; font-size: 12px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.cc-message-content time { margin-top: 5px; color: #a5afbd; font-size: 9px; }
.cc-message.is-mine { flex-direction: row-reverse; }
.cc-message.is-mine .cc-message-content { align-items: flex-end; }
.cc-message.is-mine .cc-message-content > p { border-color: #cfebdf; border-radius: 7px 2px 7px 7px; background: #e2f5eb; color: #286850; }
.cc-sync { display: flex; align-items: center; gap: 5px; flex-shrink: 0; min-height: 33px; padding: 8px 18px; border-top: 1px solid var(--cc-line); background: #f8fafc; color: #8495a8; font-size: 10px; }
.cc-sync svg { color: #73a291; }
.cc-sync small { margin-left: auto; color: #abb4c1; font-size: 9px; white-space: nowrap; }
.cc-composer { flex-shrink: 0; padding: 12px 18px 14px; border-top: 1px solid var(--cc-line); background: #fff; }
.cc-quick-heading { display: flex; align-items: center; gap: 5px; color: #1c8d73; font-size: 10px; }
.cc-quick-heading strong { font-weight: 600; }
.cc-quick-heading > span { margin-left: 3px; color: #9ca7b6; font-size: 9px; }
.cc-quick-questions { display: flex; gap: 6px; overflow-x: auto; padding: 8px 0 12px; }
.cc-quick-questions button { flex-shrink: 0; padding: 5px 10px; border: 1px solid #dcebe6; border-radius: 16px; background: #f6fbf9; color: #638e82; font-size: 10px; }
.cc-quick-questions button:hover { color: #06885f; border-color: #a6d8c5; background: #edf8f2; }
.cc-form { margin: 0; }
.cc-form textarea { display: block; width: 100%; height: 80px; min-height: 0; padding: 10px 11px; resize: none; border: 1px solid #d8e1ea; border-radius: 5px; background: #fff; color: #3a5068; font-size: 12px; line-height: 1.7; }
.cc-form textarea:focus { outline: none; border-color: #7fbba6; box-shadow: 0 0 0 2px #18b67a0d; }
.cc-form textarea::placeholder { color: #a2adbb; }
.cc-compose-bottom { display: flex; align-items: center; gap: 10px; margin-top: 11px; }
.cc-char-count { color: #a2adbc; font-size: 10px; }
.cc-key-hint { margin-left: auto; color: #acb5c1; font-size: 9px; }
.cc-send { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 82px; height: 35px; margin-left: auto; border: 0; border-radius: 5px; color: #fff; background: var(--cc-green); font-size: 12px !important; }
.cc-send:not(:disabled) { box-shadow: 0 4px 12px #18b67a25; }
.cc-send:hover:not(:disabled) { background: #0ca56b; }
.cc-key-hint + .cc-send { margin-left: 2px; }
.cc-error { padding-top: 7px; color: #c75949; font-size: 11px; overflow-wrap: anywhere; }
.cc-error:empty { display: none; }
.cc-details { position: relative; padding: 24px 18px; overflow-y: auto; border-left: 1px solid var(--cc-line); background: #fff; }
.cc-account { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; padding-bottom: 22px; }
.cc-account > .cc-avatar { width: 34px; height: 34px; font-size: 14px; background: #f0f5f5; }
.cc-account > div { display: grid; gap: 3px; min-width: 0; }
.cc-account small { color: #9aa6b6; font-size: 9px; }
.cc-account strong { color: #324a62; font-size: 12px; overflow-wrap: anywhere; }
.cc-account > p { grid-column: 1 / -1; margin-top: 2px; color: #9aa6b5; font-size: 10px; line-height: 1.8; }
.cc-details h3 { color: #354b60; font-size: 12px; font-weight: 600; }
.cc-links { padding: 20px 0; border-top: 1px solid var(--cc-line); border-bottom: 1px solid var(--cc-line); }
.cc-links h3 { margin-bottom: 10px; }
.cc-links button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 11px 0; border: 0; border-top: 1px solid #edf0f4; background: transparent; color: #8594a7; text-align: left; }
.cc-links button:hover { color: #0b9c70; }
.cc-links button > span { display: grid; gap: 3px; flex: 1; }
.cc-links strong { color: #597084; font-size: 11px; font-weight: 500; }
.cc-links small { color: #9ba6b4; font-size: 9px; }
.cc-profile { padding: 21px 0; }
.cc-profile-person { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.cc-profile-person > div { display: grid; min-width: 0; gap: 4px; }
.cc-profile-person strong { font-size: 12px; font-weight: 600; }
.cc-profile-person small { color: #91a0af; font-size: 10px; line-height: 1.6; }
.cc-profile dl { display: grid; gap: 9px; margin-top: 18px; }
.cc-profile dl > div { display: flex; align-items: center; justify-content: space-between; }
.cc-profile dt { color: #929eb0; font-size: 10px; }
.cc-profile dd { margin: 0; color: #597084; font-size: 11px; }
.cc-profile dd small { color: #a0abba; font-size: 9px; }
.cc-profile-note { margin-top: 12px !important; color: #a2acb8; font-size: 9px; line-height: 1.8; }
.cc-book { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 33px; margin-top: 12px; padding: 0 11px; border: 1px solid #cee6dc; border-radius: 4px; color: #3b957b; background: #f4faf7; font-size: 11px !important; }
.cc-book:hover { background: #e9f6ef; }
.cc-safety { display: flex; gap: 9px; padding: 13px 11px; border: 1px solid #f2dfbd; background: #fffbf2; color: #bf9452; }
.cc-safety strong { display: block; margin-bottom: 4px; color: #a57e3c; font-size: 10px; font-weight: 600; }
.cc-safety p { color: #b5a085; font-size: 9px; line-height: 1.8; }
.cc-empty-list { padding: 45px 10px; text-align: center; color: #a4afbd; font-size: 11px; }
.cc-empty-list p { margin-top: 8px; }
.cc-empty-history { margin: 55px 0 !important; text-align: center; color: #a4afbd; font-size: 12px; }
.cc-dialog :is(.cc-contacts, .cc-history, .cc-details) { scrollbar-width: thin; scrollbar-color: #dbe2e9 transparent; }
@media (max-width: 1120px) {
  .cc-layout { grid-template-columns: 235px minmax(0, 1fr) 235px; }
  .cc-peer-head { gap: 6px; padding-inline: 12px; }
  .cc-support-button { padding-inline: 8px; }
}
@media (max-width: 980px) {
  .cc-layout { grid-template-columns: 235px minmax(0, 1fr); }
  .cc-info-toggle { display: inline-flex; }
  .cc-details { display: none; }
  .cc-info-open .cc-details { display: block; position: absolute; inset: 0 0 0 auto; z-index: 3; width: 270px; padding-top: 48px; box-shadow: -16px 0 35px #233b4e25; }
  .cc-details-close { display: inline-flex; position: absolute; right: 12px; top: 10px; }
}
@media (max-width: 680px) {
  .cc-dialog { width: calc(100vw - 16px); height: calc(100dvh - 16px); border-radius: 7px; }
  .cc-layout { grid-template-columns: minmax(0, 1fr); }
  .cc-sidebar { display: none; }
  .cc-list-open .cc-sidebar { display: flex; position: absolute; inset: 0 auto 0 0; z-index: 3; width: min(285px, 100%); box-shadow: 16px 0 35px #233b4e25; }
  .cc-list-toggle, .cc-mobile-close { display: inline-flex; }
  .cc-mobile-close { margin-left: 2px; }
  .cc-peer-head { gap: 6px; min-height: 65px; padding: 10px 9px; }
  .cc-peer { gap: 8px; }
  .cc-peer .cc-avatar { width: 33px; height: 33px; flex-basis: 33px; }
  .cc-peer h3 { font-size: 13px; }
  .cc-peer p { font-size: 9px; }
  .cc-support-button { width: 30px; min-height: 30px; padding: 0; flex: 0 0 30px; }
  .cc-support-button span { display: none; }
  .cc-notice { padding: 9px 13px; font-size: 9px; }
  .cc-history { padding: 14px 12px 20px; }
  .cc-message-content { max-width: 83%; }
  .cc-message-content > p { padding: 9px 11px; }
  .cc-sync { padding: 7px 12px; }
  .cc-sync small { display: none; }
  .cc-composer { padding: 11px 12px 12px; }
  .cc-form textarea { height: 78px; font-size: 16px; }
  .cc-key-hint { display: none; }
  .cc-key-hint + .cc-send { margin-left: auto; }
}
@media (max-height: 560px) {
  .cc-dialog { height: calc(100dvh - 12px); }
  .cc-peer-head, .cc-sidebar-head { min-height: 55px; height: 55px; padding-block: 8px; }
  .cc-notice, .cc-quick-heading, .cc-quick-questions { display: none; }
  .cc-composer { padding-block: 8px; }
  .cc-form textarea { height: 54px; }
  .cc-compose-bottom { margin-top: 7px; }
}
