.hddms-site-chat-message {
  max-width: 88%;
  margin-bottom: 12px;
  padding: 13px 15px;
  border-radius: 18px;
  font-size: 15px;
  line-height: 1.55;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.hddms-site-chat-message:last-child { margin-bottom: 0; }
.hddms-site-chat-message__body > :first-child { margin-top: 0; }
.hddms-site-chat-message__body > :last-child { margin-bottom: 0; }
.hddms-site-chat-message__body { unicode-bidi: plaintext; }
.hddms-site-chat-message__body p { margin: 0 0 0.7em; }
.hddms-site-chat-message__body ul,
.hddms-site-chat-message__body ol { margin: 0.5em 0; padding-left: 1.35em; }
.hddms-site-chat-message__body pre { max-width: 100%; overflow-x: auto; padding: 10px; border-radius: 10px; background: rgba(15, 23, 42, 0.08); white-space: pre-wrap; }
.hddms-site-chat-message__body code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 0.9em; }
.hddms-site-chat-message__body :not(pre) > code { padding: 0.12em 0.3em; border-radius: 4px; background: rgba(15, 23, 42, 0.08); }
.hddms-site-chat-message a { color: inherit; text-decoration: underline; text-underline-offset: 0.16em; }
.hddms-site-chat-message__meta { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 5px; font-size: 11px; line-height: 1.3; opacity: 0.72; }
.hddms-site-chat-message__meta strong { font-weight: 700; }
.hddms-site-chat-message__state { margin-top: 7px; font-size: 12px; line-height: 1.35; font-weight: 600; }
.hddms-site-chat-message__state button { min-width: 44px; min-height: 44px; margin: -12px -8px -12px 0; padding: 0 8px; border: 0; background: transparent; color: inherit; text-decoration: underline; font: inherit; cursor: pointer; }
.hddms-site-chat-message--matt { background: var(--hddms-chat-matt-bubble-bg); color: var(--hddms-chat-matt-bubble-text); border-top-left-radius: 8px; }
.hddms-site-chat-message--visitor { margin-left: auto; background: var(--hddms-chat-user-bubble-bg); color: var(--hddms-chat-user-bubble-text); border-top-right-radius: 8px; }
.hddms-site-chat-message--system { max-width: 100%; background: var(--hddms-chat-system-bubble-bg); color: var(--hddms-chat-system-bubble-text); border: 1px solid var(--hddms-chat-border); }
.hddms-site-chat-message--failed { background: #fff4f2; color: #7a271a; border: 1px solid #fecdca; }

.hddms-site-chat-panel__status { width: fit-content; max-width: 88%; margin: 0 0 12px; padding: 10px 13px; border: 1px solid var(--hddms-chat-border); border-radius: 8px 18px 18px 18px; background: var(--hddms-chat-system-bubble-bg); color: var(--hddms-chat-subtle-text); font-size: 12px; line-height: 1.45; }
.hddms-site-chat-widget[data-turn-state="waiting"] .hddms-site-chat-panel__status { font-style: italic; font-weight: 300; }
.hddms-site-chat-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.hddms-site-chat-panel__status-dots { display: inline-block; width: 1.45em; margin-left: 0.08em; vertical-align: baseline; }
.hddms-site-chat-panel__status[hidden] { display: none; }
.hddms-site-chat-panel__status [data-hddms-chat-retry-reply] { appearance: none; display: inline-flex !important; align-items: center; justify-content: center; width: auto !important; min-width: 0; min-height: 32px; max-width: 100%; margin: 4px 0 0 6px; padding: 4px 10px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-weight: 600; line-height: 1.2; text-align: center; vertical-align: middle; cursor: pointer; }
.hddms-site-chat-panel__status [data-hddms-chat-retry-reply]:hover { background: rgba(15, 23, 42, 0.06); }
.hddms-site-chat-panel__status [data-hddms-chat-retry-reply]:focus-visible { outline: 2px solid var(--hddms-chat-focus-ring); outline-offset: 2px; }
.hddms-site-chat-panel__availability,
.hddms-site-chat-panel__draft-notice { margin: 0; padding: 10px 22px; border-top: 1px solid var(--hddms-chat-border); background: var(--hddms-chat-system-bubble-bg); color: var(--hddms-chat-system-bubble-text); font-size: 13px; line-height: 1.45; }
.hddms-site-chat-panel__availability[hidden],
.hddms-site-chat-panel__draft-notice[hidden] { display: none; }
.hddms-site-chat-panel__composer { display: flex; align-items: flex-end; gap: 10px; padding: 12px 22px 16px; border-top: 1px solid var(--hddms-chat-border); background: var(--hddms-chat-panel-bg); }
.hddms-site-chat-panel__composer textarea { flex: 1 1 auto; width: 100%; min-height: 46px; max-height: 144px; overflow-y: hidden; resize: none; border: 1px solid var(--hddms-chat-border); border-radius: 16px; padding: 11px 14px; background: var(--hddms-chat-input-bg); color: var(--hddms-chat-input-text); line-height: 1.5; box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04); }
.hddms-site-chat-panel__composer textarea::placeholder { color: var(--hddms-chat-subtle-text); }
.hddms-site-chat-panel__composer textarea:focus { outline: 2px solid var(--hddms-chat-focus-ring); border-color: var(--hddms-chat-focus-ring); }
.hddms-site-chat-panel__actions { display: flex; justify-content: flex-end; }
.hddms-site-chat-panel__send { border: 0; border-radius: 999px; min-width: 44px; min-height: 44px; padding: 10px 16px; background: var(--hddms-chat-action-bg); color: var(--hddms-chat-action-text); font-weight: 600; cursor: pointer; transition: transform 0.18s ease, background 0.18s ease, box-shadow 0.18s ease; }
.hddms-site-chat-panel__send:disabled { cursor: wait; opacity: 0.58; transform: none; }
.hddms-site-chat-panel__send:hover { background: var(--hddms-chat-action-hover); transform: translateY(-1px); }

@media (max-width: 640px) {
  body.hddms-site-chat-is-open { overflow: hidden; }
  .hddms-site-chat-widget { top: var(--hddms-chat-viewport-offset-top, 0); right: 0; bottom: auto; left: 0; height: var(--hddms-chat-viewport-height, 100dvh); align-items: stretch; pointer-events: none; }
  .hddms-site-chat-launcher { position: fixed; right: 12px; bottom: 12px; justify-content: center; pointer-events: auto; }
  .hddms-site-chat-widget[data-expanded="true"] .hddms-site-chat-launcher { display: none; }
  .hddms-site-chat-panel { pointer-events: auto; width: 100%; height: 100%; max-height: 100%; border: 0; border-radius: 0; }
  .hddms-site-chat-panel__header { align-items: center; padding-top: calc(8px + env(safe-area-inset-top, 0px)); padding-bottom: 8px; }
  .hddms-site-chat-panel__header p { display: none; }
  .hddms-site-chat-panel__header,
  .hddms-site-chat-panel__messages,
  .hddms-site-chat-panel__composer { padding-left: 16px; padding-right: 16px; }
  .hddms-site-chat-panel__composer { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
  .hddms-site-chat-view--privacy { padding-left: 16px; padding-right: 16px; }
  .hddms-site-chat-panel__privacy-actions { flex-direction: column; }
  .hddms-site-chat-panel__privacy-secondary,
  .hddms-site-chat-panel__privacy-primary,
  .hddms-site-chat-panel__privacy-danger,
  .hddms-site-chat-panel__privacy-card { width: 100%; }
  .hddms-site-chat-message { max-width: 94%; }
}

@media (max-width: 320px), (min-resolution: 4dppx) {
  .hddms-site-chat-message { max-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .hddms-site-chat-widget *,
  .hddms-site-chat-widget *::before,
  .hddms-site-chat-widget *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
