/* Sistema canonico de toasts — Pharus mobile */
.pharus-toast-container {
    position: fixed;
    /* v4.77.48 — posicionado ABAIXO do head__app (56px em /ofertas), com
       safe-area para notch. Antes: top: space-4 → toast ficava oculto
       atrás do head__app fixed (z-index 999999999). z-index do toast
       também subido pra cobrir o head__app quando necessário. */
    top: calc(var(--header-height, 56px) + var(--space-2, 8px) + env(safe-area-inset-top, 0px));
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999999999;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    pointer-events: none;
    width: min(92vw, 420px);
}
.pharus-toast {
    pointer-events: auto;
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-4) var(--space-4) var(--space-3);
    background: color-mix(in srgb, var(--bg-primary, #fff) 92%, transparent);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--text-primary, #18181b);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 48px rgba(0,0,0,0.18), 0 4px 12px rgba(0,0,0,0.08);
    border-left: 4px solid var(--main-color, var(--color-brand, #3B82F6));
    font-size: var(--font-md, 15px);
    line-height: var(--leading-normal, 1.5);
    min-height: 64px;
    opacity: 0;
    transform: translateY(-16px);
    transition: opacity 0.28s var(--ease-out), transform 0.28s var(--ease-out);
    will-change: opacity, transform;
    overflow: hidden;
}
.pharus-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
    animation: pharusToastIn 0.38s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.pharus-toast.is-leaving {
    opacity: 0;
    transform: translateY(-16px);
    animation: none;
}
@keyframes pharusToastIn {
    from { opacity: 0; transform: translateY(-24px) scale(0.92); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.pharus-toast__icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    font-size: var(--font-lg, 17px);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--main-color, #3B82F6) 25%, transparent);
}
.pharus-toast__body { flex: 1; min-width: 0; }
.pharus-toast__title {
    font-weight: var(--weight-semibold, 600);
    margin: 0 0 2px 0;
    font-size: var(--font-md, 15px);
    color: var(--text-primary, #18181b);
}
.pharus-toast__text {
    margin: 0;
    font-size: var(--font-sm, 13px);
    line-height: var(--leading-normal, 1.5);
    color: var(--text-secondary, var(--text-muted));
    word-break: break-word;
}
.pharus-toast__close {
    background: none; border: none; padding: var(--space-1);
    color: var(--text-muted); cursor: pointer;
    width: 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--radius-sm);
    transition: background 0.15s;
    flex-shrink: 0;
}
.pharus-toast__close:active { background: var(--gray-100); }

/* Success — destaque com gradiente + brilho */
.pharus-toast--success {
    border-left-width: 6px;
    border-left-color: var(--color-success, #10B981);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--color-success, #10B981) 4%, var(--bg-primary, #fff)) 0%,
        color-mix(in srgb, var(--bg-primary, #fff) 92%, transparent) 100%);
}
.pharus-toast--success .pharus-toast__icon {
    background: var(--color-success, #10B981);
    color: #fff;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--color-success, #10B981) 40%, transparent);
    animation: pharusToastIconPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s both;
}
@keyframes pharusToastIconPop {
    0%   { transform: scale(0.4) rotate(-90deg); }
    60%  { transform: scale(1.15) rotate(10deg); }
    100% { transform: scale(1) rotate(0); }
}

/* Error — vermelho com destaque lateral maior */
.pharus-toast--error {
    border-left-width: 6px;
    border-left-color: var(--color-error, #EF4444);
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--color-error, #EF4444) 4%, var(--bg-primary, #fff)) 0%,
        color-mix(in srgb, var(--bg-primary, #fff) 92%, transparent) 100%);
}
.pharus-toast--error .pharus-toast__icon {
    background: var(--color-error, #EF4444);
    color: #fff;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--color-error, #EF4444) 40%, transparent);
    animation: pharusToastIconShake 0.55s cubic-bezier(0.36, 0.07, 0.19, 0.97) 0.1s both;
}
@keyframes pharusToastIconShake {
    0%, 100% { transform: translateX(0); }
    20%      { transform: translateX(-4px) rotate(-6deg); }
    40%      { transform: translateX(4px) rotate(6deg); }
    60%      { transform: translateX(-3px) rotate(-4deg); }
    80%      { transform: translateX(3px) rotate(4deg); }
}

/* Warning — laranja com pulso */
.pharus-toast--warning {
    border-left-width: 6px;
    border-left-color: #f59e0b;
    background: linear-gradient(135deg,
        color-mix(in srgb, #f59e0b 4%, var(--bg-primary, #fff)) 0%,
        color-mix(in srgb, var(--bg-primary, #fff) 92%, transparent) 100%);
}
.pharus-toast--warning .pharus-toast__icon {
    background: #f59e0b;
    color: #fff;
    box-shadow: 0 4px 16px color-mix(in srgb, #f59e0b 40%, transparent);
    animation: pharusToastIconPulse 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s both;
}
@keyframes pharusToastIconPulse {
    0%   { transform: scale(0.6); }
    50%  { transform: scale(1.18); }
    100% { transform: scale(1); }
}

/* Info — mantém cor da marca */
.pharus-toast--info {
    border-left-color: var(--main-color, #3B82F6);
}
.pharus-toast--info .pharus-toast__icon {
    background: var(--main-color, #3B82F6);
    color: #fff;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--main-color, #3B82F6) 40%, transparent);
}

/* Celebration — brilho radial animado no fundo do toast */
.pharus-toast--celebration::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 20%;
    width: 160%;
    height: 300%;
    background: radial-gradient(circle at center,
        color-mix(in srgb, var(--color-success, #10B981) 18%, transparent) 0%,
        transparent 55%);
    transform: translate(-50%, -50%) scale(0);
    animation: pharusToastGlow 1.2s cubic-bezier(0.25, 0.8, 0.35, 1) 0.1s both;
    pointer-events: none;
    z-index: 0;
}
.pharus-toast--celebration > * { position: relative; z-index: 1; }
@keyframes pharusToastGlow {
    0%   { transform: translate(-50%, -50%) scale(0); opacity: 0; }
    45%  { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1.15); opacity: 0; }
}
.pharus-toast--celebration .pharus-toast__title {
    font-size: var(--font-lg, 17px);
}

@media (prefers-reduced-motion: reduce) {
    .pharus-toast,
    .pharus-toast.is-visible,
    .pharus-toast--success .pharus-toast__icon,
    .pharus-toast--error .pharus-toast__icon,
    .pharus-toast--warning .pharus-toast__icon,
    .pharus-toast--celebration::before {
        transition: none;
        animation: none;
        transform: none;
    }
}
