/* Dora's palette and effects are scoped to Dora and its tenant-editor preview. */
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview) {
    --dora-tone-brand:var(--tenant-dora, var(--tenant-primary, var(--bs-primary, #2563eb)));
    --dora-tone-ink:color-mix(in srgb, var(--dora-tone-brand) 22%, #172033);
    --dora-tone-deep:color-mix(in srgb, var(--dora-tone-brand) 35%, #172033);
    --dora-tone-soft:color-mix(in srgb, var(--dora-tone-brand) 12%, #fff);
    --dora-brand:var(--dora-tone-brand);
    --dora-primary:var(--dora-tone-brand);
}
#chatbotModal .chatbot-header,
#chatbotWidget :is(.chatbot-btn, .chatbot-btn2),
.tenant-dora-preview .dora-preview-heading {
    background:var(--dora-tone-brand) !important;
    color:var(--dora-solid-text,#fff) !important;
    border-color:var(--dora-tone-brand) !important;
}
#chatbotModal :is(.dora-ai-orb, .dora-ai-response-orb) {
    background:var(--dora-tone-soft) !important; color:var(--dora-tone-ink) !important;
}
#chatbotModal :is(.dora-ai-action, .dora-start-action) {
    border-color:color-mix(in srgb, var(--dora-tone-brand) 24%, #fff);
}
.tenant-dora-preview {
    width:100%; min-width:0; margin-top:12px; padding:10px;
    border:1px solid color-mix(in srgb, var(--dora-tone-brand) 22%, #fff);
    border-radius:16px; background:#fff; color:#172033;
}
.tenant-dora-preview .dora-preview-heading {
    display:flex; align-items:center; gap:8px; padding:9px 11px; border-radius:11px; font-size:12px;
}
.tenant-dora-preview .dora-preview-heading small { margin-left:auto; font-size:10px; opacity:.85; }
.tenant-dora-preview :is(.dora-preview-user, .dora-preview-answer) {
    padding:9px 11px; margin-top:9px; font-size:11px; line-height:1.45; border-radius:12px;
}
.tenant-dora-preview .dora-preview-user { background:var(--dora-tone-soft); margin-left:20%; }
.tenant-dora-preview .dora-preview-answer { background:#f8fafc; border:1px solid #edf0f5; margin-right:10%; }
.tenant-dora-preview .dora-preview-actions { display:flex; justify-content:flex-end; gap:6px; margin-top:9px; }
.tenant-dora-preview .dora-effect-control {
    width:28px; height:28px; border:1px solid var(--dora-tone-deep); border-radius:50%;
    background:var(--dora-tone-brand); color:var(--dora-solid-text,#fff); font-size:11px;
}
.tenant-dora-preview .dora-preview-mic { background:var(--dora-tone-soft); color:var(--dora-tone-ink); }

/* Only the controls receive decoration; the textarea and text never animate. */
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)
:is(#sendMessage, #recodingBtn, #cameraBtn, .dora-primary-tools > button, .dora-primary-tools > div > button, .dora-effect-control, .chatbot-btn, .chatbot-btn2) {
    position:relative; isolation:isolate;
    transition:box-shadow .2s ease, filter .2s ease;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="halo"]
:is(button):not(:disabled):is(:hover, :focus-visible),
:is(#chatbotModal, .tenant-dora-preview)[data-dora-effect="halo"] .dora-mic-listening {
    box-shadow:0 0 0 3px color-mix(in srgb, var(--dora-tone-brand) 22%, transparent) !important;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="relief"]
:is(#sendMessage, #recodingBtn, #cameraBtn, .dora-footer-icon, .dora-effect-control, .chatbot-btn, .chatbot-btn2) {
    box-shadow:inset 0 1px 0 #ffffff50, 0 3px 0 color-mix(in srgb, var(--dora-tone-brand) 45%, #172033) !important;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="relief"] button:active {
    box-shadow:inset 0 2px 4px #0002 !important;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="gradient"]
:is(#sendMessage, #recodingBtn, #cameraBtn, .dora-footer-icon, .dora-effect-control, .chatbot-btn, .chatbot-btn2) {
    background-image:linear-gradient(135deg, #ffffff30, transparent 55%, #00000012) !important;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="sheen"]
:is(#sendMessage, #recodingBtn, #cameraBtn, .dora-footer-icon, .dora-effect-control, .chatbot-btn, .chatbot-btn2) {
    overflow:hidden;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="sheen"]
:is(#sendMessage, #recodingBtn, #cameraBtn, .dora-footer-icon, .dora-effect-control, .chatbot-btn, .chatbot-btn2)::after {
    content:""; position:absolute; pointer-events:none; inset:0;
    background:linear-gradient(110deg, transparent 25%, #ffffff55 48%, transparent 65%);
    transform:translateX(-140%); border-radius:inherit;
}
:is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="aurora"]
:is(.chatbot-header, .dora-preview-heading) {
    background:linear-gradient(120deg,var(--dora-tone-brand),color-mix(in srgb,var(--dora-tone-brand) 85%,white),var(--dora-tone-brand)) !important;
    background-size:250% 250% !important;
}
@media(prefers-reduced-motion:no-preference) {
    :is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="breathe"]
    :is(.dora-mic-listening, .dora-preview-mic, .chatbot-btn:hover, .chatbot-btn2:hover) {
        animation:dora-theme-breathe 3s ease-in-out infinite !important;
    }
    :is(#chatbotModal, .tenant-dora-preview)[data-dora-effect="aurora"]
    :is(.chatbot-header, .dora-preview-heading) { animation:dora-theme-aurora 14s ease-in-out infinite; }
    @media(hover:hover) {
        :is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="lift"] button:not(:disabled):hover {
            translate:0 -2px; box-shadow:0 5px 10px color-mix(in srgb, var(--dora-tone-brand) 22%, transparent) !important;
        }
        :is(#chatbotModal, #chatbotWidget, .tenant-dora-preview)[data-dora-effect="sheen"] button:not(:disabled):hover::after {
            animation:dora-theme-sheen .8s ease-out;
        }
    }
}
@keyframes dora-theme-breathe {
    0%,100% { box-shadow:0 0 0 0 color-mix(in srgb, var(--dora-tone-brand) 10%, transparent); }
    50% { box-shadow:0 0 0 4px color-mix(in srgb, var(--dora-tone-brand) 24%, transparent); }
}
@keyframes dora-theme-aurora { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }
@keyframes dora-theme-sheen { to { transform:translateX(140%); } }
@media(prefers-reduced-motion:reduce) {
    :is(#chatbotModal, #chatbotWidget, .tenant-dora-preview) * {
        animation:none !important; transition:none !important; translate:none !important;
    }
}

/* Closed launcher and open chat share Dora's colour; no primary-colour override. */
#chatbotWidget #openChatbot {
    --dora-launcher-primary:var(--tenant-dora);
    --dora-launcher-light:color-mix(in srgb,var(--tenant-dora) 16%,white);
    --dora-launcher-dark:var(--dora-tone-deep);
    width:var(--dora-launcher-size,60px)!important;
    height:var(--dora-launcher-size,60px)!important;
    min-width:var(--dora-launcher-size,60px)!important;
    padding:0!important;
    background:var(--dora-tone-brand)!important;
    border-color:var(--dora-launcher-light)!important;
    font-size:calc(var(--dora-launcher-size,60px) * .38)!important;
}
#chatbotWidget #openChatbot:is(:hover,:active,.active,[aria-expanded=true]) {
    background:var(--dora-tone-brand)!important;
    border-color:var(--dora-launcher-light)!important;
}
#tenantDoraPreview .dora-preview-launcher > .dora-effect-target {
    width:var(--dora-launcher-size,60px);height:var(--dora-launcher-size,60px);
    font-size:calc(var(--dora-launcher-size,60px) * .38);
}

/* Bot catalogue: the launcher and its preview use exactly the same effects. */
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example) {
    --dora-effect-speed:4s; --dora-effect-scale:1.045;
    --dora-effect-rise:3px; --dora-effect-tilt:3deg; --dora-effect-alpha:.18;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-intensity=medium] {
    --dora-effect-scale:1.08; --dora-effect-rise:5px; --dora-effect-tilt:5deg; --dora-effect-alpha:.27;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-intensity=bold] {
    --dora-effect-scale:1.12; --dora-effect-rise:7px; --dora-effect-tilt:7deg; --dora-effect-alpha:.36;
}
.tenant-dora-preview .dora-preview-launcher {
    display:flex; flex-direction:column; align-items:center; gap:16px;
    padding:30px 12px 20px; margin-top:12px; border-radius:14px; background:#f4f7fb;
}
.tenant-dora-preview .dora-preview-launcher > span { font-size:10px; color:#65748b; text-align:center; }
.tenant-dora-preview :is(#openChatbot,.dora-effect-target) {
    display:grid; place-items:center; width:58px; height:58px; flex:none;
    border:1px solid var(--dora-tone-deep); border-radius:50%; padding:0;
    font-size:23px; background:var(--dora-tone-brand); color:var(--dora-solid-text,#fff);
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example) :is(#openChatbot,.dora-effect-target) {
    position:relative; isolation:isolate; animation:none !important; animation-play-state:running!important; transform:none !important; overflow:visible !important;
    transition:transform .25s ease,scale .25s ease,rotate .25s ease,translate .25s ease;
    --dora-effect-halo:color-mix(in srgb,var(--dora-tone-brand) calc(var(--dora-effect-alpha) * 100%),transparent);
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect] :is(#openChatbot,.dora-effect-target)::before,
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example) :is(#openChatbot,.dora-effect-target)::after {
    content:none !important; display:block !important; background:none; position:absolute; inset:0; border-radius:inherit;
    pointer-events:none; animation:none; transform:none; opacity:1;
    z-index:1 !important; width:auto !important; height:auto !important; margin:0 !important;
    filter:none !important; box-shadow:none !important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=none] :is(#openChatbot,.dora-effect-target) { animation:none !important; transform:none !important; scale:1 !important; }
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=glow] :is(#openChatbot,.dora-effect-target) {
    box-shadow:0 0 12px var(--dora-effect-halo),0 0 28px var(--dora-effect-halo) !important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=halo] :is(#openChatbot,.dora-effect-target) {
    box-shadow:0 0 0 5px var(--dora-effect-halo) !important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=shadow] :is(#openChatbot,.dora-effect-target) {
    box-shadow:0 8px 22px color-mix(in srgb,var(--dora-tone-brand) 28%,transparent) !important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=gradient] :is(#openChatbot,.dora-effect-target) {
    background:var(--dora-tone-brand) !important;
    background-image:linear-gradient(145deg,#ffffff35,transparent 65%) !important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=relief] :is(#openChatbot,.dora-effect-target) {
    box-shadow:inset 0 2px 0 #ffffff55,0 4px 0 var(--dora-tone-ink) !important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=sheen] :is(#openChatbot,.dora-effect-target),
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=shimmer] :is(#openChatbot,.dora-effect-target) { overflow:hidden !important; }
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=sheen] :is(#openChatbot,.dora-effect-target)::after,
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=shimmer] :is(#openChatbot,.dora-effect-target)::after {
    content:"" !important; background:linear-gradient(110deg,transparent 25%,#ffffff66 48%,transparent 65%);
    transform:translateX(-140%);
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ripple] :is(#openChatbot,.dora-effect-target)::before,
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ripple] :is(#openChatbot,.dora-effect-target)::after {
    content:"" !important; inset:-4px; border:1px solid var(--dora-tone-brand); opacity:0;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=orbit] :is(#openChatbot,.dora-effect-target)::before {
    content:"" !important; inset:-8px; border:1px solid var(--dora-effect-halo);
    background:radial-gradient(circle at 50% 3%,var(--dora-tone-brand) 0 3px,transparent 4px);
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ring] :is(#openChatbot,.dora-effect-target)::before {
    content:"" !important; inset:-5px; border:2px solid var(--dora-effect-halo);
    border-top-color:var(--dora-tone-brand); border-right-color:var(--dora-tone-brand);
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=sparkle] :is(#openChatbot,.dora-effect-target)::after {
    content:"" !important; inset:-10px;
    background:radial-gradient(circle at 8% 22%,var(--dora-tone-brand) 0 2px,transparent 3px),
        radial-gradient(circle at 92% 65%,var(--dora-tone-brand) 0 2px,transparent 3px),
        radial-gradient(circle at 75% 6%,#fff 0 2px,transparent 3px);
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=aurora] :is(#openChatbot,.dora-effect-target) {
    background:linear-gradient(120deg,var(--dora-tone-brand),color-mix(in srgb,var(--dora-tone-brand) 85%,white),var(--dora-tone-brand)) !important;
    background-size:250% 250% !important;
}
@media(prefers-reduced-motion:no-preference) {
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=shadow] :is(#openChatbot,.dora-effect-target):is(:hover,:focus-visible,:active,.dora-effect-demo) { translate:0 calc(-1 * var(--dora-effect-rise)) !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=float] :is(#openChatbot,.dora-effect-target) { animation:dora-bot-float var(--dora-effect-speed) ease-in-out infinite !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=breathe] :is(#openChatbot,.dora-effect-target) { animation:dora-bot-breathe var(--dora-effect-speed) ease-in-out infinite !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=shimmer] :is(#openChatbot,.dora-effect-target)::after { animation:dora-bot-shimmer var(--dora-effect-speed) ease-in-out infinite !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=sheen] :is(#openChatbot,.dora-effect-target):is(:hover,:focus-visible,:active,.dora-effect-demo)::after { animation:dora-theme-sheen .8s ease-out !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ripple] :is(#openChatbot,.dora-effect-target)::before,
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ripple] :is(#openChatbot,.dora-effect-target)::after { animation:dora-bot-ripple var(--dora-effect-speed) ease-out infinite !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ripple] :is(#openChatbot,.dora-effect-target)::after { animation-delay:calc(var(--dora-effect-speed) / -2) !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=orbit] :is(#openChatbot,.dora-effect-target)::before,
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=ring] :is(#openChatbot,.dora-effect-target)::before { animation:dora-bot-orbit var(--dora-effect-speed) linear infinite !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=sparkle] :is(#openChatbot,.dora-effect-target)::after { animation:dora-bot-sparkle var(--dora-effect-speed) ease-in-out infinite !important; }
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=aurora] :is(#openChatbot,.dora-effect-target) { animation:dora-theme-aurora var(--dora-effect-speed) ease-in-out infinite !important; }
}
@keyframes dora-bot-float { 0%,100% { translate:0 0; } 50% { translate:0 calc(-1 * var(--dora-effect-rise)) !important; } }
@keyframes dora-bot-breathe { 0%,100% { scale:1; box-shadow:0 0 0 0 var(--dora-effect-halo); } 50% { scale:var(--dora-effect-scale); box-shadow:0 0 0 6px var(--dora-effect-halo); } }
@keyframes dora-bot-shimmer { 0%,65% { transform:translateX(-140%); } 90%,100% { transform:translateX(140%); } }
@keyframes dora-bot-ripple { 0% { transform:scale(1); opacity:0; } 20% { opacity:var(--dora-effect-alpha); } 100% { transform:scale(1.45); opacity:0; } }
@keyframes dora-bot-orbit { to { transform:rotate(360deg); } }
@keyframes dora-bot-sparkle { 0%,100% { opacity:.15; transform:scale(.95); } 50% { opacity:.85; transform:scale(1.04); } }
@media(prefers-reduced-motion:reduce) {
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect] :is(#openChatbot,.dora-effect-target),
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect] :is(#openChatbot,.dora-effect-target)::before,
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect] :is(#openChatbot,.dora-effect-target)::after {
        animation:none !important; transition:none !important; transform:none !important;
        scale:1 !important; rotate:none !important; translate:none !important;
    }
}


/* Emergency stop retains its own colour under every tenant palette and effect. */
#chatbotModal #doraStopAllButton.is-active {
    display:inline-flex!important;
    align-items:center;justify-content:center;
    width:44px!important;min-width:44px!important;height:44px!important;
    padding:8px!important;border-radius:50%!important;
    font-size:18px!important;font-weight:600;line-height:1!important;
    background:#ff1744!important;color:#fff!important;border:1px solid #ff1744!important;
    box-shadow:none!important;
    animation:none!important;transform:none!important;
}
#chatbotModal #doraStopAllButton::before,#chatbotModal #doraStopAllButton::after {content:none!important;display:none!important;}
#chatbotModal #doraStopAllButton.d-none {display:none!important;}

/* Every colour sample and catalogue miniature uses the same renderer as the bot. */
#tenant-dora-appearance {
    --dora-tone-brand:var(--tenant-dora);
    --dora-tone-ink:color-mix(in srgb,var(--dora-tone-brand) 22%,#172033);
    --dora-tone-deep:color-mix(in srgb,var(--dora-tone-brand) 35%,#172033);
}
#tenant-dora-appearance .tenant-button-samples[data-button-family=dora] {padding:10px 6px;gap:14px!important;overflow:visible;}
#tenant-dora-appearance .tenant-button-samples[data-button-family=dora] :is(#openChatbot,.dora-effect-target) {
    background-image:var(--dora-sample-image,none)!important;
}
#tenant-dora-appearance .tenant-button-samples[data-dora-effect=gradient] {--dora-sample-image:linear-gradient(135deg,#ffffff55,transparent 48%,#00000030);}
#tenant-dora-appearance .tenant-button-samples[data-dora-effect=aurora] {--dora-sample-image:linear-gradient(120deg,#ffffff55,transparent,#00000035,#ffffff55);}
#tenant-dora-appearance .tenant-dora-effect-example {
    display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;
    overflow:visible;
}
#tenant-dora-appearance .tenant-dora-effect-example > :is(#openChatbot,.dora-effect-target) {
    display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
    background:var(--dora-tone-brand);color:var(--dora-solid-text,#fff);border:1px solid var(--dora-tone-brand);
}
#tenant-dora-appearance .tenant-dora-effect-example :is(#openChatbot,.dora-effect-target) > i {
    background:transparent!important;color:inherit!important;width:auto;height:auto;padding:0;
    font-size:14px;
}
#tenant-dora-appearance .tenant-dora-effect-card {overflow:visible;}
#tenant-dora-appearance :is(#openChatbot,.dora-effect-target) > i {position:relative;z-index:2;}
#tenantDoraEffectStatus {display:block;min-height:2.8em;margin-top:12px;font-size:12px;color:#475569;}
.tenant-dora-reduced-motion-note {display:none;}
@media(prefers-reduced-motion:no-preference) {
    :is(.tenant-dora-preview,.tenant-button-samples[data-button-family=dora])[data-dora-effect=sheen] :is(#openChatbot,.dora-effect-target).dora-effect-demo::after {
        animation:dora-bot-shimmer var(--dora-effect-speed) ease-in-out infinite!important;
    }
}
@media(prefers-reduced-motion:reduce) {
    .tenant-dora-reduced-motion-note {display:block;font-size:12px;color:#475569;margin-top:8px;}
}

/* These effects stay visible on touch devices and without hovering a preview. */
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=halo] :is(#openChatbot,.dora-effect-target)::before {
    content:""!important;inset:-5px;border:2px solid var(--dora-tone-brand);
    opacity:.45;background:transparent!important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=lift] :is(#openChatbot,.dora-effect-target) {
    box-shadow:0 5px 12px var(--dora-effect-halo)!important;
}
@media(prefers-reduced-motion:no-preference) {
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=scale] :is(#openChatbot,.dora-effect-target) {animation:dora-bot-scale var(--dora-effect-speed) ease-in-out infinite!important;}
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=tilt] :is(#openChatbot,.dora-effect-target) {animation:dora-bot-tilt var(--dora-effect-speed) ease-in-out infinite!important;}
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=lift] :is(#openChatbot,.dora-effect-target) {animation:dora-bot-lift var(--dora-effect-speed) ease-in-out infinite!important;}
    :is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora],.tenant-dora-effect-example)[data-dora-effect=halo] :is(#openChatbot,.dora-effect-target)::before {animation:dora-bot-halo var(--dora-effect-speed) ease-in-out infinite!important;}
}
@keyframes dora-bot-scale {0%,100%{scale:1;}50%{scale:var(--dora-effect-scale);}}
@keyframes dora-bot-tilt {0%,100%{rotate:0deg;}35%{rotate:calc(-1 * var(--dora-effect-tilt));}65%{rotate:var(--dora-effect-tilt);}}
@keyframes dora-bot-lift {0%,100%{translate:0 0;}50%{translate:0 calc(-1 * var(--dora-effect-rise));}}
@keyframes dora-bot-halo {0%,100%{opacity:.3;transform:scale(1);}50%{opacity:.7;transform:scale(1.08);}}


/* Solid surfaces retain the exact selected hex. Only explicit light/dark variants tint it. */
#chatbotWidget #openChatbot,
#chatbotWidget #openChatbot:is(:hover,:active,.active,[aria-expanded=true]),
#chatbotWidget #openChatbot i {
    color:var(--dora-solid-text,#fff)!important;text-shadow:none;
}
#chatbotModal .chatbot-header .text-white {color:var(--dora-solid-text,#fff)!important;}
#chatbotModal #sendMessage:not(.btn-danger),
#chatbotModal #recodingBtn.dora-mic-listening {
    background:var(--dora-tone-brand)!important;
    border-color:var(--dora-tone-brand)!important;
    color:var(--dora-solid-text,#fff)!important;
}
#chatbotModal .dora-primary-tools .dora-footer-icon.is-active {
    background:var(--dora-tone-brand);
    color:var(--dora-solid-text,#fff);
    border-color:var(--dora-tone-brand);
}

/* Finish and animation are independent layers: a reflection can run over satin. */
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora])[data-dora-finish=gradient] :is(#openChatbot,.dora-effect-target),
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora])[data-dora-finish=relief] :is(#openChatbot,.dora-effect-target) {
    background-image:linear-gradient(145deg,#ffffff45,transparent 55%,#ffffff08),var(--dora-effect-background,linear-gradient(0deg,transparent,transparent))!important;
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora])[data-dora-effect=aurora] :is(#openChatbot,.dora-effect-target) {
    --dora-effect-background:linear-gradient(120deg,var(--dora-tone-brand),color-mix(in srgb,var(--dora-tone-brand) 85%,white),var(--dora-tone-brand));
}
:is(#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora])[data-dora-finish=relief] :is(#openChatbot,.dora-effect-target) {
    filter:drop-shadow(0 2px 0 color-mix(in srgb,var(--dora-tone-brand) 65%,black))!important;
}

/* A single tonal family for idle controls; the accent marks voice activity. */
:is(#chatbotModal,.tenant-dora-preview) {
    --dora-accent:var(--tenant-secondary,#14b8a6);
    --dora-accent-light:color-mix(in srgb,var(--dora-accent) 14%,white);
    --dora-accent-outline-light:color-mix(in srgb,var(--dora-accent) 38%,white);
    --dora-accent-dark:color-mix(in srgb,var(--dora-accent) 78%,black);
    --dora-button-dark:color-mix(in srgb,var(--dora-tone-brand) 78%,black);
    --dora-button-light:color-mix(in srgb,var(--dora-tone-brand) 8%,white);
}
:is(#chatbotModal,.tenant-dora-preview) :is(#sendMessage,.dora-preview-send) {
    --dora-button-fill:var(--dora-tone-brand);--dora-button-text:var(--dora-solid-text,#fff);--dora-button-edge:var(--dora-tone-brand);
}
:is(#chatbotModal,.tenant-dora-preview) :is(#recodingBtn,#cameraBtn,#quickTranscriberBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton,
.dora-preview-mic,.dora-preview-camera,.dora-preview-transcriber,.dora-preview-audio,.dora-preview-language,.dora-preview-boost) {
    --dora-button-fill:var(--dora-button-light);
    --dora-button-text:var(--dora-button-dark);
    --dora-button-edge:color-mix(in srgb,var(--dora-tone-brand) 20%,white);
}
:is(#chatbotModal,.tenant-dora-preview) :is(#recodingBtn.dora-mic-listening,#quickTranscriberBtn.is-active,.dora-preview-mic.is-active,.dora-preview-transcriber.is-active) {
    --dora-button-fill:var(--dora-accent);--dora-button-text:var(--dora-accent-text,#fff);--dora-button-edge:var(--dora-accent);
}
:is(#chatbotModal,.tenant-dora-preview) :is(#quickAudioBtn.is-active,#doraLanguageButton.is-active,.dora-preview-audio.is-active,.dora-preview-language.is-active) {
    --dora-button-fill:color-mix(in srgb,var(--dora-tone-brand) 18%,white);
    --dora-button-text:var(--dora-button-dark);--dora-button-edge:var(--dora-tone-brand);
}
:is(#chatbotModal,.tenant-dora-preview) :is(#sendMessage:not(.btn-danger),#recodingBtn,#cameraBtn,#quickTranscriberBtn,#doraBoostButton,#quickAudioBtn,#doraLanguageButton,
.dora-preview-send,.dora-preview-mic,.dora-preview-camera,.dora-preview-transcriber,.dora-preview-boost,.dora-preview-audio,.dora-preview-language) {
    background:var(--dora-button-fill)!important;
    color:var(--dora-button-text)!important;
    border:1px solid var(--dora-button-edge)!important;
}
:is(#chatbotModal,.tenant-dora-preview) :is(#sendMessage,#recodingBtn,#cameraBtn,#quickTranscriberBtn,#doraBoostButton,#quickAudioBtn,#doraLanguageButton) > i {
    color:inherit!important;
}
.tenant-dora-preview .dora-preview-tools {justify-content:center;gap:10px;}

/* User-selected foregrounds apply only to controls, never message text or emergency stop. */
:is(#chatbotModal,#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora]):not(.dora-transcriber-mode)[data-dora-text-mode]:not([data-dora-text-mode=auto]) :is(#openChatbot,#sendMessage:not(.btn-danger),#recodingBtn,#cameraBtn,#quickTranscriberBtn,#doraBoostButton,#quickAudioBtn,#doraLanguageButton,.dora-effect-target,.dora-effect-control):not(:disabled):not([aria-disabled=true]):not(:is(.is-active,.active,.dora-mic-listening,[aria-pressed=true],[aria-expanded=true],:active,:hover,:focus-visible)) {
    color:var(--dora-idle-text)!important;
}
:is(#chatbotModal,#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora]):not(.dora-transcriber-mode)[data-dora-active-text-mode]:not([data-dora-active-text-mode=auto]) :is(#openChatbot,#sendMessage:not(.btn-danger),#recodingBtn,#cameraBtn,#quickTranscriberBtn,#doraBoostButton,#quickAudioBtn,#doraLanguageButton,.dora-effect-target,.dora-effect-control):not(:disabled):not([aria-disabled=true]):is(.is-active,.active,.dora-mic-listening,[aria-pressed=true],[aria-expanded=true],:active,:hover,:focus-visible) {
    color:var(--dora-active-text)!important;
}
:is(#chatbotModal,#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora]):not(.dora-transcriber-mode)[data-dora-text-mode]:not([data-dora-text-mode=auto]) :is(#openChatbot,#sendMessage:not(.btn-danger),#recodingBtn,#cameraBtn,#quickTranscriberBtn,#doraBoostButton,#quickAudioBtn,#doraLanguageButton,.dora-effect-target,.dora-effect-control):not(:disabled):not([aria-disabled=true]):not(:is(.is-active,.active,.dora-mic-listening,[aria-pressed=true],[aria-expanded=true],:active,:hover,:focus-visible)) > i,
:is(#chatbotModal,#chatbotWidget,.tenant-dora-preview,.tenant-button-samples[data-button-family=dora]):not(.dora-transcriber-mode)[data-dora-active-text-mode]:not([data-dora-active-text-mode=auto]) :is(#openChatbot,#sendMessage:not(.btn-danger),#recodingBtn,#cameraBtn,#quickTranscriberBtn,#doraBoostButton,#quickAudioBtn,#doraLanguageButton,.dora-effect-target,.dora-effect-control):not(:disabled):not([aria-disabled=true]):is(.is-active,.active,.dora-mic-listening,[aria-pressed=true],[aria-expanded=true],:active,:hover,:focus-visible) > i {
    color:inherit!important;
}
:is(#chatbotModal,.tenant-dora-preview):not(.dora-transcriber-mode)[data-dora-text-mode]:not([data-dora-text-mode=auto]) :is(.chatbot-header,.dora-preview-heading),
#chatbotModal[data-dora-text-mode]:not([data-dora-text-mode=auto]) .chatbot-header .text-white {
    color:var(--dora-idle-text)!important;
}

/* Keep the header frame separate from Font Awesome's glyph dimensions. */
#chatbotModal .chatbot-header .dora-header-title {display:flex;align-items:center;gap:10px;min-width:0;}
#chatbotModal .chatbot-header .dora-header-avatar {
    display:grid;place-items:center;flex:0 0 38px;
    width:38px;height:38px;padding:0;margin:0;box-sizing:border-box;
    border-radius:14px;border:1px solid #ffffff48;
    background:#ffffff29;color:inherit;
}
#chatbotModal .chatbot-header .dora-header-avatar > i {
    display:block;position:static;width:auto;height:auto;line-height:1;
    padding:0;margin:0!important;font-size:18px;text-align:center;
    background:none!important;border:0!important;color:inherit!important;
}
#chatbotModal .chatbot-header .dora-header-avatar > i::before {
    display:block;line-height:1;margin:0;padding:0;
}

/* Options sit last and stay quieter than voice and translation controls. */
:is(#chatbotModal,.tenant-dora-preview) :is(#doraBoostButton.is-active,.dora-preview-boost.is-active) {
    --dora-button-fill:var(--dora-button-light);
}
#chatbotModal #doraBoostButton > i {font-size:14px;}
.tenant-dora-preview .dora-preview-boost > i {font-size:10px;}

/* The welcome mark uses Dora's selected palette rather than a separate gradient. */
#chatbotModal .dora-start-icon {
    background:var(--dora-tone-brand)!important;
    color:var(--dora-solid-text,#fff)!important;
    box-shadow:0 8px 20px color-mix(in srgb,var(--dora-tone-brand) 22%,transparent)!important;
}
#chatbotModal .dora-start-icon > i {color:inherit!important;}
#chatbotModal .dora-start-dot {
    background:var(--dora-accent,var(--dora-tone-brand))!important;
    box-shadow:0 0 0 4px color-mix(in srgb,var(--dora-accent,var(--dora-tone-brand)) 12%,transparent)!important;
}

/* Visitors compose text in a compact row, with a single send control. */
#chatbotModal[data-dora-authenticated="0"] .chat-input {
    padding:10px!important;gap:8px!important;align-items:center!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-textarea-shell #questiongpt {
    min-height:96px!important;padding:16px!important;border-radius:16px!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-main-controls {
    width:64px!important;flex:0 0 64px;justify-content:center!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-main-controls #sendMessage {
    width:64px!important;min-width:64px!important;height:96px!important;min-height:96px!important;
    border-radius:12px!important;font-size:24px!important;
}

/* Text and send form one input group for visitors. */
#chatbotModal[data-dora-authenticated="0"] .chat-input {
    gap:0!important;align-items:stretch!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-textarea-shell #questiongpt {
    border-radius:16px 0 0 16px!important;border-right:0!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-main-controls {
    position:relative;justify-content:flex-start!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-main-controls #sendMessage {
    height:100%!important;min-height:96px!important;border-radius:0 16px 16px 0!important;
}
#chatbotModal[data-dora-authenticated="0"] .dora-main-controls #doraStopAllButton {
    position:absolute;right:0;bottom:calc(100% + 6px);
}
/* Unavailable controls remain visible with a muted fill and a dashed edge. */
#chatbotModal .dora-main-controls :is(#sendMessage,#cameraBtn):is(:disabled,.is-disabled,[aria-disabled=true]) {
    background:#e2e8f0!important;color:#64748b!important;border:1px dashed #94a3b8!important;
    opacity:1!important;box-shadow:none!important;filter:none!important;cursor:not-allowed!important;
}
#chatbotModal .dora-main-controls :is(#sendMessage,#cameraBtn)[aria-busy=true]:not(:disabled) {
    background:var(--dora-tone-soft)!important;color:var(--dora-tone-ink)!important;
    border-style:dashed!important;
}

/* Quiet surfaces tie the composer together without adding a new colour palette. */
#chatbotModal .chat-input {
    background:color-mix(in srgb,var(--dora-tone-brand) 4%,white)!important;
}
#chatbotModal .dora-textarea-shell #questiongpt {
    background:#fff!important;
    border-color:color-mix(in srgb,var(--dora-tone-brand) 18%,white)!important;
    color:#25334a;
    box-shadow:none;
}
#chatbotModal .dora-textarea-shell #questiongpt:focus {
    border-color:color-mix(in srgb,var(--dora-tone-brand) 55%,white)!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--dora-tone-brand) 10%,transparent)!important;
}
#chatbotModal :is(#recodingBtn,#cameraBtn,#quickTranscriberBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton):not(:disabled) {
    box-shadow:none!important;
}
#chatbotModal :is(#recodingBtn,#cameraBtn,#quickTranscriberBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton):not(:disabled):not(.is-active):not(.dora-mic-listening):hover {
    background:color-mix(in srgb,var(--dora-tone-brand) 16%,white)!important;
    border-color:color-mix(in srgb,var(--dora-tone-brand) 40%,white)!important;
}
#chatbotModal #sendMessage:not(:disabled) {
    box-shadow:0 3px 8px color-mix(in srgb,var(--dora-tone-brand) 16%,transparent)!important;
}

/* The four lower circular tools share the tenant's outline warning light variant. */
:is(#chatbotModal,.tenant-dora-preview) {
    --dora-tool-warning:var(--tenant-warning,var(--bs-warning));
    --dora-tool-warning-light:var(--tenant-warning-light,color-mix(in srgb,var(--dora-tool-warning) 16%,white));
    --dora-tool-warning-text:var(--tenant-warning-dark,color-mix(in srgb,var(--dora-tool-warning) 74%,black));
    --dora-tool-warning-border:color-mix(in srgb,var(--dora-tool-warning) 40%,white);
}
:is(#chatbotModal,.tenant-dora-preview) :is(#quickTranscriberBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton,
.dora-preview-transcriber,.dora-preview-audio,.dora-preview-language,.dora-preview-boost):is(:not(.is-active),.is-active) {
    --dora-button-fill:#fff;
    --dora-button-text:var(--dora-tool-warning-text);
    --dora-button-edge:var(--dora-tool-warning-border);
    background:var(--dora-button-fill)!important;
    border-color:var(--dora-button-edge)!important;
    color:var(--dora-button-text)!important;
}
:is(#chatbotModal,.tenant-dora-preview) :is(#quickTranscriberBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton,
.dora-preview-transcriber,.dora-preview-audio,.dora-preview-language,.dora-preview-boost):not(:disabled):is(:hover,:focus-visible,:active,.is-active,[aria-expanded=true]) {
    --dora-button-fill:var(--dora-tool-warning-light);
    --dora-button-edge:var(--dora-tool-warning);
    background:var(--dora-button-fill)!important;
    border-color:var(--dora-button-edge)!important;
}

/* Dictation gives both microphones the lead and mutes every other composer action uniformly. */
#chatbotModal.dora-transcriber-mode {
    --dora-transcriber-blue:var(--tenant-primary,var(--bs-primary));
    --dora-transcriber-muted:var(--bs-secondary-color,#64748b);
}
#chatbotModal.dora-transcriber-mode :is(.dora-main-controls,.dora-primary-tools) :is(#sendMessage,#cameraBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton):is(:disabled,[aria-disabled=true],:not(:disabled)) {
    background:var(--bs-body-bg,#fff)!important;
    color:var(--dora-transcriber-muted)!important;
    border:1px solid var(--dora-transcriber-muted)!important;
    opacity:.18!important;
    filter:none!important;
    box-shadow:none!important;
    animation:none!important;
    cursor:not-allowed!important;
    pointer-events:none;
}
#chatbotModal.dora-transcriber-mode :is(.dora-main-controls,.dora-primary-tools) :is(#quickTranscriberBtn,#recodingBtn):is(.is-active,.is-transcriber-ready) {
    background:var(--dora-transcriber-blue)!important;
    color:var(--dora-transcriber-text,#fff)!important;
    border:1px solid var(--dora-transcriber-blue)!important;
    opacity:1!important;
    filter:none!important;
}
#chatbotModal.dora-transcriber-mode :is(#quickTranscriberBtn,#recodingBtn,#sendMessage,#cameraBtn,#quickAudioBtn,#doraLanguageButton,#doraBoostButton) > i {color:inherit!important;}
