#public-chat-root {
  --chat-ink: var(--umila-ink, #121718);
  --chat-canvas: var(--umila-canvas, #f6f3ef);
  --chat-secondary: var(--umila-secondary, #66645f);
  --chat-surface: var(--umila-surface, #e8e0d5);
  --chat-accent: var(--umila-accent, #e4b357);
  --chat-line: color-mix(in srgb, var(--umila-line, #121718) 23%, transparent);
  --chat-paper: color-mix(in srgb, var(--chat-canvas) 82%, white);
  --chat-button-ink: #121718;
  color: var(--chat-ink);
  font: inherit;
}
[data-umila-theme="B"] #public-chat-root {
  --chat-paper: color-mix(in srgb, var(--umila-lavender, #ece8f7) 52%, white);
  --chat-button-ink: #fff;
}
#public-chat-root *, #public-chat-root *::before, #public-chat-root *::after { box-sizing: border-box; }
#public-chat-root [hidden] { display: none !important; }
#public-chat-root button, #public-chat-root textarea, #public-chat-root a { font: inherit; }
#public-chat-root button, #public-chat-root summary, #public-chat-root a { -webkit-tap-highlight-color: transparent; }
#public-chat-root button { cursor: pointer; color: inherit; }
#public-chat-root button:disabled { cursor: default; }
#public-chat-root :is(button, a, summary, textarea):focus-visible { outline: 2px solid var(--chat-ink); outline-offset: 4px; }
#public-chat-root .umila-chat-launcher {
  position: fixed; z-index: 30; right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 12px 20px;
  background: var(--chat-accent); color: var(--chat-button-ink); border: 1px solid var(--chat-line); border-radius: 14px;
  box-shadow: 0 5px 22px #292d4214; font-weight: 700;
}
#public-chat-root .umila-chat-mark { display: inline-flex; width: 26px; flex: 0 0 26px; align-items: center; }
#public-chat-root .umila-chat-mark img { display: block; width: 26px; height: 30px; object-fit: contain; }
#public-chat-root .umila-chat-mark .umila-chat-mark-B { display: none; }
[data-umila-theme="B"] #public-chat-root .umila-chat-mark .umila-chat-mark-A { display: none; }
[data-umila-theme="B"] #public-chat-root .umila-chat-mark .umila-chat-mark-B { display: block; }
[data-umila-theme="B"] #public-chat-root .umila-chat-launcher .umila-chat-mark-B { filter: brightness(0) invert(1); }
#public-chat-root .umila-chat-panel {
  position: fixed; z-index: 50; right: 24px; bottom: 24px; width: 400px; max-width: calc(100vw - 32px);
  height: 580px; max-height: calc(100dvh - 48px); display: flex; flex-direction: column;
  background: var(--chat-paper); border: 1px solid var(--chat-line); border-radius: 22px;
  box-shadow: 0 8px 28px #292d421a; overflow: hidden; font-size: 15px; line-height: 1.45;
}
#public-chat-root .umila-chat-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 16px 18px 10px; flex-shrink: 0; }
#public-chat-root .umila-chat-identity { display: flex; align-items: center; gap: 8px; }
#public-chat-root h2 { font: inherit; font-size: 27px; font-weight: 600; letter-spacing: -.04em; margin: 0; }
#public-chat-root .umila-chat-controls { display: flex; gap: 2px; }
#public-chat-root .umila-chat-controls button { min-height: 44px; padding: 6px; background: transparent; border: 0; font-size: 12px; border-radius: 8px; }
#public-chat-root .umila-chat-body { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 0 20px 12px; scrollbar-width: thin; }
#public-chat-root .umila-chat-example { border: 1px solid var(--chat-line); border-radius: 18px; }
#public-chat-root .umila-chat-example summary { cursor: pointer; padding: 9px 14px; min-height: 44px; font-weight: 600; }
#public-chat-root .umila-chat-demo { padding: 0 12px 12px; }
#public-chat-root .umila-chat-caption { color: var(--chat-secondary); font-size: 12px; margin: 0 0 12px; }
#public-chat-root .umila-chat-intro { margin: 12px 8px 20px; font-size: 14px; color: var(--chat-secondary); }
#public-chat-root .umila-chat-context { display: flex; align-items: center; gap: 16px; margin: 0 0 20px; color: var(--chat-secondary); font-size: 13px; }
#public-chat-root .umila-chat-context::before, #public-chat-root .umila-chat-context::after { content: ''; flex: 1; height: 1px; background: var(--chat-line); }
#public-chat-root .umila-chat-messages { display: flex; flex-direction: column; gap: 12px; }
#public-chat-root .umila-chat-message { max-width: 88%; border-radius: 16px; padding: 12px 14px; margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
#public-chat-root .umila-chat-message p { margin: 0; }
#public-chat-root .umila-chat-user { align-self: flex-end; margin-left: auto; background: color-mix(in srgb, var(--chat-accent) 20%, var(--chat-paper)); }
#public-chat-root .umila-chat-assistant { align-self: flex-start; margin-right: auto; background: color-mix(in srgb, var(--chat-ink) 6%, var(--chat-paper)); }
#public-chat-root .umila-chat-demo .umila-chat-message + .umila-chat-message { margin-top: 10px; }
#public-chat-root .umila-chat-status { margin-top: 12px; padding: 12px 8px; font-size: 14px; }
#public-chat-root .umila-chat-status strong { font-size: 16px; font-weight: 700; }
#public-chat-root .umila-chat-status p { margin: 4px 0 0; }
#public-chat-root .umila-chat-status.is-blocked { background: color-mix(in srgb, var(--chat-surface) 60%, var(--chat-paper)); border-radius: 16px; padding: 16px; }
#public-chat-root .umila-chat-copy { width: 100%; min-height: 44px; margin-top: 12px; padding: 8px 12px; border: 1px solid var(--chat-line); border-radius: 16px; background: transparent; font-size: 14px; }
#public-chat-root .umila-chat-exits { flex-shrink: 0; display: grid; justify-items: stretch; gap: 8px; margin: 0 20px; padding: 14px 0 4px; border-top: 1px solid var(--chat-line); }
#public-chat-root .umila-chat-primary { border: 0; min-height: 44px; padding: 10px 16px; border-radius: 16px; background: var(--chat-accent); color: var(--chat-button-ink); font-weight: 700; }
#public-chat-root .umila-chat-exits a { display: flex; justify-content: center; align-items: center; min-height: 44px; text-align: center; color: var(--chat-ink); text-underline-offset: 3px; font-size: 14px; }
#public-chat-root .umila-chat-composer { flex-shrink: 0; display: flex; align-items: flex-end; gap: 8px; margin: 12px 20px 20px; }
#public-chat-root textarea { display: block; resize: none; width: 100%; min-height: 60px; max-height: 120px; padding: 10px 12px; border: 1px solid var(--chat-line); border-radius: 16px; background: transparent; color: var(--chat-ink); line-height: 1.4; }
#public-chat-root textarea::placeholder { color: var(--chat-secondary); opacity: 1; }
#public-chat-root .umila-chat-send { flex-shrink: 0; white-space: nowrap; min-height: 44px; min-width: 44px; padding: 8px; border: 0; border-radius: 14px; background: var(--chat-accent); color: var(--chat-button-ink); font-size: 12px; font-weight: 700; }
#public-chat-root .umila-chat-send:disabled { color: var(--chat-secondary); background: var(--chat-surface); }
#public-chat-root .umila-chat-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
#public-chat-root .umila-chat-backdrop { position: fixed; inset: 0; z-index: 45; background: #292d4233; }
[data-umila-theme="B"] #public-chat-root .umila-chat-example { border-color: transparent; background: var(--umila-lavender, #ece8f7); }
[data-umila-theme="B"] #public-chat-root .umila-chat-intro { padding: 12px; margin-left: 0; margin-right: 0; color: var(--chat-ink); border-radius: 16px; background: var(--chat-surface); }
[data-umila-theme="B"] #public-chat-root .umila-chat-status.is-blocked { background: color-mix(in srgb, #f2dce9 65%, var(--chat-paper)); }
@media (max-width: 640px) {
  #public-chat-root .umila-chat-launcher { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); min-height: 52px; padding: 10px 16px; font-size: 14px; }
  #public-chat-root .umila-chat-panel { inset: auto 0 var(--chat-viewport-bottom, 0px); width: 100%; max-width: none; height: min(720px, calc(var(--chat-viewport-height, 100dvh) - 24px)); max-height: calc(var(--chat-viewport-height, 100dvh) - 24px); border-radius: 24px 24px 0 0; padding-bottom: env(safe-area-inset-bottom); }
  #public-chat-root .umila-chat-header { padding: 16px 20px 12px; }
  #public-chat-root .umila-chat-controls button:first-child { display: none; }
  #public-chat-root .umila-chat-controls button { font-size: 14px; padding: 8px; }
  #public-chat-root .umila-chat-body { padding-inline: 20px; }
  #public-chat-root textarea { font-size: 16px; }
  #public-chat-root .umila-chat-composer { margin-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) { #public-chat-root * { scroll-behavior: auto !important; } }
