/* Amal: DBU presentation layer over the DBU AI Partner plugin (loaded only when the plugin is active).
   Scoped to #dbu-ai-panel.dbu-skin (added by amal-bridge.js). The plugin ships many !important rules,
   so overrides here use an id-scoped selector plus !important where the plugin does. */

/* The theme's floating card replaces the plugin launcher. */
.has-amal-card #dbu-ai-launch{display:none!important}

/* ---------- Frame: a subtle glass layer, clearly separated from the page ---------- */
#dbu-ai-panel.dbu-skin{
  --a-bg:rgba(13,29,45,.9);--a-line:rgba(169,188,208,.28);--a-line-2:rgba(169,188,208,.12);--a-fg:#EEF2F6;--a-fg-2:#B9C6D4;--a-fg-3:#8497AB;--a-navy:#12395C;--a-accent:#A9BCD0;
  right:max(20px,env(safe-area-inset-right,0px))!important;bottom:calc(20px + env(safe-area-inset-bottom,0px))!important;left:auto!important;top:auto!important;
  width:min(420px,calc(100vw - 40px))!important;height:min(700px,calc(100vh - 40px))!important;
  border-radius:26px!important;border:1px solid var(--a-line)!important;background:var(--a-bg)!important;color:var(--a-fg)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.25);backdrop-filter:blur(22px) saturate(1.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px rgba(7,18,29,.5),0 18px 44px -28px rgba(7,18,29,.6)!important;
  font-family:var(--sans)!important;font-size:15px;line-height:1.5;
}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){#dbu-ai-panel.dbu-skin{background:#0E1F30!important}}
#dbu-ai-panel.dbu-skin .dbu-ai-view{background:transparent!important;color:var(--a-fg)!important;min-height:0}
#dbu-ai-panel.dbu-skin svg{width:16px;height:16px;fill:none}
#dbu-ai-panel.dbu-skin :focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:2px!important}

/* Round controls: close (always visible) and back (only inside Chat and Voice). */
#dbu-ai-panel.dbu-skin .dbu-ai-close,#dbu-ai-panel.dbu-skin .dbu-ai-back{width:40px!important;height:40px!important;min-width:40px!important;border-radius:50%!important;display:grid!important;place-items:center!important;padding:0!important;background:rgba(12,27,42,.55)!important;border:1px solid rgba(255,255,255,.16)!important;color:#fff!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:0!important;transition:background var(--t2)}
#dbu-ai-panel.dbu-skin .dbu-ai-close:hover,#dbu-ai-panel.dbu-skin .dbu-ai-back:hover{background:rgba(24,48,74,.9)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-close svg,#dbu-ai-panel.dbu-skin .dbu-ai-back svg{width:14px;height:14px}
#dbu-ai-panel.dbu-skin .dbu-ai-close{top:14px!important;right:14px!important;z-index:50!important}

/* Labels in the DBU mono style (the plugin forces text-transform:none on everything). */
#dbu-ai-panel.dbu-skin .dbu-ai-meta small,#dbu-ai-panel.dbu-skin .dbu-ai-voice-title small,#dbu-ai-panel.dbu-skin #dbu-ai-choice-role,#dbu-ai-panel.dbu-skin .dbu-ai-language-switch button,#dbu-ai-panel.dbu-skin .dbu-v-controls button,#dbu-ai-panel.dbu-skin .dbu-ai-switch-chat{font-family:var(--mono)!important;text-transform:uppercase!important;letter-spacing:.12em!important;font-size:.64rem!important}

/* ---------- Mode selection ---------- */
#dbu-ai-panel.dbu-skin .dbu-ai-choice{position:relative!important;padding:0!important;display:none;flex-direction:column!important;align-items:stretch!important;background:transparent!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice.is-active{display:flex!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-toolbar{position:absolute!important;top:16px;left:16px;right:auto;width:auto!important;height:auto!important;padding:0!important;z-index:30}
#dbu-ai-panel.dbu-skin .dbu-ai-language-switch{background:rgba(12,27,42,.5)!important;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:3px!important;border-radius:999px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-language-switch button{min-width:0!important;padding:8px 12px!important;color:rgba(255,255,255,.72)!important;border-radius:999px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-language-switch button.is-active{background:#fff!important;color:#0C1B2A!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-portrait-wrap{position:relative!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;flex:1 1 44%!important;margin:0!important;overflow:hidden;display:block!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-glow{display:none!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-portrait,#dbu-ai-panel.dbu-skin .dbu-ai-voice-orbit img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:50% 14%!important;filter:none!important;background:transparent!important;-webkit-mask-image:linear-gradient(to bottom,#000 45%,rgba(0,0,0,.55) 72%,transparent 100%);mask-image:linear-gradient(to bottom,#000 45%,rgba(0,0,0,.55) 72%,transparent 100%)}
/* The calm portrait loop sits over the still and is masked identically, so it reads as the card's own portrait
   rather than a video dropped into it. The still underneath is its poster and its fallback. */
#dbu-ai-panel.dbu-skin .dbu-under-face{opacity:0!important} /* Hidden only while the clip is actually painting. */
#dbu-ai-panel.dbu-skin .dbu-face-v{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 14%;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,#000 45%,rgba(0,0,0,.55) 72%,transparent 100%);mask-image:linear-gradient(to bottom,#000 45%,rgba(0,0,0,.55) 72%,transparent 100%)}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-copy{padding:0 22px!important;margin-top:-28px;position:relative;z-index:2;text-align:left!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-copy h2{font-size:1.9rem!important;font-weight:500!important;letter-spacing:-.03em!important;margin:0!important;color:#fff!important;line-height:1.05}
#dbu-ai-panel.dbu-skin #dbu-ai-choice-role{display:block;margin:6px 0 14px!important;color:var(--a-accent)!important;opacity:1!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-copy strong{font-weight:400!important;font-size:1.02rem!important;color:var(--a-fg-2)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-actions{padding:0 18px!important;margin-top:16px!important;gap:10px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-mode-button{min-height:62px!important;border-radius:16px!important;border:1px solid var(--a-line)!important;background:rgba(255,255,255,.04)!important;color:var(--a-fg)!important;padding:10px 14px!important;gap:14px!important;text-align:left;transition:background var(--t2),border-color var(--t2)}
#dbu-ai-panel.dbu-skin .dbu-ai-mode-button:hover{background:rgba(255,255,255,.08)!important;border-color:rgba(169,188,208,.36)!important;transform:none!important}
#dbu-ai-panel.dbu-skin .dbu-ai-mode-button>span{width:40px!important;height:40px!important;border-radius:12px!important;background:var(--a-navy)!important;color:#fff!important;display:grid!important;place-items:center!important;font-size:0!important;flex:none}
#dbu-ai-panel.dbu-skin .dbu-ai-mode-button b{font-weight:500!important;font-size:1rem!important}
#dbu-ai-panel.dbu-skin .dbu-ai-mode-button small{color:var(--a-fg-3)!important;opacity:1!important;font-size:.82rem!important;margin-top:2px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-choice-privacy,#dbu-ai-panel.dbu-skin .dbu-ai-privacy,#dbu-ai-panel.dbu-skin .dbu-ai-voice-note{padding:12px 22px 16px!important;margin:0!important;font-size:10px!important;line-height:1.5!important;color:#6F849B!important;opacity:1!important;background:transparent!important;text-align:left}

/* ---------- Chat ---------- */
#dbu-ai-panel.dbu-skin .dbu-ai-header{min-height:0!important;padding:14px 64px 14px 66px!important;gap:12px!important;background:transparent!important;border-bottom:1px solid var(--a-line-2);color:var(--a-fg)!important;flex:none}
#dbu-ai-panel.dbu-skin .dbu-ai-header .dbu-ai-back-fixed{left:14px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-avatar{width:44px!important;height:44px!important;flex:0 0 44px!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:50%!important;box-shadow:0 0 0 4px rgba(169,188,208,.08)}
#dbu-ai-panel.dbu-skin .dbu-ai-meta strong{font-size:1.1rem!important;font-weight:500!important;letter-spacing:-.01em!important;color:#fff}
#dbu-ai-panel.dbu-skin .dbu-ai-meta small{margin-top:3px!important;gap:6px!important;opacity:1!important;color:var(--a-fg-3)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-online-dot{width:6px!important;height:6px!important;background:#7FD1A8!important;box-shadow:0 0 0 3px rgba(127,209,168,.16);margin-left:6px}
#dbu-ai-panel.dbu-skin .dbu-ai-messages{background:transparent!important;padding:18px 16px!important;gap:10px!important;scrollbar-width:thin;scrollbar-color:rgba(169,188,208,.3) transparent}
#dbu-ai-panel.dbu-skin .dbu-ai-bubble{font-size:.95rem!important;line-height:1.5!important;padding:10px 13px!important;max-width:86%!important;border-radius:14px!important;box-shadow:none!important}
#dbu-ai-panel.dbu-skin .dbu-ai-bot,#dbu-ai-panel.dbu-skin .dbu-ai-typing{background:rgba(255,255,255,.05)!important;border:1px solid var(--a-line-2);color:#D5DFEA!important;border-bottom-left-radius:4px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-user{background:var(--a-navy)!important;color:#fff!important;border-bottom-right-radius:4px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-typing{opacity:.7;font-style:normal!important}
#dbu-ai-panel.dbu-skin .dbu-ai-bubble strong{color:#fff;font-weight:500!important}
/* Who said it and when, under every message. Amal's portrait sits beside the first message of each of her turns. */
#dbu-ai-panel.dbu-skin .dbu-m{display:flex;gap:8px;margin-top:5px;font-family:var(--mono,ui-monospace,monospace);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;opacity:.45}
#dbu-ai-panel.dbu-skin .dbu-ai-user .dbu-m{justify-content:flex-end}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-m{text-transform:none;letter-spacing:0;font-family:inherit;font-size:.68rem}
#dbu-ai-panel.dbu-skin .dbu-ai-bot{margin-left:34px!important;position:relative}
#dbu-ai-panel.dbu-skin .dbu-ai-bot::before{content:"";position:absolute;left:-34px;top:0;width:26px;height:26px;border-radius:50%;background-image:var(--dbu-face);background-size:cover;background-position:50% 12%;box-shadow:0 0 0 1px var(--a-line-2)}
#dbu-ai-panel.dbu-skin .dbu-ai-bot + .dbu-ai-bot::before{display:none} /* One portrait per turn, not per line. */
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-bot{margin-left:0!important;margin-right:34px!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-bot::before{left:auto;right:-34px}
/* Amal writing: her portrait, what she is doing, three dots, and how long it has taken. */
#dbu-ai-panel.dbu-skin .dbu-ai-typing{display:flex!important;align-items:center;gap:8px;margin-left:0!important;margin-right:0!important;opacity:1!important}
#dbu-ai-panel.dbu-skin .dbu-ai-typing::before{display:none}
#dbu-ai-panel.dbu-skin .dbu-t-face{width:22px;height:22px;flex:0 0 22px;border-radius:50%;background-size:cover;background-position:50% 12%;background-color:rgba(255,255,255,.08)}
#dbu-ai-panel.dbu-skin .dbu-t-what{font-size:.82rem;color:#A9BCD0}
#dbu-ai-panel.dbu-skin .dbu-t-dots{display:flex;gap:3px}
#dbu-ai-panel.dbu-skin .dbu-t-dots i{width:4px;height:4px;border-radius:50%;background:#A9BCD0;animation:dbuTypeDot 1.2s ease-in-out infinite}
#dbu-ai-panel.dbu-skin .dbu-t-dots i:nth-child(2){animation-delay:.16s}
#dbu-ai-panel.dbu-skin .dbu-t-dots i:nth-child(3){animation-delay:.32s}
#dbu-ai-panel.dbu-skin .dbu-t-secs{margin-left:auto;font-family:var(--mono,ui-monospace,monospace);font-size:.6rem;letter-spacing:.08em;color:#6F849B;min-width:26px;text-align:right}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-t-secs{margin-left:0;margin-right:auto;text-align:left}
@keyframes dbuTypeDot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
@media (prefers-reduced-motion:reduce){#dbu-ai-panel.dbu-skin .dbu-t-dots i{animation:none;opacity:.6}}
/* The same searchable dialling code inside Amal's booking card, in the panel's own dark palette. */
#dbu-ai-panel.dbu-skin .dsel-btn{min-height:46px;font:inherit;font-size:.95rem;color:var(--a-fg);background:rgba(255,255,255,.05);border:1px solid rgba(169,188,208,.26);border-radius:12px;padding:11px 28px 11px 12px;text-align:left}
#dbu-ai-panel.dbu-skin .dsel-btn::after{border-color:var(--a-accent)}
#dbu-ai-panel.dbu-skin .dsel.is-open .dsel-btn,#dbu-ai-panel.dbu-skin .dsel-btn:focus-visible{background:rgba(255,255,255,.08);border-color:var(--a-accent);box-shadow:0 0 0 3px rgba(169,188,208,.14)}
#dbu-ai-panel.dbu-skin .dsel-pop{background:#10243A;border:1px solid var(--a-line);border-radius:14px;box-shadow:0 24px 50px -24px rgba(5,12,20,.8);width:max(100%,240px)}
#dbu-ai-panel.dbu-skin .dsel-find{background:transparent;color:var(--a-fg);border-bottom:1px solid var(--a-line-2);font-size:16px;padding:11px 12px}
#dbu-ai-panel.dbu-skin .dsel-find::placeholder{color:#6F849B}
#dbu-ai-panel.dbu-skin .dsel-list{max-height:210px}
#dbu-ai-panel.dbu-skin .dsel-list li{color:var(--a-fg-2);font-size:.92rem;padding:9px 10px}
#dbu-ai-panel.dbu-skin .dsel-list li.on,#dbu-ai-panel.dbu-skin .dsel-list li:hover{background:rgba(255,255,255,.08);color:#fff}
#dbu-ai-panel.dbu-skin .dsel-none{color:#6F849B}
#dbu-ai-panel.dbu-skin .dbu-ai-form{background:transparent!important;border-top:1px solid var(--a-line-2)!important;padding:12px 14px 4px!important;gap:8px!important;align-items:flex-end;flex:none}
#dbu-ai-panel.dbu-skin .dbu-ai-form textarea{background:rgba(255,255,255,.05)!important;border:1px solid rgba(169,188,208,.26)!important;border-radius:14px!important;color:var(--a-fg)!important;min-height:46px!important;padding:12px 14px!important;font-size:16px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-form textarea::placeholder{color:#6F849B}
#dbu-ai-panel.dbu-skin .dbu-ai-form textarea:focus{border-color:var(--a-accent)!important;box-shadow:0 0 0 3px rgba(169,188,208,.14)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-form button{width:46px!important;height:46px!important;border-radius:50%!important;background:#fff!important;color:#0C1B2A!important;display:grid!important;place-items:center!important;font-size:0!important;flex:none}
#dbu-ai-panel.dbu-skin .dbu-ai-form textarea:disabled{opacity:.6}
#dbu-ai-panel.dbu-skin .dbu-ai-privacy{padding-top:8px!important;text-align:center}

/* Booking cards produced by the plugin (date, slots, details, confirmation). */
/* Chat quick actions (amal-bridge.js). */
#dbu-ai-panel.dbu-skin .dbu-quick{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}
#dbu-ai-panel.dbu-skin .dbu-quick button{min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--a-line);background:transparent;color:var(--a-fg);font:inherit;font-size:.88rem;line-height:1.3;text-align:start;cursor:pointer;transition:background var(--t2),border-color var(--t2)}
#dbu-ai-panel.dbu-skin .dbu-quick button.is-primary{background:#fff;color:#0C1B2A;border-color:#fff;font-weight:500}
@media (hover:hover){#dbu-ai-panel.dbu-skin .dbu-quick button:not(.is-primary):hover{background:rgba(255,255,255,.06);border-color:rgba(169,188,208,.4)}}
#dbu-ai-panel.dbu-skin .dbu-quick button:focus-visible{outline:2px solid var(--a-accent);outline-offset:2px}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card{margin:4px 0 8px!important;background:rgba(255,255,255,.04)!important;border:1px solid var(--a-line)!important;border-radius:16px!important;box-shadow:none!important;color:var(--a-fg)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card>label,#dbu-ai-panel.dbu-skin .dbu-ai-booking-form label,#dbu-ai-panel.dbu-skin .dbu-ai-card-meta{color:var(--a-fg-3)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card strong{color:var(--a-fg-2)}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card input,#dbu-ai-panel.dbu-skin .dbu-ai-action-card select,#dbu-ai-panel.dbu-skin .dbu-ai-action-card textarea{background:rgba(255,255,255,.05)!important;border:1px solid rgba(169,188,208,.26)!important;color:var(--a-fg)!important;border-radius:12px!important;font-size:16px!important;color-scheme:dark}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card select option{background:#0C1B2A;color:#EEF2F6}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card>button,#dbu-ai-panel.dbu-skin .dbu-ai-booking-form>button,#dbu-ai-panel.dbu-skin .dbu-ai-primary-action{background:#fff!important;color:#0C1B2A!important;border-radius:999px!important;font-weight:500!important;min-height:44px}
#dbu-ai-panel.dbu-skin .dbu-ai-secondary-action{background:transparent!important;color:var(--a-fg)!important;border:1px solid var(--a-line)!important;border-radius:999px!important;font-weight:500!important;min-height:44px}
#dbu-ai-panel.dbu-skin .dbu-ai-slot-button{background:transparent!important;border:1px solid var(--a-line)!important;color:var(--a-fg)!important;border-radius:12px!important;min-height:52px}
#dbu-ai-panel.dbu-skin .dbu-ai-slot-button small{color:var(--a-fg-3)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-slot-button:hover,#dbu-ai-panel.dbu-skin .dbu-ai-slot-button.is-selected{background:var(--a-navy)!important;border-color:var(--a-navy)!important;color:#fff!important}
#dbu-ai-panel.dbu-skin .dbu-ai-summary-card{border-color:var(--a-line)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-summary-card>div{border-color:var(--a-line-2)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-success-card{background:rgba(127,209,168,.1)!important;color:#A8E3C4!important;border-color:rgba(127,209,168,.3)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-form-error{background:rgba(179,38,30,.16)!important;color:#FFB4AE!important}

/* ---------- Voice: Amal is the visual; the portrait fades into navy above the state and controls ---------- */
#dbu-ai-panel.dbu-skin .dbu-ai-voice-view{position:relative;background:transparent!important;overflow:hidden}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-top{position:relative!important;z-index:5;min-height:0!important;padding:16px 64px 16px 66px!important;background:linear-gradient(to bottom,rgba(12,27,42,.7),rgba(12,27,42,0))!important}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-top .dbu-ai-back-fixed{left:14px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-title strong{font-size:1.1rem!important;font-weight:500!important;color:#fff}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-title small{color:var(--a-accent)!important;opacity:1!important;margin-top:2px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-stage{position:static!important;flex:1 1 auto!important;padding:0 22px!important;justify-content:flex-end!important;align-items:stretch!important;min-height:0}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-orbit{position:absolute!important;inset:0 0 auto 0!important;width:100%!important;height:72%!important;display:block!important;margin:0!important;z-index:0;pointer-events:none}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-orbit::after{content:"";position:absolute;left:50%;bottom:18%;width:62%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(116,160,206,.22),transparent);opacity:0;transition:opacity 600ms var(--ease-out)}
#dbu-ai-panel.dbu-skin .dbu-ai-ring{display:none!important}
/* Voice states. The portrait stays calm; a hairline at the foot of it answers the real audio (--dbu-level, set by
   amal-bridge.js), and the plugin's own bars carry the waveform. Nothing glows, nothing pulses. */
#dbu-ai-panel.dbu-skin .dbu-ai-voice-orbit::before{content:"";position:absolute;left:22px;right:22px;bottom:14%;height:1px;
  background:linear-gradient(90deg,transparent,var(--a-accent),transparent);
  opacity:0;transform:scaleX(.35);transform-origin:50% 50%;transition:opacity 420ms var(--ease-out)}
#dbu-ai-panel.dbu-skin[data-voice="listening"] .dbu-ai-voice-orbit::before,
#dbu-ai-panel.dbu-skin[data-voice="speaking"] .dbu-ai-voice-orbit::before{
  opacity:calc(.22 + var(--dbu-level,0) * .78);transform:scaleX(calc(.35 + var(--dbu-level,0) * .65))}
#dbu-ai-panel.dbu-skin[data-voice="thinking"] .dbu-ai-voice-orbit::before,
#dbu-ai-panel.dbu-skin[data-voice="connecting"] .dbu-ai-voice-orbit::before{opacity:.3;animation:dbuAmalScan 2.4s ease-in-out infinite}
@keyframes dbuAmalScan{0%,100%{transform:scaleX(.2)}50%{transform:scaleX(.8)}}
@media (prefers-reduced-motion:reduce){#dbu-ai-panel.dbu-skin .dbu-ai-voice-orbit::before{animation:none!important;transition:none}}
#dbu-ai-panel.dbu-skin[data-voice="listening"] .dbu-ai-voice-orbit::after,#dbu-ai-panel.dbu-skin[data-voice="speaking"] .dbu-ai-voice-orbit::after{opacity:1;animation:dbuAmalBreathe 3.2s ease-in-out infinite}
@keyframes dbuAmalBreathe{0%,100%{transform:translateX(-50%) scale(.94);opacity:.55}50%{transform:translateX(-50%) scale(1.06);opacity:1}}
@keyframes dbuAmalLift{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
#dbu-ai-panel.dbu-skin .dbu-ai-wave{position:relative;z-index:2;height:28px!important;margin:0 0 6px!important;gap:3px!important;opacity:0;transition:opacity var(--t3)}
#dbu-ai-panel.dbu-skin .dbu-ai-wave{align-items:center!important}
#dbu-ai-panel.dbu-skin .dbu-ai-wave i{width:2px!important;min-height:0!important;background:var(--a-accent)!important;border-radius:2px!important;animation:none!important;transition:height 90ms linear}
#dbu-ai-panel.dbu-skin .dbu-ai-wave.is-speaking i{background:#fff!important}
#dbu-ai-panel.dbu-skin[data-voice="listening"] .dbu-ai-wave,#dbu-ai-panel.dbu-skin[data-voice="speaking"] .dbu-ai-wave{opacity:1}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-status{display:none!important}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-transcript{position:relative;z-index:2;max-width:none!important;width:100%!important;min-height:0!important;max-height:96px!important;margin:0 0 8px!important;padding:10px 12px!important;background:rgba(12,27,42,.55)!important;border:1px solid var(--a-line-2);border-radius:12px!important;color:var(--a-fg-2)!important;font-size:.85rem!important;text-align:left;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-transcript:empty,#dbu-ai-panel.dbu-skin[data-voice="ready"] .dbu-ai-voice-transcript{display:none!important}
#dbu-ai-panel.dbu-skin .dbu-v{position:relative;z-index:2;padding:4px 22px 6px;display:grid;gap:14px;justify-items:center;text-align:center}
#dbu-ai-panel.dbu-skin .dbu-v-status{font-size:1.02rem;font-weight:500;letter-spacing:-.02em;color:#fff;min-height:1.5em}
#dbu-ai-panel.dbu-skin[data-voice="thinking"] .dbu-v-status,#dbu-ai-panel.dbu-skin[data-voice="connecting"] .dbu-v-status{animation:dbuAmalFade 1.6s ease-in-out infinite}
#dbu-ai-panel.dbu-skin[data-voice="error"] .dbu-v-status{font-size:1rem;font-weight:400;color:#D5DFEA;max-width:32ch}
@keyframes dbuAmalFade{0%,100%{opacity:1}50%{opacity:.55}}
#dbu-ai-panel.dbu-skin .dbu-v-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
#dbu-ai-panel.dbu-skin .dbu-v-controls button{min-height:44px;padding:0 20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;transition:background var(--t2),color var(--t2)}
#dbu-ai-panel.dbu-skin .dbu-v-start{background:#fff!important;color:#0C1B2A!important;min-width:200px}
#dbu-ai-panel.dbu-skin .dbu-v-start:hover{background:#D5DFEA!important}
#dbu-ai-panel.dbu-skin .dbu-v-mute{background:rgba(255,255,255,.06)!important;color:#fff!important;border:1px solid var(--a-line)!important}
#dbu-ai-panel.dbu-skin .dbu-v-mute[aria-pressed="true"]{background:rgba(255,255,255,.16)!important}
#dbu-ai-panel.dbu-skin .dbu-v-end{background:rgba(179,38,30,.92)!important;color:#fff!important}
#dbu-ai-panel.dbu-skin .dbu-v-mute,#dbu-ai-panel.dbu-skin .dbu-v-end{display:none!important}
#dbu-ai-panel.dbu-skin:not([data-voice="ready"]):not([data-voice="error"]) .dbu-v-start{display:none!important}
#dbu-ai-panel.dbu-skin[data-voice="connecting"] .dbu-v-end,#dbu-ai-panel.dbu-skin[data-voice="listening"] .dbu-v-end,#dbu-ai-panel.dbu-skin[data-voice="thinking"] .dbu-v-end,#dbu-ai-panel.dbu-skin[data-voice="speaking"] .dbu-v-end{display:inline-flex!important}
#dbu-ai-panel.dbu-skin[data-voice="listening"] .dbu-v-mute,#dbu-ai-panel.dbu-skin[data-voice="thinking"] .dbu-v-mute,#dbu-ai-panel.dbu-skin[data-voice="speaking"] .dbu-v-mute{display:inline-flex!important}
/* The plugin's own voice buttons stay in the DOM (they drive the engine) but are replaced visually; "Switch to chat" remains as a quiet link. */
#dbu-ai-panel.dbu-skin .dbu-ai-voice-controls{position:relative;z-index:2;padding:4px 20px 0!important;gap:0!important;min-height:0}
#dbu-ai-panel.dbu-skin .dbu-ai-mic,#dbu-ai-panel.dbu-skin .dbu-ai-end-voice{display:none!important}
#dbu-ai-panel.dbu-skin .dbu-ai-switch-chat{border:0!important;background:transparent!important;color:var(--a-fg-3)!important;padding:10px 12px!important;min-height:44px}
#dbu-ai-panel.dbu-skin .dbu-ai-switch-chat:hover{color:#fff!important}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-note{position:relative;z-index:2;text-align:center!important;padding-top:4px!important}

/* ---------- Arabic: right to left throughout, set in Readex Pro ----------
   amal-bridge.js sets lang="ar" and dir="rtl" on the panel. The plugin keeps some parts left to right on purpose,
   so direction is forced here. Monospace, capitals and letter-spacing are dropped: they break Arabic letter joining.
   Each message takes its direction from its own first letter, so an English sentence still ends on the right. */
#dbu-ai-panel.dbu-skin[lang="ar"],#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-view,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-header,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-top,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-choice-toolbar,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-messages,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-form,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-mode-button,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-v{direction:rtl!important}
#dbu-ai-panel.dbu-skin[lang="ar"],#dbu-ai-panel.dbu-skin[lang="ar"] *{font-family:"Readex Pro",var(--sans)!important;letter-spacing:0!important;text-transform:none!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-meta small,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-title small,#dbu-ai-panel.dbu-skin[lang="ar"] #dbu-ai-choice-role,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-language-switch button,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-v-controls button,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-switch-chat{font-family:"Readex Pro",var(--sans)!important;letter-spacing:0!important;text-transform:none!important;font-size:.8rem!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-language-switch [data-dbu-lang="en"]{font-family:var(--mono)!important;letter-spacing:.12em!important;text-transform:uppercase!important;font-size:.64rem!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-choice-copy h2,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-meta strong,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-title strong,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-v-status{line-height:1.35!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-choice-copy,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-mode-button,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-meta,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-title,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-choice-privacy,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-transcript{text-align:right!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-bubble,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-transcript,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-form textarea,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-v-status,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-privacy,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-choice-privacy,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-note{unicode-bidi:plaintext!important;text-align:start!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-privacy,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-note,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-v-status{text-align:center!important}
/* Mirrored positions: close on the left, back on the right, language switch on the right. */
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-close{right:auto!important;left:14px!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-header .dbu-ai-back-fixed,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-top .dbu-ai-back-fixed{left:auto!important;right:14px!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-choice-toolbar{left:auto!important;right:16px!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-header,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-voice-top{padding:14px 66px 14px 64px!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-online-dot{margin-left:0!important;margin-right:6px!important}
/* Arrows point the way Arabic reads. */
#dbu-ai-panel.dbu-skin[lang="ar"] [data-dbu-back] svg,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-back svg,#dbu-ai-panel.dbu-skin[lang="ar"] #dbu-ai-send svg{transform:scaleX(-1)}
/* Speech tails: Amal's messages sit on the right, the visitor's on the left. */
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-bot,#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-typing{border-bottom-left-radius:14px!important;border-bottom-right-radius:4px!important}
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-user{border-bottom-right-radius:14px!important;border-bottom-left-radius:4px!important}

/* The العربية button is always set in the site's Arabic face (Readex Pro), whichever language Amal is in. */
#dbu-ai-panel.dbu-skin .dbu-ai-language-switch [data-dbu-lang="ar"]{font-family:"Readex Pro",var(--sans)!important;letter-spacing:0!important;text-transform:none!important;font-size:.8rem!important}

/* ---------- Page direction: on Arabic pages the panel anchors and grows from the bottom left, beside the mirrored
   Amal card; on English pages from the bottom right. (Its content direction follows Amal's own language, above.) ---------- */
#dbu-ai-panel.dbu-skin{transform-origin:100% 100%}
@media (min-width:768px){
  html[dir="rtl"] #dbu-ai-panel.dbu-skin{left:max(20px,env(safe-area-inset-left,0px))!important;right:auto!important;transform-origin:0 100%}
}

/* ---------- Live conversation ----------
   A blue light breathes inside the card while a conversation is on: softer while Amal listens, stronger while she
   speaks. It never spills outside the frame. Her words appear in the middle of the card. */
#dbu-ai-panel.dbu-skin .dbu-ai-voice-view::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity 700ms var(--ease-out);
  background:radial-gradient(120% 42% at 50% 104%,rgba(80,150,255,.55),rgba(80,150,255,0) 62%);box-shadow:inset 0 0 0 1.5px rgba(120,176,255,.55),inset 0 0 70px 6px rgba(70,140,255,.35)}
#dbu-ai-panel.dbu-skin[data-voice="connecting"] .dbu-ai-voice-view::before{opacity:.35;animation:dbuLive 2.4s ease-in-out infinite}
#dbu-ai-panel.dbu-skin[data-voice="listening"] .dbu-ai-voice-view::before{opacity:.7;animation:dbuLive 3.2s ease-in-out infinite}
#dbu-ai-panel.dbu-skin[data-voice="thinking"] .dbu-ai-voice-view::before{opacity:.5;animation:dbuLive 1.8s ease-in-out infinite}
#dbu-ai-panel.dbu-skin[data-voice="speaking"] .dbu-ai-voice-view::before{opacity:1;animation:dbuSpeak 1.4s ease-in-out infinite}
@keyframes dbuLive{0%,100%{filter:brightness(.8)}50%{filter:brightness(1.25)}}
@keyframes dbuSpeak{0%,100%{filter:brightness(.9);transform:scaleY(1)}50%{filter:brightness(1.35);transform:scaleY(1.02)}}
/* What was said sits at the foot of the portrait, just above the waveform, where it does not cover her face and
   has a dark enough ground to be read against a lit photograph. */
#dbu-ai-panel.dbu-skin .dbu-ai-voice-transcript{position:relative!important;order:-1;z-index:5;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;max-height:34vh!important;overflow-y:auto;margin:0 0 12px!important;padding:11px 14px!important;text-align:center!important;font-size:.86rem!important;line-height:1.5!important;color:#F5F8FB!important;background:rgba(7,16,26,.88)!important;border:1px solid rgba(169,188,208,.2)!important;border-radius:14px!important;-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1);box-shadow:0 12px 30px -18px rgba(0,0,0,.8);scrollbar-width:none}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-transcript::-webkit-scrollbar{display:none}
#dbu-ai-panel.dbu-skin .dbu-ai-voice-transcript strong{color:#9FC3FF;font-weight:500}
/* The plugin joins the visitor's line and Amal's with a bare <br>, which takes no spacing. Her label opens the second
   line, so a little room above it separates the two turns. */
#dbu-ai-panel.dbu-skin .dbu-ai-voice-transcript br+strong{display:inline-block;margin-top:.7em}
#dbu-ai-panel.dbu-skin .dbu-v-line{display:flex;align-items:baseline;justify-content:center;gap:10px;min-height:1.5em}
#dbu-ai-panel.dbu-skin .dbu-v-time{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;color:#A9C8FF;font-variant-numeric:tabular-nums}
#dbu-ai-panel.dbu-skin .dbu-v-time:empty{display:none}
#dbu-ai-panel.dbu-skin:is([data-voice="connecting"],[data-voice="listening"],[data-voice="thinking"]) .dbu-v-status::after{content:"";display:inline-block;width:1.2em;text-align:start;animation:dbuDots 1.2s steps(4,end) infinite}
@keyframes dbuDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
/* Chat: the three dots carry the motion now; see .dbu-t-dots above. */

/* ---------- Phones: nearly full screen, above the keyboard and browser bars ---------- */
@media (max-width:767px){
  #dbu-ai-panel.dbu-skin{left:8px!important;right:8px!important;width:auto!important;
    top:calc(var(--dbu-vvt,0px) + env(safe-area-inset-top,0px) + 8px)!important;bottom:auto!important;
    height:calc(var(--dbu-vvh,100dvh) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px)!important;max-height:none!important;border-radius:22px!important}
  #dbu-ai-panel.dbu-skin .dbu-ai-choice-copy h2{font-size:1.7rem!important}
  #dbu-ai-panel.dbu-skin .dbu-ai-form{padding-bottom:calc(4px + env(safe-area-inset-bottom,0px))!important}
}
@media (max-height:620px){#dbu-ai-panel.dbu-skin .dbu-ai-choice-portrait-wrap{flex-basis:30%!important}#dbu-ai-panel.dbu-skin .dbu-ai-choice-privacy{display:none}}
@media (prefers-reduced-motion:reduce){#dbu-ai-panel.dbu-skin *,#dbu-ai-panel.dbu-skin *::after{animation:none!important}}
@media (forced-colors:active){#dbu-ai-panel.dbu-skin{border:1px solid CanvasText!important}}

/* ---------- Booking cards: aligned fields, full-width actions, and a way forward when a day is full ---------- */
#dbu-ai-panel.dbu-skin .dbu-ai-action-card{padding:16px!important;gap:12px!important;margin:2px 0 6px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card>p{margin:0!important;color:var(--a-fg-2)!important;font-size:.95rem!important}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card>label,#dbu-ai-panel.dbu-skin .dbu-ai-booking-form label,#dbu-ai-panel.dbu-skin .dbu-retry label{display:grid!important;gap:8px!important;margin:0!important;font-family:var(--mono)!important;text-transform:uppercase!important;letter-spacing:.12em!important;font-size:.62rem!important;color:var(--a-fg-3)!important}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card input,#dbu-ai-panel.dbu-skin .dbu-ai-action-card select,#dbu-ai-panel.dbu-skin .dbu-ai-action-card textarea,#dbu-ai-panel.dbu-skin .dbu-retry input{width:100%!important;min-height:48px!important;padding:12px 14px!important;color-scheme:dark;-webkit-appearance:none;appearance:none}
/* Safari and Chrome hide an empty date value against a dark field unless both are set explicitly. */
#dbu-ai-panel.dbu-skin input[type="date"]{display:flex;align-items:center;color:var(--a-fg)!important;font-family:var(--sans)!important}
#dbu-ai-panel.dbu-skin input[type="date"]::-webkit-date-and-time-value{text-align:start;color:var(--a-fg);margin:0}
#dbu-ai-panel.dbu-skin input[type="date"]::-webkit-datetime-edit{color:var(--a-fg)}
#dbu-ai-panel.dbu-skin input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.65;cursor:pointer}
#dbu-ai-panel.dbu-skin .dbu-ai-action-card>button,#dbu-ai-panel.dbu-skin .dbu-ai-booking-form>button,#dbu-ai-panel.dbu-skin .dbu-retry button{width:100%;min-height:48px!important;padding:12px 16px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-card-actions{gap:10px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-card-actions button{min-height:48px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-phone-row{grid-template-columns:120px 1fr!important;gap:8px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-phone-row select{min-height:48px!important;font-size:.9rem!important}
#dbu-ai-panel.dbu-skin .dbu-ai-slot-grid{gap:8px!important}
#dbu-ai-panel.dbu-skin .dbu-ai-summary-card>div{grid-template-columns:94px minmax(0,1fr)!important;gap:12px!important;align-items:baseline}
/* Arabic: the label reads right to left, but a name, an email, a phone number and a date are Latin. Left to them,
   the bidi algorithm moves the "+" of +973 to the other end and breaks an address mid-word. Each value is its own
   left-to-right run, set hard against the right edge so the card still reads from the right. */
#dbu-ai-panel.dbu-skin[lang="ar"] .dbu-ai-summary-card>div>span{direction:ltr;unicode-bidi:isolate;text-align:right;overflow-wrap:break-word;word-break:normal}
#dbu-ai-panel.dbu-skin .dbu-ai-summary-card>div>span{overflow-wrap:break-word;word-break:normal;hyphens:none}
#dbu-ai-panel.dbu-skin .dbu-retry{display:grid;gap:10px;margin-top:2px;padding-top:12px;border-top:1px solid var(--a-line-2)}
#dbu-ai-panel.dbu-skin .dbu-retry button{background:#fff!important;color:#0C1B2A!important;border:0!important;border-radius:13px!important;font-weight:500!important;cursor:pointer}
#dbu-ai-panel.dbu-skin .dbu-retry button:disabled{opacity:.6;cursor:default}
#dbu-ai-panel.dbu-skin[dir="rtl"] .dbu-ai-action-card,#dbu-ai-panel.dbu-skin[dir="rtl"] .dbu-retry{text-align:right}
