/* CAMS toast notifications. Bottom-right stack. Same colour palette + leading
   symbol as the status chip (StatusChip.css) so the visual language is uniform. */

#cams-toast-host {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none; /* let clicks fall through the gaps */
    max-width: min(380px, calc(100vw - 40px));
}

.cams-toast {
    pointer-events: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
    color: #ffffff;
    font: 500 13px/1.4 'Segoe UI', Arial, sans-serif;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.cams-toast.is-visible {
    opacity: 1;
    transform: translateX(0);
}

.cams-toast.is-leaving {
    opacity: 0;
    transform: translateX(20px);
}

.cams-toast::before {
    flex: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    width: 18px;
    text-align: center;
}

.cams-toast__dismiss {
    flex: none;
    margin-left: auto;
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.85);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
    border-radius: 3px;
}
.cams-toast__dismiss:hover { color: #ffffff; background: rgba(255, 255, 255, 0.18); }
.cams-toast__dismiss:focus { outline: 2px solid rgba(255, 255, 255, 0.7); outline-offset: 1px; }

/* Variants — colours match StatusChip.css 1:1 so users see the same
   semantic colour for the same state across grids and toasts. */

.cams-toast--neutral  { background-color: #6b7280; }
.cams-toast--neutral::before  { content: "\2022"; } /* • */

.cams-toast--info     { background-color: #2563eb; }
.cams-toast--info::before     { content: "i"; }

.cams-toast--progress { background-color: #d97706; }
.cams-toast--progress::before { content: "\25CF"; } /* ● */

.cams-toast--success  { background-color: #059669; }
.cams-toast--success::before  { content: "\2713"; } /* ✓ */

.cams-toast--danger   { background-color: #dc2626; }
.cams-toast--danger::before   { content: "\2717"; } /* ✗ */

.cams-toast--warning  { background-color: #ea580c; }
.cams-toast--warning::before  { content: "!"; }
