:root {
  --digamelon-orange: #ffc658;
  --digamelon-orange-dark: #d88900;
  --digamelon-ink: #1d1e1c;
  --digamelon-muted: #666;
  --digamelon-line: #eadfca;
  --digamelon-soft: #fff7e7;
}

.digamelon-mount, .digamelon-mount * { box-sizing: border-box; }
.digamelon-mount { min-width: 0; }
.digamelon-chat { background: #fff; border: 1px solid var(--digamelon-line); border-radius: 18px; color: var(--digamelon-ink); display: flex; flex-direction: column; font-family: inherit; line-height: 1.45; min-height: 0; min-width: 0; overflow: hidden; }
.digamelon-embedded { width: 100%; }
.digamelon-embedded .digamelon-chat { height: min(720px, calc(var(--digamelon-viewport-height, 100vh) - 48px)); max-height: calc(var(--digamelon-viewport-height, 100vh) - 48px); min-height: min(460px, calc(var(--digamelon-viewport-height, 100vh) - 48px)); width: 100%; }
.digamelon-header { align-items: center; background: #fff; border-bottom: 1px solid var(--digamelon-line); display: flex; flex: 0 0 auto; gap: 10px; min-height: 66px; padding: 12px 14px; }
.digamelon-mark { align-items: center; background: var(--digamelon-orange); border-radius: 12px; color: var(--digamelon-ink); display: inline-flex; flex: 0 0 40px; font-size: 20px; font-weight: 750; height: 40px; justify-content: center; }
.digamelon-heading { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.digamelon-heading strong { font-size: 15px; font-weight: 700; }
.digamelon-heading small { color: var(--digamelon-muted); font-size: 12px; }
.digamelon-actions { align-items: center; display: flex; flex: 0 0 auto; gap: 3px; position: relative; }
.digamelon-clear, .digamelon-close { align-items: center; appearance: none; background: transparent; border: 0; color: var(--digamelon-muted); cursor: pointer; display: inline-flex; justify-content: center; }
.digamelon-clear { border-radius: 50%; height: 38px; padding: 0; position: relative; width: 38px; }
.digamelon-clear svg { fill: currentColor; height: 19px; width: 19px; }
.digamelon-clear::after { background: var(--digamelon-ink); border-radius: 7px; color: #fff; content: attr(data-tooltip); font-size: 12px; font-weight: 600; line-height: 1.25; opacity: 0; padding: 7px 9px; pointer-events: none; position: absolute; right: 0; top: calc(100% + 8px); transform: translateY(-3px); transition: opacity .15s ease, transform .15s ease; white-space: nowrap; z-index: 5; }
.digamelon-clear::before { border-color: transparent transparent var(--digamelon-ink); border-style: solid; border-width: 0 5px 6px; content: ''; opacity: 0; pointer-events: none; position: absolute; right: 14px; top: calc(100% + 2px); transition: opacity .15s ease; z-index: 5; }
.digamelon-clear:hover::after, .digamelon-clear:hover::before, .digamelon-clear:focus-visible::after, .digamelon-clear:focus-visible::before { opacity: 1; }
.digamelon-clear:hover::after, .digamelon-clear:focus-visible::after { transform: translateY(0); }
.digamelon-close { border-radius: 50%; font: 28px/1 Arial, sans-serif; height: 38px; padding: 0; width: 38px; }
.digamelon-clear:hover, .digamelon-clear:focus-visible, .digamelon-close:hover, .digamelon-close:focus-visible { background: var(--digamelon-soft); color: var(--digamelon-ink); outline: 2px solid transparent; }
.digamelon-message-area { flex: 1 1 0; min-height: 0; min-width: 0; position: relative; }
.digamelon-messages { -webkit-overflow-scrolling: touch; height: 100%; min-height: 0; overflow-anchor: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: auto; padding: 18px 22px 18px 14px; scrollbar-width: none; touch-action: pan-y; }
.digamelon-messages::-webkit-scrollbar { display: none; height: 0; width: 0; }
.digamelon-scrollbar { background: rgba(234,223,202,.72); border-radius: 999px; bottom: 9px; cursor: pointer; position: absolute; right: 6px; top: 9px; transition: background .18s ease, opacity .18s ease; width: 8px; z-index: 2; }
.digamelon-scrollbar:hover, .digamelon-scrollbar:focus-visible { background: #eadfca; outline: 2px solid rgba(216,137,0,.24); outline-offset: 2px; }
.digamelon-scrollbar-thumb { background: var(--digamelon-orange-dark); border-radius: 999px; cursor: grab; display: block; min-height: 36px; touch-action: none; transition: background .18s ease; width: 100%; }
.digamelon-scrollbar-thumb:hover { background: #b97500; }
.digamelon-scrollbar-thumb:active { cursor: grabbing; }
.digamelon-scrollbar-hidden { opacity: 0; pointer-events: none; }
.digamelon-message { display: flex; flex-direction: column; margin: 0 0 12px; max-width: 88%; white-space: pre-wrap; }
.digamelon-message:last-child { margin-bottom: 0; }
.digamelon-assistant { align-items: flex-start; }
.digamelon-user { align-items: flex-end; margin-left: auto; }
.digamelon-bubble { background: var(--digamelon-soft); border-radius: 5px 16px 16px; font-size: 14px; overflow-wrap: anywhere; padding: 10px 12px; }
.digamelon-bubble strong { font-weight: 700; }
.digamelon-bubble .digamelon-inline-link { color: #8a5700; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.digamelon-user .digamelon-bubble { background: var(--digamelon-orange); border-radius: 16px 5px 16px 16px; color: var(--digamelon-ink); }
.digamelon-links { display: flex; flex-direction: column; gap: 6px; margin-top: 7px; }
.digamelon-links a { color: #8a5700; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.digamelon-form { align-items: flex-end; background: #fff; border-top: 1px solid var(--digamelon-line); display: flex; flex: 0 0 auto; gap: 8px; min-width: 0; padding: 10px; padding-bottom: max(10px, env(safe-area-inset-bottom)); }
.digamelon-input { appearance: none; background: #fff; border: 1px solid #cbd7d3; border-radius: 12px; color: var(--digamelon-ink); flex: 1 1 auto; font: inherit; font-size: 16px; line-height: 1.35; max-height: 100px; min-height: 44px; min-width: 0; overflow-y: auto; padding: 10px 12px; resize: none; }
.digamelon-input:focus { border-color: var(--digamelon-orange-dark); box-shadow: 0 0 0 3px rgba(255,198,88,.32); outline: none; }
.digamelon-send { appearance: none; background: var(--digamelon-orange); border: 0; border-radius: 12px; color: var(--digamelon-ink); cursor: pointer; flex: 0 0 auto; font: inherit; font-size: 13px; font-weight: 750; min-height: 44px; padding: 0 15px; }
.digamelon-send:hover { background: #ffb92f; }
.digamelon-send:focus-visible, .digamelon-toggle:focus-visible, .digamelon-clear:focus-visible, .digamelon-close:focus-visible { outline: 3px solid rgba(216,137,0,.35); outline-offset: 2px; }
.digamelon-send:disabled, .digamelon-input:disabled { cursor: wait; opacity: .65; }
.digamelon-floating { position: fixed; right: max(18px, env(safe-area-inset-right)); top: calc(var(--digamelon-viewport-top, 0px) + var(--digamelon-viewport-height, 100dvh) - max(18px, env(safe-area-inset-bottom)) - 58px); z-index: 99990; }
.digamelon-floating .digamelon-chat { bottom: 70px; box-shadow: 0 20px 55px rgba(19,44,36,.2); height: min(560px, calc(var(--digamelon-viewport-height, 100dvh) - 110px)); max-height: calc(var(--digamelon-viewport-height, 100dvh) - 110px); position: absolute; right: 0; width: min(380px, calc(100vw - 28px)); }
.digamelon-floating .digamelon-chat[hidden] { display: none; }
.digamelon-toggle { align-items: center; appearance: none; background: var(--digamelon-orange); border: 0; border-radius: 50%; box-shadow: 0 8px 25px rgba(111,72,0,.24); color: var(--digamelon-ink); cursor: pointer; display: flex; height: 58px; justify-content: center; margin-left: auto; padding: 0; width: 58px; }
.digamelon-toggle:hover { background: #ffb92f; transform: translateY(-1px); }
.digamelon-toggle svg { fill: currentColor; height: 27px; width: 27px; }
.digamelon-typing { align-items: center; display: flex; gap: 4px; min-height: 36px; }
.digamelon-stream { min-height: 36px; }
.digamelon-typing i { animation: digamelon-pulse 1.1s infinite ease-in-out; background: #84918d; border-radius: 50%; display: block; height: 6px; width: 6px; }
.digamelon-typing i:nth-child(2) { animation-delay: .14s; }
.digamelon-typing i:nth-child(3) { animation-delay: .28s; }
.digamelon-progress { color: var(--digamelon-muted); font-size: 12px; margin-left: 5px; }
.digamelon-sr-only { clip: rect(0,0,0,0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }

@keyframes digamelon-pulse { 0%, 60%, 100% { opacity: .35; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

@supports (height: 100svh) {
  .digamelon-embedded .digamelon-chat { height: min(720px, calc(var(--digamelon-viewport-height, 100svh) - 48px)); max-height: calc(var(--digamelon-viewport-height, 100svh) - 48px); min-height: min(460px, calc(var(--digamelon-viewport-height, 100svh) - 48px)); }
}

@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  .digamelon-floating .digamelon-chat { bottom: auto; height: calc(var(--digamelon-viewport-height, 100dvh) - max(8px, env(safe-area-inset-top))); left: auto; max-height: calc(var(--digamelon-viewport-height, 100dvh) - max(8px, env(safe-area-inset-top))); position: fixed; right: max(12px, env(safe-area-inset-right)); top: calc(var(--digamelon-viewport-top, 0px) + max(8px, env(safe-area-inset-top))); width: min(440px, calc(var(--digamelon-viewport-width, 100vw) - max(24px, calc(env(safe-area-inset-left) + env(safe-area-inset-right))))); }
  .digamelon-floating.digamelon-open .digamelon-toggle { display: none; }
  .digamelon-embedded .digamelon-chat { height: min(720px, calc(var(--digamelon-viewport-height, 100dvh) - 24px)); max-height: calc(var(--digamelon-viewport-height, 100dvh) - 24px); min-height: min(420px, calc(var(--digamelon-viewport-height, 100dvh) - 24px)); }
  .digamelon-scrollbar { right: 5px; width: 9px; }
  .digamelon-messages { padding-right: 23px; }
}

@media (max-width: 480px) {
  .digamelon-floating { right: max(12px, env(safe-area-inset-right)); top: calc(var(--digamelon-viewport-top, 0px) + var(--digamelon-viewport-height, 100dvh) - max(12px, env(safe-area-inset-bottom)) - 54px); }
  .digamelon-floating .digamelon-chat { height: calc(var(--digamelon-viewport-height, 100dvh) - max(8px, env(safe-area-inset-top))); left: calc(var(--digamelon-viewport-left, 0px) + max(8px, env(safe-area-inset-left))); max-height: calc(var(--digamelon-viewport-height, 100dvh) - max(8px, env(safe-area-inset-top))); right: auto; width: calc(var(--digamelon-viewport-width, 100vw) - max(8px, env(safe-area-inset-left)) - max(8px, env(safe-area-inset-right))); }
  .digamelon-toggle { height: 54px; width: 54px; }
  .digamelon-embedded .digamelon-chat { height: min(620px, calc(var(--digamelon-viewport-height, 100vh) - 16px)); max-height: calc(var(--digamelon-viewport-height, 100vh) - 16px); min-height: min(320px, calc(var(--digamelon-viewport-height, 100vh) - 16px)); }
  .digamelon-header { padding-left: 10px; padding-right: 8px; }
  .digamelon-message { max-width: 92%; }
}

@supports (height: 100svh) {
  @media (max-width: 480px) {
    .digamelon-embedded .digamelon-chat { height: min(620px, calc(var(--digamelon-viewport-height, 100svh) - 16px)); max-height: calc(var(--digamelon-viewport-height, 100svh) - 16px); min-height: min(320px, calc(var(--digamelon-viewport-height, 100svh) - 16px)); }
  }
}

@media (prefers-reduced-motion: reduce) {
  .digamelon-typing i { animation: none; opacity: .65; }
  .digamelon-toggle { transition: none; }
}
