/* iRaffe Whatsapp. All presentation selectors are scoped to the plugin. */
.irw-widget, .irw-widget * { box-sizing: border-box !important; }
.irw-widget {
    position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none;
    font-size: 14px; font-weight: 400; line-height: 1.45; text-align: left;
    direction: ltr; isolation: isolate;
}
.irw-widget.irw-is-preview { position: absolute; }
.irw-widget button, .irw-widget a {
    font-family: inherit !important; letter-spacing: normal !important;
    text-transform: none !important; text-decoration: none !important;
}
.irw-widget svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.irw-widget button:focus-visible, .irw-widget a:focus-visible {
    outline: 3px solid #93c5fd !important; outline-offset: 3px !important;
}
.irw-launcher {
    position: absolute; display: flex !important; justify-content: center; align-items: center;
    width: var(--irw-launcher-size); height: var(--irw-launcher-size);
    min-width: 0 !important; min-height: 0 !important; padding: 0 !important;
    background: var(--irw-launcher-bg) !important; color: var(--irw-launcher-icon) !important;
    border: var(--irw-launcher-border-width) solid var(--irw-launcher-border-color) !important; border-radius: var(--irw-launcher-radius) !important;
    box-shadow: 0 18px var(--irw-launcher-shadow-blur) color-mix(in srgb, var(--irw-launcher-shadow-color) 43%, transparent) !important;
    cursor: pointer; pointer-events: auto; transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
    z-index: 2; margin: 0 !important;
}
.irw-launcher-text { font-size: calc(var(--irw-launcher-icon-size) * .66); font-weight: 800; }
.irw-launcher-image { width: var(--irw-launcher-icon-size); height: var(--irw-launcher-icon-size); object-fit: contain; }
.irw-launcher svg { width: var(--irw-launcher-icon-size); height: var(--irw-launcher-icon-size); flex-shrink: 0; }
.irw-launcher:hover, .irw-launcher:focus-visible {
    background: var(--irw-launcher-hover) !important; color: var(--irw-launcher-icon) !important;
    transform: scale(1.065);
}
.irw-side-right .irw-launcher, .irw-side-right .irw-panel { right: var(--irw-x-offset); }
.irw-side-left .irw-launcher, .irw-side-left .irw-panel { left: var(--irw-x-offset); }
.irw-anchor-bottom .irw-launcher { bottom: var(--irw-y-offset); }
.irw-anchor-top .irw-launcher { top: var(--irw-y-offset); }
.irw-panel {
    display: block; position: absolute; width: var(--irw-panel-width);
    max-width: calc(100% - 24px); max-height: calc(100% - var(--irw-y-offset) - var(--irw-launcher-size) - var(--irw-panel-gap) - 12px);
    padding: 0; margin: 0; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin;
    border: var(--irw-panel-border-width) solid var(--irw-panel-border); border-radius: var(--irw-panel-radius);
    background: var(--irw-panel-bg); color: #fff;
    box-shadow: 0 28px var(--irw-panel-shadow-blur) color-mix(in srgb, var(--irw-panel-shadow-color) 55%, transparent);
    pointer-events: none; z-index: 3;
    opacity: 0; visibility: hidden;
    transform: translateY(14px) scale(.97); transform-origin: bottom right;
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
.irw-anchor-bottom .irw-panel { bottom: calc(var(--irw-y-offset) + var(--irw-launcher-size) + var(--irw-panel-gap)); }
.irw-anchor-top .irw-panel { top: calc(var(--irw-y-offset) + var(--irw-launcher-size) + var(--irw-panel-gap)); transform-origin: top right; }
.irw-side-left .irw-panel { transform-origin: bottom left; }
.irw-side-left.irw-anchor-top .irw-panel { transform-origin: top left; }
.irw-panel.irw-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.irw-close {
    position: absolute; top: var(--irw-close-top); right: var(--irw-close-right); z-index: 10;
    display: flex !important; align-items: center; justify-content: center;
    width: var(--irw-close-size); height: var(--irw-close-size);
    min-width: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important;
    border-radius: 50% !important; border: 1px solid var(--irw-close-border) !important;
    color: var(--irw-close-color) !important; background: var(--irw-close-bg) !important;
    cursor: pointer; transition: transform .2s ease, background-color .2s ease;
}
.irw-close:hover { color: var(--irw-close-color) !important; background: var(--irw-close-hover) !important; transform: rotate(90deg); }
.irw-close svg { width: var(--irw-close-icon-size); height: var(--irw-close-icon-size); }
.irw-cross-svg { fill: none !important; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.irw-agent-list { display: block; }
.irw-agent-card { margin: 0; background: var(--irw-card-bg-individual, var(--irw-card-bg)); }
.irw-agent-card + .irw-agent-card { border-top: 1px solid var(--irw-panel-border); margin-top: var(--irw-agent-gap); }
.irw-agent-content { padding: var(--irw-panel-padding); }
.irw-agent-info { display: flex; align-items: flex-start; gap: var(--irw-header-gap); min-height: var(--irw-avatar-size); margin: 0 0 var(--irw-message-gap); }
.irw-agent-card:first-child .irw-agent-info { padding-right: calc(var(--irw-close-size) + 4px); }
.irw-avatar {
    width: var(--irw-avatar-size); height: var(--irw-avatar-size);
    display: flex; flex: 0 0 auto; align-items: center; justify-content: center;
    border: var(--irw-avatar-border-width) solid var(--irw-avatar-border-color); border-radius: var(--irw-avatar-radius);
    background: var(--irw-avatar-bg); color: var(--irw-avatar-color);
    font-size: var(--irw-avatar-font-size); font-weight: 800;
    text-align: center; line-height: 1; overflow: hidden;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--irw-avatar-bg) 14%, transparent);
}
.irw-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.irw-agent-texts { flex: 1; min-width: 0; padding-top: 2px; overflow-wrap: anywhere; }
.irw-agent-name { margin: 0 0 2px; font-size: var(--irw-name-size); font-weight: 800; line-height: 1.2; color: var(--irw-agent-name); }
.irw-agent-description { margin: 0; color: var(--irw-agent-description); font-size: var(--irw-desc-size); font-weight: 400; line-height: 1.5; }
.irw-agent-status { display: flex; align-items: center; gap: 7px; margin-top: 7px; color: var(--irw-agent-status); font-size: var(--irw-status-size); font-weight: 500; }
.irw-status-dot { color: var(--irw-status-dot); display: inline-block; width: var(--irw-status-dot-size); height: var(--irw-status-dot-size); flex: 0 0 var(--irw-status-dot-size); background: currentColor; border-radius: 50%; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 17%, transparent); }
.irw-status-pulse .irw-status-dot { animation: irw-status-beat 1.5s ease-in-out infinite; }
@keyframes irw-status-beat { 0%,100% { box-shadow: 0 0 0 0 currentColor; } 65% { box-shadow: 0 0 0 7px transparent; } }
.irw-message { position: relative; border-radius: 4px var(--irw-message-radius-individual, var(--irw-message-radius)) var(--irw-message-radius-individual, var(--irw-message-radius)) var(--irw-message-radius-individual, var(--irw-message-radius)); padding: var(--irw-message-padding-y) var(--irw-message-padding-x); background: var(--irw-message-bg-individual, var(--irw-message-bg)); color: var(--irw-agent-message); }
.irw-message::before { content: ''; position: absolute; top: 0; left: -7px; width: 0; height: 0; border-top: 8px solid var(--irw-message-bg-individual, var(--irw-message-bg)); border-left: 8px solid transparent; }
.irw-message p { margin: 0 !important; padding: 0 !important; font-weight: 400; font-size: var(--irw-message-size); color: var(--irw-agent-message); line-height: 1.55; white-space: pre-line; overflow-wrap: anywhere; }
.irw-agent-footer { border-top: 1px solid var(--irw-footer-border-color); background: var(--irw-footer-bg, var(--irw-card-bg)); padding: var(--irw-footer-padding-y) var(--irw-panel-padding) calc(var(--irw-footer-padding-y) + 2px); }
.irw-chat-button {
    display: flex !important; align-items: center; justify-content: center; gap: 10px;
    width: 100%; min-height: var(--irw-cta-height); padding: 8px 12px !important;
    border: none !important; border-radius: var(--irw-cta-radius) !important;
    background: var(--irw-agent-button) !important; color: var(--irw-agent-button-color) !important;
    font-size: var(--irw-cta-font-size) !important; font-weight: var(--irw-cta-weight) !important; line-height: 1.2;
    box-shadow: 0 10px var(--irw-button-shadow-blur) color-mix(in srgb, var(--irw-button-shadow-color) 25%, transparent); text-align: center;
    transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
    word-break: break-word;
}
.irw-chat-button svg { color: var(--irw-agent-button-icon); flex: 0 0 auto; width: var(--irw-cta-icon-size); height: var(--irw-cta-icon-size); }
.irw-chat-button:hover { background: var(--irw-agent-button-hover) !important; color: var(--irw-agent-button-color) !important; transform: translateY(-1px); }
.irw-chat-disabled, .irw-chat-disabled:hover { opacity: .47 !important; cursor: not-allowed; transform: none; pointer-events: none; }
.irw-credit { padding: 0 var(--irw-panel-padding) 16px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 5px; color: var(--irw-credit-color); font-size: var(--irw-credit-font-size); text-align: center; }
.irw-credit a { color: var(--irw-credit-link-color); }
.irw-credit a, .irw-credit strong {  font-size: inherit; font-weight: 700; }
.irw-credit a:hover { color: #fff; text-decoration: underline !important; }
.irw-empty-state { padding: 70px 24px 32px; text-align: center; color: #a1a1aa; }
@media (max-width: 767px) {
    .irw-widget.irw-hide-mobile:not(.irw-is-preview) { display: none; }
    .irw-widget:not(.irw-is-preview) .irw-panel { max-width: calc(100% - 24px); }
}
@media (min-width: 768px) {
    .irw-widget.irw-hide-desktop:not(.irw-is-preview) { display: none; }
}
.irw-widget.irw-is-preview.irw-simulate-mobile .irw-panel { max-width: calc(100% - 24px); }
@media (prefers-reduced-motion: reduce) {
    .irw-widget *, .irw-widget *::before, .irw-widget *::after { transition: none !important; animation: none !important; }
}

/* Secciones opcionales: sin espaciados fantasma cuando se ocultan. */
.irw-agent-card.irw-no-heading .irw-agent-content .irw-message { margin-top: 0; }
.irw-agent-info:empty { display: none !important; }
.irw-agent-card.irw-no-message .irw-agent-info { margin-bottom: 0; }
.irw-agent-card.irw-no-heading .irw-agent-info { display: none !important; }
.irw-agent-card:has(.irw-agent-footer):not(:has(.irw-agent-content)) .irw-agent-footer { border-top: 0 !important; }
.irw-agent-card:has(.irw-agent-content):not(:has(.irw-agent-footer)) .irw-agent-content { padding-bottom: var(--irw-panel-padding); }
.irw-agent-card.irw-no-heading .irw-agent-content { padding-top: var(--irw-panel-padding); }
.irw-agent-card .irw-chat-button:has(svg):not(:has(span)) { min-width: 0; }
.irw-agent-card .irw-agent-info:has(.irw-agent-texts):not(:has(.irw-avatar)) { min-height: 0; }
.irw-agent-card:first-child .irw-agent-info { padding-right: 0; }
.irw-panel:has(.irw-close) .irw-agent-card:first-child .irw-agent-info { padding-right: calc(var(--irw-close-size) + 4px); }
.irw-panel:has(.irw-close) .irw-agent-card:first-child.irw-no-heading .irw-agent-content { padding-top: max(var(--irw-panel-padding), calc(var(--irw-close-top) + var(--irw-close-size) + 6px)); }
.irw-panel:has(.irw-close) .irw-agent-card:first-child:has(.irw-agent-info):not(:has(.irw-avatar)) .irw-agent-info { padding-right: calc(var(--irw-close-size) + 4px); }

/* Contraste del estado negro sobre las tarjetas oscuras. */
.irw-agent-status.irw-dark-status-contrast { display: inline-flex; width: fit-content; padding: 5px 9px; background: #ffffff; border-radius: 999px; }
